flywheel-sdk 21.2.0rc0__py3-none-any.whl

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 (772) hide show
  1. flywheel/__init__.py +784 -0
  2. flywheel/api/__init__.py +46 -0
  3. flywheel/api/acquisitions_api.py +5014 -0
  4. flywheel/api/analyses_api.py +3848 -0
  5. flywheel/api/audit_trail_api.py +568 -0
  6. flywheel/api/auth_api.py +121 -0
  7. flywheel/api/batch_api.py +630 -0
  8. flywheel/api/bulk_api.py +140 -0
  9. flywheel/api/change_log_api.py +254 -0
  10. flywheel/api/collections_api.py +3913 -0
  11. flywheel/api/config_api.py +299 -0
  12. flywheel/api/container_tasks_api.py +137 -0
  13. flywheel/api/container_type_api.py +137 -0
  14. flywheel/api/containers_api.py +4784 -0
  15. flywheel/api/custom_filters_api.py +466 -0
  16. flywheel/api/data_view_executions_api.py +549 -0
  17. flywheel/api/dataexplorer_api.py +1192 -0
  18. flywheel/api/devices_api.py +1071 -0
  19. flywheel/api/dimse_api.py +814 -0
  20. flywheel/api/download_api.py +261 -0
  21. flywheel/api/files_api.py +1868 -0
  22. flywheel/api/form_responses_api.py +703 -0
  23. flywheel/api/gears_api.py +1875 -0
  24. flywheel/api/groups_api.py +2829 -0
  25. flywheel/api/jobs_api.py +2320 -0
  26. flywheel/api/jupyterlab_servers_api.py +245 -0
  27. flywheel/api/modalities_api.py +562 -0
  28. flywheel/api/packfiles_api.py +121 -0
  29. flywheel/api/projects_api.py +7820 -0
  30. flywheel/api/protocols_api.py +757 -0
  31. flywheel/api/reports_api.py +1057 -0
  32. flywheel/api/resolve_api.py +276 -0
  33. flywheel/api/roles_api.py +563 -0
  34. flywheel/api/sessions_api.py +5296 -0
  35. flywheel/api/site_api.py +1552 -0
  36. flywheel/api/staffing_pools_api.py +677 -0
  37. flywheel/api/subjects_api.py +5349 -0
  38. flywheel/api/tasks_api.py +897 -0
  39. flywheel/api/tree_api.py +266 -0
  40. flywheel/api/uids_api.py +140 -0
  41. flywheel/api/upload_api.py +842 -0
  42. flywheel/api/users_api.py +2142 -0
  43. flywheel/api/views_api.py +1089 -0
  44. flywheel/api_client.py +748 -0
  45. flywheel/client.py +291 -0
  46. flywheel/configuration.py +308 -0
  47. flywheel/drone_login.py +65 -0
  48. flywheel/file_spec.py +67 -0
  49. flywheel/finder.py +168 -0
  50. flywheel/flywheel.py +9867 -0
  51. flywheel/gear_context.py +374 -0
  52. flywheel/models/__init__.py +726 -0
  53. flywheel/models/access_level.py +30 -0
  54. flywheel/models/access_permission.py +197 -0
  55. flywheel/models/access_permission_output.py +192 -0
  56. flywheel/models/access_permission_update.py +166 -0
  57. flywheel/models/access_type.py +54 -0
  58. flywheel/models/accumulator.py +33 -0
  59. flywheel/models/acquisition.py +25 -0
  60. flywheel/models/acquisition_container_output.py +34 -0
  61. flywheel/models/acquisition_copy_input.py +223 -0
  62. flywheel/models/acquisition_input.py +297 -0
  63. flywheel/models/acquisition_list_output.py +767 -0
  64. flywheel/models/acquisition_modify_input.py +299 -0
  65. flywheel/models/acquisition_node.py +35 -0
  66. flywheel/models/acquisition_output.py +767 -0
  67. flywheel/models/acquisition_parents.py +241 -0
  68. flywheel/models/acquisition_template_options.py +275 -0
  69. flywheel/models/acquisition_upsert_input.py +383 -0
  70. flywheel/models/acquisition_upsert_output.py +243 -0
  71. flywheel/models/action.py +91 -0
  72. flywheel/models/adhoc_analysis_input.py +247 -0
  73. flywheel/models/analysis.py +25 -0
  74. flywheel/models/analysis_container_output.py +34 -0
  75. flywheel/models/analysis_files_create_ticket_output.py +241 -0
  76. flywheel/models/analysis_input.py +310 -0
  77. flywheel/models/analysis_input_legacy.py +25 -0
  78. flywheel/models/analysis_list_output.py +680 -0
  79. flywheel/models/analysis_list_output_inflated_job.py +650 -0
  80. flywheel/models/analysis_modify_input.py +191 -0
  81. flywheel/models/analysis_node.py +35 -0
  82. flywheel/models/analysis_output.py +683 -0
  83. flywheel/models/analysis_output_inflated_job.py +674 -0
  84. flywheel/models/analysis_parents.py +270 -0
  85. flywheel/models/analysis_update.py +25 -0
  86. flywheel/models/api_key_input_with_optional_label.py +191 -0
  87. flywheel/models/api_key_output.py +297 -0
  88. flywheel/models/as_storage.py +298 -0
  89. flywheel/models/assignee.py +192 -0
  90. flywheel/models/assignee_type.py +29 -0
  91. flywheel/models/audit_trail_report.py +486 -0
  92. flywheel/models/audit_trail_report_status.py +32 -0
  93. flywheel/models/auth0_auth_out.py +323 -0
  94. flywheel/models/auth0_options_out.py +319 -0
  95. flywheel/models/auth_out.py +357 -0
  96. flywheel/models/auth_session_output.py +272 -0
  97. flywheel/models/avatars.py +218 -0
  98. flywheel/models/aws_creds.py +191 -0
  99. flywheel/models/aws_storage.py +354 -0
  100. flywheel/models/azure_creds.py +190 -0
  101. flywheel/models/base_aet.py +245 -0
  102. flywheel/models/base_compute.py +426 -0
  103. flywheel/models/batch.py +360 -0
  104. flywheel/models/batch_cancel_output.py +36 -0
  105. flywheel/models/batch_create_filters.py +220 -0
  106. flywheel/models/batch_job_analysis_input.py +281 -0
  107. flywheel/models/batch_jobs_proposal_input.py +36 -0
  108. flywheel/models/batch_proposal.py +25 -0
  109. flywheel/models/batch_proposal_detail.py +36 -0
  110. flywheel/models/batch_proposal_input.py +25 -0
  111. flywheel/models/body.py +36 -0
  112. flywheel/models/body_regenerate_key_api_devices_device_id_key_post.py +25 -0
  113. flywheel/models/body_region.py +46 -0
  114. flywheel/models/bookmark.py +189 -0
  115. flywheel/models/bulk_move_input.py +272 -0
  116. flywheel/models/bulk_move_sessions.py +25 -0
  117. flywheel/models/callbacks_virus_scan_input.py +36 -0
  118. flywheel/models/cancelled_batch_output.py +163 -0
  119. flywheel/models/catalog_list_output.py +407 -0
  120. flywheel/models/central_out.py +299 -0
  121. flywheel/models/change.py +379 -0
  122. flywheel/models/change_log_container_type.py +38 -0
  123. flywheel/models/change_log_document.py +245 -0
  124. flywheel/models/change_method.py +33 -0
  125. flywheel/models/classic_batch_job_output.py +352 -0
  126. flywheel/models/classic_batch_job_output_inflated_jobs.py +379 -0
  127. flywheel/models/classic_batch_proposal_input.py +388 -0
  128. flywheel/models/classic_batch_proposal_output.py +471 -0
  129. flywheel/models/classification_add_delete.py +36 -0
  130. flywheel/models/classification_replace.py +36 -0
  131. flywheel/models/classification_update_input.py +36 -0
  132. flywheel/models/cohort.py +29 -0
  133. flywheel/models/collection.py +25 -0
  134. flywheel/models/collection_container_output.py +32 -0
  135. flywheel/models/collection_input.py +217 -0
  136. flywheel/models/collection_input_with_contents.py +248 -0
  137. flywheel/models/collection_node.py +192 -0
  138. flywheel/models/collection_node_level.py +31 -0
  139. flywheel/models/collection_operation.py +193 -0
  140. flywheel/models/collection_operation_type.py +29 -0
  141. flywheel/models/collection_output.py +639 -0
  142. flywheel/models/collection_with_stats.py +637 -0
  143. flywheel/models/column.py +286 -0
  144. flywheel/models/column_type.py +32 -0
  145. flywheel/models/common_classification.py +135 -0
  146. flywheel/models/common_deleted_count.py +25 -0
  147. flywheel/models/common_editions.py +25 -0
  148. flywheel/models/common_info.py +135 -0
  149. flywheel/models/common_join_origins.py +25 -0
  150. flywheel/models/common_key.py +36 -0
  151. flywheel/models/common_modified_count.py +25 -0
  152. flywheel/models/common_object_created.py +36 -0
  153. flywheel/models/common_project_settings.py +25 -0
  154. flywheel/models/common_settings.py +36 -0
  155. flywheel/models/complete_multipart_upload_output.py +189 -0
  156. flywheel/models/complete_s3_multipart_upload_input.py +241 -0
  157. flywheel/models/config_feature_map.py +36 -0
  158. flywheel/models/config_out.py +381 -0
  159. flywheel/models/config_output.py +36 -0
  160. flywheel/models/config_site_config_output.py +36 -0
  161. flywheel/models/config_site_settings.py +36 -0
  162. flywheel/models/config_site_settings_input.py +36 -0
  163. flywheel/models/conflict_types.py +30 -0
  164. flywheel/models/container_delete_reason.py +39 -0
  165. flywheel/models/container_filter.py +193 -0
  166. flywheel/models/container_id_view_input.py +521 -0
  167. flywheel/models/container_id_view_input_execute_and_save.py +308 -0
  168. flywheel/models/container_modify.py +536 -0
  169. flywheel/models/container_new_output.py +25 -0
  170. flywheel/models/container_node_min.py +350 -0
  171. flywheel/models/container_output.py +36 -0
  172. flywheel/models/container_output_with_files.py +283 -0
  173. flywheel/models/container_parents.py +311 -0
  174. flywheel/models/container_pipeline_input.py +536 -0
  175. flywheel/models/container_project_parents.py +25 -0
  176. flywheel/models/container_reference.py +193 -0
  177. flywheel/models/container_reference_with_label.py +219 -0
  178. flywheel/models/container_session_parents.py +25 -0
  179. flywheel/models/container_subject_parents.py +25 -0
  180. flywheel/models/container_type.py +39 -0
  181. flywheel/models/container_uidcheck.py +253 -0
  182. flywheel/models/container_update.py +135 -0
  183. flywheel/models/context_input.py +217 -0
  184. flywheel/models/copy_filter.py +299 -0
  185. flywheel/models/copy_status.py +32 -0
  186. flywheel/models/core_models_api_key_api_key_input.py +190 -0
  187. flywheel/models/core_models_audit_trail_create_report_input.py +273 -0
  188. flywheel/models/core_models_audit_trail_modify_report_input.py +167 -0
  189. flywheel/models/core_models_common_source.py +189 -0
  190. flywheel/models/core_models_jobs_api_key_input.py +191 -0
  191. flywheel/models/core_models_search_parent_type.py +33 -0
  192. flywheel/models/core_workflows_form_responses_models_form_parents.py +163 -0
  193. flywheel/models/core_workflows_form_responses_models_form_response_output.py +440 -0
  194. flywheel/models/core_workflows_reader_models_reader_task_parents.py +295 -0
  195. flywheel/models/creds.py +135 -0
  196. flywheel/models/curator.py +221 -0
  197. flywheel/models/current_user_output.py +707 -0
  198. flywheel/models/custom_field.py +437 -0
  199. flywheel/models/custom_form.py +244 -0
  200. flywheel/models/cvat_info.py +275 -0
  201. flywheel/models/cvat_settings.py +272 -0
  202. flywheel/models/cvat_settings_input.py +272 -0
  203. flywheel/models/cvat_sync_state.py +30 -0
  204. flywheel/models/daily_report_usage.py +565 -0
  205. flywheel/models/data_strategy.py +29 -0
  206. flywheel/models/data_view.py +25 -0
  207. flywheel/models/data_view_analysis_file_spec.py +221 -0
  208. flywheel/models/data_view_analysis_filter_spec.py +221 -0
  209. flywheel/models/data_view_column_alias.py +337 -0
  210. flywheel/models/data_view_column_spec.py +286 -0
  211. flywheel/models/data_view_execution.py +505 -0
  212. flywheel/models/data_view_execution_state.py +31 -0
  213. flywheel/models/data_view_file_spec.py +392 -0
  214. flywheel/models/data_view_group_by.py +166 -0
  215. flywheel/models/data_view_group_by_column.py +194 -0
  216. flywheel/models/data_view_name_filter_spec.py +194 -0
  217. flywheel/models/data_view_output.py +25 -0
  218. flywheel/models/data_view_save_data_view_input.py +25 -0
  219. flywheel/models/data_view_zip_filter_spec.py +223 -0
  220. flywheel/models/default_flywheel_role.py +30 -0
  221. flywheel/models/deid_log_skip_reason.py +29 -0
  222. flywheel/models/delete_by_search_query.py +253 -0
  223. flywheel/models/deleted_file.py +514 -0
  224. flywheel/models/deleted_result.py +194 -0
  225. flywheel/models/deprecated_action.py +29 -0
  226. flywheel/models/destination_container_type.py +30 -0
  227. flywheel/models/device.py +437 -0
  228. flywheel/models/device_admin_update.py +194 -0
  229. flywheel/models/device_create.py +219 -0
  230. flywheel/models/device_self_update.py +272 -0
  231. flywheel/models/device_status.py +36 -0
  232. flywheel/models/device_status_entry.py +221 -0
  233. flywheel/models/device_storage_strategy_update.py +193 -0
  234. flywheel/models/dimse_project_input.py +36 -0
  235. flywheel/models/dimse_project_output.py +36 -0
  236. flywheel/models/dimse_service_input.py +36 -0
  237. flywheel/models/dimse_service_output.py +36 -0
  238. flywheel/models/download.py +249 -0
  239. flywheel/models/download_container_filter.py +167 -0
  240. flywheel/models/download_container_filter_definition.py +222 -0
  241. flywheel/models/download_filter.py +221 -0
  242. flywheel/models/download_filter_definition.py +195 -0
  243. flywheel/models/download_format.py +29 -0
  244. flywheel/models/download_input.py +25 -0
  245. flywheel/models/download_node.py +189 -0
  246. flywheel/models/download_strategy.py +31 -0
  247. flywheel/models/download_ticket.py +36 -0
  248. flywheel/models/download_ticket_stub.py +249 -0
  249. flywheel/models/download_ticket_with_summary.py +36 -0
  250. flywheel/models/e_signature.py +242 -0
  251. flywheel/models/edition.py +169 -0
  252. flywheel/models/egress_device.py +597 -0
  253. flywheel/models/egress_device_page.py +219 -0
  254. flywheel/models/egress_provider.py +408 -0
  255. flywheel/models/egress_provider_id.py +164 -0
  256. flywheel/models/exchange_storage.py +243 -0
  257. flywheel/models/executor_info.py +353 -0
  258. flywheel/models/export_templates.py +195 -0
  259. flywheel/models/features.py +1838 -0
  260. flywheel/models/field_change.py +271 -0
  261. flywheel/models/field_change_log_document.py +245 -0
  262. flywheel/models/field_type.py +37 -0
  263. flywheel/models/file.py +1139 -0
  264. flywheel/models/file_classification_delta.py +245 -0
  265. flywheel/models/file_container_type.py +34 -0
  266. flywheel/models/file_entry.py +740 -0
  267. flywheel/models/file_export_templates.py +272 -0
  268. flywheel/models/file_format.py +33 -0
  269. flywheel/models/file_gear_info.py +215 -0
  270. flywheel/models/file_group.py +29 -0
  271. flywheel/models/file_list_output.py +1115 -0
  272. flywheel/models/file_modify_input.py +191 -0
  273. flywheel/models/file_move_input.py +221 -0
  274. flywheel/models/file_node.py +1138 -0
  275. flywheel/models/file_node_min.py +321 -0
  276. flywheel/models/file_origin.py +283 -0
  277. flywheel/models/file_output.py +1135 -0
  278. flywheel/models/file_parents.py +297 -0
  279. flywheel/models/file_reference.py +221 -0
  280. flywheel/models/file_suggestion.py +241 -0
  281. flywheel/models/file_template_options.py +299 -0
  282. flywheel/models/file_upsert_input.py +612 -0
  283. flywheel/models/file_upsert_origin.py +36 -0
  284. flywheel/models/file_upsert_output.py +1154 -0
  285. flywheel/models/file_version.py +190 -0
  286. flywheel/models/file_version_copy_of.py +273 -0
  287. flywheel/models/file_version_output.py +325 -0
  288. flywheel/models/file_via.py +245 -0
  289. flywheel/models/file_zip_entry.py +25 -0
  290. flywheel/models/file_zip_info.py +25 -0
  291. flywheel/models/filter.py +350 -0
  292. flywheel/models/filter_input.py +218 -0
  293. flywheel/models/filter_values.py +195 -0
  294. flywheel/models/filter_view.py +28 -0
  295. flywheel/models/fixed_file_version_input.py +216 -0
  296. flywheel/models/fixed_input.py +299 -0
  297. flywheel/models/form_definition.py +163 -0
  298. flywheel/models/form_response_base.py +311 -0
  299. flywheel/models/form_response_create.py +193 -0
  300. flywheel/models/gcp_creds.py +397 -0
  301. flywheel/models/gcp_storage.py +298 -0
  302. flywheel/models/gear.py +619 -0
  303. flywheel/models/gear_category.py +32 -0
  304. flywheel/models/gear_config.py +138 -0
  305. flywheel/models/gear_context_input.py +164 -0
  306. flywheel/models/gear_context_lookup.py +25 -0
  307. flywheel/models/gear_context_lookup_item.py +36 -0
  308. flywheel/models/gear_context_value_output.py +272 -0
  309. flywheel/models/gear_context_value_output_unfound.py +164 -0
  310. flywheel/models/gear_custom.py +135 -0
  311. flywheel/models/gear_directive.py +135 -0
  312. flywheel/models/gear_doc.py +25 -0
  313. flywheel/models/gear_document.py +332 -0
  314. flywheel/models/gear_document_input.py +303 -0
  315. flywheel/models/gear_document_legacy_input.py +302 -0
  316. flywheel/models/gear_environment.py +135 -0
  317. flywheel/models/gear_exchange.py +221 -0
  318. flywheel/models/gear_file_input.py +192 -0
  319. flywheel/models/gear_id_output.py +170 -0
  320. flywheel/models/gear_info.py +251 -0
  321. flywheel/models/gear_input_item.py +231 -0
  322. flywheel/models/gear_inputs.py +140 -0
  323. flywheel/models/gear_invocation.py +138 -0
  324. flywheel/models/gear_key_input.py +191 -0
  325. flywheel/models/gear_manifest.py +624 -0
  326. flywheel/models/gear_mixin.py +218 -0
  327. flywheel/models/gear_node.py +355 -0
  328. flywheel/models/gear_output_configuration.py +164 -0
  329. flywheel/models/gear_permissions.py +191 -0
  330. flywheel/models/gear_permissions_input.py +163 -0
  331. flywheel/models/gear_permissions_type.py +29 -0
  332. flywheel/models/gear_return_ticket.py +25 -0
  333. flywheel/models/gear_rule.py +653 -0
  334. flywheel/models/gear_rule_condition.py +219 -0
  335. flywheel/models/gear_rule_condition_type.py +37 -0
  336. flywheel/models/gear_rule_input.py +517 -0
  337. flywheel/models/gear_rule_modify_input.py +492 -0
  338. flywheel/models/gear_rule_output.py +652 -0
  339. flywheel/models/gear_save_submission.py +221 -0
  340. flywheel/models/gear_series.py +298 -0
  341. flywheel/models/gear_series_update.py +163 -0
  342. flywheel/models/gear_suggestion_output.py +301 -0
  343. flywheel/models/gear_ticket.py +245 -0
  344. flywheel/models/gear_ticket_output.py +163 -0
  345. flywheel/models/google_auth_out.py +299 -0
  346. flywheel/models/graph_filter.py +329 -0
  347. flywheel/models/group.py +25 -0
  348. flywheel/models/group_by.py +163 -0
  349. flywheel/models/group_by_column.py +36 -0
  350. flywheel/models/group_container_output.py +33 -0
  351. flywheel/models/group_input.py +248 -0
  352. flywheel/models/group_metadata_input.py +36 -0
  353. flywheel/models/group_node.py +34 -0
  354. flywheel/models/group_output.py +471 -0
  355. flywheel/models/group_report.py +218 -0
  356. flywheel/models/group_role.py +163 -0
  357. flywheel/models/group_settings_output.py +249 -0
  358. flywheel/models/group_update.py +249 -0
  359. flywheel/models/header_feature.py +37 -0
  360. flywheel/models/hierarchy_export_templates.py +272 -0
  361. flywheel/models/http_validation_error.py +167 -0
  362. flywheel/models/info.py +218 -0
  363. flywheel/models/info_add_remove.py +36 -0
  364. flywheel/models/info_container_type.py +35 -0
  365. flywheel/models/info_replace.py +36 -0
  366. flywheel/models/info_update_input.py +36 -0
  367. flywheel/models/ingress_provider.py +299 -0
  368. flywheel/models/ingress_providers.py +272 -0
  369. flywheel/models/ingress_site_settings.py +305 -0
  370. flywheel/models/ingress_update_provider.py +218 -0
  371. flywheel/models/inline_response200.py +163 -0
  372. flywheel/models/inline_response2001.py +171 -0
  373. flywheel/models/inline_response2002.py +163 -0
  374. flywheel/models/inline_response2003.py +36 -0
  375. flywheel/models/inline_response2005.py +25 -0
  376. flywheel/models/input_filter.py +221 -0
  377. flywheel/models/input_job.py +521 -0
  378. flywheel/models/input_job_profile.py +275 -0
  379. flywheel/models/inserted_id.py +163 -0
  380. flywheel/models/job.py +841 -0
  381. flywheel/models/job_analysis_input.py +273 -0
  382. flywheel/models/job_ask.py +301 -0
  383. flywheel/models/job_ask_response.py +195 -0
  384. flywheel/models/job_ask_response_job.py +978 -0
  385. flywheel/models/job_ask_return.py +25 -0
  386. flywheel/models/job_ask_return_criteria.py +245 -0
  387. flywheel/models/job_ask_state.py +25 -0
  388. flywheel/models/job_ask_state_response.py +163 -0
  389. flywheel/models/job_complete.py +220 -0
  390. flywheel/models/job_completion_input.py +25 -0
  391. flywheel/models/job_completion_ticket.py +25 -0
  392. flywheel/models/job_config.py +135 -0
  393. flywheel/models/job_config_input.py +272 -0
  394. flywheel/models/job_config_inputs.py +25 -0
  395. flywheel/models/job_config_output.py +25 -0
  396. flywheel/models/job_container_detail.py +25 -0
  397. flywheel/models/job_destination.py +189 -0
  398. flywheel/models/job_detail.py +925 -0
  399. flywheel/models/job_detail_container.py +190 -0
  400. flywheel/models/job_detail_file_entry.py +194 -0
  401. flywheel/models/job_detail_group.py +190 -0
  402. flywheel/models/job_detail_parent_info.py +303 -0
  403. flywheel/models/job_executor_info.py +369 -0
  404. flywheel/models/job_file_input.py +247 -0
  405. flywheel/models/job_file_input_list_output.py +247 -0
  406. flywheel/models/job_file_object.py +435 -0
  407. flywheel/models/job_file_object_list_output.py +407 -0
  408. flywheel/models/job_gear_match.py +25 -0
  409. flywheel/models/job_inputs_array_item.py +305 -0
  410. flywheel/models/job_inputs_item.py +242 -0
  411. flywheel/models/job_inputs_object.py +138 -0
  412. flywheel/models/job_list_entry.py +25 -0
  413. flywheel/models/job_list_output.py +979 -0
  414. flywheel/models/job_list_output_config.py +220 -0
  415. flywheel/models/job_log.py +189 -0
  416. flywheel/models/job_log_column.py +40 -0
  417. flywheel/models/job_log_record.py +192 -0
  418. flywheel/models/job_modify.py +193 -0
  419. flywheel/models/job_origin.py +190 -0
  420. flywheel/models/job_output.py +1005 -0
  421. flywheel/models/job_output_config.py +247 -0
  422. flywheel/models/job_parents.py +297 -0
  423. flywheel/models/job_priority.py +31 -0
  424. flywheel/models/job_priority_update.py +192 -0
  425. flywheel/models/job_profile.py +427 -0
  426. flywheel/models/job_profile_input.py +25 -0
  427. flywheel/models/job_request.py +221 -0
  428. flywheel/models/job_request_item.py +246 -0
  429. flywheel/models/job_request_item_type.py +31 -0
  430. flywheel/models/job_request_target.py +270 -0
  431. flywheel/models/job_state.py +32 -0
  432. flywheel/models/job_state_counts.py +25 -0
  433. flywheel/models/job_stats_by_state.py +25 -0
  434. flywheel/models/job_ticket_output.py +165 -0
  435. flywheel/models/job_transition_times.py +253 -0
  436. flywheel/models/job_version_info.py +135 -0
  437. flywheel/models/jobs_by_state.py +272 -0
  438. flywheel/models/jobs_list.py +166 -0
  439. flywheel/models/join_origin_device.py +164 -0
  440. flywheel/models/join_origin_job.py +219 -0
  441. flywheel/models/join_origin_user.py +189 -0
  442. flywheel/models/join_origins.py +223 -0
  443. flywheel/models/join_type.py +28 -0
  444. flywheel/models/jupyterhub_workspace.py +163 -0
  445. flywheel/models/jupyterlab_server_modify.py +275 -0
  446. flywheel/models/jupyterlab_server_origin.py +25 -0
  447. flywheel/models/jupyterlab_server_output.py +25 -0
  448. flywheel/models/jupyterlab_server_response.py +415 -0
  449. flywheel/models/jupyterlab_server_update.py +25 -0
  450. flywheel/models/ldap_sync.py +36 -0
  451. flywheel/models/ldap_sync_config.py +163 -0
  452. flywheel/models/ldap_sync_input.py +36 -0
  453. flywheel/models/ldap_sync_status.py +250 -0
  454. flywheel/models/legacy_api_key_output.py +271 -0
  455. flywheel/models/legacy_input.py +244 -0
  456. flywheel/models/legacy_usage_report.py +309 -0
  457. flywheel/models/legacys_usage_project_entry.py +194 -0
  458. flywheel/models/libs_workflows_models_parent_type.py +33 -0
  459. flywheel/models/libs_workflows_models_task_status.py +32 -0
  460. flywheel/models/local_storage.py +217 -0
  461. flywheel/models/location.py +189 -0
  462. flywheel/models/locked.py +219 -0
  463. flywheel/models/master_subject_code_dob_input.py +279 -0
  464. flywheel/models/master_subject_code_input.py +281 -0
  465. flywheel/models/master_subject_code_output.py +166 -0
  466. flywheel/models/matched_acquisition_output.py +518 -0
  467. flywheel/models/mfa_channel.py +30 -0
  468. flywheel/models/mfa_settings.py +167 -0
  469. flywheel/models/mixins.py +794 -0
  470. flywheel/models/ml_set_filter.py +194 -0
  471. flywheel/models/ml_type.py +30 -0
  472. flywheel/models/modality.py +250 -0
  473. flywheel/models/modality_input.py +244 -0
  474. flywheel/models/modality_modify.py +218 -0
  475. flywheel/models/modality_output.py +271 -0
  476. flywheel/models/modified_result.py +190 -0
  477. flywheel/models/modify_user_input.py +466 -0
  478. flywheel/models/move_conflict.py +300 -0
  479. flywheel/models/note.py +391 -0
  480. flywheel/models/note_input.py +165 -0
  481. flywheel/models/optional_input_policy.py +30 -0
  482. flywheel/models/order.py +29 -0
  483. flywheel/models/organ_system.py +64 -0
  484. flywheel/models/origin.py +193 -0
  485. flywheel/models/origin_type.py +35 -0
  486. flywheel/models/orphaned_count.py +163 -0
  487. flywheel/models/output_user_page.py +219 -0
  488. flywheel/models/packfile_cleanup_output.py +166 -0
  489. flywheel/models/packfile_removed_output.py +189 -0
  490. flywheel/models/page.py +216 -0
  491. flywheel/models/page_generic_file_output.py +219 -0
  492. flywheel/models/page_generic_filter.py +219 -0
  493. flywheel/models/page_generic_form_response_output.py +219 -0
  494. flywheel/models/page_generic_protocol.py +244 -0
  495. flywheel/models/page_generic_reader_task_output.py +244 -0
  496. flywheel/models/page_generic_staffing_pool.py +244 -0
  497. flywheel/models/parsed_query_response.py +194 -0
  498. flywheel/models/permission_access_permission.py +25 -0
  499. flywheel/models/premade_jobs_batch_job_output.py +298 -0
  500. flywheel/models/premade_jobs_batch_job_output_inflated_jobs.py +299 -0
  501. flywheel/models/premade_jobs_batch_proposal.py +334 -0
  502. flywheel/models/premade_jobs_batch_proposal_detail.py +166 -0
  503. flywheel/models/premade_jobs_batch_proposal_input.py +166 -0
  504. flywheel/models/project.py +25 -0
  505. flywheel/models/project_acquisition_upsert_input.py +25 -0
  506. flywheel/models/project_acquisition_upsert_output.py +25 -0
  507. flywheel/models/project_aet.py +331 -0
  508. flywheel/models/project_aet_input.py +248 -0
  509. flywheel/models/project_catalog_list_output.py +25 -0
  510. flywheel/models/project_contact.py +194 -0
  511. flywheel/models/project_container_output.py +41 -0
  512. flywheel/models/project_copy_input.py +245 -0
  513. flywheel/models/project_copy_output.py +215 -0
  514. flywheel/models/project_counters.py +346 -0
  515. flywheel/models/project_hierarchy_input.py +278 -0
  516. flywheel/models/project_hierarchy_output.py +222 -0
  517. flywheel/models/project_hierarchy_upsert_input.py +25 -0
  518. flywheel/models/project_hierarchy_upsert_output.py +25 -0
  519. flywheel/models/project_input.py +384 -0
  520. flywheel/models/project_institution.py +194 -0
  521. flywheel/models/project_list_output.py +897 -0
  522. flywheel/models/project_locking_reason.py +32 -0
  523. flywheel/models/project_modify.py +413 -0
  524. flywheel/models/project_node.py +42 -0
  525. flywheel/models/project_output.py +899 -0
  526. flywheel/models/project_parents.py +168 -0
  527. flywheel/models/project_report.py +463 -0
  528. flywheel/models/project_report_list.py +167 -0
  529. flywheel/models/project_session_upsert_input.py +25 -0
  530. flywheel/models/project_session_upsert_output.py +25 -0
  531. flywheel/models/project_settings_input.py +333 -0
  532. flywheel/models/project_settings_output.py +333 -0
  533. flywheel/models/project_settings_sharing.py +327 -0
  534. flywheel/models/project_settings_sharing_input.py +334 -0
  535. flywheel/models/project_settings_workspaces.py +167 -0
  536. flywheel/models/project_settings_workspaces_input.py +167 -0
  537. flywheel/models/project_share_level.py +29 -0
  538. flywheel/models/project_sharing_settings_project_contact.py +25 -0
  539. flywheel/models/project_sharing_settings_project_counters.py +36 -0
  540. flywheel/models/project_sharing_settings_project_institution.py +25 -0
  541. flywheel/models/project_sharing_settings_project_settings_input.py +25 -0
  542. flywheel/models/project_sharing_settings_project_settings_output.py +25 -0
  543. flywheel/models/project_sharing_settings_project_settings_sharing.py +25 -0
  544. flywheel/models/project_sharing_settings_project_settings_sharing_input.py +25 -0
  545. flywheel/models/project_sharing_settings_project_stats.py +36 -0
  546. flywheel/models/project_stats.py +270 -0
  547. flywheel/models/project_subject_upsert_input.py +25 -0
  548. flywheel/models/project_subject_upsert_output.py +25 -0
  549. flywheel/models/project_template.py +195 -0
  550. flywheel/models/project_template_input.py +195 -0
  551. flywheel/models/project_template_list_input.py +166 -0
  552. flywheel/models/project_template_requirement.py +36 -0
  553. flywheel/models/project_template_session_template.py +36 -0
  554. flywheel/models/project_upsert_origin.py +36 -0
  555. flywheel/models/protocol.py +515 -0
  556. flywheel/models/protocol_e_signature_config.py +191 -0
  557. flywheel/models/protocol_input.py +354 -0
  558. flywheel/models/protocol_modify.py +277 -0
  559. flywheel/models/protocol_status.py +30 -0
  560. flywheel/models/provider.py +461 -0
  561. flywheel/models/provider_access_type.py +29 -0
  562. flywheel/models/provider_class.py +29 -0
  563. flywheel/models/provider_deletion_status.py +189 -0
  564. flywheel/models/provider_input.py +25 -0
  565. flywheel/models/provider_links.py +282 -0
  566. flywheel/models/provider_type.py +34 -0
  567. flywheel/models/providers.py +277 -0
  568. flywheel/models/reader_batch_create.py +463 -0
  569. flywheel/models/reader_task.py +725 -0
  570. flywheel/models/reader_task_config.py +189 -0
  571. flywheel/models/reader_task_create.py +543 -0
  572. flywheel/models/reader_task_modify.py +303 -0
  573. flywheel/models/reader_task_output.py +752 -0
  574. flywheel/models/reader_task_parent_details.py +322 -0
  575. flywheel/models/report_access_log_context.py +301 -0
  576. flywheel/models/report_access_log_context_entry.py +194 -0
  577. flywheel/models/report_access_log_context_file_entry.py +165 -0
  578. flywheel/models/report_access_log_entry.py +624 -0
  579. flywheel/models/report_access_log_origin.py +194 -0
  580. flywheel/models/report_availability_list.py +167 -0
  581. flywheel/models/report_daily_usage_entry.py +501 -0
  582. flywheel/models/report_demographics_grid.py +36 -0
  583. flywheel/models/report_ethnicity_grid.py +252 -0
  584. flywheel/models/report_gender_count.py +222 -0
  585. flywheel/models/report_group_report.py +217 -0
  586. flywheel/models/report_legacy_usage_entry.py +36 -0
  587. flywheel/models/report_legacy_usage_project_entry.py +36 -0
  588. flywheel/models/report_project.py +25 -0
  589. flywheel/models/report_site.py +192 -0
  590. flywheel/models/report_time_period.py +193 -0
  591. flywheel/models/report_usage.py +630 -0
  592. flywheel/models/report_usage_entry.py +25 -0
  593. flywheel/models/resolve_input.py +163 -0
  594. flywheel/models/resolve_output.py +194 -0
  595. flywheel/models/resolver_acquisition_node.py +36 -0
  596. flywheel/models/resolver_analysis_node.py +36 -0
  597. flywheel/models/resolver_file_node.py +36 -0
  598. flywheel/models/resolver_gear_node.py +36 -0
  599. flywheel/models/resolver_group_node.py +36 -0
  600. flywheel/models/resolver_input.py +25 -0
  601. flywheel/models/resolver_node.py +182 -0
  602. flywheel/models/resolver_output.py +25 -0
  603. flywheel/models/resolver_project_node.py +36 -0
  604. flywheel/models/resolver_session_node.py +36 -0
  605. flywheel/models/resolver_subject_node.py +36 -0
  606. flywheel/models/role_input.py +192 -0
  607. flywheel/models/role_output.py +273 -0
  608. flywheel/models/role_permission.py +194 -0
  609. flywheel/models/role_permission_output.py +189 -0
  610. flywheel/models/role_permission_update.py +163 -0
  611. flywheel/models/role_type.py +32 -0
  612. flywheel/models/role_update.py +194 -0
  613. flywheel/models/roles_backwards_compatible_role_assignment.py +36 -0
  614. flywheel/models/roles_group_role_pool_input.py +36 -0
  615. flywheel/models/roles_role.py +36 -0
  616. flywheel/models/roles_role_assignment.py +195 -0
  617. flywheel/models/roles_role_input.py +36 -0
  618. flywheel/models/rule.py +467 -0
  619. flywheel/models/rule_any.py +216 -0
  620. flywheel/models/s3_addressing_style.py +29 -0
  621. flywheel/models/s3_compat_storage.py +381 -0
  622. flywheel/models/save_search.py +298 -0
  623. flywheel/models/save_search_input.py +219 -0
  624. flywheel/models/save_search_output.py +301 -0
  625. flywheel/models/save_search_page.py +219 -0
  626. flywheel/models/save_search_parent.py +192 -0
  627. flywheel/models/save_search_update.py +194 -0
  628. flywheel/models/search_acquisition_response.py +252 -0
  629. flywheel/models/search_analysis_response.py +254 -0
  630. flywheel/models/search_collection_response.py +254 -0
  631. flywheel/models/search_file_response.py +312 -0
  632. flywheel/models/search_group_response.py +196 -0
  633. flywheel/models/search_parent_acquisition.py +47 -0
  634. flywheel/models/search_parent_analysis.py +47 -0
  635. flywheel/models/search_parent_collection.py +46 -0
  636. flywheel/models/search_parent_project.py +54 -0
  637. flywheel/models/search_parent_response.py +213 -0
  638. flywheel/models/search_parent_session.py +48 -0
  639. flywheel/models/search_parent_subject.py +48 -0
  640. flywheel/models/search_parse_error.py +252 -0
  641. flywheel/models/search_parse_search_query_result.py +36 -0
  642. flywheel/models/search_project_response.py +196 -0
  643. flywheel/models/search_query.py +337 -0
  644. flywheel/models/search_query_suggestions.py +36 -0
  645. flywheel/models/search_response.py +448 -0
  646. flywheel/models/search_return_type.py +33 -0
  647. flywheel/models/search_save_search.py +36 -0
  648. flywheel/models/search_save_search_input.py +36 -0
  649. flywheel/models/search_save_search_parent.py +36 -0
  650. flywheel/models/search_save_search_update.py +36 -0
  651. flywheel/models/search_session_response.py +252 -0
  652. flywheel/models/search_status.py +166 -0
  653. flywheel/models/search_structured_search_query.py +25 -0
  654. flywheel/models/search_subject_response.py +225 -0
  655. flywheel/models/search_suggestion.py +36 -0
  656. flywheel/models/select_item.py +190 -0
  657. flywheel/models/server_state.py +303 -0
  658. flywheel/models/service_aet.py +301 -0
  659. flywheel/models/service_aet_input.py +276 -0
  660. flywheel/models/session.py +25 -0
  661. flywheel/models/session_container_output.py +35 -0
  662. flywheel/models/session_copy_input.py +253 -0
  663. flywheel/models/session_embedded_subject.py +299 -0
  664. flywheel/models/session_input.py +431 -0
  665. flywheel/models/session_list_output.py +897 -0
  666. flywheel/models/session_metadata_input.py +36 -0
  667. flywheel/models/session_modify.py +464 -0
  668. flywheel/models/session_node.py +36 -0
  669. flywheel/models/session_output.py +897 -0
  670. flywheel/models/session_parents.py +220 -0
  671. flywheel/models/session_template_options.py +221 -0
  672. flywheel/models/session_template_recalc_output.py +165 -0
  673. flywheel/models/session_upsert_input.py +464 -0
  674. flywheel/models/session_upsert_output.py +243 -0
  675. flywheel/models/sharing_filter_options.py +345 -0
  676. flywheel/models/signed_fs_upload_output.py +189 -0
  677. flywheel/models/signed_url_cleanup_input.py +189 -0
  678. flywheel/models/signed_url_upload_input.py +190 -0
  679. flywheel/models/signed_url_upload_output.py +349 -0
  680. flywheel/models/site.py +623 -0
  681. flywheel/models/site_report.py +194 -0
  682. flywheel/models/site_settings.py +385 -0
  683. flywheel/models/sort.py +192 -0
  684. flywheel/models/stable_api_key_input.py +25 -0
  685. flywheel/models/staffing_pool.py +324 -0
  686. flywheel/models/staffing_pool_create.py +216 -0
  687. flywheel/models/staffing_pool_list.py +164 -0
  688. flywheel/models/staffing_pool_modify.py +218 -0
  689. flywheel/models/state.py +32 -0
  690. flywheel/models/static_compute.py +218 -0
  691. flywheel/models/status_transitions.py +245 -0
  692. flywheel/models/status_type.py +31 -0
  693. flywheel/models/status_value.py +31 -0
  694. flywheel/models/storage_strategy.py +30 -0
  695. flywheel/models/storage_strategy_config.py +194 -0
  696. flywheel/models/structured_query.py +165 -0
  697. flywheel/models/structured_query_suggestions.py +196 -0
  698. flywheel/models/structured_query_value_suggestion.py +247 -0
  699. flywheel/models/subject.py +34 -0
  700. flywheel/models/subject_container_output.py +36 -0
  701. flywheel/models/subject_copy_input.py +223 -0
  702. flywheel/models/subject_input.py +627 -0
  703. flywheel/models/subject_modify.py +684 -0
  704. flywheel/models/subject_node.py +37 -0
  705. flywheel/models/subject_output.py +1008 -0
  706. flywheel/models/subject_output_for_list.py +1005 -0
  707. flywheel/models/subject_parents.py +194 -0
  708. flywheel/models/subject_role_permission.py +194 -0
  709. flywheel/models/subject_state.py +30 -0
  710. flywheel/models/subject_template_options.py +191 -0
  711. flywheel/models/subject_upsert_input.py +573 -0
  712. flywheel/models/subject_upsert_output.py +216 -0
  713. flywheel/models/sync_user_input.py +322 -0
  714. flywheel/models/tag.py +165 -0
  715. flywheel/models/task_assign.py +194 -0
  716. flywheel/models/task_facet.py +29 -0
  717. flywheel/models/task_parent_ref.py +245 -0
  718. flywheel/models/task_parent_ref_input.py +219 -0
  719. flywheel/models/task_priority.py +31 -0
  720. flywheel/models/task_submission.py +189 -0
  721. flywheel/models/therapeutic_area.py +60 -0
  722. flywheel/models/transitions.py +272 -0
  723. flywheel/models/tree_container_request_spec.py +281 -0
  724. flywheel/models/tree_graph.py +142 -0
  725. flywheel/models/tree_graph_connection.py +244 -0
  726. flywheel/models/tree_graph_connections.py +142 -0
  727. flywheel/models/tree_graph_node.py +166 -0
  728. flywheel/models/tree_request.py +25 -0
  729. flywheel/models/tree_response_item.py +142 -0
  730. flywheel/models/type_str.py +31 -0
  731. flywheel/models/uid_check_input_acquisitions.py +244 -0
  732. flywheel/models/uid_check_input_sessions.py +244 -0
  733. flywheel/models/uid_check_output.py +191 -0
  734. flywheel/models/upload_complete_s3_multipart_input.py +25 -0
  735. flywheel/models/upload_complete_s3_multipart_output.py +25 -0
  736. flywheel/models/upload_signed_fs_file_upload_output.py +36 -0
  737. flywheel/models/upload_signed_upload_url_input.py +36 -0
  738. flywheel/models/upload_signed_upload_url_output.py +36 -0
  739. flywheel/models/upload_ticket_output.py +215 -0
  740. flywheel/models/upload_token_output.py +163 -0
  741. flywheel/models/upsert_result.py +31 -0
  742. flywheel/models/user.py +760 -0
  743. flywheel/models/user_api_key.py +220 -0
  744. flywheel/models/user_input.py +461 -0
  745. flywheel/models/user_jobs.py +219 -0
  746. flywheel/models/user_jobs_output.py +25 -0
  747. flywheel/models/user_output.py +36 -0
  748. flywheel/models/user_output_id.py +163 -0
  749. flywheel/models/user_preferences.py +135 -0
  750. flywheel/models/user_wechat.py +135 -0
  751. flywheel/models/validation_error.py +215 -0
  752. flywheel/models/validation_rule.py +190 -0
  753. flywheel/models/version.py +363 -0
  754. flywheel/models/version_output.py +25 -0
  755. flywheel/models/view_id_output.py +164 -0
  756. flywheel/models/view_output.py +440 -0
  757. flywheel/models/viewer_app.py +381 -0
  758. flywheel/models/viewer_app_input.py +382 -0
  759. flywheel/models/viewer_app_type.py +29 -0
  760. flywheel/models/virus_scan.py +166 -0
  761. flywheel/models/virus_scan_state.py +30 -0
  762. flywheel/models/work_in_progress_features.py +135 -0
  763. flywheel/models/zipfile_info.py +192 -0
  764. flywheel/models/zipfile_member_info.py +241 -0
  765. flywheel/partial_reader.py +50 -0
  766. flywheel/rest.py +352 -0
  767. flywheel/util.py +95 -0
  768. flywheel/view_builder.py +449 -0
  769. flywheel_sdk-21.2.0rc0.dist-info/METADATA +41 -0
  770. flywheel_sdk-21.2.0rc0.dist-info/RECORD +772 -0
  771. flywheel_sdk-21.2.0rc0.dist-info/WHEEL +4 -0
  772. flywheel_sdk-21.2.0rc0.dist-info/licenses/LICENSE.txt +18 -0
@@ -0,0 +1,842 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Flywheel
5
+
6
+ No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
7
+
8
+ OpenAPI spec version: 0.0.1
9
+
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+ """
12
+
13
+
14
+ from __future__ import absolute_import
15
+
16
+ import re # noqa: F401
17
+
18
+ # python 2 and python 3 compatibility library
19
+ import six
20
+
21
+ from flywheel.api_client import ApiClient
22
+ import flywheel.models
23
+ from flywheel.util import check_filename_params
24
+
25
+ # NOTE: This file is auto generated by the swagger code generator program.
26
+ # Do not edit the class manually.
27
+
28
+ class UploadApi(object):
29
+ def __init__(self, api_client=None):
30
+ if api_client is None:
31
+ api_client = ApiClient()
32
+ self.api_client = api_client
33
+
34
+ def cleanup_signed_upload_url(self, body, **kwargs): # noqa: E501
35
+ """Cleanup unused file blob previously uploaded using signed URL
36
+
37
+ This method makes a synchronous HTTP request by default.
38
+
39
+ :param SignedUrlCleanupInput body: (required)
40
+ :param bool async_: Perform the request asynchronously
41
+ :return: None
42
+ """
43
+ ignore_simplified_return_value = kwargs.pop('_ignore_simplified_return_value', False)
44
+ kwargs['_return_http_data_only'] = True
45
+
46
+ if kwargs.get('async_'):
47
+ return self.cleanup_signed_upload_url_with_http_info(body, **kwargs) # noqa: E501
48
+ else:
49
+ (data) = self.cleanup_signed_upload_url_with_http_info(body, **kwargs) # noqa: E501
50
+ if (
51
+ data
52
+ and hasattr(data, 'return_value')
53
+ and not ignore_simplified_return_value
54
+ ):
55
+ return data.return_value()
56
+ return data
57
+
58
+
59
+ def cleanup_signed_upload_url_with_http_info(self, body, **kwargs): # noqa: E501
60
+ """Cleanup unused file blob previously uploaded using signed URL
61
+
62
+ This method makes a synchronous HTTP request by default.
63
+
64
+ :param SignedUrlCleanupInput body: (required)
65
+ :param bool async_: Perform the request asynchronously
66
+ :return: None
67
+ """
68
+
69
+ all_params = ['body',] # noqa: E501
70
+ all_params.append('async_')
71
+ all_params.append('_return_http_data_only')
72
+ all_params.append('_preload_content')
73
+ all_params.append('_request_timeout')
74
+ all_params.append('_request_out')
75
+
76
+ params = locals()
77
+ for key, val in six.iteritems(params['kwargs']):
78
+ if key not in all_params:
79
+ raise TypeError(
80
+ "Got an unexpected keyword argument '%s'"
81
+ " to method cleanup_signed_upload_url" % key
82
+ )
83
+ params[key] = val
84
+ del params['kwargs']
85
+ # verify the required parameter 'body' is set
86
+ if ('body' not in params or
87
+ params['body'] is None):
88
+ raise ValueError("Missing the required parameter `body` when calling `cleanup_signed_upload_url`") # noqa: E501
89
+ check_filename_params(params)
90
+
91
+ collection_formats = {}
92
+
93
+ path_params = {}
94
+
95
+ query_params = []
96
+
97
+ header_params = {}
98
+
99
+ form_params = []
100
+ local_var_files = {}
101
+
102
+ body_params = None
103
+ if 'body' in params:
104
+ if 'SignedUrlCleanupInput'.startswith('union'):
105
+ body_type = type(params['body'])
106
+ if getattr(body_type, 'positional_to_model', None):
107
+ body_params = body_type.positional_to_model(params['body'])
108
+ else:
109
+ body_params = params['body']
110
+ else:
111
+ body_params = flywheel.models.SignedUrlCleanupInput.positional_to_model(params['body'])
112
+ # HTTP header `Accept`
113
+ header_params['Accept'] = self.api_client.select_header_accept(
114
+ ['application/json']) # noqa: E501
115
+
116
+ # HTTP header `Content-Type`
117
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
118
+ ['application/json']) # noqa: E501
119
+
120
+ # Authentication setting
121
+ auth_settings = ['ApiKey'] # noqa: E501
122
+
123
+ return self.api_client.call_api(
124
+ '/upload/signed-url/cleanup', 'POST',
125
+ path_params,
126
+ query_params,
127
+ header_params,
128
+ body=body_params,
129
+ post_params=form_params,
130
+ files=local_var_files,
131
+ response_type=None, # noqa: E501
132
+ auth_settings=auth_settings,
133
+ async_=params.get('async_'),
134
+ _return_http_data_only=params.get('_return_http_data_only'),
135
+ _preload_content=params.get('_preload_content', True),
136
+ _request_timeout=params.get('_request_timeout'),
137
+ _request_out=params.get('_request_out'),
138
+ collection_formats=collection_formats)
139
+
140
+ def complete_s3_multipart_upload(self, body, **kwargs): # noqa: E501
141
+ """Complete S3 multipart signed url upload
142
+
143
+ Complete S3 uploads exceeding 5GB and create the final object in the bucket. Expected an upload id returned previously by the `POST /upload/signed-url` endpoint and the e-tags returned by S3 after uploaded each file part.
144
+ This method makes a synchronous HTTP request by default.
145
+
146
+ :param CompleteS3MultipartUploadInput body: (required)
147
+ :param bool async_: Perform the request asynchronously
148
+ :return: CompleteMultipartUploadOutput
149
+ """
150
+ ignore_simplified_return_value = kwargs.pop('_ignore_simplified_return_value', False)
151
+ kwargs['_return_http_data_only'] = True
152
+
153
+ if kwargs.get('async_'):
154
+ return self.complete_s3_multipart_upload_with_http_info(body, **kwargs) # noqa: E501
155
+ else:
156
+ (data) = self.complete_s3_multipart_upload_with_http_info(body, **kwargs) # noqa: E501
157
+ if (
158
+ data
159
+ and hasattr(data, 'return_value')
160
+ and not ignore_simplified_return_value
161
+ ):
162
+ return data.return_value()
163
+ return data
164
+
165
+
166
+ def complete_s3_multipart_upload_with_http_info(self, body, **kwargs): # noqa: E501
167
+ """Complete S3 multipart signed url upload
168
+
169
+ Complete S3 uploads exceeding 5GB and create the final object in the bucket. Expected an upload id returned previously by the `POST /upload/signed-url` endpoint and the e-tags returned by S3 after uploaded each file part.
170
+ This method makes a synchronous HTTP request by default.
171
+
172
+ :param CompleteS3MultipartUploadInput body: (required)
173
+ :param bool async_: Perform the request asynchronously
174
+ :return: CompleteMultipartUploadOutput
175
+ """
176
+
177
+ all_params = ['body',] # noqa: E501
178
+ all_params.append('async_')
179
+ all_params.append('_return_http_data_only')
180
+ all_params.append('_preload_content')
181
+ all_params.append('_request_timeout')
182
+ all_params.append('_request_out')
183
+
184
+ params = locals()
185
+ for key, val in six.iteritems(params['kwargs']):
186
+ if key not in all_params:
187
+ raise TypeError(
188
+ "Got an unexpected keyword argument '%s'"
189
+ " to method complete_s3_multipart_upload" % key
190
+ )
191
+ params[key] = val
192
+ del params['kwargs']
193
+ # verify the required parameter 'body' is set
194
+ if ('body' not in params or
195
+ params['body'] is None):
196
+ raise ValueError("Missing the required parameter `body` when calling `complete_s3_multipart_upload`") # noqa: E501
197
+ check_filename_params(params)
198
+
199
+ collection_formats = {}
200
+
201
+ path_params = {}
202
+
203
+ query_params = []
204
+
205
+ header_params = {}
206
+
207
+ form_params = []
208
+ local_var_files = {}
209
+
210
+ body_params = None
211
+ if 'body' in params:
212
+ if 'CompleteS3MultipartUploadInput'.startswith('union'):
213
+ body_type = type(params['body'])
214
+ if getattr(body_type, 'positional_to_model', None):
215
+ body_params = body_type.positional_to_model(params['body'])
216
+ else:
217
+ body_params = params['body']
218
+ else:
219
+ body_params = flywheel.models.CompleteS3MultipartUploadInput.positional_to_model(params['body'])
220
+ # HTTP header `Accept`
221
+ header_params['Accept'] = self.api_client.select_header_accept(
222
+ ['application/json']) # noqa: E501
223
+
224
+ # HTTP header `Content-Type`
225
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
226
+ ['application/json']) # noqa: E501
227
+
228
+ # Authentication setting
229
+ auth_settings = ['ApiKey'] # noqa: E501
230
+
231
+ return self.api_client.call_api(
232
+ '/upload/complete-s3-multipart', 'POST',
233
+ path_params,
234
+ query_params,
235
+ header_params,
236
+ body=body_params,
237
+ post_params=form_params,
238
+ files=local_var_files,
239
+ response_type='CompleteMultipartUploadOutput', # noqa: E501
240
+ auth_settings=auth_settings,
241
+ async_=params.get('async_'),
242
+ _return_http_data_only=params.get('_return_http_data_only'),
243
+ _preload_content=params.get('_preload_content', True),
244
+ _request_timeout=params.get('_request_timeout'),
245
+ _request_out=params.get('_request_out'),
246
+ collection_formats=collection_formats)
247
+
248
+ def create_signed_upload_url(self, body, **kwargs): # noqa: E501
249
+ """Create new signed upload URL
250
+
251
+ Return a signed upload URL for the requested storage provider_id. Multiple URLs are returned for S3 uploads exceeding 5GB.
252
+ This method makes a synchronous HTTP request by default.
253
+
254
+ :param SignedUrlUploadInput body: (required)
255
+ :param bool async_: Perform the request asynchronously
256
+ :return: SignedUrlUploadOutput
257
+ """
258
+ ignore_simplified_return_value = kwargs.pop('_ignore_simplified_return_value', False)
259
+ kwargs['_return_http_data_only'] = True
260
+
261
+ if kwargs.get('async_'):
262
+ return self.create_signed_upload_url_with_http_info(body, **kwargs) # noqa: E501
263
+ else:
264
+ (data) = self.create_signed_upload_url_with_http_info(body, **kwargs) # noqa: E501
265
+ if (
266
+ data
267
+ and hasattr(data, 'return_value')
268
+ and not ignore_simplified_return_value
269
+ ):
270
+ return data.return_value()
271
+ return data
272
+
273
+
274
+ def create_signed_upload_url_with_http_info(self, body, **kwargs): # noqa: E501
275
+ """Create new signed upload URL
276
+
277
+ Return a signed upload URL for the requested storage provider_id. Multiple URLs are returned for S3 uploads exceeding 5GB.
278
+ This method makes a synchronous HTTP request by default.
279
+
280
+ :param SignedUrlUploadInput body: (required)
281
+ :param bool async_: Perform the request asynchronously
282
+ :return: SignedUrlUploadOutput
283
+ """
284
+
285
+ all_params = ['body',] # noqa: E501
286
+ all_params.append('async_')
287
+ all_params.append('_return_http_data_only')
288
+ all_params.append('_preload_content')
289
+ all_params.append('_request_timeout')
290
+ all_params.append('_request_out')
291
+
292
+ params = locals()
293
+ for key, val in six.iteritems(params['kwargs']):
294
+ if key not in all_params:
295
+ raise TypeError(
296
+ "Got an unexpected keyword argument '%s'"
297
+ " to method create_signed_upload_url" % key
298
+ )
299
+ params[key] = val
300
+ del params['kwargs']
301
+ # verify the required parameter 'body' is set
302
+ if ('body' not in params or
303
+ params['body'] is None):
304
+ raise ValueError("Missing the required parameter `body` when calling `create_signed_upload_url`") # noqa: E501
305
+ check_filename_params(params)
306
+
307
+ collection_formats = {}
308
+
309
+ path_params = {}
310
+
311
+ query_params = []
312
+
313
+ header_params = {}
314
+
315
+ form_params = []
316
+ local_var_files = {}
317
+
318
+ body_params = None
319
+ if 'body' in params:
320
+ if 'SignedUrlUploadInput'.startswith('union'):
321
+ body_type = type(params['body'])
322
+ if getattr(body_type, 'positional_to_model', None):
323
+ body_params = body_type.positional_to_model(params['body'])
324
+ else:
325
+ body_params = params['body']
326
+ else:
327
+ body_params = flywheel.models.SignedUrlUploadInput.positional_to_model(params['body'])
328
+ # HTTP header `Accept`
329
+ header_params['Accept'] = self.api_client.select_header_accept(
330
+ ['application/json']) # noqa: E501
331
+
332
+ # HTTP header `Content-Type`
333
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
334
+ ['application/json']) # noqa: E501
335
+
336
+ # Authentication setting
337
+ auth_settings = ['ApiKey'] # noqa: E501
338
+
339
+ return self.api_client.call_api(
340
+ '/upload/signed-url', 'POST',
341
+ path_params,
342
+ query_params,
343
+ header_params,
344
+ body=body_params,
345
+ post_params=form_params,
346
+ files=local_var_files,
347
+ response_type='SignedUrlUploadOutput', # noqa: E501
348
+ auth_settings=auth_settings,
349
+ async_=params.get('async_'),
350
+ _return_http_data_only=params.get('_return_http_data_only'),
351
+ _preload_content=params.get('_preload_content', True),
352
+ _request_timeout=params.get('_request_timeout'),
353
+ _request_out=params.get('_request_out'),
354
+ collection_formats=collection_formats)
355
+
356
+ def upload_by_label(self, **kwargs): # noqa: E501
357
+ """Multipart form upload with N file fields, each with their desired filename.
358
+
359
+ ### Default behavior: > For technical reasons, no form field names can be repeated. Instead, use (file1, file2) and so forth. > A non-file form field called \"metadata\" is also required, which must be a string containing JSON. > See ``api/schemas/input/labelupload.json`` for the format of this metadata. ### Signed URL upload with ``ticket`` > Upload a single file directly to the storage backend. The workflow is the following: - Send a request with an empty ``?ticket=`` query parameter to get an upload ticket and URL - Upload the file using a PUT request to the upload URL - Once done, send a POST request to this endpoint with the upload ticket to finalize the upload. The file will be placed into the DB via this POST request.
360
+ This method makes a synchronous HTTP request by default.
361
+
362
+ :param bool preserve_metadata:
363
+ :param str ticket: Use empty value to get a ticket, and provide the ticket id to finalize the upload
364
+ :param str id:
365
+ :param ContainerType level:
366
+ :param str job:
367
+ :param str files:
368
+ :param object metadata: Metadata object
369
+ :param str content_type:
370
+ :param bool async_: Perform the request asynchronously
371
+ :return: union[list[File],UploadTicketOutput]
372
+ """
373
+ ignore_simplified_return_value = kwargs.pop('_ignore_simplified_return_value', False)
374
+ kwargs['_return_http_data_only'] = True
375
+
376
+ if kwargs.get('async_'):
377
+ return self.upload_by_label_with_http_info(**kwargs) # noqa: E501
378
+ else:
379
+ (data) = self.upload_by_label_with_http_info(**kwargs) # noqa: E501
380
+ if (
381
+ data
382
+ and hasattr(data, 'return_value')
383
+ and not ignore_simplified_return_value
384
+ ):
385
+ return data.return_value()
386
+ return data
387
+
388
+
389
+ def upload_by_label_with_http_info(self, **kwargs): # noqa: E501
390
+ """Multipart form upload with N file fields, each with their desired filename.
391
+
392
+ ### Default behavior: > For technical reasons, no form field names can be repeated. Instead, use (file1, file2) and so forth. > A non-file form field called \"metadata\" is also required, which must be a string containing JSON. > See ``api/schemas/input/labelupload.json`` for the format of this metadata. ### Signed URL upload with ``ticket`` > Upload a single file directly to the storage backend. The workflow is the following: - Send a request with an empty ``?ticket=`` query parameter to get an upload ticket and URL - Upload the file using a PUT request to the upload URL - Once done, send a POST request to this endpoint with the upload ticket to finalize the upload. The file will be placed into the DB via this POST request.
393
+ This method makes a synchronous HTTP request by default.
394
+
395
+ :param bool preserve_metadata:
396
+ :param str ticket: Use empty value to get a ticket, and provide the ticket id to finalize the upload
397
+ :param str id:
398
+ :param ContainerType level:
399
+ :param str job:
400
+ :param str files:
401
+ :param object metadata: Metadata object
402
+ :param str content_type:
403
+ :param bool async_: Perform the request asynchronously
404
+ :return: union[list[File],UploadTicketOutput]
405
+ """
406
+
407
+ all_params = ['preserve_metadata','ticket','id','level','job','files','metadata','content_type',] # noqa: E501
408
+ all_params.append('async_')
409
+ all_params.append('_return_http_data_only')
410
+ all_params.append('_preload_content')
411
+ all_params.append('_request_timeout')
412
+ all_params.append('_request_out')
413
+
414
+ params = locals()
415
+ for key, val in six.iteritems(params['kwargs']):
416
+ if key not in all_params:
417
+ raise TypeError(
418
+ "Got an unexpected keyword argument '%s'"
419
+ " to method upload_by_label" % key
420
+ )
421
+ params[key] = val
422
+ del params['kwargs']
423
+ check_filename_params(params)
424
+
425
+ collection_formats = {}
426
+
427
+ path_params = {}
428
+
429
+ query_params = []
430
+ if 'preserve_metadata' in params:
431
+ query_params.append(('preserve_metadata', params['preserve_metadata'])) # noqa: E501
432
+ if 'ticket' in params:
433
+ query_params.append(('ticket', params['ticket'])) # noqa: E501
434
+ if 'id' in params:
435
+ query_params.append(('id', params['id'])) # noqa: E501
436
+ if 'level' in params:
437
+ query_params.append(('level', params['level'])) # noqa: E501
438
+ if 'job' in params:
439
+ query_params.append(('job', params['job'])) # noqa: E501
440
+
441
+ header_params = {}
442
+ if 'content_type' in params:
443
+ header_params['content-type'] = params['content_type'] # noqa: E501
444
+
445
+ form_params = []
446
+ local_var_files = {}
447
+ if 'files' in params:
448
+ local_var_files['files'] = params['files'] # noqa: E501
449
+ if 'metadata' in params:
450
+ form_params.append(('metadata', params['metadata'])) # noqa: E501
451
+
452
+ body_params = None
453
+ # HTTP header `Accept`
454
+ header_params['Accept'] = self.api_client.select_header_accept(
455
+ ['application/json']) # noqa: E501
456
+
457
+ # HTTP header `Content-Type`
458
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
459
+ ['multipart/form-data']) # noqa: E501
460
+
461
+ # Authentication setting
462
+ auth_settings = ['ApiKey'] # noqa: E501
463
+
464
+ return self.api_client.call_api(
465
+ '/upload/label', 'POST',
466
+ path_params,
467
+ query_params,
468
+ header_params,
469
+ body=body_params,
470
+ post_params=form_params,
471
+ files=local_var_files,
472
+ response_type='union[list[File],UploadTicketOutput]', # noqa: E501
473
+ auth_settings=auth_settings,
474
+ async_=params.get('async_'),
475
+ _return_http_data_only=params.get('_return_http_data_only'),
476
+ _preload_content=params.get('_preload_content', True),
477
+ _request_timeout=params.get('_request_timeout'),
478
+ _request_out=params.get('_request_out'),
479
+ collection_formats=collection_formats)
480
+
481
+ def upload_by_reaper(self, **kwargs): # noqa: E501
482
+ """Bottom-up UID matching of Multipart form upload with N file fields, each with their desired filename.
483
+
484
+ ### Default behavior: > Upload data, allowing users to move sessions during scans without causing new data to be created in referenced project/group. ### Evaluation Order: * If a matching acquisition UID is found anywhere on the system, the related files will be placed under that acquisition. * **OR** If a matching session UID is found, a new acquistion is created with the specified UID under that Session UID. * **OR** If a matching group ID and project label are found, a new session and acquisition will be created within that project * **OR** If a matching group ID is found, a new project and session and acquisition will be created within that group. * **OR** A new session and acquisition will be created within a special \"Unknown\" group and project, which is only visible to system administrators. ### Signed URL upload with ``ticket`` > Upload a single file directly to the storage backend. The workflow is the following: - Send a request with an empty ``?ticket=`` query parameter to get an upload ticket and URL - Upload the file using a PUT request to the upload URL - Once done, send a POST request to this endpoint with the upload ticket to finalize the upload. The file will be placed into the DB via this POST request.
485
+ This method makes a synchronous HTTP request by default.
486
+
487
+ :param bool preserve_metadata:
488
+ :param str ticket: Use empty value to get a ticket, and provide the ticket id to finalize the upload
489
+ :param bool uid_placement:
490
+ :param str id:
491
+ :param ContainerType level:
492
+ :param str job:
493
+ :param str files:
494
+ :param object metadata: Metadata object
495
+ :param str content_type:
496
+ :param bool async_: Perform the request asynchronously
497
+ :return: union[list[File],UploadTicketOutput]
498
+ """
499
+ ignore_simplified_return_value = kwargs.pop('_ignore_simplified_return_value', False)
500
+ kwargs['_return_http_data_only'] = True
501
+
502
+ if kwargs.get('async_'):
503
+ return self.upload_by_reaper_with_http_info(**kwargs) # noqa: E501
504
+ else:
505
+ (data) = self.upload_by_reaper_with_http_info(**kwargs) # noqa: E501
506
+ if (
507
+ data
508
+ and hasattr(data, 'return_value')
509
+ and not ignore_simplified_return_value
510
+ ):
511
+ return data.return_value()
512
+ return data
513
+
514
+
515
+ def upload_by_reaper_with_http_info(self, **kwargs): # noqa: E501
516
+ """Bottom-up UID matching of Multipart form upload with N file fields, each with their desired filename.
517
+
518
+ ### Default behavior: > Upload data, allowing users to move sessions during scans without causing new data to be created in referenced project/group. ### Evaluation Order: * If a matching acquisition UID is found anywhere on the system, the related files will be placed under that acquisition. * **OR** If a matching session UID is found, a new acquistion is created with the specified UID under that Session UID. * **OR** If a matching group ID and project label are found, a new session and acquisition will be created within that project * **OR** If a matching group ID is found, a new project and session and acquisition will be created within that group. * **OR** A new session and acquisition will be created within a special \"Unknown\" group and project, which is only visible to system administrators. ### Signed URL upload with ``ticket`` > Upload a single file directly to the storage backend. The workflow is the following: - Send a request with an empty ``?ticket=`` query parameter to get an upload ticket and URL - Upload the file using a PUT request to the upload URL - Once done, send a POST request to this endpoint with the upload ticket to finalize the upload. The file will be placed into the DB via this POST request.
519
+ This method makes a synchronous HTTP request by default.
520
+
521
+ :param bool preserve_metadata:
522
+ :param str ticket: Use empty value to get a ticket, and provide the ticket id to finalize the upload
523
+ :param bool uid_placement:
524
+ :param str id:
525
+ :param ContainerType level:
526
+ :param str job:
527
+ :param str files:
528
+ :param object metadata: Metadata object
529
+ :param str content_type:
530
+ :param bool async_: Perform the request asynchronously
531
+ :return: union[list[File],UploadTicketOutput]
532
+ """
533
+
534
+ all_params = ['preserve_metadata','ticket','uid_placement','id','level','job','files','metadata','content_type',] # noqa: E501
535
+ all_params.append('async_')
536
+ all_params.append('_return_http_data_only')
537
+ all_params.append('_preload_content')
538
+ all_params.append('_request_timeout')
539
+ all_params.append('_request_out')
540
+
541
+ params = locals()
542
+ for key, val in six.iteritems(params['kwargs']):
543
+ if key not in all_params:
544
+ raise TypeError(
545
+ "Got an unexpected keyword argument '%s'"
546
+ " to method upload_by_reaper" % key
547
+ )
548
+ params[key] = val
549
+ del params['kwargs']
550
+ check_filename_params(params)
551
+
552
+ collection_formats = {}
553
+
554
+ path_params = {}
555
+
556
+ query_params = []
557
+ if 'preserve_metadata' in params:
558
+ query_params.append(('preserve_metadata', params['preserve_metadata'])) # noqa: E501
559
+ if 'ticket' in params:
560
+ query_params.append(('ticket', params['ticket'])) # noqa: E501
561
+ if 'uid_placement' in params:
562
+ query_params.append(('uid_placement', params['uid_placement'])) # noqa: E501
563
+ if 'id' in params:
564
+ query_params.append(('id', params['id'])) # noqa: E501
565
+ if 'level' in params:
566
+ query_params.append(('level', params['level'])) # noqa: E501
567
+ if 'job' in params:
568
+ query_params.append(('job', params['job'])) # noqa: E501
569
+
570
+ header_params = {}
571
+ if 'content_type' in params:
572
+ header_params['content-type'] = params['content_type'] # noqa: E501
573
+
574
+ form_params = []
575
+ local_var_files = {}
576
+ if 'files' in params:
577
+ local_var_files['files'] = params['files'] # noqa: E501
578
+ if 'metadata' in params:
579
+ form_params.append(('metadata', params['metadata'])) # noqa: E501
580
+
581
+ body_params = None
582
+ # HTTP header `Accept`
583
+ header_params['Accept'] = self.api_client.select_header_accept(
584
+ ['application/json']) # noqa: E501
585
+
586
+ # HTTP header `Content-Type`
587
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
588
+ ['multipart/form-data']) # noqa: E501
589
+
590
+ # Authentication setting
591
+ auth_settings = ['ApiKey'] # noqa: E501
592
+
593
+ return self.api_client.call_api(
594
+ '/upload/reaper', 'POST',
595
+ path_params,
596
+ query_params,
597
+ header_params,
598
+ body=body_params,
599
+ post_params=form_params,
600
+ files=local_var_files,
601
+ response_type='union[list[File],UploadTicketOutput]', # noqa: E501
602
+ auth_settings=auth_settings,
603
+ async_=params.get('async_'),
604
+ _return_http_data_only=params.get('_return_http_data_only'),
605
+ _preload_content=params.get('_preload_content', True),
606
+ _request_timeout=params.get('_request_timeout'),
607
+ _request_out=params.get('_request_out'),
608
+ collection_formats=collection_formats)
609
+
610
+ def upload_by_uid(self, **kwargs): # noqa: E501
611
+ """Multipart form upload with N file fields, each with their desired filename.
612
+
613
+ ### Default behavior: > Same behavior as /api/upload/label, except the metadata field must be uid format See ``api/schemas/input/uidupload.json`` for the format of this metadata. ### Signed URL upload with ``ticket`` > Upload a single file directly to the storage backend. The workflow is the following: - Send a request with an empty ``?ticket=`` query parameter to get an upload ticket and URL - Upload the file using a PUT request to the upload URL - Once done, send a POST request to this endpoint with the upload ticket to finalize the upload. The file will be placed into the DB via this POST request.
614
+ This method makes a synchronous HTTP request by default.
615
+
616
+ :param bool preserve_metadata:
617
+ :param str ticket: Use empty value to get a ticket, and provide the ticket id to finalize the upload
618
+ :param str id:
619
+ :param ContainerType level:
620
+ :param str job:
621
+ :param str files:
622
+ :param object metadata: Metadata object
623
+ :param str content_type:
624
+ :param bool async_: Perform the request asynchronously
625
+ :return: union[list[File],UploadTicketOutput]
626
+ """
627
+ ignore_simplified_return_value = kwargs.pop('_ignore_simplified_return_value', False)
628
+ kwargs['_return_http_data_only'] = True
629
+
630
+ if kwargs.get('async_'):
631
+ return self.upload_by_uid_with_http_info(**kwargs) # noqa: E501
632
+ else:
633
+ (data) = self.upload_by_uid_with_http_info(**kwargs) # noqa: E501
634
+ if (
635
+ data
636
+ and hasattr(data, 'return_value')
637
+ and not ignore_simplified_return_value
638
+ ):
639
+ return data.return_value()
640
+ return data
641
+
642
+
643
+ def upload_by_uid_with_http_info(self, **kwargs): # noqa: E501
644
+ """Multipart form upload with N file fields, each with their desired filename.
645
+
646
+ ### Default behavior: > Same behavior as /api/upload/label, except the metadata field must be uid format See ``api/schemas/input/uidupload.json`` for the format of this metadata. ### Signed URL upload with ``ticket`` > Upload a single file directly to the storage backend. The workflow is the following: - Send a request with an empty ``?ticket=`` query parameter to get an upload ticket and URL - Upload the file using a PUT request to the upload URL - Once done, send a POST request to this endpoint with the upload ticket to finalize the upload. The file will be placed into the DB via this POST request.
647
+ This method makes a synchronous HTTP request by default.
648
+
649
+ :param bool preserve_metadata:
650
+ :param str ticket: Use empty value to get a ticket, and provide the ticket id to finalize the upload
651
+ :param str id:
652
+ :param ContainerType level:
653
+ :param str job:
654
+ :param str files:
655
+ :param object metadata: Metadata object
656
+ :param str content_type:
657
+ :param bool async_: Perform the request asynchronously
658
+ :return: union[list[File],UploadTicketOutput]
659
+ """
660
+
661
+ all_params = ['preserve_metadata','ticket','id','level','job','files','metadata','content_type',] # noqa: E501
662
+ all_params.append('async_')
663
+ all_params.append('_return_http_data_only')
664
+ all_params.append('_preload_content')
665
+ all_params.append('_request_timeout')
666
+ all_params.append('_request_out')
667
+
668
+ params = locals()
669
+ for key, val in six.iteritems(params['kwargs']):
670
+ if key not in all_params:
671
+ raise TypeError(
672
+ "Got an unexpected keyword argument '%s'"
673
+ " to method upload_by_uid" % key
674
+ )
675
+ params[key] = val
676
+ del params['kwargs']
677
+ check_filename_params(params)
678
+
679
+ collection_formats = {}
680
+
681
+ path_params = {}
682
+
683
+ query_params = []
684
+ if 'preserve_metadata' in params:
685
+ query_params.append(('preserve_metadata', params['preserve_metadata'])) # noqa: E501
686
+ if 'ticket' in params:
687
+ query_params.append(('ticket', params['ticket'])) # noqa: E501
688
+ if 'id' in params:
689
+ query_params.append(('id', params['id'])) # noqa: E501
690
+ if 'level' in params:
691
+ query_params.append(('level', params['level'])) # noqa: E501
692
+ if 'job' in params:
693
+ query_params.append(('job', params['job'])) # noqa: E501
694
+
695
+ header_params = {}
696
+ if 'content_type' in params:
697
+ header_params['content-type'] = params['content_type'] # noqa: E501
698
+
699
+ form_params = []
700
+ local_var_files = {}
701
+ if 'files' in params:
702
+ local_var_files['files'] = params['files'] # noqa: E501
703
+ if 'metadata' in params:
704
+ form_params.append(('metadata', params['metadata'])) # noqa: E501
705
+
706
+ body_params = None
707
+ # HTTP header `Accept`
708
+ header_params['Accept'] = self.api_client.select_header_accept(
709
+ ['application/json']) # noqa: E501
710
+
711
+ # HTTP header `Content-Type`
712
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
713
+ ['multipart/form-data']) # noqa: E501
714
+
715
+ # Authentication setting
716
+ auth_settings = ['ApiKey'] # noqa: E501
717
+
718
+ return self.api_client.call_api(
719
+ '/upload/uid', 'POST',
720
+ path_params,
721
+ query_params,
722
+ header_params,
723
+ body=body_params,
724
+ post_params=form_params,
725
+ files=local_var_files,
726
+ response_type='union[list[File],UploadTicketOutput]', # noqa: E501
727
+ auth_settings=auth_settings,
728
+ async_=params.get('async_'),
729
+ _return_http_data_only=params.get('_return_http_data_only'),
730
+ _preload_content=params.get('_preload_content', True),
731
+ _request_timeout=params.get('_request_timeout'),
732
+ _request_out=params.get('_request_out'),
733
+ collection_formats=collection_formats)
734
+
735
+ def upload_signed_fs_file(self, token, body, **kwargs): # noqa: E501
736
+ """Upload file to local filesystem storage provider
737
+
738
+ The POST `/api/upload/signed-url` endpoint returns a url with a jwt token pointing to this endpoint if the storage provider is a local filesystem then the file can be uploaded simply by sending the file content in the body of the payload. The destination storage provider and the file path are encoded in the jwt token.
739
+ This method makes a synchronous HTTP request by default.
740
+
741
+ :param str token: Upload token (required)
742
+ :param str body: Signed filesystem file upload payload (required)
743
+ :param bool async_: Perform the request asynchronously
744
+ :return: SignedFSUploadOutput
745
+ """
746
+ ignore_simplified_return_value = kwargs.pop('_ignore_simplified_return_value', False)
747
+ kwargs['_return_http_data_only'] = True
748
+
749
+ if kwargs.get('async_'):
750
+ return self.upload_signed_fs_file_with_http_info(token, body, **kwargs) # noqa: E501
751
+ else:
752
+ (data) = self.upload_signed_fs_file_with_http_info(token, body, **kwargs) # noqa: E501
753
+ if (
754
+ data
755
+ and hasattr(data, 'return_value')
756
+ and not ignore_simplified_return_value
757
+ ):
758
+ return data.return_value()
759
+ return data
760
+
761
+
762
+ def upload_signed_fs_file_with_http_info(self, token, body, **kwargs): # noqa: E501
763
+ """Upload file to local filesystem storage provider
764
+
765
+ The POST `/api/upload/signed-url` endpoint returns a url with a jwt token pointing to this endpoint if the storage provider is a local filesystem then the file can be uploaded simply by sending the file content in the body of the payload. The destination storage provider and the file path are encoded in the jwt token.
766
+ This method makes a synchronous HTTP request by default.
767
+
768
+ :param str token: Upload token (required)
769
+ :param str body: Signed filesystem file upload payload (required)
770
+ :param bool async_: Perform the request asynchronously
771
+ :return: SignedFSUploadOutput
772
+ """
773
+
774
+ all_params = ['token','body',] # noqa: E501
775
+ all_params.append('async_')
776
+ all_params.append('_return_http_data_only')
777
+ all_params.append('_preload_content')
778
+ all_params.append('_request_timeout')
779
+ all_params.append('_request_out')
780
+
781
+ params = locals()
782
+ for key, val in six.iteritems(params['kwargs']):
783
+ if key not in all_params:
784
+ raise TypeError(
785
+ "Got an unexpected keyword argument '%s'"
786
+ " to method upload_signed_fs_file" % key
787
+ )
788
+ params[key] = val
789
+ del params['kwargs']
790
+ # verify the required parameter 'token' is set
791
+ if ('token' not in params or
792
+ params['token'] is None):
793
+ raise ValueError("Missing the required parameter `token` when calling `upload_signed_fs_file`") # noqa: E501
794
+ # verify the required parameter 'body' is set
795
+ if ('body' not in params or
796
+ params['body'] is None):
797
+ raise ValueError("Missing the required parameter `body` when calling `upload_signed_fs_file`") # noqa: E501
798
+ check_filename_params(params)
799
+
800
+ collection_formats = {}
801
+
802
+ path_params = {}
803
+
804
+ query_params = []
805
+ if 'token' in params:
806
+ query_params.append(('token', params['token'])) # noqa: E501
807
+
808
+ header_params = {}
809
+
810
+ form_params = []
811
+ local_var_files = {}
812
+
813
+ body_params = None
814
+ if 'body' in params:
815
+ body_params = params['body']
816
+ # HTTP header `Accept`
817
+ header_params['Accept'] = self.api_client.select_header_accept(
818
+ ['application/json']) # noqa: E501
819
+
820
+ # HTTP header `Content-Type`
821
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
822
+ ['application/json']) # noqa: E501
823
+
824
+ # Authentication setting
825
+ auth_settings = ['ApiKey'] # noqa: E501
826
+
827
+ return self.api_client.call_api(
828
+ '/upload/fs-file', 'PUT',
829
+ path_params,
830
+ query_params,
831
+ header_params,
832
+ body=body_params,
833
+ post_params=form_params,
834
+ files=local_var_files,
835
+ response_type='SignedFSUploadOutput', # noqa: E501
836
+ auth_settings=auth_settings,
837
+ async_=params.get('async_'),
838
+ _return_http_data_only=params.get('_return_http_data_only'),
839
+ _preload_content=params.get('_preload_content', True),
840
+ _request_timeout=params.get('_request_timeout'),
841
+ _request_out=params.get('_request_out'),
842
+ collection_formats=collection_formats)