flywheel-sdk 20.1.0rc0__py2.py3-none-any.whl → 20.2.0rc0__py2.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 (39) hide show
  1. flywheel/__init__.py +3 -6
  2. flywheel/api/__init__.py +1 -0
  3. flywheel/api/analyses_api.py +1446 -346
  4. flywheel/api/container_type_api.py +135 -0
  5. flywheel/api/dataexplorer_api.py +90 -0
  6. flywheel/api/files_api.py +437 -0
  7. flywheel/api/reports_api.py +102 -0
  8. flywheel/api_client.py +1 -1
  9. flywheel/configuration.py +2 -2
  10. flywheel/finder.py +5 -2
  11. flywheel/flywheel.py +335 -7
  12. flywheel/models/__init__.py +3 -7
  13. flywheel/models/action.py +0 -3
  14. flywheel/models/container_type.py +0 -1
  15. flywheel/models/current_user_output.py +4 -32
  16. flywheel/models/features.py +16 -16
  17. flywheel/models/{azure_ml_resource_init_status.py → file_container_type.py} +8 -6
  18. flywheel/models/file_list_output.py +54 -1
  19. flywheel/models/file_node.py +54 -1
  20. flywheel/models/file_output.py +57 -4
  21. flywheel/models/file_upsert_output.py +54 -1
  22. flywheel/models/fixed_input.py +28 -1
  23. flywheel/models/info_container_type.py +34 -0
  24. flywheel/models/mixins.py +14 -2
  25. flywheel/models/modify_user_input.py +4 -32
  26. flywheel/models/origin_type.py +1 -0
  27. flywheel/models/project_copy_input.py +28 -1
  28. flywheel/models/project_settings_workspaces.py +4 -31
  29. flywheel/models/project_settings_workspaces_input.py +4 -32
  30. {flywheel_sdk-20.1.0rc0.dist-info → flywheel_sdk-20.2.0rc0.dist-info}/METADATA +1 -2
  31. {flywheel_sdk-20.1.0rc0.dist-info → flywheel_sdk-20.2.0rc0.dist-info}/RECORD +34 -37
  32. {flywheel_sdk-20.1.0rc0.dist-info → flywheel_sdk-20.2.0rc0.dist-info}/WHEEL +1 -1
  33. flywheel/models/azure_ml_account.py +0 -188
  34. flywheel/models/azure_ml_initialization.py +0 -244
  35. flywheel/models/azure_ml_integration.py +0 -218
  36. flywheel/models/azure_ml_workspace.py +0 -347
  37. flywheel/models/azure_ml_workspace_input.py +0 -189
  38. {flywheel_sdk-20.1.0rc0.dist-info → flywheel_sdk-20.2.0rc0.dist-info}/LICENSE.txt +0 -0
  39. {flywheel_sdk-20.1.0rc0.dist-info → flywheel_sdk-20.2.0rc0.dist-info}/top_level.txt +0 -0
@@ -360,6 +360,108 @@ class ReportsApi(object):
360
360
  _request_out=params.get('_request_out'),
361
361
  collection_formats=collection_formats)
362
362
 
363
+ def get_daily_usage_range_report(self, **kwargs): # noqa: E501
364
+ """Get a daily usage report for a given range of dates.
365
+
366
+ This method makes a synchronous HTTP request by default.
367
+
368
+ :param datetime start_date: An ISO formatted timestamp for the start time of the report
369
+ :param datetime end_date: An ISO formatted timestamp for the end time of the report
370
+ :param str group: Limit the report to the given group id
371
+ :param str project: Limit the report to the given project id
372
+ :param bool async_: Perform the request asynchronously
373
+ :return: list[DailyReportUsage]
374
+ """
375
+ ignore_simplified_return_value = kwargs.pop('_ignore_simplified_return_value', False)
376
+ kwargs['_return_http_data_only'] = True
377
+
378
+ if kwargs.get('async_'):
379
+ return self.get_daily_usage_range_report_with_http_info(**kwargs) # noqa: E501
380
+ else:
381
+ (data) = self.get_daily_usage_range_report_with_http_info(**kwargs) # noqa: E501
382
+ if (
383
+ data
384
+ and hasattr(data, 'return_value')
385
+ and not ignore_simplified_return_value
386
+ ):
387
+ return data.return_value()
388
+ return data
389
+
390
+
391
+ def get_daily_usage_range_report_with_http_info(self, **kwargs): # noqa: E501
392
+ """Get a daily usage report for a given range of dates.
393
+
394
+ This method makes a synchronous HTTP request by default.
395
+
396
+ :param datetime start_date: An ISO formatted timestamp for the start time of the report
397
+ :param datetime end_date: An ISO formatted timestamp for the end time of the report
398
+ :param str group: Limit the report to the given group id
399
+ :param str project: Limit the report to the given project id
400
+ :param bool async_: Perform the request asynchronously
401
+ :return: list[DailyReportUsage]
402
+ """
403
+
404
+ all_params = ['start_date','end_date','group','project',] # noqa: E501
405
+ all_params.append('async_')
406
+ all_params.append('_return_http_data_only')
407
+ all_params.append('_preload_content')
408
+ all_params.append('_request_timeout')
409
+ all_params.append('_request_out')
410
+
411
+ params = locals()
412
+ for key, val in six.iteritems(params['kwargs']):
413
+ if key not in all_params:
414
+ raise TypeError(
415
+ "Got an unexpected keyword argument '%s'"
416
+ " to method get_daily_usage_range_report" % key
417
+ )
418
+ params[key] = val
419
+ del params['kwargs']
420
+
421
+ collection_formats = {}
422
+
423
+ path_params = {}
424
+
425
+ query_params = []
426
+ if 'start_date' in params:
427
+ query_params.append(('start_date', params['start_date'])) # noqa: E501
428
+ if 'end_date' in params:
429
+ query_params.append(('end_date', params['end_date'])) # noqa: E501
430
+ if 'group' in params:
431
+ query_params.append(('group', params['group'])) # noqa: E501
432
+ if 'project' in params:
433
+ query_params.append(('project', params['project'])) # noqa: E501
434
+
435
+ header_params = {}
436
+
437
+ form_params = []
438
+ local_var_files = {}
439
+
440
+ body_params = None
441
+ # HTTP header `Accept`
442
+ header_params['Accept'] = self.api_client.select_header_accept(
443
+ ['application/json']) # noqa: E501
444
+
445
+ # Authentication setting
446
+ auth_settings = ['ApiKey'] # noqa: E501
447
+
448
+ return self.api_client.call_api(
449
+ '/report/daily-usage-range', 'GET',
450
+ path_params,
451
+ query_params,
452
+ header_params,
453
+ body=body_params,
454
+ post_params=form_params,
455
+ files=local_var_files,
456
+ response_type='list[DailyReportUsage]', # noqa: E501
457
+ auth_settings=auth_settings,
458
+ async_=params.get('async_'),
459
+ _return_http_data_only=params.get('_return_http_data_only'),
460
+ _preload_content=params.get('_preload_content', True),
461
+ _request_timeout=params.get('_request_timeout'),
462
+ _request_out=params.get('_request_out'),
463
+ collection_formats=collection_formats)
464
+
363
465
  def get_daily_usage_report(self, **kwargs): # noqa: E501
364
466
  """Get a daily usage report for the given month.
365
467
 
flywheel/api_client.py CHANGED
@@ -84,7 +84,7 @@ class ApiClient(object):
84
84
  self.default_query_params = []
85
85
  self.cookie = cookie
86
86
  # Set default User-Agent.
87
- self.user_agent = 'Swagger-Codegen/20.1.0-rc0/python'
87
+ self.user_agent = 'Swagger-Codegen/20.2.0-rc0/python'
88
88
  self.last_response = None
89
89
  self._version_check_fn = None
90
90
  self._context = context
flywheel/configuration.py CHANGED
@@ -252,6 +252,6 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
252
252
  return "Python SDK Debug Report:\n"\
253
253
  "OS: {env}\n"\
254
254
  "Python Version: {pyversion}\n"\
255
- "Version of the API: 20.1.0-rc0\n"\
256
- "SDK Package Version: 20.1.0-rc0".\
255
+ "Version of the API: 20.2.0-rc0\n"\
256
+ "SDK Package Version: 20.2.0-rc0".\
257
257
  format(env=sys.platform, pyversion=sys.version)
flywheel/finder.py CHANGED
@@ -97,8 +97,11 @@ class Finder(object):
97
97
 
98
98
  for item in results:
99
99
  yield item
100
-
101
- kwargs["after_id"] = results[-1].id
100
+
101
+ if "file_id" in results[-1]:
102
+ kwargs["after_id"] = results[-1].file_id
103
+ else:
104
+ kwargs["after_id"] = results[-1].id
102
105
  else:
103
106
  if "limit" not in kwargs:
104
107
  kwargs["limit"] = 1000
flywheel/flywheel.py CHANGED
@@ -40,7 +40,7 @@ from flywheel.view_builder import ViewBuilder
40
40
  from flywheel.finder import Finder
41
41
  import flywheel.api
42
42
 
43
- SDK_VERSION = "20.1.0-rc0"
43
+ SDK_VERSION = "20.2.0-rc0"
44
44
 
45
45
  def config_from_api_key(api_key):
46
46
  parts = api_key.split(':')
@@ -143,6 +143,7 @@ class Flywheel:
143
143
  self.change_log_api = flywheel.api.ChangeLogApi(self.api_client)
144
144
  self.collections_api = flywheel.api.CollectionsApi(self.api_client)
145
145
  self.config_api = flywheel.api.ConfigApi(self.api_client)
146
+ self.container_type_api = flywheel.api.ContainerTypeApi(self.api_client)
146
147
  self.containers_api = flywheel.api.ContainersApi(self.api_client)
147
148
  self.data_view_executions_api = flywheel.api.DataViewExecutionsApi(self.api_client)
148
149
  self.dataexplorer_api = flywheel.api.DataexplorerApi(self.api_client)
@@ -927,6 +928,21 @@ class Flywheel:
927
928
  return self.analyses_api.delete_analysis(analysis_id, **kwargs)
928
929
 
929
930
 
931
+ def delete_analysis_file(self, cid, filename, **kwargs): # noqa: E501
932
+ """Delete a file
933
+
934
+ A user with read-write or higher permissions on the container may delete files that were uploaded by users or were the output of jobs. (Specifically, files whose `origin.type` is either `job` or `user`.) <br/> A user with admin permissions on the container may delete any file.
935
+
936
+ :param str cid: (required)
937
+ :param str filename: (required)
938
+ :param ContainerDeleteReason delete_reason: A reason for deletion when audit-trail is enabled
939
+ :param bool force: Force deletion of the file even if some checks fail. Deprecated, will be removed in a future release.
940
+ :param bool async_: Perform the request asynchronously
941
+ :return: DeletedResult
942
+ """
943
+ return self.analyses_api.delete_analysis_file(cid, filename, **kwargs)
944
+
945
+
930
946
  def delete_analysis_note(self, container_id, note_id, **kwargs): # noqa: E501
931
947
  """Remove a note from a(n) analysis
932
948
 
@@ -953,6 +969,72 @@ class Flywheel:
953
969
  return self.analyses_api.delete_analysis_tag(container_id, value, **kwargs)
954
970
 
955
971
 
972
+ def download_file_from_analysis(self, analysis_id, file_name, dest_file, **kwargs): # noqa: E501
973
+ """Download a file.
974
+
975
+ Files can be downloaded directly from this endpoint with a valid \"Authorization\" header or via a ticket id. To generate a ticket: - Make a request with an empty \"ticket\" parameter and a valid \"Authorization\" header. The server will respond with a generated ticket id. - Make another request with the received ticket id in the \"ticket\" parameter. A valid \"Authorization\" header is no longer required. When \"view\" is true, [RFC7233](https://tools.ietf.org/html/rfc7233) range request headers are supported. When virus_scan feature is enabled the quarantined files only can be downloaded using signed urls otherwise it will return with a HTTP 400 response.
976
+
977
+ :param str analysis_id: 24-character hex ID (required)
978
+ :param str file_name: output file name (required)
979
+ :param bool info: If the file is a zipfile, return a json response of zipfile member information
980
+ :param str member: The filename of a zipfile member to download rather than the entire file
981
+ :param bool view: If true, the proper \"Content-Type\" header based on the file's mimetype is set on response If false, the \"Content-Type\" header is set to \"application/octet-stream\"
982
+ :param int version: version of the file to download
983
+ :param str hash: file hash for comparison
984
+ :param str range: byte ranges to return
985
+ :param list[str] x_accept_feature: redirect header
986
+ :param str dest_file: Destination file path
987
+ :param bool async_: Perform the request asynchronously
988
+ :return: union[DownloadTicketStub,ZipfileInfo]
989
+ """
990
+ return self.analyses_api.download_file_from_analysis(analysis_id, file_name, dest_file, **kwargs)
991
+
992
+
993
+ def get_analysis_file_zip_info(self, analysis_id, file_name, **kwargs): # noqa: E501
994
+ """Retrieve the zip info of a child file by name.
995
+
996
+ Does not work on files whose names contain a forward slash.
997
+
998
+ :param str analysis_id: 24-character hex ID (required)
999
+ :param str file_name: output file name (required)
1000
+ :param str ticket: The generated ticket id for the download, or present but empty to generate a ticket id
1001
+ :param bool info: If the file is a zipfile, return a json response of zipfile member information
1002
+ :param str member: The filename of a zipfile member to download rather than the entire file
1003
+ :param bool view: If true, the proper \"Content-Type\" header based on the file's mimetype is set on response If false, the \"Content-Type\" header is set to \"application/octet-stream\"
1004
+ :param int version: version of the file to download
1005
+ :param str hash: file hash for comparison
1006
+ :param str range: byte ranges to return
1007
+ :param list[str] x_accept_feature: redirect header
1008
+ :param bool async_: Perform the request asynchronously
1009
+ :return: FileZipInfo
1010
+ """
1011
+ return self.analyses_api.get_analysis_file_zip_info(analysis_id, file_name, **kwargs)
1012
+
1013
+
1014
+ def get_analysis_download_url(self, analysis_id, file_name, **kwargs): # noqa: E501
1015
+ """Get a signed URL to download a named child file.
1016
+
1017
+ :param str analysis_id: 24-character hex ID (required)
1018
+ :param str file_name: output file name (required)
1019
+ :param str ticket: The generated ticket id for the download, or present but empty to generate a ticket id
1020
+ :param bool info: If the file is a zipfile, return a json response of zipfile member information
1021
+ :param str member: The filename of a zipfile member to download rather than the entire file
1022
+ :param bool view: If true, the proper \"Content-Type\" header based on the file's mimetype is set on response If false, the \"Content-Type\" header is set to \"application/octet-stream\"
1023
+ :param int version: version of the file to download
1024
+ :param str hash: file hash for comparison
1025
+ :param str range: byte ranges to return
1026
+ :param list[str] x_accept_feature: redirect header
1027
+ :param bool async_: Perform the request asynchronously
1028
+ :return: union[DownloadTicketStub,ZipfileInfo]
1029
+ """
1030
+ req_info = {}
1031
+ kwargs['_request_out'] = req_info
1032
+ kwargs['ticket'] = ''
1033
+ data = self.analyses_api.get_analysis_download_ticket(analysis_id, file_name, **kwargs)
1034
+ if data is not None:
1035
+ data = req_info['url'] + '?ticket=' + data.ticket
1036
+ return data
1037
+
956
1038
  def download_input_from_analysis(self, analysis_id, filename, dest_file, **kwargs): # noqa: E501
957
1039
  """Download analysis inputs with filter.
958
1040
 
@@ -1014,9 +1096,9 @@ class Flywheel:
1014
1096
  return data
1015
1097
 
1016
1098
  def download_output_from_analysis(self, analysis_id, filename, dest_file, **kwargs): # noqa: E501
1017
- """Get Output File
1099
+ """Download output file from analysis
1018
1100
 
1019
- Get Output File
1101
+ Download output file from analysis
1020
1102
 
1021
1103
  :param str analysis_id: Container ID (required)
1022
1104
  :param str filename: output file name (required)
@@ -1123,9 +1205,9 @@ class Flywheel:
1123
1205
 
1124
1206
 
1125
1207
  def get_analysis_file_info(self, container_id, filename, **kwargs): # noqa: E501
1126
- """Get info for a particular file.
1208
+ """Get metadata for an input file of an analysis.
1127
1209
 
1128
- Get info for a particular file.
1210
+ Get metadata for an input file of an analysis.
1129
1211
 
1130
1212
  :param str container_id: Container Id (required)
1131
1213
  :param str filename: (required)
@@ -1135,6 +1217,19 @@ class Flywheel:
1135
1217
  return self.analyses_api.get_analysis_file_info(container_id, filename, **kwargs)
1136
1218
 
1137
1219
 
1220
+ def get_analysis_input_files(self, container_id, filename, **kwargs): # noqa: E501
1221
+ """Get metadata for input file(s) for an analysis.
1222
+
1223
+ Get metadata for input file(s) for an analysis. There may be more than one since input filenames are not guaranteed to be unique.
1224
+
1225
+ :param str container_id: Container Id (required)
1226
+ :param str filename: (required)
1227
+ :param bool async_: Perform the request asynchronously
1228
+ :return: list[FileOutput]
1229
+ """
1230
+ return self.analyses_api.get_analysis_input_files(container_id, filename, **kwargs)
1231
+
1232
+
1138
1233
  def get_analysis_note(self, container_id, note_id, **kwargs): # noqa: E501
1139
1234
  """Get a note of a(n) analysis.
1140
1235
 
@@ -1148,6 +1243,20 @@ class Flywheel:
1148
1243
  return self.analyses_api.get_analysis_note(container_id, note_id, **kwargs)
1149
1244
 
1150
1245
 
1246
+ def get_analysis_output_file(self, cid, filename, **kwargs): # noqa: E501
1247
+ """Get metadata for an output file of an analysis.
1248
+
1249
+ Get metadata for an output file of an analysis.
1250
+
1251
+ :param str cid: Container Id (required)
1252
+ :param str filename: (required)
1253
+ :param FileContainerType ctype:
1254
+ :param bool async_: Perform the request asynchronously
1255
+ :return: FileOutput
1256
+ """
1257
+ return self.analyses_api.get_analysis_output_file(cid, filename, **kwargs)
1258
+
1259
+
1151
1260
  def get_analysis_tag(self, container_id, value, **kwargs): # noqa: E501
1152
1261
  """Get the value of a tag, by name.
1153
1262
 
@@ -1174,6 +1283,48 @@ class Flywheel:
1174
1283
  return self.analyses_api.modify_analysis(analysis_id, body, **kwargs)
1175
1284
 
1176
1285
 
1286
+ def modify_analysis_file(self, cid, filename, body, **kwargs): # noqa: E501
1287
+ """Modify a file&#x27;s attributes
1288
+
1289
+ Note: If modifying a file's modality, the current classification will be cleared (except for items in the \"Custom\" list)
1290
+
1291
+ :param str cid: (required)
1292
+ :param str filename: (required)
1293
+ :param FileModifyInput body: (required)
1294
+ :param bool async_: Perform the request asynchronously
1295
+ :return: ModifiedResult
1296
+ """
1297
+ return self.analyses_api.modify_analysis_file(cid, filename, body, **kwargs)
1298
+
1299
+
1300
+ def modify_analysis_file_classification(self, cid, filename, body, **kwargs): # noqa: E501
1301
+ """Update classification for a particular file.
1302
+
1303
+ If replacing a file's classification, the modality can optionally be modified as well.
1304
+
1305
+ :param str cid: (required)
1306
+ :param str filename: (required)
1307
+ :param FileClassificationDelta body: (required)
1308
+ :param bool async_: Perform the request asynchronously
1309
+ :return: ModifiedResult
1310
+ """
1311
+ return self.analyses_api.modify_analysis_file_classification(cid, filename, body, **kwargs)
1312
+
1313
+
1314
+ def modify_analysis_file_info(self, cid, filename, body, **kwargs): # noqa: E501
1315
+ """Update info for a particular file.
1316
+
1317
+ Modify and return the file 'info' field
1318
+
1319
+ :param str cid: (required)
1320
+ :param str filename: (required)
1321
+ :param Info body: (required)
1322
+ :param bool async_: Perform the request asynchronously
1323
+ :return: ModifiedResult
1324
+ """
1325
+ return self.analyses_api.modify_analysis_file_info(cid, filename, body, **kwargs)
1326
+
1327
+
1177
1328
  def modify_analysis_info(self, container_id, body, **kwargs): # noqa: E501
1178
1329
  """Update or replace info for a(n) analysis.
1179
1330
 
@@ -1978,6 +2129,19 @@ class Flywheel:
1978
2129
  return self.config_api.get_version(**kwargs)
1979
2130
 
1980
2131
 
2132
+ def cleanup_info(self, container_type, path, **kwargs): # noqa: E501
2133
+ """Remove a custom field from all applicable containers
2134
+
2135
+ Clean up a custom field from all containers of a type.
2136
+
2137
+ :param InfoContainerType container_type: (required)
2138
+ :param str path: The dot-separated custom field name to delete (required)
2139
+ :param bool async_: Perform the request asynchronously
2140
+ :return: ModifiedResult
2141
+ """
2142
+ return self.container_type_api.cleanup_info(container_type, path, **kwargs)
2143
+
2144
+
1981
2145
  def add_container_analysis(self, cid, body, **kwargs): # noqa: E501
1982
2146
  """Create an analysis and upload files.
1983
2147
 
@@ -2715,6 +2879,16 @@ class Flywheel:
2715
2879
  return self.dataexplorer_api.get_all_saved_searches(**kwargs)
2716
2880
 
2717
2881
 
2882
+ def get_mapped_fields(self, **kwargs): # noqa: E501
2883
+ """Get fields mapped for search
2884
+
2885
+ :param str path: Dot-separated subfield to drill down to
2886
+ :param bool async_: Perform the request asynchronously
2887
+ :return: object
2888
+ """
2889
+ return self.dataexplorer_api.get_mapped_fields(**kwargs)
2890
+
2891
+
2718
2892
  def get_saved_search(self, sid, **kwargs): # noqa: E501
2719
2893
  """Return a saved search query
2720
2894
 
@@ -3150,6 +3324,19 @@ class Flywheel:
3150
3324
  return self.files_api.get_file(file_id, **kwargs)
3151
3325
 
3152
3326
 
3327
+ def get_file_info(self, file_id, **kwargs): # noqa: E501
3328
+ """Get Info
3329
+
3330
+ Get info dict for any file version. Returns: dict of key/value pairs
3331
+
3332
+ :param str file_id: (required)
3333
+ :param int version:
3334
+ :param bool async_: Perform the request asynchronously
3335
+ :return: object
3336
+ """
3337
+ return self.files_api.get_file_info(file_id, **kwargs)
3338
+
3339
+
3153
3340
  def get_file_tags(self, file_id, **kwargs): # noqa: E501
3154
3341
  """Return a file tags, from any version
3155
3342
 
@@ -3189,6 +3376,32 @@ class Flywheel:
3189
3376
  return self.files_api.get_file_zip_info(file_id, **kwargs)
3190
3377
 
3191
3378
 
3379
+ def modify_file_classification(self, file_id, body, **kwargs): # noqa: E501
3380
+ """Modify Classification
3381
+
3382
+ Modify classification of most recent file version
3383
+
3384
+ :param str file_id: (required)
3385
+ :param FileClassificationDelta body: (required)
3386
+ :param bool async_: Perform the request asynchronously
3387
+ :return: ModifiedResult
3388
+ """
3389
+ return self.files_api.modify_file_classification(file_id, body, **kwargs)
3390
+
3391
+
3392
+ def modify_file_info(self, file_id, **kwargs): # noqa: E501
3393
+ """Modify Info
3394
+
3395
+ Add info to most recent file version, adding items or replacing some existing ones. Parameters: info (dict) -- key/value pairs to add Returns: dict added
3396
+
3397
+ :param str file_id: (required)
3398
+ :param object body:
3399
+ :param bool async_: Perform the request asynchronously
3400
+ :return: ModifiedResult
3401
+ """
3402
+ return self.files_api.modify_file_info(file_id, **kwargs)
3403
+
3404
+
3192
3405
  def move_file(self, file_id, body, **kwargs): # noqa: E501
3193
3406
  """Move and/or rename a file
3194
3407
 
@@ -3202,6 +3415,19 @@ class Flywheel:
3202
3415
  return self.files_api.move_file(file_id, body, **kwargs)
3203
3416
 
3204
3417
 
3418
+ def replace_file_info(self, file_id, **kwargs): # noqa: E501
3419
+ """Replace Info
3420
+
3421
+ Add info to most recent file version, replacing all existing values. Parameters: info (dict) -- all key/value pairs to populate info Returns: dict added
3422
+
3423
+ :param str file_id: (required)
3424
+ :param object body:
3425
+ :param bool async_: Perform the request asynchronously
3426
+ :return: object
3427
+ """
3428
+ return self.files_api.replace_file_info(file_id, **kwargs)
3429
+
3430
+
3205
3431
  def restore_file(self, file_id, version, evaluate_gear_rules, **kwargs): # noqa: E501
3206
3432
  """Restore a File
3207
3433
 
@@ -5211,6 +5437,19 @@ class Flywheel:
5211
5437
  return self.reports_api.get_access_log_types(**kwargs)
5212
5438
 
5213
5439
 
5440
+ def get_daily_usage_range_report(self, **kwargs): # noqa: E501
5441
+ """Get a daily usage report for a given range of dates.
5442
+
5443
+ :param datetime start_date: An ISO formatted timestamp for the start time of the report
5444
+ :param datetime end_date: An ISO formatted timestamp for the end time of the report
5445
+ :param str group: Limit the report to the given group id
5446
+ :param str project: Limit the report to the given project id
5447
+ :param bool async_: Perform the request asynchronously
5448
+ :return: list[DailyReportUsage]
5449
+ """
5450
+ return self.reports_api.get_daily_usage_range_report(**kwargs)
5451
+
5452
+
5214
5453
  def get_daily_usage_report(self, **kwargs): # noqa: E501
5215
5454
  """Get a daily usage report for the given month.
5216
5455
 
@@ -7915,6 +8154,29 @@ class Flywheel:
7915
8154
  body = { 'delete': body }
7916
8155
  return self.acquisitions_api.modify_acquisition_info(cid, body, **kwargs)
7917
8156
 
8157
+ def download_file_from_analysis_as_data(self, analysis_id, file_name, **kwargs):
8158
+ """Download a file.
8159
+
8160
+ Files can be downloaded directly from this endpoint with a valid \"Authorization\" header or via a ticket id. To generate a ticket: - Make a request with an empty \"ticket\" parameter and a valid \"Authorization\" header. The server will respond with a generated ticket id. - Make another request with the received ticket id in the \"ticket\" parameter. A valid \"Authorization\" header is no longer required. When \"view\" is true, [RFC7233](https://tools.ietf.org/html/rfc7233) range request headers are supported. When virus_scan feature is enabled the quarantined files only can be downloaded using signed urls otherwise it will return with a HTTP 400 response.
8161
+
8162
+ :param str analysis_id: 24-character hex ID (required)
8163
+ :param str file_name: output file name (required)
8164
+ :param bool info: If the file is a zipfile, return a json response of zipfile member information
8165
+ :param str member: The filename of a zipfile member to download rather than the entire file
8166
+ :param bool view: If true, the proper \"Content-Type\" header based on the file's mimetype is set on response If false, the \"Content-Type\" header is set to \"application/octet-stream\"
8167
+ :param int version: version of the file to download
8168
+ :param str hash: file hash for comparison
8169
+ :param str range: byte ranges to return
8170
+ :param list[str] x_accept_feature: redirect header
8171
+ :return: The binary file data
8172
+ """
8173
+ kwargs['_return_http_data_only'] = True
8174
+ kwargs['_preload_content'] = False
8175
+ (resp) = self.analyses_api.download_file_from_analysis_with_http_info(analysis_id, file_name, **kwargs)
8176
+ if resp:
8177
+ return resp.content
8178
+ return None
8179
+
7918
8180
  def download_input_from_analysis_as_data(self, analysis_id, filename, **kwargs):
7919
8181
  """Download analysis inputs with filter.
7920
8182
 
@@ -7937,9 +8199,9 @@ class Flywheel:
7937
8199
  return None
7938
8200
 
7939
8201
  def download_output_from_analysis_as_data(self, analysis_id, filename, **kwargs):
7940
- """Get Output File
8202
+ """Download output file from analysis
7941
8203
 
7942
- Get Output File
8204
+ Download output file from analysis
7943
8205
 
7944
8206
  :param str analysis_id: Container ID (required)
7945
8207
  :param str filename: output file name (required)
@@ -7957,6 +8219,72 @@ class Flywheel:
7957
8219
  return resp.content
7958
8220
  return None
7959
8221
 
8222
+ def set_analysis_file_classification(self, cid, filename, body, **kwargs):
8223
+ """Update classification with the provided fields.
8224
+
8225
+ :param str cid: (required)
8226
+ :param str filename: (required)
8227
+ :param FileClassificationDelta body: (required)
8228
+ :return: ModifiedResult
8229
+ """
8230
+ body = { 'add': body }
8231
+ return self.analyses_api.modify_analysis_file_classification(cid, filename, body, **kwargs)
8232
+
8233
+ def replace_analysis_file_classification(self, cid, filename, body, **kwargs):
8234
+ """Entirely replace classification with the provided fields.
8235
+
8236
+ :param str cid: (required)
8237
+ :param str filename: (required)
8238
+ :param FileClassificationDelta body: (required)
8239
+ :return: ModifiedResult
8240
+ """
8241
+ body = { 'replace': body }
8242
+ return self.analyses_api.modify_analysis_file_classification(cid, filename, body, **kwargs)
8243
+
8244
+ def delete_analysis_file_classification_fields(self, cid, filename, body, **kwargs):
8245
+ """Delete the specified fields from + name + .
8246
+
8247
+ :param str cid: (required)
8248
+ :param str filename: (required)
8249
+ :param FileClassificationDelta body: (required)
8250
+ :return: ModifiedResult
8251
+ """
8252
+ body = { 'delete': body }
8253
+ return self.analyses_api.modify_analysis_file_classification(cid, filename, body, **kwargs)
8254
+
8255
+ def set_analysis_file_info(self, cid, filename, body, **kwargs):
8256
+ """Update info with the provided fields.
8257
+
8258
+ :param str cid: (required)
8259
+ :param str filename: (required)
8260
+ :param Info body: (required)
8261
+ :return: ModifiedResult
8262
+ """
8263
+ body = { 'set': body }
8264
+ return self.analyses_api.modify_analysis_file_info(cid, filename, body, **kwargs)
8265
+
8266
+ def replace_analysis_file_info(self, cid, filename, body, **kwargs):
8267
+ """Entirely replace info with the provided fields.
8268
+
8269
+ :param str cid: (required)
8270
+ :param str filename: (required)
8271
+ :param Info body: (required)
8272
+ :return: ModifiedResult
8273
+ """
8274
+ body = { 'replace': body }
8275
+ return self.analyses_api.modify_analysis_file_info(cid, filename, body, **kwargs)
8276
+
8277
+ def delete_analysis_file_info_fields(self, cid, filename, body, **kwargs):
8278
+ """Delete the specified fields from + name + .
8279
+
8280
+ :param str cid: (required)
8281
+ :param str filename: (required)
8282
+ :param Info body: (required)
8283
+ :return: ModifiedResult
8284
+ """
8285
+ body = { 'delete': body }
8286
+ return self.analyses_api.modify_analysis_file_info(cid, filename, body, **kwargs)
8287
+
7960
8288
  def set_analysis_info(self, container_id, body, **kwargs):
7961
8289
  """Update info with the provided fields.
7962
8290
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  Flywheel: API for data import, automated curation, image processing, machine learning workflows, and secure collaboration. # noqa: E501
8
8
 
9
- OpenAPI spec version: 20.1.0-rc0
9
+ OpenAPI spec version: 20.2.0-rc0
10
10
 
11
11
  Generated by: https://github.com/swagger-api/swagger-codegen.git
12
12
  """
@@ -59,12 +59,6 @@ from flywheel.models.avatars import Avatars
59
59
  from flywheel.models.aws_creds import AwsCreds
60
60
  from flywheel.models.aws_storage import AwsStorage
61
61
  from flywheel.models.azure_creds import AzureCreds
62
- from flywheel.models.azure_ml_account import AzureMLAccount
63
- from flywheel.models.azure_ml_initialization import AzureMLInitialization
64
- from flywheel.models.azure_ml_integration import AzureMLIntegration
65
- from flywheel.models.azure_ml_resource_init_status import AzureMLResourceInitStatus
66
- from flywheel.models.azure_ml_workspace import AzureMLWorkspace
67
- from flywheel.models.azure_ml_workspace_input import AzureMLWorkspaceInput
68
62
  from flywheel.models.base_aet import BaseAET
69
63
  from flywheel.models.base_compute import BaseCompute
70
64
  from flywheel.models.batch import Batch
@@ -213,6 +207,7 @@ from flywheel.models.field_change import FieldChange
213
207
  from flywheel.models.field_change_log_document import FieldChangeLogDocument
214
208
  from flywheel.models.file import File
215
209
  from flywheel.models.file_classification_delta import FileClassificationDelta
210
+ from flywheel.models.file_container_type import FileContainerType
216
211
  from flywheel.models.file_entry import FileEntry
217
212
  from flywheel.models.file_export_templates import FileExportTemplates
218
213
  from flywheel.models.file_format import FileFormat
@@ -305,6 +300,7 @@ from flywheel.models.header_feature import HeaderFeature
305
300
  from flywheel.models.hierarchy_export_templates import HierarchyExportTemplates
306
301
  from flywheel.models.info import Info
307
302
  from flywheel.models.info_add_remove import InfoAddRemove
303
+ from flywheel.models.info_container_type import InfoContainerType
308
304
  from flywheel.models.info_replace import InfoReplace
309
305
  from flywheel.models.info_update_input import InfoUpdateInput
310
306
  from flywheel.models.ingress_provider import IngressProvider
flywheel/models/action.py CHANGED
@@ -76,9 +76,6 @@ class Action(str, enum.Enum):
76
76
  JUPYTERLAB_SERVERS_CREATE = "jupyterlab_servers_create"
77
77
  JUPYTERLAB_SERVERS_MODIFY = "jupyterlab_servers_modify"
78
78
  JUPYTERLAB_SERVERS_DELETE = "jupyterlab_servers_delete"
79
- AZUREML_READ = "azureml_read"
80
- AZUREML_MODIFY = "azureml_modify"
81
- AZUREML_ACCESS = "azureml_access"
82
79
  AUDIT_TRAIL_REPORTS_MANAGE = "audit_trail_reports_manage"
83
80
  AUDIT_TRAIL_REPORTS_VIEW = "audit_trail_reports_view"
84
81
  TASKS_VIEW = "tasks_view"
@@ -32,7 +32,6 @@ class ContainerType(str, enum.Enum):
32
32
  COLLECTION = "collection"
33
33
  READER_TASK = "reader_task"
34
34
  JUPYTERLAB_SERVER = "jupyterlab_server"
35
- AZUREML_RESOURCE = "azureml_resource"
36
35
 
37
36
  def __str__(self):
38
37
  return self.value