polyaxon-sdk 1.18.0rc7__py2.py3-none-any.whl → 2.1.6__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 (276) hide show
  1. polyaxon_sdk/__init__.py +26 -34
  2. polyaxon_sdk/api/__init__.py +2 -18
  3. polyaxon_sdk/api/agents_v1_api.py +2314 -1108
  4. polyaxon_sdk/api/artifacts_stores_v1_api.py +90 -97
  5. polyaxon_sdk/api/auth_v1_api.py +398 -359
  6. polyaxon_sdk/api/connections_v1_api.py +516 -488
  7. polyaxon_sdk/api/dashboards_v1_api.py +516 -488
  8. polyaxon_sdk/api/organizations_v1_api.py +3107 -2327
  9. polyaxon_sdk/api/policies_v1_api.py +1232 -0
  10. polyaxon_sdk/api/presets_v1_api.py +528 -498
  11. polyaxon_sdk/api/project_dashboards_v1_api.py +596 -590
  12. polyaxon_sdk/api/project_searches_v1_api.py +596 -590
  13. polyaxon_sdk/api/projects_v1_api.py +2248 -2167
  14. polyaxon_sdk/api/queues_v1_api.py +701 -670
  15. polyaxon_sdk/api/runs_v1_api.py +5136 -4477
  16. polyaxon_sdk/api/schemas_v1_api.py +64 -70
  17. polyaxon_sdk/api/searches_v1_api.py +516 -488
  18. polyaxon_sdk/api/service_accounts_v1_api.py +956 -920
  19. polyaxon_sdk/api/tags_v1_api.py +587 -552
  20. polyaxon_sdk/api/teams_v1_api.py +953 -916
  21. polyaxon_sdk/api/users_v1_api.py +730 -646
  22. polyaxon_sdk/api/versions_v1_api.py +206 -190
  23. polyaxon_sdk/api_client.py +145 -101
  24. polyaxon_sdk/configuration.py +46 -79
  25. polyaxon_sdk/exceptions.py +6 -23
  26. polyaxon_sdk/models/__init__.py +24 -32
  27. polyaxon_sdk/models/agent_state_response_agent_state.py +71 -364
  28. polyaxon_sdk/models/mx_job_mode.py +12 -105
  29. polyaxon_sdk/models/protobuf_any.py +65 -164
  30. polyaxon_sdk/models/protobuf_null_value.py +11 -104
  31. polyaxon_sdk/models/runtime_error.py +67 -208
  32. polyaxon_sdk/models/search_view.py +18 -111
  33. polyaxon_sdk/models/v1_activity.py +68 -313
  34. polyaxon_sdk/models/v1_agent.py +93 -495
  35. polyaxon_sdk/models/v1_agent_reconcile_body_request.py +75 -0
  36. polyaxon_sdk/models/v1_agent_state_response.py +64 -208
  37. polyaxon_sdk/models/v1_agent_status_body_request.py +61 -182
  38. polyaxon_sdk/models/v1_analytics_spec.py +59 -208
  39. polyaxon_sdk/models/v1_artifact_kind.py +42 -134
  40. polyaxon_sdk/models/v1_artifact_tree.py +57 -182
  41. polyaxon_sdk/models/v1_artifacts_mount.py +55 -156
  42. polyaxon_sdk/models/v1_artifacts_type.py +57 -182
  43. polyaxon_sdk/models/v1_auth.py +54 -131
  44. polyaxon_sdk/models/v1_auth_type.py +55 -156
  45. polyaxon_sdk/models/v1_average_stopping_policy.py +54 -131
  46. polyaxon_sdk/models/v1_bayes.py +79 -364
  47. polyaxon_sdk/models/v1_bucket_connection.py +54 -131
  48. polyaxon_sdk/models/v1_build.py +82 -312
  49. polyaxon_sdk/models/v1_cache.py +59 -208
  50. polyaxon_sdk/models/v1_claim_connection.py +59 -208
  51. polyaxon_sdk/models/v1_clean_pod_policy.py +13 -106
  52. polyaxon_sdk/models/v1_cloning.py +58 -182
  53. polyaxon_sdk/models/v1_cloning_kind.py +13 -106
  54. polyaxon_sdk/models/v1_compatibility.py +72 -208
  55. polyaxon_sdk/models/v1_compiled_operation.py +171 -783
  56. polyaxon_sdk/models/v1_component.py +132 -572
  57. polyaxon_sdk/models/v1_connection_kind.py +53 -146
  58. polyaxon_sdk/models/v1_connection_resource.py +77 -0
  59. polyaxon_sdk/models/v1_connection_response.py +71 -339
  60. polyaxon_sdk/models/v1_connection_schema.py +81 -234
  61. polyaxon_sdk/models/v1_connection_type.py +77 -338
  62. polyaxon_sdk/models/v1_credentials.py +55 -156
  63. polyaxon_sdk/models/v1_cron_schedule.py +64 -261
  64. polyaxon_sdk/models/v1_dag.py +87 -314
  65. polyaxon_sdk/models/v1_dag_ref.py +55 -156
  66. polyaxon_sdk/models/v1_dashboard.py +74 -339
  67. polyaxon_sdk/models/v1_dashboard_spec.py +70 -131
  68. polyaxon_sdk/models/v1_dask_job.py +87 -0
  69. polyaxon_sdk/models/v1_dask_replica.py +95 -0
  70. polyaxon_sdk/models/v1_date_time_schedule.py +56 -157
  71. polyaxon_sdk/models/v1_diff_stopping_policy.py +61 -236
  72. polyaxon_sdk/models/v1_dockerfile_type.py +79 -468
  73. polyaxon_sdk/models/v1_early_stopping.py +81 -234
  74. polyaxon_sdk/models/v1_entities_tags.py +55 -156
  75. polyaxon_sdk/models/v1_entities_transfer.py +55 -156
  76. polyaxon_sdk/models/v1_entity_notification_body.py +69 -286
  77. polyaxon_sdk/models/v1_entity_stage_body_request.py +65 -234
  78. polyaxon_sdk/models/v1_entity_status_body_request.py +65 -234
  79. polyaxon_sdk/models/v1_environment.py +87 -588
  80. polyaxon_sdk/models/v1_event.py +130 -499
  81. polyaxon_sdk/models/v1_event_artifact.py +56 -156
  82. polyaxon_sdk/models/v1_event_audio.py +61 -240
  83. polyaxon_sdk/models/v1_event_chart.py +56 -156
  84. polyaxon_sdk/models/v1_event_chart_kind.py +13 -106
  85. polyaxon_sdk/models/v1_event_confusion_matrix.py +57 -182
  86. polyaxon_sdk/models/v1_event_curve.py +60 -208
  87. polyaxon_sdk/models/v1_event_curve_kind.py +13 -106
  88. polyaxon_sdk/models/v1_event_dataframe.py +55 -156
  89. polyaxon_sdk/models/v1_event_histogram.py +55 -156
  90. polyaxon_sdk/models/v1_event_image.py +59 -212
  91. polyaxon_sdk/models/v1_event_kind.py +42 -135
  92. polyaxon_sdk/models/v1_event_model.py +57 -182
  93. polyaxon_sdk/models/v1_event_span.py +110 -0
  94. polyaxon_sdk/models/v1_event_span_kind.py +39 -0
  95. polyaxon_sdk/models/v1_event_trigger.py +56 -156
  96. polyaxon_sdk/models/v1_event_type.py +56 -156
  97. polyaxon_sdk/models/v1_event_video.py +61 -238
  98. polyaxon_sdk/models/v1_events_response.py +54 -131
  99. polyaxon_sdk/models/v1_failure_early_stopping.py +55 -158
  100. polyaxon_sdk/models/v1_file_type.py +59 -208
  101. polyaxon_sdk/models/v1_gcs_type.py +55 -156
  102. polyaxon_sdk/models/v1_git_connection.py +57 -182
  103. polyaxon_sdk/models/v1_git_type.py +57 -182
  104. polyaxon_sdk/models/v1_grid_search.py +63 -260
  105. polyaxon_sdk/models/v1_hook.py +78 -312
  106. polyaxon_sdk/models/v1_host_connection.py +55 -156
  107. polyaxon_sdk/models/v1_host_path_connection.py +59 -208
  108. polyaxon_sdk/models/v1_hp_choice.py +55 -156
  109. polyaxon_sdk/models/v1_hp_date_range.py +55 -156
  110. polyaxon_sdk/models/v1_hp_date_time_range.py +55 -156
  111. polyaxon_sdk/models/v1_hp_geom_space.py +55 -156
  112. polyaxon_sdk/models/v1_hp_lin_space.py +55 -156
  113. polyaxon_sdk/models/v1_hp_log_normal.py +55 -156
  114. polyaxon_sdk/models/v1_hp_log_space.py +55 -156
  115. polyaxon_sdk/models/v1_hp_log_uniform.py +55 -156
  116. polyaxon_sdk/models/v1_hp_normal.py +55 -156
  117. polyaxon_sdk/models/v1_hp_p_choice.py +55 -156
  118. polyaxon_sdk/models/v1_hp_params.py +150 -523
  119. polyaxon_sdk/models/v1_hp_q_log_normal.py +55 -156
  120. polyaxon_sdk/models/v1_hp_q_log_uniform.py +55 -156
  121. polyaxon_sdk/models/v1_hp_q_normal.py +55 -156
  122. polyaxon_sdk/models/v1_hp_q_uniform.py +55 -156
  123. polyaxon_sdk/models/v1_hp_range.py +55 -156
  124. polyaxon_sdk/models/v1_hp_uniform.py +55 -156
  125. polyaxon_sdk/models/v1_hub_ref.py +55 -156
  126. polyaxon_sdk/models/v1_hyperband.py +85 -390
  127. polyaxon_sdk/models/v1_hyperopt.py +80 -364
  128. polyaxon_sdk/models/v1_hyperopt_algorithms.py +13 -106
  129. polyaxon_sdk/models/v1_init.py +95 -416
  130. polyaxon_sdk/models/v1_installation.py +67 -260
  131. polyaxon_sdk/models/v1_interval_schedule.py +64 -261
  132. polyaxon_sdk/models/v1_io.py +83 -442
  133. polyaxon_sdk/models/v1_iterative.py +69 -286
  134. polyaxon_sdk/models/v1_job.py +77 -288
  135. polyaxon_sdk/models/v1_join.py +71 -260
  136. polyaxon_sdk/models/v1_join_param.py +61 -234
  137. polyaxon_sdk/models/v1_kf_replica.py +77 -286
  138. polyaxon_sdk/models/v1_list_activities_response.py +67 -208
  139. polyaxon_sdk/models/v1_list_agents_response.py +67 -208
  140. polyaxon_sdk/models/v1_list_bookmarks_response.py +59 -208
  141. polyaxon_sdk/models/v1_list_connections_response.py +67 -208
  142. polyaxon_sdk/models/v1_list_dashboards_response.py +67 -208
  143. polyaxon_sdk/models/v1_list_organization_members_response.py +67 -208
  144. polyaxon_sdk/models/v1_list_organizations_response.py +67 -208
  145. polyaxon_sdk/models/v1_list_policies_response.py +85 -0
  146. polyaxon_sdk/models/v1_list_presets_response.py +67 -208
  147. polyaxon_sdk/models/v1_list_project_versions_response.py +67 -208
  148. polyaxon_sdk/models/v1_list_projects_response.py +67 -208
  149. polyaxon_sdk/models/v1_list_queues_response.py +67 -208
  150. polyaxon_sdk/models/v1_list_run_artifacts_response.py +67 -208
  151. polyaxon_sdk/models/v1_list_run_connections_response.py +67 -208
  152. polyaxon_sdk/models/v1_list_run_edges_response.py +67 -208
  153. polyaxon_sdk/models/v1_list_runs_response.py +67 -208
  154. polyaxon_sdk/models/v1_list_searches_response.py +67 -208
  155. polyaxon_sdk/models/v1_list_service_accounts_response.py +67 -208
  156. polyaxon_sdk/models/v1_list_tags_response.py +67 -208
  157. polyaxon_sdk/models/v1_list_team_members_response.py +67 -208
  158. polyaxon_sdk/models/v1_list_teams_response.py +67 -208
  159. polyaxon_sdk/models/v1_list_token_response.py +67 -208
  160. polyaxon_sdk/models/v1_log.py +62 -235
  161. polyaxon_sdk/models/v1_log_handler.py +55 -156
  162. polyaxon_sdk/models/v1_logs.py +68 -209
  163. polyaxon_sdk/models/v1_managed_by.py +36 -0
  164. polyaxon_sdk/models/v1_mapping.py +59 -208
  165. polyaxon_sdk/models/v1_matrix.py +93 -286
  166. polyaxon_sdk/models/v1_matrix_kind.py +17 -110
  167. polyaxon_sdk/models/v1_median_stopping_policy.py +59 -210
  168. polyaxon_sdk/models/v1_metric_early_stopping.py +62 -238
  169. polyaxon_sdk/models/v1_mpi_job.py +75 -312
  170. polyaxon_sdk/models/v1_multi_events_response.py +71 -0
  171. polyaxon_sdk/models/v1_mx_job.py +96 -364
  172. polyaxon_sdk/models/v1_notification.py +56 -156
  173. polyaxon_sdk/models/v1_operation.py +178 -939
  174. polyaxon_sdk/models/v1_operation_body.py +69 -286
  175. polyaxon_sdk/models/v1_optimization.py +12 -105
  176. polyaxon_sdk/models/v1_optimization_metric.py +56 -156
  177. polyaxon_sdk/models/v1_optimization_resource.py +56 -156
  178. polyaxon_sdk/models/v1_organization.py +84 -495
  179. polyaxon_sdk/models/v1_organization_member.py +64 -261
  180. polyaxon_sdk/models/v1_paddle_elastic_polic.py +77 -0
  181. polyaxon_sdk/models/v1_paddle_job.py +97 -0
  182. polyaxon_sdk/models/v1_param.py +63 -260
  183. polyaxon_sdk/models/v1_password_change.py +57 -182
  184. polyaxon_sdk/models/v1_patch_strategy.py +14 -107
  185. polyaxon_sdk/models/v1_path_ref.py +55 -156
  186. polyaxon_sdk/models/v1_pipeline.py +58 -182
  187. polyaxon_sdk/models/v1_pipeline_kind.py +12 -105
  188. polyaxon_sdk/models/v1_plugins.py +89 -442
  189. polyaxon_sdk/models/v1_policy.py +119 -0
  190. polyaxon_sdk/models/v1_polyaxon_init_container.py +59 -208
  191. polyaxon_sdk/models/v1_polyaxon_sidecar_container.py +67 -286
  192. polyaxon_sdk/models/v1_preset.py +70 -339
  193. polyaxon_sdk/models/v1_project.py +90 -495
  194. polyaxon_sdk/models/v1_project_settings.py +81 -338
  195. polyaxon_sdk/models/v1_project_version.py +102 -601
  196. polyaxon_sdk/models/v1_project_version_kind.py +13 -106
  197. polyaxon_sdk/models/v1_pytorch_elastic_policy.py +91 -0
  198. polyaxon_sdk/models/v1_pytorch_job.py +81 -234
  199. polyaxon_sdk/models/v1_queue.py +76 -417
  200. polyaxon_sdk/models/v1_random_search.py +63 -260
  201. polyaxon_sdk/models/v1_ray_job.py +94 -0
  202. polyaxon_sdk/models/v1_ray_replica.py +103 -0
  203. polyaxon_sdk/models/v1_reference.py +75 -208
  204. polyaxon_sdk/models/v1_resource_type.py +12 -105
  205. polyaxon_sdk/models/v1_run.py +158 -1043
  206. polyaxon_sdk/models/v1_run_artifact.py +70 -338
  207. polyaxon_sdk/models/v1_run_artifacts.py +62 -131
  208. polyaxon_sdk/models/v1_run_connection.py +57 -182
  209. polyaxon_sdk/models/v1_run_edge.py +70 -234
  210. polyaxon_sdk/models/v1_run_edge_kind.py +19 -111
  211. polyaxon_sdk/models/v1_run_edge_lineage.py +75 -0
  212. polyaxon_sdk/models/v1_run_edges_graph.py +79 -0
  213. polyaxon_sdk/models/v1_run_kind.py +28 -122
  214. polyaxon_sdk/models/v1_run_pending.py +14 -107
  215. polyaxon_sdk/models/v1_run_reference_catalog.py +59 -182
  216. polyaxon_sdk/models/v1_run_resources.py +61 -234
  217. polyaxon_sdk/models/v1_run_schema.py +120 -419
  218. polyaxon_sdk/models/v1_run_settings.py +94 -338
  219. polyaxon_sdk/models/v1_s3_type.py +55 -156
  220. polyaxon_sdk/models/v1_schedule.py +69 -182
  221. polyaxon_sdk/models/v1_schedule_kind.py +13 -106
  222. polyaxon_sdk/models/v1_scheduling_policy.py +61 -182
  223. polyaxon_sdk/models/v1_schemas.py +192 -731
  224. polyaxon_sdk/models/v1_search.py +77 -365
  225. polyaxon_sdk/models/v1_search_spec.py +87 -468
  226. polyaxon_sdk/models/v1_section_spec.py +75 -286
  227. polyaxon_sdk/models/v1_service.py +85 -396
  228. polyaxon_sdk/models/v1_service_account.py +70 -339
  229. polyaxon_sdk/models/v1_settings_catalog.py +57 -156
  230. polyaxon_sdk/models/v1_stage.py +66 -182
  231. polyaxon_sdk/models/v1_stage_condition.py +67 -261
  232. polyaxon_sdk/models/v1_stages.py +14 -107
  233. polyaxon_sdk/models/v1_status.py +68 -208
  234. polyaxon_sdk/models/v1_status_condition.py +67 -261
  235. polyaxon_sdk/models/v1_statuses.py +30 -123
  236. polyaxon_sdk/models/v1_tag.py +63 -260
  237. polyaxon_sdk/models/v1_team.py +72 -313
  238. polyaxon_sdk/models/v1_team_member.py +64 -261
  239. polyaxon_sdk/models/v1_team_settings.py +79 -182
  240. polyaxon_sdk/models/v1_template.py +57 -182
  241. polyaxon_sdk/models/v1_tensorboard_type.py +61 -234
  242. polyaxon_sdk/models/v1_termination.py +57 -182
  243. polyaxon_sdk/models/v1_tf_job.py +87 -286
  244. polyaxon_sdk/models/v1_token.py +72 -365
  245. polyaxon_sdk/models/v1_trial_start.py +63 -260
  246. polyaxon_sdk/models/v1_trigger_policy.py +16 -109
  247. polyaxon_sdk/models/v1_truncation_stopping_policy.py +63 -264
  248. polyaxon_sdk/models/v1_tuner.py +69 -208
  249. polyaxon_sdk/models/v1_uri_type.py +57 -182
  250. polyaxon_sdk/models/v1_url_ref.py +55 -156
  251. polyaxon_sdk/models/v1_user.py +63 -260
  252. polyaxon_sdk/models/v1_user_access.py +77 -0
  253. polyaxon_sdk/models/v1_user_email.py +54 -131
  254. polyaxon_sdk/models/v1_user_singup.py +61 -234
  255. polyaxon_sdk/models/v1_uuids.py +54 -131
  256. polyaxon_sdk/models/v1_validation.py +109 -0
  257. polyaxon_sdk/models/v1_version.py +55 -156
  258. polyaxon_sdk/models/v1_wasb_type.py +57 -182
  259. polyaxon_sdk/models/v1_xg_boost_job.py +73 -234
  260. polyaxon_sdk/rest.py +23 -41
  261. {polyaxon_sdk-1.18.0rc7.dist-info → polyaxon_sdk-2.1.6.dist-info}/METADATA +6 -4
  262. polyaxon_sdk-2.1.6.dist-info/RECORD +264 -0
  263. {polyaxon_sdk-1.18.0rc7.dist-info → polyaxon_sdk-2.1.6.dist-info}/WHEEL +1 -1
  264. polyaxon_sdk/models/mpi_job_implementation.py +0 -128
  265. polyaxon_sdk/models/spark_deploy_mode.py +0 -129
  266. polyaxon_sdk/models/v1_dask.py +0 -436
  267. polyaxon_sdk/models/v1_flink.py +0 -174
  268. polyaxon_sdk/models/v1_k8s_resource_schema.py +0 -226
  269. polyaxon_sdk/models/v1_k8s_resource_type.py +0 -200
  270. polyaxon_sdk/models/v1_project_user_access.py +0 -200
  271. polyaxon_sdk/models/v1_ray.py +0 -174
  272. polyaxon_sdk/models/v1_spark.py +0 -558
  273. polyaxon_sdk/models/v1_spark_replica.py +0 -252
  274. polyaxon_sdk/models/v1_spark_type.py +0 -130
  275. polyaxon_sdk-1.18.0rc7.dist-info/RECORD +0 -255
  276. {polyaxon_sdk-1.18.0rc7.dist-info → polyaxon_sdk-2.1.6.dist-info}/top_level.txt +0 -0
@@ -1,31 +1,17 @@
1
- #!/usr/bin/python
2
- #
3
- # Copyright 2018-2022 Polyaxon, Inc.
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
-
17
1
  # coding: utf-8
2
+
18
3
  """
19
4
  Polyaxon SDKs and REST API specification.
20
5
 
21
- Polyaxon SDKs and REST API specification. # noqa: E501
6
+ # noqa: E501
22
7
 
23
- The version of the OpenAPI document: 1.18.0
8
+ The version of the OpenAPI document: 2.1.6
24
9
  Contact: contact@polyaxon.com
25
- Generated by: https://openapi-generator.tech
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
26
13
  """
27
14
 
28
- from __future__ import absolute_import
29
15
 
30
16
  import atexit
31
17
  import datetime
@@ -37,9 +23,7 @@ import os
37
23
  import re
38
24
  import tempfile
39
25
 
40
- # python 2 and python 3 compatibility library
41
- import six
42
- from six.moves.urllib.parse import quote
26
+ from urllib.parse import quote
43
27
 
44
28
  from polyaxon_sdk.configuration import Configuration
45
29
  import polyaxon_sdk.models
@@ -55,10 +39,6 @@ class ApiClient(object):
55
39
  the methods and models for each application are generated from the OpenAPI
56
40
  templates.
57
41
 
58
- NOTE: This class is auto generated by OpenAPI Generator.
59
- Ref: https://openapi-generator.tech
60
- Do not edit the class manually.
61
-
62
42
  :param configuration: .Configuration object for this client
63
43
  :param header_name: a header to pass when making calls to the API.
64
44
  :param header_value: a header value to pass when making calls to
@@ -69,10 +49,10 @@ class ApiClient(object):
69
49
  to the API. More threads means more concurrent API requests.
70
50
  """
71
51
 
72
- PRIMITIVE_TYPES = (float, bool, bytes, six.text_type) + six.integer_types
52
+ PRIMITIVE_TYPES = (float, bool, bytes, str, int)
73
53
  NATIVE_TYPES_MAPPING = {
74
54
  'int': int,
75
- 'long': int if six.PY3 else long, # noqa: F821
55
+ 'long': int, # TODO remove as only py3 is supported?
76
56
  'float': float,
77
57
  'str': str,
78
58
  'bool': bool,
@@ -84,8 +64,9 @@ class ApiClient(object):
84
64
 
85
65
  def __init__(self, configuration=None, header_name=None, header_value=None,
86
66
  cookie=None, pool_threads=1):
67
+ # use default configuration if none is provided
87
68
  if configuration is None:
88
- configuration = Configuration.get_default_copy()
69
+ configuration = Configuration.get_default()
89
70
  self.configuration = configuration
90
71
  self.pool_threads = pool_threads
91
72
 
@@ -95,7 +76,7 @@ class ApiClient(object):
95
76
  self.default_headers[header_name] = header_value
96
77
  self.cookie = cookie
97
78
  # Set default User-Agent.
98
- self.user_agent = 'OpenAPI-Generator/1.18.0/python'
79
+ self.user_agent = 'OpenAPI-Generator/2.1.6/python'
99
80
  self.client_side_validation = configuration.client_side_validation
100
81
 
101
82
  def __enter__(self):
@@ -134,6 +115,33 @@ class ApiClient(object):
134
115
  def set_default_header(self, header_name, header_value):
135
116
  self.default_headers[header_name] = header_value
136
117
 
118
+
119
+ _default = None
120
+
121
+ @classmethod
122
+ def get_default(cls):
123
+ """Return new instance of ApiClient.
124
+
125
+ This method returns newly created, based on default constructor,
126
+ object of ApiClient class or returns a copy of default
127
+ ApiClient.
128
+
129
+ :return: The ApiClient object.
130
+ """
131
+ if cls._default is None:
132
+ cls._default = ApiClient()
133
+ return cls._default
134
+
135
+ @classmethod
136
+ def set_default(cls, default):
137
+ """Set default instance of ApiClient.
138
+
139
+ It stores default ApiClient.
140
+
141
+ :param default: object of ApiClient.
142
+ """
143
+ cls._default = default
144
+
137
145
  def __call_api(
138
146
  self, resource_path, method, path_params=None,
139
147
  query_params=None, header_params=None, body=None, post_params=None,
@@ -166,12 +174,6 @@ class ApiClient(object):
166
174
  quote(str(v), safe=config.safe_chars_for_path_param)
167
175
  )
168
176
 
169
- # query parameters
170
- if query_params:
171
- query_params = self.sanitize_for_serialization(query_params)
172
- query_params = self.parameters_to_tuples(query_params,
173
- collection_formats)
174
-
175
177
  # post parameters
176
178
  if post_params or files:
177
179
  post_params = post_params if post_params else []
@@ -183,6 +185,7 @@ class ApiClient(object):
183
185
  # auth setting
184
186
  self.update_params_for_auth(
185
187
  header_params, query_params, auth_settings,
188
+ resource_path, method, body,
186
189
  request_auth=_request_auth)
187
190
 
188
191
  # body
@@ -196,15 +199,25 @@ class ApiClient(object):
196
199
  # use server/host defined in path or operation instead
197
200
  url = _host + resource_path
198
201
 
202
+ # query parameters
203
+ if query_params:
204
+ query_params = self.sanitize_for_serialization(query_params)
205
+ url_query = self.parameters_to_url_query(query_params,
206
+ collection_formats)
207
+ url += "?" + url_query
208
+
199
209
  try:
200
210
  # perform request and return response
201
211
  response_data = self.request(
202
- method, url, query_params=query_params, headers=header_params,
212
+ method, url,
213
+ query_params=query_params,
214
+ headers=header_params,
203
215
  post_params=post_params, body=body,
204
216
  _preload_content=_preload_content,
205
217
  _request_timeout=_request_timeout)
206
218
  except ApiException as e:
207
- e.body = e.body.decode('utf-8') if six.PY3 else e.body
219
+ if e.body:
220
+ e.body = e.body.decode('utf-8')
208
221
  raise e
209
222
 
210
223
  self.last_response = response_data
@@ -214,19 +227,22 @@ class ApiClient(object):
214
227
  if not _preload_content:
215
228
  return return_data
216
229
 
217
- response_type = response_types_map.get(response_data.status, None)
230
+ response_type = response_types_map.get(str(response_data.status), None)
218
231
 
219
- if six.PY3 and response_type not in ["file", "bytes"]:
232
+ if response_type == "bytearray":
233
+ response_data.data = response_data.data
234
+ else:
220
235
  match = None
221
236
  content_type = response_data.getheader('content-type')
222
237
  if content_type is not None:
223
- match = re.search(r"charset=([a-zA-Z\-\d]+)[\s\;]?", content_type)
238
+ match = re.search(r"charset=([a-zA-Z\-\d]+)[\s;]?", content_type)
224
239
  encoding = match.group(1) if match else "utf-8"
225
240
  response_data.data = response_data.data.decode(encoding)
226
241
 
227
242
  # deserialize response data
228
-
229
- if response_type:
243
+ if response_type == "bytearray":
244
+ return_data = response_data.data
245
+ elif response_type:
230
246
  return_data = self.deserialize(response_data, response_type)
231
247
  else:
232
248
  return_data = None
@@ -272,12 +288,10 @@ class ApiClient(object):
272
288
  # and attributes which value is not None.
273
289
  # Convert attribute name to json key in
274
290
  # model definition for request.
275
- obj_dict = {obj.attribute_map[attr]: getattr(obj, attr)
276
- for attr, _ in six.iteritems(obj.openapi_types)
277
- if getattr(obj, attr) is not None}
291
+ obj_dict = obj.to_dict()
278
292
 
279
293
  return {key: self.sanitize_for_serialization(val)
280
- for key, val in six.iteritems(obj_dict)}
294
+ for key, val in obj_dict.items()}
281
295
 
282
296
  def deserialize(self, response, response_type):
283
297
  """Deserializes response into an object.
@@ -313,15 +327,15 @@ class ApiClient(object):
313
327
  return None
314
328
 
315
329
  if type(klass) == str:
316
- if klass.startswith('list['):
317
- sub_kls = re.match(r'list\[(.*)\]', klass).group(1)
330
+ if klass.startswith('List['):
331
+ sub_kls = re.match(r'List\[(.*)]', klass).group(1)
318
332
  return [self.__deserialize(sub_data, sub_kls)
319
333
  for sub_data in data]
320
334
 
321
- if klass.startswith('dict('):
322
- sub_kls = re.match(r'dict\(([^,]*), (.*)\)', klass).group(2)
335
+ if klass.startswith('Dict['):
336
+ sub_kls = re.match(r'Dict\[([^,]*), (.*)]', klass).group(2)
323
337
  return {k: self.__deserialize(v, sub_kls)
324
- for k, v in six.iteritems(data)}
338
+ for k, v in data.items()}
325
339
 
326
340
  # convert str to class
327
341
  if klass in self.NATIVE_TYPES_MAPPING:
@@ -414,25 +428,25 @@ class ApiClient(object):
414
428
  _request_timeout=None):
415
429
  """Makes the HTTP request using RESTClient."""
416
430
  if method == "GET":
417
- return self.rest_client.GET(url,
431
+ return self.rest_client.get_request(url,
418
432
  query_params=query_params,
419
433
  _preload_content=_preload_content,
420
434
  _request_timeout=_request_timeout,
421
435
  headers=headers)
422
436
  elif method == "HEAD":
423
- return self.rest_client.HEAD(url,
437
+ return self.rest_client.head_request(url,
424
438
  query_params=query_params,
425
439
  _preload_content=_preload_content,
426
440
  _request_timeout=_request_timeout,
427
441
  headers=headers)
428
442
  elif method == "OPTIONS":
429
- return self.rest_client.OPTIONS(url,
443
+ return self.rest_client.options_request(url,
430
444
  query_params=query_params,
431
445
  headers=headers,
432
446
  _preload_content=_preload_content,
433
447
  _request_timeout=_request_timeout)
434
448
  elif method == "POST":
435
- return self.rest_client.POST(url,
449
+ return self.rest_client.post_request(url,
436
450
  query_params=query_params,
437
451
  headers=headers,
438
452
  post_params=post_params,
@@ -440,7 +454,7 @@ class ApiClient(object):
440
454
  _request_timeout=_request_timeout,
441
455
  body=body)
442
456
  elif method == "PUT":
443
- return self.rest_client.PUT(url,
457
+ return self.rest_client.put_request(url,
444
458
  query_params=query_params,
445
459
  headers=headers,
446
460
  post_params=post_params,
@@ -448,7 +462,7 @@ class ApiClient(object):
448
462
  _request_timeout=_request_timeout,
449
463
  body=body)
450
464
  elif method == "PATCH":
451
- return self.rest_client.PATCH(url,
465
+ return self.rest_client.patch_request(url,
452
466
  query_params=query_params,
453
467
  headers=headers,
454
468
  post_params=post_params,
@@ -456,7 +470,7 @@ class ApiClient(object):
456
470
  _request_timeout=_request_timeout,
457
471
  body=body)
458
472
  elif method == "DELETE":
459
- return self.rest_client.DELETE(url,
473
+ return self.rest_client.delete_request(url,
460
474
  query_params=query_params,
461
475
  headers=headers,
462
476
  _preload_content=_preload_content,
@@ -478,7 +492,7 @@ class ApiClient(object):
478
492
  new_params = []
479
493
  if collection_formats is None:
480
494
  collection_formats = {}
481
- for k, v in six.iteritems(params) if isinstance(params, dict) else params: # noqa: E501
495
+ for k, v in params.items() if isinstance(params, dict) else params: # noqa: E501
482
496
  if k in collection_formats:
483
497
  collection_format = collection_formats[k]
484
498
  if collection_format == 'multi':
@@ -498,6 +512,44 @@ class ApiClient(object):
498
512
  new_params.append((k, v))
499
513
  return new_params
500
514
 
515
+ def parameters_to_url_query(self, params, collection_formats):
516
+ """Get parameters as list of tuples, formatting collections.
517
+
518
+ :param params: Parameters as dict or list of two-tuples
519
+ :param dict collection_formats: Parameter collection formats
520
+ :return: URL query string (e.g. a=Hello%20World&b=123)
521
+ """
522
+ new_params = []
523
+ if collection_formats is None:
524
+ collection_formats = {}
525
+ for k, v in params.items() if isinstance(params, dict) else params: # noqa: E501
526
+ if isinstance(v, (int, float)):
527
+ v = str(v)
528
+ if isinstance(v, bool):
529
+ v = str(v).lower()
530
+ if isinstance(v, dict):
531
+ v = json.dumps(v)
532
+
533
+ if k in collection_formats:
534
+ collection_format = collection_formats[k]
535
+ if collection_format == 'multi':
536
+ new_params.extend((k, value) for value in v)
537
+ else:
538
+ if collection_format == 'ssv':
539
+ delimiter = ' '
540
+ elif collection_format == 'tsv':
541
+ delimiter = '\t'
542
+ elif collection_format == 'pipes':
543
+ delimiter = '|'
544
+ else: # csv is the default
545
+ delimiter = ','
546
+ new_params.append(
547
+ (k, delimiter.join(quote(str(value)) for value in v)))
548
+ else:
549
+ new_params.append((k, quote(str(v))))
550
+
551
+ return "&".join(["=".join(item) for item in new_params])
552
+
501
553
  def files_parameters(self, files=None):
502
554
  """Builds form parameters.
503
555
 
@@ -507,7 +559,7 @@ class ApiClient(object):
507
559
  params = []
508
560
 
509
561
  if files:
510
- for k, v in six.iteritems(files):
562
+ for k, v in files.items():
511
563
  if not v:
512
564
  continue
513
565
  file_names = v if type(v) is list else [v]
@@ -531,12 +583,11 @@ class ApiClient(object):
531
583
  if not accepts:
532
584
  return
533
585
 
534
- accepts = [x.lower() for x in accepts]
586
+ for accept in accepts:
587
+ if re.search('json', accept, re.IGNORECASE):
588
+ return accept
535
589
 
536
- if 'application/json' in accepts:
537
- return 'application/json'
538
- else:
539
- return ', '.join(accepts)
590
+ return accepts[0]
540
591
 
541
592
  def select_header_content_type(self, content_types):
542
593
  """Returns `Content-Type` based on an array of content_types provided.
@@ -545,22 +596,26 @@ class ApiClient(object):
545
596
  :return: Content-Type (e.g. application/json).
546
597
  """
547
598
  if not content_types:
548
- return 'application/json'
599
+ return None
549
600
 
550
- content_types = [x.lower() for x in content_types]
601
+ for content_type in content_types:
602
+ if re.search('json', content_type, re.IGNORECASE):
603
+ return content_type
551
604
 
552
- if 'application/json' in content_types or '*/*' in content_types:
553
- return 'application/json'
554
- else:
555
- return content_types[0]
605
+ return content_types[0]
556
606
 
557
607
  def update_params_for_auth(self, headers, queries, auth_settings,
608
+ resource_path, method, body,
558
609
  request_auth=None):
559
610
  """Updates header and query params based on authentication setting.
560
611
 
561
612
  :param headers: Header parameters dict to be updated.
562
613
  :param queries: Query parameters tuple list to be updated.
563
614
  :param auth_settings: Authentication setting identifiers list.
615
+ :resource_path: A string representation of the HTTP request resource path.
616
+ :method: A string representation of the HTTP request method.
617
+ :body: A object representing the body of the HTTP request.
618
+ The object type is the return value of sanitize_for_serialization().
564
619
  :param request_auth: if set, the provided settings will
565
620
  override the token in the configuration.
566
621
  """
@@ -568,25 +623,36 @@ class ApiClient(object):
568
623
  return
569
624
 
570
625
  if request_auth:
571
- self._apply_auth_params(headers, queries, request_auth)
626
+ self._apply_auth_params(headers, queries,
627
+ resource_path, method, body,
628
+ request_auth)
572
629
  return
573
630
 
574
631
  for auth in auth_settings:
575
632
  auth_setting = self.configuration.auth_settings().get(auth)
576
633
  if auth_setting:
577
- self._apply_auth_params(headers, queries, auth_setting)
634
+ self._apply_auth_params(headers, queries,
635
+ resource_path, method, body,
636
+ auth_setting)
578
637
 
579
- def _apply_auth_params(self, headers, queries, auth_setting):
638
+ def _apply_auth_params(self, headers, queries,
639
+ resource_path, method, body,
640
+ auth_setting):
580
641
  """Updates the request parameters based on a single auth_setting
581
642
 
582
643
  :param headers: Header parameters dict to be updated.
583
644
  :param queries: Query parameters tuple list to be updated.
645
+ :resource_path: A string representation of the HTTP request resource path.
646
+ :method: A string representation of the HTTP request method.
647
+ :body: A object representing the body of the HTTP request.
648
+ The object type is the return value of sanitize_for_serialization().
584
649
  :param auth_setting: auth settings for the endpoint
585
650
  """
586
651
  if auth_setting['in'] == 'cookie':
587
652
  headers['Cookie'] = auth_setting['value']
588
653
  elif auth_setting['in'] == 'header':
589
- headers[auth_setting['key']] = auth_setting['value']
654
+ if auth_setting['type'] != 'http-signature':
655
+ headers[auth_setting['key']] = auth_setting['value']
590
656
  elif auth_setting['in'] == 'query':
591
657
  queries.append((auth_setting['key'], auth_setting['value']))
592
658
  else:
@@ -629,7 +695,7 @@ class ApiClient(object):
629
695
  try:
630
696
  return klass(data)
631
697
  except UnicodeEncodeError:
632
- return six.text_type(data)
698
+ return str(data)
633
699
  except TypeError:
634
700
  return data
635
701
 
@@ -684,27 +750,5 @@ class ApiClient(object):
684
750
  :param klass: class literal.
685
751
  :return: model object.
686
752
  """
687
- has_discriminator = False
688
- if (hasattr(klass, 'get_real_child_model')
689
- and klass.discriminator_value_class_map):
690
- has_discriminator = True
691
-
692
- if not klass.openapi_types and has_discriminator is False:
693
- return data
694
753
 
695
- kwargs = {}
696
- if (data is not None and
697
- klass.openapi_types is not None and
698
- isinstance(data, (list, dict))):
699
- for attr, attr_type in six.iteritems(klass.openapi_types):
700
- if klass.attribute_map[attr] in data:
701
- value = data[klass.attribute_map[attr]]
702
- kwargs[attr] = self.__deserialize(value, attr_type)
703
-
704
- instance = klass(**kwargs)
705
-
706
- if has_discriminator:
707
- klass_name = instance.get_real_child_model(data)
708
- if klass_name:
709
- instance = self.__deserialize(data, klass_name)
710
- return instance
754
+ return klass.from_dict(data)