Py4HEAppE 1.0.0__tar.gz → 2.0.0__tar.gz
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.
- py4heappe-2.0.0/.gitlab/stages/.generation.yml +25 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/.gitlab-ci.yml +2 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/CHANGELOG.md +6 -1
- {py4heappe-1.0.0/src/Py4HEAppE.egg-info → py4heappe-2.0.0}/PKG-INFO +2 -2
- {py4heappe-1.0.0 → py4heappe-2.0.0}/README.md +1 -1
- py4heappe-2.0.0/Tools/APIWrapperGen/README.md +10 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/README.mustache +129 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/__init__api.mustache +7 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/__init__model.mustache +10 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/__init__package.mustache +17 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/__init__test.mustache +1 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/api.mustache +214 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/api_client.mustache +645 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/api_doc.mustache +85 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/api_test.mustache +37 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/asyncio/rest.mustache +260 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/configuration.mustache +271 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/git_push.sh.mustache +52 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/gitignore.mustache +64 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/model.mustache +236 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/model_doc.mustache +11 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/model_test.mustache +35 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/partial_header.mustache +13 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/requirements.mustache +5 -0
- py4heappe-1.0.0/src/py4heappe/core/rest.py → py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/rest.mustache +12 -9
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/setup.mustache +49 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/test-requirements.mustache +11 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/tornado/rest.mustache +255 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/tox.mustache +20 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/Templates/python/travis.mustache +14 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/config.json +4 -0
- py4heappe-2.0.0/Tools/APIWrapperGen/swagger.json +11690 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/docs/examples/example.py +15 -19
- {py4heappe-1.0.0 → py4heappe-2.0.0}/pyproject.toml +1 -1
- {py4heappe-1.0.0 → py4heappe-2.0.0/src/Py4HEAppE.egg-info}/PKG-INFO +2 -2
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/Py4HEAppE.egg-info/SOURCES.txt +80 -36
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/cli/command_template.py +45 -11
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/cli/configuration.py +1 -1
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/cli/information.py +27 -8
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/cli/report.py +23 -10
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/__init__.py +57 -28
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/api/cluster_information_api.py +40 -10
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/api/data_transfer_api.py +12 -11
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/api/file_transfer_api.py +12 -11
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/api/job_management_api.py +28 -23
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/api/job_reporting_api.py +43 -27
- py4heappe-2.0.0/src/py4heappe/core/api/management_api.py +6824 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/api/user_and_limitation_management_api.py +97 -7
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/api_client.py +24 -17
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/configuration.py +25 -21
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/__init__.py +56 -28
- py4heappe-2.0.0/src/py4heappe/core/models/accounting_ext.py +265 -0
- py4heappe-2.0.0/src/py4heappe/core/models/accounting_state_ext.py +263 -0
- py4heappe-1.0.0/src/py4heappe/core/models/file_transfer_cipher_type.py → py4heappe-2.0.0/src/py4heappe/core/models/accounting_state_type_ext.py +23 -13
- py4heappe-2.0.0/src/py4heappe/core/models/adaptor_user_ext.py +263 -0
- py4heappe-1.0.0/src/py4heappe/core/models/user_group_report_ext.py → py4heappe-2.0.0/src/py4heappe/core/models/adaptor_user_group_ext.py +72 -77
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/adaptor_user_role_ext.py +37 -8
- py4heappe-1.0.0/src/py4heappe/core/models/adaptor_user_type.py → py4heappe-2.0.0/src/py4heappe/core/models/adaptor_user_type_ext.py +21 -10
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/authenticate_lexis_token_model.py +19 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/authenticate_user_digital_signature_model.py +19 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/authenticate_user_open_id_model.py +19 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/authenticate_user_open_id_open_stack_model.py +21 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/authenticate_user_password_model.py +19 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/bad_request_result.py +19 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/cancel_job_model.py +29 -6
- py4heappe-2.0.0/src/py4heappe/core/models/cluster_aggregated_report_ext.py +209 -0
- py4heappe-2.0.0/src/py4heappe/core/models/cluster_authentication_credentials_auth_type_ext.py +109 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/cluster_connection_protocol.py +17 -6
- py4heappe-1.0.0/src/py4heappe/core/models/adaptor_user_role_type.py → py4heappe-2.0.0/src/py4heappe/core/models/cluster_connection_protocol_ext.py +21 -14
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/cluster_detailed_report_ext.py +29 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/cluster_ext.py +27 -6
- py4heappe-2.0.0/src/py4heappe/core/models/cluster_extended_report_ext.py +241 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/cluster_init_report_ext.py +23 -6
- py4heappe-1.0.0/src/py4heappe/core/models/user_group_detailed_report_ext.py → py4heappe-2.0.0/src/py4heappe/core/models/cluster_node_extended_type_report_ext.py +87 -90
- py4heappe-2.0.0/src/py4heappe/core/models/cluster_node_type_aggregated_report_ext.py +209 -0
- py4heappe-2.0.0/src/py4heappe/core/models/cluster_node_type_aggregation_accounting_ext.py +153 -0
- py4heappe-2.0.0/src/py4heappe/core/models/cluster_node_type_aggregation_ext.py +265 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/cluster_node_type_detailed_report_ext.py +31 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/cluster_node_type_ext.py +173 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/cluster_node_type_for_task_ext.py +25 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/cluster_node_type_report_ext.py +43 -48
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/cluster_node_type_resource_usage_ext.py +33 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/cluster_node_usage_ext.py +37 -6
- py4heappe-2.0.0/src/py4heappe/core/models/cluster_project_ext.py +243 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/cluster_proxy_connection_ext.py +55 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/cluster_report_ext.py +27 -33
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/command_template_ext.py +87 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/command_template_parameter_ext.py +23 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/command_template_parameter_value_ext.py +35 -6
- py4heappe-2.0.0/src/py4heappe/core/models/compute_accounting_model.py +215 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/copy_job_data_from_temp_model.py +37 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/copy_job_data_to_temp_model.py +37 -6
- py4heappe-2.0.0/src/py4heappe/core/models/create_accounting_model.py +221 -0
- py4heappe-2.0.0/src/py4heappe/core/models/create_cluster_model.py +437 -0
- py4heappe-2.0.0/src/py4heappe/core/models/create_cluster_node_type_aggregation_accounting_model.py +187 -0
- py4heappe-2.0.0/src/py4heappe/core/models/create_cluster_node_type_aggregation_model.py +283 -0
- py4heappe-2.0.0/src/py4heappe/core/models/create_cluster_node_type_model.py +469 -0
- py4heappe-2.0.0/src/py4heappe/core/models/create_cluster_proxy_connection_model.py +287 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/create_command_inner_template_parameter_model.py +43 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/create_command_template_from_generic_model.py +71 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/create_command_template_model.py +73 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/create_command_template_parameter_model.py +53 -6
- py4heappe-2.0.0/src/py4heappe/core/models/create_file_transfer_method_model.py +247 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/create_job_by_project_model.py +27 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/create_project_assignment_to_cluster_model.py +39 -6
- py4heappe-2.0.0/src/py4heappe/core/models/create_project_cluster_node_type_aggregation_model.py +215 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/create_project_model.py +65 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/create_secure_shell_key_model.py +31 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/create_secure_shell_key_model_obsolete.py +39 -6
- py4heappe-2.0.0/src/py4heappe/core/models/create_sub_project_model.py +283 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/data_transfer_method_ext.py +33 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/delete_job_model.py +57 -8
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/deployment_type_ext.py +17 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/digital_signature_credentials_ext.py +31 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/download_file_from_cluster_model.py +37 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/download_parts_of_job_files_from_cluster_model.py +31 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/end_data_transfer_model.py +27 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/end_file_transfer_model.py +31 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/environment_variable_ext.py +35 -6
- py4heappe-1.0.0/src/py4heappe/core/models/cluster.py → py4heappe-2.0.0/src/py4heappe/core/models/extended_cluster_ext.py +160 -211
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/extended_command_template_ext.py +97 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/extended_command_template_parameter_ext.py +27 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/extended_project_info_ext.py +37 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/file_information_ext.py +23 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/file_transfer_cipher_type_ext.py +18 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/file_transfer_key_credentials_ext.py +89 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/file_transfer_method_ext.py +59 -6
- py4heappe-2.0.0/src/py4heappe/core/models/file_transfer_method_no_credentials_ext.py +241 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/file_transfer_protocol.py +17 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/file_transfer_protocol_ext.py +17 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/get_command_template_parameters_name_model.py +39 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/get_data_transfer_method_model.py +39 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/get_file_transfer_method_model.py +29 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/http_get_to_job_node_model.py +44 -7
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/http_header_ext.py +35 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/http_post_to_job_node_model.py +46 -7
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/initialize_cluster_script_directory_model.py +31 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/instance_information_ext.py +37 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/job_detailed_report_ext.py +35 -6
- py4heappe-2.0.0/src/py4heappe/core/models/job_extended_report_ext.py +207 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/job_file_content_ext.py +27 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/job_report_ext.py +43 -22
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/job_specification_ext.py +99 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/job_state_aggregation_report_ext.py +23 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/job_state_ext.py +18 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/lexis_credentials_ext.py +33 -7
- py4heappe-2.0.0/src/py4heappe/core/models/modify_accounting_model.py +249 -0
- py4heappe-2.0.0/src/py4heappe/core/models/modify_cluster_model.py +465 -0
- py4heappe-2.0.0/src/py4heappe/core/models/modify_cluster_node_type_aggregation_model.py +311 -0
- py4heappe-2.0.0/src/py4heappe/core/models/modify_cluster_node_type_model.py +497 -0
- py4heappe-2.0.0/src/py4heappe/core/models/modify_cluster_proxy_connection_model.py +315 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/modify_command_template_from_generic_model.py +71 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/modify_command_template_model.py +101 -8
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/modify_command_template_parameter_model.py +53 -6
- py4heappe-2.0.0/src/py4heappe/core/models/modify_file_transfer_method_model.py +275 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/modify_project_assignment_to_cluster_model.py +39 -6
- py4heappe-2.0.0/src/py4heappe/core/models/modify_project_cluster_node_type_aggregation_model.py +215 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/modify_project_model.py +51 -6
- py4heappe-2.0.0/src/py4heappe/core/models/modify_sub_project_model.py +283 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/node_used_cores_and_limitation_ext.py +21 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/open_id_credentials_ext.py +33 -7
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/open_stack_application_credentials_ext.py +23 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/password_credentials_ext.py +35 -6
- py4heappe-2.0.0/src/py4heappe/core/models/problem_details.py +227 -0
- py4heappe-2.0.0/src/py4heappe/core/models/project_aggregated_report_ext.py +291 -0
- py4heappe-2.0.0/src/py4heappe/core/models/project_cluster_node_type_aggregation_ext.py +237 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/project_detailed_report_ext.py +61 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/project_ext.py +87 -6
- py4heappe-2.0.0/src/py4heappe/core/models/project_extended_report_ext.py +265 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/project_for_task_ext.py +27 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/project_list_report_ext.py +29 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/project_reference_ext.py +20 -7
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/project_report_ext.py +55 -32
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/project_resource_usage_ext.py +33 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/proxy_type.py +17 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/proxy_type_ext.py +17 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/public_key_ext.py +25 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/regenerate_secure_shell_key_model.py +45 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/regenerate_secure_shell_key_model_obsolete.py +33 -6
- py4heappe-2.0.0/src/py4heappe/core/models/remove_accounting_model.py +159 -0
- py4heappe-1.0.0/src/py4heappe/core/models/current_info_for_job_model.py → py4heappe-2.0.0/src/py4heappe/core/models/remove_cluster_model.py +51 -28
- py4heappe-2.0.0/src/py4heappe/core/models/remove_cluster_node_type_aggregation_accounting_model.py +187 -0
- py4heappe-1.0.0/src/py4heappe/core/models/list_changed_files_for_job_model.py → py4heappe-2.0.0/src/py4heappe/core/models/remove_cluster_node_type_aggregation_model.py +51 -28
- py4heappe-2.0.0/src/py4heappe/core/models/remove_cluster_node_type_model.py +159 -0
- py4heappe-2.0.0/src/py4heappe/core/models/remove_cluster_proxy_connection_model.py +159 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/remove_command_template_model.py +29 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/remove_command_template_parameter_model.py +29 -6
- py4heappe-2.0.0/src/py4heappe/core/models/remove_file_transfer_method_model.py +159 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/remove_project_assignment_to_cluster_model.py +31 -6
- py4heappe-2.0.0/src/py4heappe/core/models/remove_project_cluster_node_type_aggregation_model.py +187 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/remove_project_model.py +29 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/remove_secure_shell_key_model.py +31 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/remove_secure_shell_key_model_obsolete.py +27 -6
- py4heappe-2.0.0/src/py4heappe/core/models/remove_sub_project_model.py +159 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/resource_allocation_type_ext.py +17 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/scheduler_type.py +17 -6
- py4heappe-1.0.0/src/py4heappe/core/models/cluster_authentication_credentials_auth_type.py → py4heappe-2.0.0/src/py4heappe/core/models/scheduler_type_ext.py +21 -15
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/ssh_key_user_credentials_model.py +35 -6
- py4heappe-2.0.0/src/py4heappe/core/models/sub_project_aggregated_report_ext.py +209 -0
- py4heappe-2.0.0/src/py4heappe/core/models/sub_project_ext.py +265 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/submit_job_model.py +29 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/submitted_job_info_ext.py +63 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/submitted_task_info_ext.py +35 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/synchronizable_files_ext.py +17 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/task_detailed_report_ext.py +35 -6
- py4heappe-1.0.0/src/py4heappe/core/models/task_report_ext.py → py4heappe-2.0.0/src/py4heappe/core/models/task_extended_report_ext.py +63 -38
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/task_file_offset_ext.py +23 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/task_paralization_parameter_ext.py +25 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/task_priority_ext.py +17 -6
- py4heappe-1.0.0/src/py4heappe/core/models/cluster_node_type_requested_group.py → py4heappe-2.0.0/src/py4heappe/core/models/task_report_ext.py +65 -20
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/task_specification_ext.py +102 -8
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/task_state_ext.py +18 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/test_cluster_access_for_account_model_obsolete.py +27 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/unauthorized_result.py +19 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/usage_type_ext.py +17 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/user_group_list_report_ext.py +27 -6
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/models/version_information_ext.py +25 -6
- py4heappe-2.0.0/src/py4heappe/core/rest.py +323 -0
- py4heappe-1.0.0/src/py4heappe/core/api/management_api.py +0 -2540
- py4heappe-1.0.0/src/py4heappe/core/models/adaptor_user.py +0 -398
- py4heappe-1.0.0/src/py4heappe/core/models/adaptor_user_group.py +0 -268
- py4heappe-1.0.0/src/py4heappe/core/models/adaptor_user_role.py +0 -242
- py4heappe-1.0.0/src/py4heappe/core/models/adaptor_user_user_group_role.py +0 -320
- py4heappe-1.0.0/src/py4heappe/core/models/allocated_nodes_ips_model.py +0 -136
- py4heappe-1.0.0/src/py4heappe/core/models/authentication_credentials.py +0 -110
- py4heappe-1.0.0/src/py4heappe/core/models/cluster_authentication_credentials.py +0 -375
- py4heappe-1.0.0/src/py4heappe/core/models/cluster_node_type.py +0 -528
- py4heappe-1.0.0/src/py4heappe/core/models/cluster_project.py +0 -347
- py4heappe-1.0.0/src/py4heappe/core/models/cluster_project_credential.py +0 -294
- py4heappe-1.0.0/src/py4heappe/core/models/cluster_proxy_connection.py +0 -243
- py4heappe-1.0.0/src/py4heappe/core/models/command_template.py +0 -557
- py4heappe-1.0.0/src/py4heappe/core/models/command_template_parameter.py +0 -347
- py4heappe-1.0.0/src/py4heappe/core/models/contact.py +0 -269
- py4heappe-1.0.0/src/py4heappe/core/models/current_cluster_node_usage_model.py +0 -136
- py4heappe-1.0.0/src/py4heappe/core/models/file_transfer_method.py +0 -294
- py4heappe-1.0.0/src/py4heappe/core/models/get_current_usage_and_limitations_for_current_user_model.py +0 -110
- py4heappe-1.0.0/src/py4heappe/core/models/job_specification_by_project_ext.py +0 -448
- py4heappe-1.0.0/src/py4heappe/core/models/list_jobs_for_current_user_model.py +0 -110
- py4heappe-1.0.0/src/py4heappe/core/models/problem_details.py +0 -89
- py4heappe-1.0.0/src/py4heappe/core/models/project.py +0 -482
- py4heappe-1.0.0/src/py4heappe/core/models/project_contact.py +0 -215
- py4heappe-1.0.0/src/py4heappe/core/models/recreate_secure_shell_key_model.py +0 -214
- py4heappe-1.0.0/src/py4heappe/core/models/resource_limitation_ext.py +0 -136
- py4heappe-1.0.0/src/py4heappe/core/models/resource_usage_ext.py +0 -163
- py4heappe-1.0.0/src/py4heappe/core/models/test_cluster_access_for_account_model.py +0 -162
- py4heappe-1.0.0/src/py4heappe/core/models/usage_type.py +0 -90
- {py4heappe-1.0.0 → py4heappe-2.0.0}/.gitignore +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/.gitlab/stages/.check.yml +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/.gitlab/stages/.publish.yml +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/.gitlab/stages/.release.yml +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/LICENSE +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/docs/imgs/logo.png +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/requirements.txt +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/setup.cfg +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/Py4HEAppE.egg-info/dependency_links.txt +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/Py4HEAppE.egg-info/entry_points.txt +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/Py4HEAppE.egg-info/requires.txt +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/Py4HEAppE.egg-info/top_level.txt +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/__init__.py +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/__init__.py +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/cli/__init__.py +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/cli/auth.py +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/cli/job_management.py +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/api/__init__.py +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/base/__init__.py +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/base/exceptions.py +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/base/logger.py +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe/core/base/utils.py +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/src/py4heappe_cli.py +0 -0
- {py4heappe-1.0.0 → py4heappe-2.0.0}/tests/__init__.py +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
## GENERATION STAGE
|
|
2
|
+
|
|
3
|
+
API_client_generation:
|
|
4
|
+
stage: API_generation
|
|
5
|
+
image: openjdk:11-jre-slim
|
|
6
|
+
when: manual
|
|
7
|
+
rules:
|
|
8
|
+
- if: '$CI_COMMIT_BRANCH != "develop" && $CI_COMMIT_BRANCH != "main"'
|
|
9
|
+
before_script:
|
|
10
|
+
- apt-get update
|
|
11
|
+
- apt-get install -y wget zip
|
|
12
|
+
- wget https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.27/swagger-codegen-cli-2.4.27.jar -O /swagger-codegen-cli.jar
|
|
13
|
+
script:
|
|
14
|
+
- echo "Generation API client"
|
|
15
|
+
- java -jar /swagger-codegen-cli.jar generate -i Tools/APIWrapperGen/swagger.json -l python -t Tools/APIWrapperGen/Templates/python/ -o ./app/client -c Tools/APIWrapperGen/config.json
|
|
16
|
+
- cd app/client/py4heappe
|
|
17
|
+
- zip -r ../../../APIWrapperGen.zip .
|
|
18
|
+
tags:
|
|
19
|
+
- Docker
|
|
20
|
+
- Centos9
|
|
21
|
+
- IT4I_Network
|
|
22
|
+
artifacts:
|
|
23
|
+
paths:
|
|
24
|
+
- APIWrapperGen.zip
|
|
25
|
+
expire_in: 1 days
|
|
@@ -2,6 +2,7 @@ services:
|
|
|
2
2
|
- docker:dind
|
|
3
3
|
|
|
4
4
|
include:
|
|
5
|
+
- local: '.gitlab/stages/.generation.yml'
|
|
5
6
|
- local: '.gitlab/stages/.check.yml'
|
|
6
7
|
- local: '.gitlab/stages/.release.yml'
|
|
7
8
|
- local: '.gitlab/stages/.publish.yml'
|
|
@@ -9,6 +10,7 @@ include:
|
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
stages:
|
|
13
|
+
- API_generation
|
|
12
14
|
- check
|
|
13
15
|
- release
|
|
14
16
|
- publish
|
|
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## V2.0.0
|
|
9
|
+
|
|
10
|
+
### Compatible with HEAppE V5.X.X
|
|
11
|
+
|
|
12
|
+
|
|
8
13
|
## V1.0.0
|
|
9
14
|
|
|
10
|
-
###
|
|
15
|
+
### Compatible with HEAppE V4.2.X and V4.3.X
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Py4HEAppE
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2.0.0
|
|
4
4
|
Summary: Py4HEAppE is client library for easy access to HEAppE Middleware
|
|
5
5
|
Author-email: IT4Innovations <support.heappe@it4i.cz>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -57,7 +57,7 @@ The library ensures consistent and reliable communication with the HEAppE API, h
|
|
|
57
57
|
### Installation
|
|
58
58
|
|
|
59
59
|
```
|
|
60
|
-
pip install
|
|
60
|
+
pip install Py4HEAppE
|
|
61
61
|
```
|
|
62
62
|
|
|
63
63
|
<b>Note:</b> In some cases, you can obtain a warning message like this <b>"WARNING: The script py4heappe.exe is installed in 'C:\Users\user\AppData\Roaming\Python\Python311\Scripts' which is not on PATH.</b>" If you obtained a similar warning message, it is necessary to add the mentioned path into your operation system <b>PATH</b> variable or use a path with an executable file (i.e. C:\Users\user\AppData\Roaming\Python\Python311\Scripts\py4heappe.exe).
|
|
@@ -32,7 +32,7 @@ The library ensures consistent and reliable communication with the HEAppE API, h
|
|
|
32
32
|
### Installation
|
|
33
33
|
|
|
34
34
|
```
|
|
35
|
-
pip install
|
|
35
|
+
pip install Py4HEAppE
|
|
36
36
|
```
|
|
37
37
|
|
|
38
38
|
<b>Note:</b> In some cases, you can obtain a warning message like this <b>"WARNING: The script py4heappe.exe is installed in 'C:\Users\user\AppData\Roaming\Python\Python311\Scripts' which is not on PATH.</b>" If you obtained a similar warning message, it is necessary to add the mentioned path into your operation system <b>PATH</b> variable or use a path with an executable file (i.e. C:\Users\user\AppData\Roaming\Python\Python311\Scripts\py4heappe.exe).
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Py4HEAppE API Client Generation
|
|
2
|
+
The content contains how to re-generate the HEAppE API wrapper with the new version of the HEAppE API
|
|
3
|
+
|
|
4
|
+
## Steps
|
|
5
|
+
1. Obtain HEAppE API Swagger definition **(eg.http://localhost:5000/swagger/py4heappe/swagger.json)**
|
|
6
|
+
2. Upload the downloaded Swagger definition and replace it in repository folder **'Tools\APIWrapperGen\swagger.json'**
|
|
7
|
+
3. Commit into random branch (not into develop or main)
|
|
8
|
+
4. Manually triggered pipeline for the API wrapper generation
|
|
9
|
+
5. Download pipeline artefact and replace files in **'src/py4heappe/core' (except base directory)**
|
|
10
|
+
6. Modify Py4HEAppE CLI affected commands
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# {{{projectName}}}
|
|
2
|
+
{{#appDescription}}
|
|
3
|
+
{{{appDescription}}}
|
|
4
|
+
{{/appDescription}}
|
|
5
|
+
|
|
6
|
+
This Python package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project:
|
|
7
|
+
|
|
8
|
+
- API version: {{appVersion}}
|
|
9
|
+
- Package version: {{packageVersion}}
|
|
10
|
+
{{^hideGenerationTimestamp}}
|
|
11
|
+
- Build date: {{generatedDate}}
|
|
12
|
+
{{/hideGenerationTimestamp}}
|
|
13
|
+
- Build package: {{generatorClass}}
|
|
14
|
+
{{#infoUrl}}
|
|
15
|
+
For more information, please visit [{{{infoUrl}}}]({{{infoUrl}}})
|
|
16
|
+
{{/infoUrl}}
|
|
17
|
+
|
|
18
|
+
## Requirements.
|
|
19
|
+
|
|
20
|
+
Python 2.7 and 3.4+
|
|
21
|
+
|
|
22
|
+
## Installation & Usage
|
|
23
|
+
### pip install
|
|
24
|
+
|
|
25
|
+
If the python package is hosted on Github, you can install directly from Github
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
pip install git+https://github.com/{{{gitUserId}}}/{{{gitRepoId}}}.git
|
|
29
|
+
```
|
|
30
|
+
(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/{{{gitUserId}}}/{{{gitRepoId}}}.git`)
|
|
31
|
+
|
|
32
|
+
Then import the package:
|
|
33
|
+
```python
|
|
34
|
+
import {{{packageName}}}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Setuptools
|
|
38
|
+
|
|
39
|
+
Install via [Setuptools](http://pypi.python.org/pypi/setuptools).
|
|
40
|
+
|
|
41
|
+
```sh
|
|
42
|
+
python setup.py install --user
|
|
43
|
+
```
|
|
44
|
+
(or `sudo python setup.py install` to install the package for all users)
|
|
45
|
+
|
|
46
|
+
Then import the package:
|
|
47
|
+
```python
|
|
48
|
+
import {{{packageName}}}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Getting Started
|
|
52
|
+
|
|
53
|
+
Please follow the [installation procedure](#installation--usage) and then run the following:
|
|
54
|
+
|
|
55
|
+
```python
|
|
56
|
+
from __future__ import print_function
|
|
57
|
+
import time
|
|
58
|
+
import {{{packageName}}}
|
|
59
|
+
from {{{packageName}}}.rest import ApiException
|
|
60
|
+
from pprint import pprint
|
|
61
|
+
{{#apiInfo}}{{#apis}}{{#-first}}{{#operations}}{{#operation}}{{#-first}}{{#hasAuthMethods}}{{#authMethods}}{{#isBasic}}
|
|
62
|
+
# Configure HTTP basic authorization: {{{name}}}
|
|
63
|
+
configuration = {{{packageName}}}.Configuration()
|
|
64
|
+
configuration.username = 'YOUR_USERNAME'
|
|
65
|
+
configuration.password = 'YOUR_PASSWORD'{{/isBasic}}{{#isApiKey}}
|
|
66
|
+
# Configure API key authorization: {{{name}}}
|
|
67
|
+
configuration = {{{packageName}}}.Configuration()
|
|
68
|
+
configuration.api_key['{{{keyParamName}}}'] = 'YOUR_API_KEY'
|
|
69
|
+
# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
|
|
70
|
+
# configuration.api_key_prefix['{{{keyParamName}}}'] = 'Bearer'{{/isApiKey}}{{#isOAuth}}
|
|
71
|
+
# Configure OAuth2 access token for authorization: {{{name}}}
|
|
72
|
+
configuration = {{{packageName}}}.Configuration()
|
|
73
|
+
configuration.access_token = 'YOUR_ACCESS_TOKEN'{{/isOAuth}}{{/authMethods}}
|
|
74
|
+
{{/hasAuthMethods}}
|
|
75
|
+
|
|
76
|
+
# create an instance of the API class
|
|
77
|
+
api_instance = {{{packageName}}}.{{{classname}}}({{{packageName}}}.ApiClient(configuration))
|
|
78
|
+
{{#allParams}}{{paramName}} = {{{example}}} # {{{dataType}}} | {{{description}}}{{^required}} (optional){{/required}}{{#defaultValue}} (default to {{{.}}}){{/defaultValue}}
|
|
79
|
+
{{/allParams}}
|
|
80
|
+
|
|
81
|
+
try:
|
|
82
|
+
{{#summary}} # {{{.}}}
|
|
83
|
+
{{/summary}} {{#returnType}}api_response = {{/returnType}}api_instance.{{{operationId}}}({{#allParams}}{{#required}}{{paramName}}{{/required}}{{^required}}{{paramName}}={{paramName}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}){{#returnType}}
|
|
84
|
+
pprint(api_response){{/returnType}}
|
|
85
|
+
except ApiException as e:
|
|
86
|
+
print("Exception when calling {{classname}}->{{operationId}}: %s\n" % e)
|
|
87
|
+
{{/-first}}{{/operation}}{{/operations}}{{/-first}}{{/apis}}{{/apiInfo}}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Documentation for API Endpoints
|
|
91
|
+
|
|
92
|
+
All URIs are relative to *{{basePath}}*
|
|
93
|
+
|
|
94
|
+
Class | Method | HTTP request | Description
|
|
95
|
+
------------ | ------------- | ------------- | -------------
|
|
96
|
+
{{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}*{{classname}}* | [**{{operationId}}**]({{apiDocPath}}{{classname}}.md#{{operationIdLowerCase}}) | **{{httpMethod}}** {{path}} | {{#summary}}{{summary}}{{/summary}}
|
|
97
|
+
{{/operation}}{{/operations}}{{/apis}}{{/apiInfo}}
|
|
98
|
+
|
|
99
|
+
## Documentation For Models
|
|
100
|
+
|
|
101
|
+
{{#models}}{{#model}} - [{{{classname}}}]({{modelDocPath}}{{{classname}}}.md)
|
|
102
|
+
{{/model}}{{/models}}
|
|
103
|
+
|
|
104
|
+
## Documentation For Authorization
|
|
105
|
+
|
|
106
|
+
{{^authMethods}} All endpoints do not require authorization.
|
|
107
|
+
{{/authMethods}}{{#authMethods}}{{#last}} Authentication schemes defined for the API:{{/last}}{{/authMethods}}
|
|
108
|
+
{{#authMethods}}## {{{name}}}
|
|
109
|
+
|
|
110
|
+
{{#isApiKey}}- **Type**: API key
|
|
111
|
+
- **API key parameter name**: {{{keyParamName}}}
|
|
112
|
+
- **Location**: {{#isKeyInQuery}}URL query string{{/isKeyInQuery}}{{#isKeyInHeader}}HTTP header{{/isKeyInHeader}}
|
|
113
|
+
{{/isApiKey}}
|
|
114
|
+
{{#isBasic}}- **Type**: HTTP basic authentication
|
|
115
|
+
{{/isBasic}}
|
|
116
|
+
{{#isOAuth}}- **Type**: OAuth
|
|
117
|
+
- **Flow**: {{{flow}}}
|
|
118
|
+
- **Authorization URL**: {{{authorizationUrl}}}
|
|
119
|
+
- **Scopes**: {{^scopes}}N/A{{/scopes}}
|
|
120
|
+
{{#scopes}} - **{{{scope}}}**: {{{description}}}
|
|
121
|
+
{{/scopes}}
|
|
122
|
+
{{/isOAuth}}
|
|
123
|
+
|
|
124
|
+
{{/authMethods}}
|
|
125
|
+
|
|
126
|
+
## Author
|
|
127
|
+
|
|
128
|
+
{{#apiInfo}}{{#apis}}{{^hasMore}}{{infoEmail}}
|
|
129
|
+
{{/hasMore}}{{/apis}}{{/apiInfo}}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
# flake8: noqa
|
|
4
|
+
|
|
5
|
+
{{>partial_header}}
|
|
6
|
+
|
|
7
|
+
from __future__ import absolute_import
|
|
8
|
+
|
|
9
|
+
# import apis into sdk package
|
|
10
|
+
{{#apiInfo}}{{#apis}}from {{apiPackage}}.{{classVarName}} import {{classname}}
|
|
11
|
+
{{/apis}}{{/apiInfo}}
|
|
12
|
+
# import ApiClient
|
|
13
|
+
from {{packageName}}.api_client import ApiClient
|
|
14
|
+
from {{packageName}}.configuration import Configuration
|
|
15
|
+
# import models into sdk package
|
|
16
|
+
{{#models}}{{#model}}from {{modelPackage}}.{{classFilename}} import {{classname}}
|
|
17
|
+
{{/model}}{{/models}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# coding: utf-8
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
{{>partial_header}}
|
|
4
|
+
|
|
5
|
+
from __future__ import absolute_import
|
|
6
|
+
|
|
7
|
+
import re # noqa: F401
|
|
8
|
+
|
|
9
|
+
# python 2 and python 3 compatibility library
|
|
10
|
+
import six
|
|
11
|
+
|
|
12
|
+
from {{packageName}}.api_client import ApiClient
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
{{#operations}}
|
|
16
|
+
class {{classname}}(object):
|
|
17
|
+
"""NOTE: This class is auto generated by the swagger code generator program.
|
|
18
|
+
|
|
19
|
+
Do not edit the class manually.
|
|
20
|
+
Ref: https://github.com/swagger-api/swagger-codegen
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
def __init__(self, api_client=None):
|
|
24
|
+
if api_client is None:
|
|
25
|
+
api_client = ApiClient()
|
|
26
|
+
self.api_client = api_client
|
|
27
|
+
{{#operation}}
|
|
28
|
+
|
|
29
|
+
def {{operationId}}(self, {{#sortParamsByRequiredFlag}}{{#allParams}}{{#required}}{{baseName}}, {{/required}}{{/allParams}}{{/sortParamsByRequiredFlag}}**kwargs): # noqa: E501
|
|
30
|
+
"""{{#summary}}{{{.}}}{{/summary}}{{^summary}}{{operationId}}{{/summary}} # noqa: E501
|
|
31
|
+
|
|
32
|
+
{{#notes}}
|
|
33
|
+
{{{notes}}} # noqa: E501
|
|
34
|
+
{{/notes}}
|
|
35
|
+
This method makes a synchronous HTTP request by default. To make an
|
|
36
|
+
asynchronous HTTP request, please pass async_req=True
|
|
37
|
+
{{#sortParamsByRequiredFlag}}
|
|
38
|
+
>>> thread = api.{{operationId}}({{#allParams}}{{#required}}{{baseName}}, {{/required}}{{/allParams}}async_req=True)
|
|
39
|
+
{{/sortParamsByRequiredFlag}}
|
|
40
|
+
{{^sortParamsByRequiredFlag}}
|
|
41
|
+
>>> thread = api.{{operationId}}({{#allParams}}{{#required}}{{baseName}}={{baseName}}_value, {{/required}}{{/allParams}}async_req=True)
|
|
42
|
+
{{/sortParamsByRequiredFlag}}
|
|
43
|
+
>>> result = thread.get()
|
|
44
|
+
|
|
45
|
+
:param async_req bool
|
|
46
|
+
{{#allParams}}
|
|
47
|
+
:param {{dataType}} {{baseName}}:{{#description}} {{{description}}}{{/description}}{{#required}} (required){{/required}}{{#optional}}(optional){{/optional}}
|
|
48
|
+
{{/allParams}}
|
|
49
|
+
:return: {{#returnType}}{{returnType}}{{/returnType}}{{^returnType}}None{{/returnType}}
|
|
50
|
+
If the method is called asynchronously,
|
|
51
|
+
returns the request thread.
|
|
52
|
+
"""
|
|
53
|
+
kwargs['_return_http_data_only'] = True
|
|
54
|
+
if kwargs.get('async_req'):
|
|
55
|
+
return self.{{operationId}}_with_http_info({{#sortParamsByRequiredFlag}}{{#allParams}}{{#required}}{{baseName}}, {{/required}}{{/allParams}}{{/sortParamsByRequiredFlag}}**kwargs) # noqa: E501
|
|
56
|
+
else:
|
|
57
|
+
(data) = self.{{operationId}}_with_http_info({{#sortParamsByRequiredFlag}}{{#allParams}}{{#required}}{{baseName}}, {{/required}}{{/allParams}}{{/sortParamsByRequiredFlag}}**kwargs) # noqa: E501
|
|
58
|
+
return data
|
|
59
|
+
|
|
60
|
+
def {{operationId}}_with_http_info(self, {{#sortParamsByRequiredFlag}}{{#allParams}}{{#required}}{{baseName}}, {{/required}}{{/allParams}}{{/sortParamsByRequiredFlag}}**kwargs): # noqa: E501
|
|
61
|
+
"""{{#summary}}{{{.}}}{{/summary}}{{^summary}}{{operationId}}{{/summary}} # noqa: E501
|
|
62
|
+
|
|
63
|
+
{{#notes}}
|
|
64
|
+
{{{notes}}} # noqa: E501
|
|
65
|
+
{{/notes}}
|
|
66
|
+
This method makes a synchronous HTTP request by default. To make an
|
|
67
|
+
asynchronous HTTP request, please pass async_req=True
|
|
68
|
+
{{#sortParamsByRequiredFlag}}
|
|
69
|
+
>>> thread = api.{{operationId}}_with_http_info({{#allParams}}{{#required}}{{baseName}}, {{/required}}{{/allParams}}async_req=True)
|
|
70
|
+
{{/sortParamsByRequiredFlag}}
|
|
71
|
+
{{^sortParamsByRequiredFlag}}
|
|
72
|
+
>>> thread = api.{{operationId}}_with_http_info({{#allParams}}{{#required}}{{baseName}}={{baseName}}_value, {{/required}}{{/allParams}}async_req=True)
|
|
73
|
+
{{/sortParamsByRequiredFlag}}
|
|
74
|
+
>>> result = thread.get()
|
|
75
|
+
|
|
76
|
+
:param async_req bool
|
|
77
|
+
{{#allParams}}
|
|
78
|
+
:param {{dataType}} {{baseName}}:{{#description}} {{{description}}}{{/description}}{{#required}} (required){{/required}}{{#optional}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/optional}}
|
|
79
|
+
{{/allParams}}
|
|
80
|
+
:return: {{#returnType}}{{returnType}}{{/returnType}}{{^returnType}}None{{/returnType}}
|
|
81
|
+
If the method is called asynchronously,
|
|
82
|
+
returns the request thread.
|
|
83
|
+
"""
|
|
84
|
+
|
|
85
|
+
all_params = [{{#allParams}}'{{baseName}}'{{#hasMore}}, {{/hasMore}}{{/allParams}}] # noqa: E501
|
|
86
|
+
all_params.append('async_req')
|
|
87
|
+
all_params.append('_return_http_data_only')
|
|
88
|
+
all_params.append('_preload_content')
|
|
89
|
+
all_params.append('_request_timeout')
|
|
90
|
+
|
|
91
|
+
params = locals()
|
|
92
|
+
for key, val in six.iteritems(params['kwargs']):
|
|
93
|
+
if key not in all_params:
|
|
94
|
+
raise TypeError(
|
|
95
|
+
"Got an unexpected keyword argument '%s'"
|
|
96
|
+
" to method {{operationId}}" % key
|
|
97
|
+
)
|
|
98
|
+
params[key] = val
|
|
99
|
+
del params['kwargs']
|
|
100
|
+
{{#allParams}}
|
|
101
|
+
{{#required}}
|
|
102
|
+
# verify the required parameter '{{baseName}}' is set
|
|
103
|
+
if self.api_client.client_side_validation and ('{{baseName}}' not in params or
|
|
104
|
+
params['{{baseName}}'] is None): # noqa: E501
|
|
105
|
+
raise ValueError("Missing the required parameter `{{baseName}}` when calling `{{operationId}}`") # noqa: E501
|
|
106
|
+
{{/required}}
|
|
107
|
+
{{/allParams}}
|
|
108
|
+
|
|
109
|
+
{{#allParams}}
|
|
110
|
+
{{#hasValidation}}
|
|
111
|
+
{{#maxLength}}
|
|
112
|
+
if self.api_client.client_side_validation and ('{{baseName}}' in params and
|
|
113
|
+
len(params['{{baseName}}']) > {{maxLength}}):
|
|
114
|
+
raise ValueError("Invalid value for parameter `{{baseName}}` when calling `{{operationId}}`, length must be less than or equal to `{{maxLength}}`") # noqa: E501
|
|
115
|
+
{{/maxLength}}
|
|
116
|
+
{{#minLength}}
|
|
117
|
+
if self.api_client.client_side_validation and ('{{baseName}}' in params and
|
|
118
|
+
len(params['{{baseName}}']) < {{minLength}}):
|
|
119
|
+
raise ValueError("Invalid value for parameter `{{baseName}}` when calling `{{operationId}}`, length must be greater than or equal to `{{minLength}}`") # noqa: E501
|
|
120
|
+
{{/minLength}}
|
|
121
|
+
{{#maximum}}
|
|
122
|
+
if self.api_client.client_side_validation and ('{{baseName}}' in params and params['{{baseName}}'] >{{#exclusiveMaximum}}={{/exclusiveMaximum}} {{maximum}}): # noqa: E501
|
|
123
|
+
raise ValueError("Invalid value for parameter `{{baseName}}` when calling `{{operationId}}`, must be a value less than {{^exclusiveMaximum}}or equal to {{/exclusiveMaximum}}`{{maximum}}`") # noqa: E501
|
|
124
|
+
{{/maximum}}
|
|
125
|
+
{{#minimum}}
|
|
126
|
+
if self.api_client.client_side_validation and ('{{baseName}}' in params and params['{{baseName}}'] <{{#exclusiveMinimum}}={{/exclusiveMinimum}} {{minimum}}): # noqa: E501
|
|
127
|
+
raise ValueError("Invalid value for parameter `{{baseName}}` when calling `{{operationId}}`, must be a value greater than {{^exclusiveMinimum}}or equal to {{/exclusiveMinimum}}`{{minimum}}`") # noqa: E501
|
|
128
|
+
{{/minimum}}
|
|
129
|
+
{{#pattern}}
|
|
130
|
+
if self.api_client.client_side_validation and ('{{baseName}}' in params and not re.search(r'{{{vendorExtensions.x-regex}}}', params['{{baseName}}']{{#vendorExtensions.x-modifiers}}{{#-first}}, flags={{/-first}}re.{{.}}{{^-last}} | {{/-last}}{{/vendorExtensions.x-modifiers}})): # noqa: E501
|
|
131
|
+
raise ValueError("Invalid value for parameter `{{baseName}}` when calling `{{operationId}}`, must conform to the pattern `{{{pattern}}}`") # noqa: E501
|
|
132
|
+
{{/pattern}}
|
|
133
|
+
{{#maxItems}}
|
|
134
|
+
if self.api_client.client_side_validation and ('{{baseName}}' in params and
|
|
135
|
+
len(params['{{baseName}}']) > {{maxItems}}):
|
|
136
|
+
raise ValueError("Invalid value for parameter `{{baseName}}` when calling `{{operationId}}`, number of items must be less than or equal to `{{maxItems}}`") # noqa: E501
|
|
137
|
+
{{/maxItems}}
|
|
138
|
+
{{#minItems}}
|
|
139
|
+
if self.api_client.client_side_validation and ('{{baseName}}' in params and
|
|
140
|
+
len(params['{{baseName}}']) < {{minItems}}):
|
|
141
|
+
raise ValueError("Invalid value for parameter `{{baseName}}` when calling `{{operationId}}`, number of items must be greater than or equal to `{{minItems}}`") # noqa: E501
|
|
142
|
+
{{/minItems}}
|
|
143
|
+
{{/hasValidation}}
|
|
144
|
+
{{#-last}}
|
|
145
|
+
{{/-last}}
|
|
146
|
+
{{/allParams}}
|
|
147
|
+
collection_formats = {}
|
|
148
|
+
|
|
149
|
+
path_params = {}
|
|
150
|
+
{{#pathParams}}
|
|
151
|
+
if '{{baseName}}' in params:
|
|
152
|
+
path_params['{{baseName}}'] = params['{{baseName}}']{{#isListContainer}} # noqa: E501
|
|
153
|
+
collection_formats['{{baseName}}'] = '{{collectionFormat}}'{{/isListContainer}} # noqa: E501
|
|
154
|
+
{{/pathParams}}
|
|
155
|
+
|
|
156
|
+
query_params = []
|
|
157
|
+
{{#queryParams}}
|
|
158
|
+
if '{{baseName}}' in params:
|
|
159
|
+
query_params.append(('{{baseName}}', params['{{baseName}}'])){{#isListContainer}} # noqa: E501
|
|
160
|
+
collection_formats['{{baseName}}'] = '{{collectionFormat}}'{{/isListContainer}} # noqa: E501
|
|
161
|
+
{{/queryParams}}
|
|
162
|
+
|
|
163
|
+
header_params = {}
|
|
164
|
+
{{#headerParams}}
|
|
165
|
+
if '{{baseName}}' in params:
|
|
166
|
+
header_params['{{baseName}}'] = params['{{baseName}}']{{#isListContainer}} # noqa: E501
|
|
167
|
+
collection_formats['{{baseName}}'] = '{{collectionFormat}}'{{/isListContainer}} # noqa: E501
|
|
168
|
+
{{/headerParams}}
|
|
169
|
+
|
|
170
|
+
form_params = []
|
|
171
|
+
local_var_files = {}
|
|
172
|
+
{{#formParams}}
|
|
173
|
+
if '{{baseName}}' in params:
|
|
174
|
+
{{#notFile}}form_params.append(('{{baseName}}', params['{{baseName}}'])){{/notFile}}{{#isFile}}local_var_files['{{baseName}}'] = params['{{baseName}}']{{/isFile}}{{#isListContainer}} # noqa: E501
|
|
175
|
+
collection_formats['{{baseName}}'] = '{{collectionFormat}}'{{/isListContainer}} # noqa: E501
|
|
176
|
+
{{/formParams}}
|
|
177
|
+
|
|
178
|
+
body_params = None
|
|
179
|
+
{{#bodyParam}}
|
|
180
|
+
if '{{baseName}}' in params:
|
|
181
|
+
body_params = params['{{baseName}}']
|
|
182
|
+
{{/bodyParam}}
|
|
183
|
+
{{#hasProduces}}
|
|
184
|
+
# HTTP header `Accept`
|
|
185
|
+
header_params['Accept'] = self.api_client.select_header_accept(
|
|
186
|
+
[{{#produces}}'{{{mediaType}}}'{{#hasMore}}, {{/hasMore}}{{/produces}}]) # noqa: E501
|
|
187
|
+
|
|
188
|
+
{{/hasProduces}}
|
|
189
|
+
{{#hasConsumes}}
|
|
190
|
+
# HTTP header `Content-Type`
|
|
191
|
+
header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
|
|
192
|
+
[{{#consumes}}'{{{mediaType}}}'{{#hasMore}}, {{/hasMore}}{{/consumes}}]) # noqa: E501
|
|
193
|
+
|
|
194
|
+
{{/hasConsumes}}
|
|
195
|
+
# Authentication setting
|
|
196
|
+
auth_settings = [{{#authMethods}}'{{name}}'{{#hasMore}}, {{/hasMore}}{{/authMethods}}] # noqa: E501
|
|
197
|
+
|
|
198
|
+
return self.api_client.call_api(
|
|
199
|
+
'{{{path}}}', '{{httpMethod}}',
|
|
200
|
+
path_params,
|
|
201
|
+
query_params,
|
|
202
|
+
header_params,
|
|
203
|
+
body=body_params,
|
|
204
|
+
post_params=form_params,
|
|
205
|
+
files=local_var_files,
|
|
206
|
+
response_type={{#returnType}}'{{returnType}}'{{/returnType}}{{^returnType}}None{{/returnType}}, # noqa: E501
|
|
207
|
+
auth_settings=auth_settings,
|
|
208
|
+
async_req=params.get('async_req'),
|
|
209
|
+
_return_http_data_only=params.get('_return_http_data_only'),
|
|
210
|
+
_preload_content=params.get('_preload_content', True),
|
|
211
|
+
_request_timeout=params.get('_request_timeout'),
|
|
212
|
+
collection_formats=collection_formats)
|
|
213
|
+
{{/operation}}
|
|
214
|
+
{{/operations}}
|