diff --git a/backend/mekeweserver/pipeline_status_clerk.py b/backend/mekeweserver/pipeline_status_clerk.py index bdce0c4..0b199b3 100644 --- a/backend/mekeweserver/pipeline_status_clerk.py +++ b/backend/mekeweserver/pipeline_status_clerk.py @@ -408,7 +408,10 @@ def get_next_pipeline_that_is_expired( pipeline_status = MetaKeggPipelineDef.model_validate_json( pipeline_state_json_raw ) - if self.is_pipeline_run_expired(pipeline_status): + if ( + self.is_pipeline_run_expired(pipeline_status) + and pipeline_status.state != "expired" + ): if set_status_expired: pipeline_status.state = "expired" self.set_pipeline_run_definition(pipeline_status) @@ -460,7 +463,7 @@ def is_pipeline_run_deletable(self, pipeline_status: MetaKeggPipelineDef): minutes=config.PIPELINE_RESULT_EXPIRED_AFTER_MIN ) deleteable_datetime = expire_datetime + datetime.timedelta( - minutes=config.PIPELINE_ABANDONED_DEFINITION_DELETED_AFTER + minutes=config.PIPELINE_RESULT_DELETED_AFTER_MIN ) if deleteable_datetime < datetime.datetime.now(tz=datetime.timezone.utc): return True diff --git a/openapi.json b/openapi.json index 99f5732..a9f7820 100644 --- a/openapi.json +++ b/openapi.json @@ -1 +1 @@ -{"openapi": "3.1.0", "info": {"title": "MetaKegg Web REST API", "version": "0.0.0"}, "paths": {"/health": {"get": {"tags": ["Health"], "summary": "Get Health State", "description": "Check if server is running normal", "operationId": "get_health_state_health_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggWebServerHealthState"}}}}}}}, "/api/analysis": {"get": {"tags": ["Analysis Methods"], "summary": "List Available Analysis Methods", "description": "List all MetaKEGG analysis methods available. The name will be used to start a analysis pipeline run in endpoint `/pipeline/{pipeline_ticket_id}/run/...`", "operationId": "list_available_analysis_methods_api_analysis_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/MetaKeggPipelineAnalysisMethod"}, "type": "array", "title": "Response List Available Analysis Methods Api Analysis Get"}}}}}}}, "/api/{analysis_method_name}/params": {"get": {"tags": ["Analysis Methods"], "summary": "List Available Analysis Parameters", "description": "List all MetaKEGG parameters per analysis methods available.", "operationId": "list_available_analysis_parameters_api__analysis_method_name__params_get", "parameters": [{"name": "analysis_method_name", "in": "path", "required": true, "schema": {"enum": ["single_input_genes", "single_input_transcripts", "single_input_genes_bulk_mapping", "multiple_inputs", "single_input_with_methylation", "single_input_with_methylation_quantification", "single_input_with_miRNA", "single_input_with_miRNA_quantification", "single_input_with_methylation_and_miRNA"], "type": "string", "title": "Analysis Method Name"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineInputParamsDocs"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/pipeline": {"post": {"tags": ["Pipeline"], "summary": "Initialize A Metakegg Pipeline Run Definition", "description": "Define a new meta Kegg pipeline run. The pipeline-run will not start immediatily but be queued. The response of this endpoint will be a ticket that can be used to track the status of your pipeline run.", "operationId": "initialize_a_metakegg_pipeline_run_definition_api_pipeline_post", "requestBody": {"content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/MetaKeggPipelineInputParamsValuesAllOptional"}, {"type": "null"}], "title": "Pipeline Params"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineTicket"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/pipeline/{pipeline_ticket_id}": {"delete": {"tags": ["Pipeline"], "summary": "Delete A Metakegg Pipeline Run Definition", "description": "Delete an existing pipeline definiton with all input and output files.", "operationId": "delete_a_metakegg_pipeline_run_definition_api_pipeline__pipeline_ticket_id__delete", "parameters": [{"name": "pipeline_ticket_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Pipeline Ticket Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["Pipeline"], "summary": "Update Metakegg Pipeline Non File Parameters", "description": "Update the pipeline params of an allready existing pipeline run definition. \n The pipeline must **NOT** be started via `/pipeline/{pipeline_ticket_id}/run/{analysis_method_name}` allready. \n Only provided params get updated. You dont have to supply all params every PATCH call. \n For setting `file`-based parameters use the endpoint `/api/pipeline/{pipeline_ticket_id}/upload`", "operationId": "update_metakegg_pipeline_non_file_parameters_api_pipeline__pipeline_ticket_id__patch", "parameters": [{"name": "pipeline_ticket_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Pipeline Ticket Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineInputParamsValuesAllOptional"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineDef"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/pipeline/{pipeline_ticket_id}/file/upload/{param_name}": {"post": {"tags": ["Pipeline"], "summary": "Attach File To Meta Kegg Pipeline Run Definition", "description": "Add a file to an non started/queued pipeline-run definition", "operationId": "attach_file_to_meta_kegg_pipeline_run_definition_api_pipeline__pipeline_ticket_id__file_upload__param_name__post", "parameters": [{"name": "pipeline_ticket_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Pipeline Ticket Id"}}, {"name": "param_name", "in": "path", "required": true, "schema": {"type": "string", "title": "Param Name"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/Body_attach_file_to_meta_kegg_pipeline_run_definition_api_pipeline__pipeline_ticket_id__file_upload__param_name__post"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineDef"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/pipeline/{pipeline_ticket_id}/file/remove/{param_name}/{file_name}": {"delete": {"tags": ["Pipeline"], "summary": "Remove File From Meta Kegg Pipeline Run Definition", "description": "Remove a file from an non started/queued pipeline-run definition", "operationId": "remove_file_from_meta_kegg_pipeline_run_definition_api_pipeline__pipeline_ticket_id__file_remove__param_name___file_name__delete", "parameters": [{"name": "param_name", "in": "path", "required": true, "schema": {"type": "string", "title": "Param Name"}}, {"name": "file_name", "in": "path", "required": true, "schema": {"type": "string", "title": "File Name"}}, {"name": "pipeline_ticket_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Pipeline Ticket Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineDef"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/pipeline/{pipeline_ticket_id}/set/{analysis_method_name}": {"patch": {"tags": ["Pipeline"], "summary": "Set Pipeline Method", "description": "Qeueu the pipeline-run. If the queue is passed the pipeline will change from 'queued' into 'running' state.", "operationId": "set_pipeline_method_api_pipeline__pipeline_ticket_id__set__analysis_method_name__patch", "parameters": [{"name": "pipeline_ticket_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Pipeline Ticket Id"}}, {"name": "analysis_method_name", "in": "path", "required": true, "schema": {"enum": ["single_input_genes", "single_input_transcripts", "single_input_genes_bulk_mapping", "multiple_inputs", "single_input_with_methylation", "single_input_with_methylation_quantification", "single_input_with_miRNA", "single_input_with_miRNA_quantification", "single_input_with_methylation_and_miRNA"], "type": "string", "title": "Analysis Method Name"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineDef"}}}}, "404": {"description": "Pipeline-run could not be found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/mekeweserver__fastapi_routes__Error__1"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/pipeline/{pipeline_ticket_id}/run": {"post": {"tags": ["Pipeline"], "summary": "Start Pipeline Run", "description": "Qeueu the pipeline-run. If the queue is passed the pipeline will change from 'queued' into 'running' state.", "operationId": "start_pipeline_run_api_pipeline__pipeline_ticket_id__run_post", "parameters": [{"name": "pipeline_ticket_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Pipeline Ticket Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineDef"}}}}, "404": {"description": "Pipeline-run could not be found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/mekeweserver__fastapi_routes__Error__2"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/pipeline/{pipeline_ticket_id}/status": {"get": {"tags": ["Pipeline"], "summary": "Get Pipeline Run Status", "description": "Check the status of a triggered pipeline run.", "operationId": "get_pipeline_run_status_api_pipeline__pipeline_ticket_id__status_get", "parameters": [{"name": "pipeline_ticket_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Pipeline Ticket Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineDef"}}}}, "404": {"description": "Pipeline-run could not be found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/mekeweserver__fastapi_routes__Error__3"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/pipeline/{pipeline_ticket_id}/result": {"get": {"tags": ["Pipeline"], "summary": "Download Pipeline Run Result", "description": "Download the result of a succeded pipeline run.", "operationId": "download_pipeline_run_result_api_pipeline__pipeline_ticket_id__result_get", "parameters": [{"name": "pipeline_ticket_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Pipeline Ticket Id"}}], "responses": {"200": {"description": "Successful Response"}, "404": {"description": "Pipeline-run could not be found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/mekeweserver__fastapi_routes__Error__4"}}}}, "410": {"description": "Pipeline-run expired and result is cleaned.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/mekeweserver__fastapi_routes__Error__5"}}}}, "425": {"description": "Pipeline-run is not finished.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/mekeweserver__fastapi_routes__Error__6"}}}}, "424": {"description": "Pipeline-run failed. Check endpoint '/pipeline/{pipeline_ticket_id}/status' for details", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/mekeweserver__fastapi_routes__Error__7"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/config": {"get": {"tags": ["Config/Infos"], "summary": "Get Config", "description": "Get some infos and config for the client", "operationId": "get_config_config_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggClientConfig"}}}}}}}, "/info-links": {"get": {"tags": ["Config/Infos"], "summary": "Get Links", "description": "Get some infos and config for the client", "operationId": "get_links_info_links_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/MetaKeggClientLink"}, "type": "array", "title": "Response Get Links Info Links Get"}}}}}}}, "/stats": {"get": {"tags": ["Config/Infos"], "summary": "Get Statistics", "description": "Get some statistics about past pipeline runs", "operationId": "get_statistics_stats_get", "parameters": [{"name": "days_limit", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Only include pipeline runs that are not older as this amount of days", "title": "Days Limit"}, "description": "Only include pipeline runs that are not older as this amount of days"}, {"name": "days_offset", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Only include pipeline runs that are at least older as this amount of days", "title": "Days Offset"}, "description": "Only include pipeline runs that are at least older as this amount of days"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineStatistics"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/{path_name}": {"get": {"tags": ["Webclient"], "summary": "Serve Frontend", "description": "Client serving path", "operationId": "serve_frontend__path_name__get", "parameters": [{"name": "path_name", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Path Name"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}}, "components": {"schemas": {"Body_attach_file_to_meta_kegg_pipeline_run_definition_api_pipeline__pipeline_ticket_id__file_upload__param_name__post": {"properties": {"file": {"type": "string", "format": "binary", "title": "File"}}, "type": "object", "required": ["file"], "title": "Body_attach_file_to_meta_kegg_pipeline_run_definition_api_pipeline__pipeline_ticket_id__file_upload__param_name__post"}, "GlobalParams": {"properties": {"sheet_name_paths": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Sheet Name Paths", "description": "Sheet name containing the pathway information (see docs). Has to apply to all input files in case of multiple.", "default": "pathways"}, "sheet_name_genes": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Sheet Name Genes", "description": "Sheet name for gene information (see docs). Has to apply to all input files in case of multiple.", "default": "gene_metrics"}, "genes_column": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Genes Column", "description": "Column name for gene symbols in the sheet_name_genes", "default": "gene_symbol"}, "log2fc_column": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Log2Fc Column", "description": "Column name for log2fc values in the sheet_name_genes", "default": "logFC"}, "compounds_list": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Compounds List", "description": "List of compound IDs to mapped in pathways if found."}, "save_to_eps": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Save To Eps", "description": "True/False statement to save the maps and colorscales or legends as seperate .eps files in addition to the .pdf exports", "default": false}}, "type": "object", "title": "GlobalParams"}, "HTTPValidationError": {"properties": {"detail": {"items": {"$ref": "#/components/schemas/ValidationError"}, "type": "array", "title": "Detail"}}, "type": "object", "title": "HTTPValidationError"}, "MetaKeggClientConfig": {"properties": {"contact_email": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Contact Email", "description": "Email that clients can present for contact."}, "bug_report_email": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Bug Report Email", "description": "Email address that is used for bug reports. Will be the same as `contact_email` if not explicit configured in the backend otherwise."}, "terms_and_conditions": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Terms And Conditions", "description": "Terms and Conditions presented to the user."}, "pipeline_ticket_expire_time_sec": {"type": "integer", "title": "Pipeline Ticket Expire Time Sec", "description": "Time how long a Pipeline ticket is valid. This is only for informational purposes as the backend is handling ticket expiring.", "default": 86400}, "entry_text": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Entry Text", "default": "I am the entry text. You can configure me via the config variable ENTRY_TEXT. \nNo developer needs to be harmed for that."}}, "type": "object", "title": "MetaKeggClientConfig"}, "MetaKeggClientLink": {"properties": {"title": {"type": "string", "title": "Title", "description": "Title of the link"}, "link": {"type": "string", "title": "Link", "description": "URL of the link"}}, "type": "object", "required": ["title", "link"], "title": "MetaKeggClientLink"}, "MetaKeggPipelineAnalysisMethod": {"properties": {"name": {"type": "string", "title": "Name"}, "display_name": {"type": "string", "title": "Display Name"}, "internal_id": {"type": "integer", "title": "Internal Id"}, "desc": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Desc"}}, "type": "object", "required": ["name", "display_name", "internal_id"], "title": "MetaKeggPipelineAnalysisMethod"}, "MetaKeggPipelineDef": {"properties": {"ticket": {"$ref": "#/components/schemas/MetaKeggPipelineTicket"}, "state": {"type": "string", "enum": ["initialized", "queued", "running", "failed", "success", "expired"], "title": "State", "description": "When a new pipeline run is started it will be `queued` first. After there is slot free in the background worker it start `running`. based on the failure or success of this run the state will be `failed` or `success`. The result of a pipeline run will be cleaned/deleted after 1440 minutes and not be available anymore. After that the state will be `expired`", "default": "initialized"}, "place_in_queue": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Place In Queue", "description": "Shows how many pipeline runs are ahead of a queued pipeline-run", "examples": [4]}, "error": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Error", "description": "If the state of a pipeline run is `failed`, the error message will be logged into this attribute", "examples": [null]}, "error_traceback": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Error Traceback", "description": "If the state of a pipeline run is `failed`, the error traceback will be logged into this attribute", "examples": [null]}, "output_log": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Output Log", "description": "Output prints of a MetaKegg Pipeline analysis run."}, "result_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Result Path", "description": "If the state of a pipeline run is `success`, the result can be downloaded from this path.", "examples": [null]}, "pipeline_params": {"$ref": "#/components/schemas/MetaKeggPipelineInputParamsValuesAllOptional"}, "pipeline_analyses_method": {"anyOf": [{"$ref": "#/components/schemas/MetaKeggPipelineAnalysisMethod"}, {"type": "null"}]}, "pipeline_input_file_names": {"anyOf": [{"additionalProperties": {"items": {"type": "string"}, "type": "array"}, "type": "object"}, {"type": "null"}], "title": "Pipeline Input File Names", "description": "Uploaded file per parameter"}, "pipeline_output_zip_file_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Pipeline Output Zip File Name"}, "created_at_utc": {"type": "string", "format": "date-time", "title": "Created At Utc"}, "queued_at_utc": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Queued At Utc"}, "started_at_utc": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Started At Utc"}, "finished_at_utc": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Finished At Utc"}}, "type": "object", "required": ["ticket", "pipeline_params"], "title": "MetaKeggPipelineDef"}, "MetaKeggPipelineInputParamDocItem": {"properties": {"name": {"type": "string", "title": "Name"}, "type": {"type": "string", "enum": ["str", "int", "float", "bool", "file"], "title": "Type", "default": "str"}, "is_list": {"type": "boolean", "title": "Is List", "default": false}, "required": {"type": "boolean", "title": "Required", "default": false}, "default": {"anyOf": [{"type": "string"}, {"type": "integer"}, {"type": "number"}, {"type": "boolean"}, {"items": {"type": "string"}, "type": "array"}, {"items": {"type": "integer"}, "type": "array"}, {"items": {"type": "number"}, "type": "array"}, {"items": {"type": "boolean"}, "type": "array"}, {"items": {}, "type": "array"}, {"type": "null"}], "title": "Default"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}}, "type": "object", "required": ["name", "default"], "title": "MetaKeggPipelineInputParamDocItem"}, "MetaKeggPipelineInputParamsDocs": {"properties": {"global_params": {"items": {"$ref": "#/components/schemas/MetaKeggPipelineInputParamDocItem"}, "type": "array", "title": "Global Params"}, "method_specific_params": {"anyOf": [{"items": {"$ref": "#/components/schemas/MetaKeggPipelineInputParamDocItem"}, "type": "array"}, {"type": "null"}], "title": "Method Specific Params"}}, "type": "object", "required": ["global_params"], "title": "MetaKeggPipelineInputParamsDocs"}, "MetaKeggPipelineInputParamsValuesAllOptional": {"properties": {"global_params": {"$ref": "#/components/schemas/GlobalParams"}, "method_specific_params": {"type": "object", "title": "Method Specific Params"}}, "type": "object", "required": ["global_params"], "title": "MetaKeggPipelineInputParamsValuesAllOptional"}, "MetaKeggPipelineStatistics": {"properties": {"statistics_from": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Statistics From"}, "statistics_to": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Statistics To"}, "total_pipelines_runs_amount": {"type": "integer", "title": "Total Pipelines Runs Amount", "default": 0}, "total_pipelines_run_successful_amount": {"type": "integer", "title": "Total Pipelines Run Successful Amount", "default": 0}, "total_pipelines_run_failed_amount": {"type": "integer", "title": "Total Pipelines Run Failed Amount", "default": 0}, "total_input_files_amount_processed": {"type": "integer", "title": "Total Input Files Amount Processed", "default": 0}, "total_pipeline_runs_per_methodname": {"additionalProperties": {"type": "integer"}, "type": "object", "title": "Total Pipeline Runs Per Methodname"}, "average_waiting_time_sec": {"type": "integer", "title": "Average Waiting Time Sec", "default": 0}, "average_running_time_sec": {"type": "integer", "title": "Average Running Time Sec", "default": 0}, "average_files_input_amount": {"type": "number", "title": "Average Files Input Amount", "default": 0.0}, "average_files_input_size_bytes": {"type": "number", "title": "Average Files Input Size Bytes", "default": 0.0}, "average_result_file_size_bytes": {"type": "number", "title": "Average Result File Size Bytes", "default": 0.0}}, "type": "object", "title": "MetaKeggPipelineStatistics"}, "MetaKeggPipelineTicket": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id"}}, "type": "object", "title": "MetaKeggPipelineTicket"}, "MetaKeggWebServerHealthState": {"properties": {"healthy": {"type": "boolean", "title": "Healthy"}, "dependencies": {"items": {"$ref": "#/components/schemas/MetaKeggWebServerModuleHealthState"}, "type": "array", "title": "Dependencies"}}, "type": "object", "required": ["healthy", "dependencies"], "title": "MetaKeggWebServerHealthState"}, "MetaKeggWebServerModuleHealthState": {"properties": {"name": {"type": "string", "title": "Name"}, "healthy": {"type": "boolean", "title": "Healthy"}}, "type": "object", "required": ["name", "healthy"], "title": "MetaKeggWebServerModuleHealthState"}, "ValidationError": {"properties": {"loc": {"items": {"anyOf": [{"type": "string"}, {"type": "integer"}]}, "type": "array", "title": "Location"}, "msg": {"type": "string", "title": "Message"}, "type": {"type": "string", "title": "Error Type"}}, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError"}, "mekeweserver__fastapi_routes__Error__1": {"properties": {"detail": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Detail", "default": "Pipeline-run could not be found."}}, "type": "object", "title": "Error"}, "mekeweserver__fastapi_routes__Error__2": {"properties": {"detail": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Detail", "default": "Pipeline-run could not be found."}}, "type": "object", "title": "Error"}, "mekeweserver__fastapi_routes__Error__3": {"properties": {"detail": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Detail", "default": "Pipeline-run could not be found."}}, "type": "object", "title": "Error"}, "mekeweserver__fastapi_routes__Error__4": {"properties": {"detail": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Detail", "default": "Pipeline-run could not be found."}}, "type": "object", "title": "Error"}, "mekeweserver__fastapi_routes__Error__5": {"properties": {"detail": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Detail", "default": "Pipeline-run expired and result is cleaned."}}, "type": "object", "title": "Error"}, "mekeweserver__fastapi_routes__Error__6": {"properties": {"detail": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Detail", "default": "Pipeline-run is not finished."}}, "type": "object", "title": "Error"}, "mekeweserver__fastapi_routes__Error__7": {"properties": {"detail": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Detail", "default": "Pipeline-run failed. Check endpoint '/pipeline/{pipeline_ticket_id}/status' for details"}}, "type": "object", "title": "Error"}}}} \ No newline at end of file +{"openapi": "3.1.0", "info": {"title": "MetaKegg Web REST API", "version": "0.0.0"}, "paths": {"/health": {"get": {"tags": ["Health"], "summary": "Get Health State", "description": "Check if server is running normal", "operationId": "get_health_state_health_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggWebServerHealthState"}}}}}}}, "/api/analysis": {"get": {"tags": ["Analysis Methods"], "summary": "List Available Analysis Methods", "description": "List all MetaKEGG analysis methods available. The name will be used to start a analysis pipeline run in endpoint `/pipeline/{pipeline_ticket_id}/run/...`", "operationId": "list_available_analysis_methods_api_analysis_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/MetaKeggPipelineAnalysisMethod"}, "type": "array", "title": "Response List Available Analysis Methods Api Analysis Get"}}}}}}}, "/api/{analysis_method_name}/params": {"get": {"tags": ["Analysis Methods"], "summary": "List Available Analysis Parameters", "description": "List all MetaKEGG parameters per analysis methods available.", "operationId": "list_available_analysis_parameters_api__analysis_method_name__params_get", "parameters": [{"name": "analysis_method_name", "in": "path", "required": true, "schema": {"enum": ["single_input_genes", "single_input_transcripts", "single_input_genes_bulk_mapping", "multiple_inputs", "single_input_with_methylation", "single_input_with_methylation_quantification", "single_input_with_miRNA", "single_input_with_miRNA_quantification", "single_input_with_methylation_and_miRNA"], "type": "string", "title": "Analysis Method Name"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineInputParamsDocs"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/pipeline": {"post": {"tags": ["Pipeline"], "summary": "Initialize A Metakegg Pipeline Run Definition", "description": "Define a new meta Kegg pipeline run. The pipeline-run will not start immediatily but be queued. The response of this endpoint will be a ticket that can be used to track the status of your pipeline run.", "operationId": "initialize_a_metakegg_pipeline_run_definition_api_pipeline_post", "requestBody": {"content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/MetaKeggPipelineInputParamsValuesAllOptional"}, {"type": "null"}], "title": "Pipeline Params"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineTicket"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/pipeline/{pipeline_ticket_id}": {"delete": {"tags": ["Pipeline"], "summary": "Delete A Metakegg Pipeline Run Definition", "description": "Delete an existing pipeline definiton with all input and output files.", "operationId": "delete_a_metakegg_pipeline_run_definition_api_pipeline__pipeline_ticket_id__delete", "parameters": [{"name": "pipeline_ticket_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Pipeline Ticket Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["Pipeline"], "summary": "Update Metakegg Pipeline Non File Parameters", "description": "Update the pipeline params of an allready existing pipeline run definition. \n The pipeline must **NOT** be started via `/pipeline/{pipeline_ticket_id}/run/{analysis_method_name}` allready. \n Only provided params get updated. You dont have to supply all params every PATCH call. \n For setting `file`-based parameters use the endpoint `/api/pipeline/{pipeline_ticket_id}/upload`", "operationId": "update_metakegg_pipeline_non_file_parameters_api_pipeline__pipeline_ticket_id__patch", "parameters": [{"name": "pipeline_ticket_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Pipeline Ticket Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineInputParamsValuesAllOptional"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineDef"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/pipeline/{pipeline_ticket_id}/file/upload/{param_name}": {"post": {"tags": ["Pipeline"], "summary": "Attach File To Meta Kegg Pipeline Run Definition", "description": "Add a file to an non started/queued pipeline-run definition", "operationId": "attach_file_to_meta_kegg_pipeline_run_definition_api_pipeline__pipeline_ticket_id__file_upload__param_name__post", "parameters": [{"name": "pipeline_ticket_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Pipeline Ticket Id"}}, {"name": "param_name", "in": "path", "required": true, "schema": {"type": "string", "title": "Param Name"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/Body_attach_file_to_meta_kegg_pipeline_run_definition_api_pipeline__pipeline_ticket_id__file_upload__param_name__post"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineDef"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/pipeline/{pipeline_ticket_id}/file/remove/{param_name}/{file_name}": {"delete": {"tags": ["Pipeline"], "summary": "Remove File From Meta Kegg Pipeline Run Definition", "description": "Remove a file from an non started/queued pipeline-run definition", "operationId": "remove_file_from_meta_kegg_pipeline_run_definition_api_pipeline__pipeline_ticket_id__file_remove__param_name___file_name__delete", "parameters": [{"name": "param_name", "in": "path", "required": true, "schema": {"type": "string", "title": "Param Name"}}, {"name": "file_name", "in": "path", "required": true, "schema": {"type": "string", "title": "File Name"}}, {"name": "pipeline_ticket_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Pipeline Ticket Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineDef"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/pipeline/{pipeline_ticket_id}/set/{analysis_method_name}": {"patch": {"tags": ["Pipeline"], "summary": "Set Pipeline Method", "description": "Qeueu the pipeline-run. If the queue is passed the pipeline will change from 'queued' into 'running' state.", "operationId": "set_pipeline_method_api_pipeline__pipeline_ticket_id__set__analysis_method_name__patch", "parameters": [{"name": "pipeline_ticket_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Pipeline Ticket Id"}}, {"name": "analysis_method_name", "in": "path", "required": true, "schema": {"enum": ["single_input_genes", "single_input_transcripts", "single_input_genes_bulk_mapping", "multiple_inputs", "single_input_with_methylation", "single_input_with_methylation_quantification", "single_input_with_miRNA", "single_input_with_miRNA_quantification", "single_input_with_methylation_and_miRNA"], "type": "string", "title": "Analysis Method Name"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineDef"}}}}, "404": {"description": "Pipeline-run could not be found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/mekeweserver__fastapi_routes__Error__1"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/pipeline/{pipeline_ticket_id}/run": {"post": {"tags": ["Pipeline"], "summary": "Start Pipeline Run", "description": "Qeueu the pipeline-run. If the queue is passed the pipeline will change from 'queued' into 'running' state.", "operationId": "start_pipeline_run_api_pipeline__pipeline_ticket_id__run_post", "parameters": [{"name": "pipeline_ticket_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Pipeline Ticket Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineDef"}}}}, "404": {"description": "Pipeline-run could not be found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/mekeweserver__fastapi_routes__Error__2"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/pipeline/{pipeline_ticket_id}/status": {"get": {"tags": ["Pipeline"], "summary": "Get Pipeline Run Status", "description": "Check the status of a triggered pipeline run.", "operationId": "get_pipeline_run_status_api_pipeline__pipeline_ticket_id__status_get", "parameters": [{"name": "pipeline_ticket_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Pipeline Ticket Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineDef"}}}}, "404": {"description": "Pipeline-run could not be found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/mekeweserver__fastapi_routes__Error__3"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/pipeline/{pipeline_ticket_id}/result": {"get": {"tags": ["Pipeline"], "summary": "Download Pipeline Run Result", "description": "Download the result of a succeded pipeline run.", "operationId": "download_pipeline_run_result_api_pipeline__pipeline_ticket_id__result_get", "parameters": [{"name": "pipeline_ticket_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Pipeline Ticket Id"}}], "responses": {"200": {"description": "Successful Response"}, "404": {"description": "Pipeline-run could not be found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/mekeweserver__fastapi_routes__Error__4"}}}}, "410": {"description": "Pipeline-run expired and result is cleaned.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/mekeweserver__fastapi_routes__Error__5"}}}}, "425": {"description": "Pipeline-run is not finished.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/mekeweserver__fastapi_routes__Error__6"}}}}, "424": {"description": "Pipeline-run failed. Check endpoint '/pipeline/{pipeline_ticket_id}/status' for details", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/mekeweserver__fastapi_routes__Error__7"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/config": {"get": {"tags": ["Config/Infos"], "summary": "Get Config", "description": "Get some infos and config for the client", "operationId": "get_config_config_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggClientConfig"}}}}}}}, "/info-links": {"get": {"tags": ["Config/Infos"], "summary": "Get Links", "description": "Get some infos and config for the client", "operationId": "get_links_info_links_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/MetaKeggClientLink"}, "type": "array", "title": "Response Get Links Info Links Get"}}}}}}}, "/stats": {"get": {"tags": ["Config/Infos"], "summary": "Get Statistics", "description": "Get some statistics about past pipeline runs", "operationId": "get_statistics_stats_get", "parameters": [{"name": "days_limit", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Only include pipeline runs that are not older as this amount of days", "title": "Days Limit"}, "description": "Only include pipeline runs that are not older as this amount of days"}, {"name": "days_offset", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Only include pipeline runs that are at least older as this amount of days", "title": "Days Offset"}, "description": "Only include pipeline runs that are at least older as this amount of days"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MetaKeggPipelineStatistics"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/{path_name}": {"get": {"tags": ["Webclient"], "summary": "Serve Frontend", "description": "Client serving path", "operationId": "serve_frontend__path_name__get", "parameters": [{"name": "path_name", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Path Name"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}}, "components": {"schemas": {"Body_attach_file_to_meta_kegg_pipeline_run_definition_api_pipeline__pipeline_ticket_id__file_upload__param_name__post": {"properties": {"file": {"type": "string", "format": "binary", "title": "File"}}, "type": "object", "required": ["file"], "title": "Body_attach_file_to_meta_kegg_pipeline_run_definition_api_pipeline__pipeline_ticket_id__file_upload__param_name__post"}, "GlobalParams": {"properties": {"sheet_name_paths": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Sheet Name Paths", "description": "Sheet name containing the pathway information (see docs). Has to apply to all input files in case of multiple.", "default": "pathways"}, "sheet_name_genes": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Sheet Name Genes", "description": "Sheet name for gene information (see docs). Has to apply to all input files in case of multiple.", "default": "gene_metrics"}, "genes_column": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Genes Column", "description": "Column name for gene symbols in the sheet_name_genes", "default": "gene_symbol"}, "log2fc_column": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Log2Fc Column", "description": "Column name for log2fc values in the sheet_name_genes", "default": "logFC"}, "compounds_list": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Compounds List", "description": "List of compound IDs to mapped in pathways if found."}, "save_to_eps": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Save To Eps", "description": "True/False statement to save the maps and colorscales or legends as seperate .eps files in addition to the .pdf exports", "default": false}}, "type": "object", "title": "GlobalParams"}, "HTTPValidationError": {"properties": {"detail": {"items": {"$ref": "#/components/schemas/ValidationError"}, "type": "array", "title": "Detail"}}, "type": "object", "title": "HTTPValidationError"}, "MetaKeggClientConfig": {"properties": {"contact_email": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Contact Email", "description": "Email that clients can present for contact."}, "bug_report_email": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Bug Report Email", "description": "Email address that is used for bug reports. Will be the same as `contact_email` if not explicit configured in the backend otherwise."}, "terms_and_conditions": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Terms And Conditions", "description": "Terms and Conditions presented to the user."}, "pipeline_ticket_expire_time_sec": {"type": "integer", "title": "Pipeline Ticket Expire Time Sec", "description": "Time how long a Pipeline ticket is valid. This is only for informational purposes as the backend is handling ticket expiring.", "default": 60}, "entry_text": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Entry Text", "default": "I am the entry text. You can configure me via the config variable ENTRY_TEXT. \nNo developer needs to be harmed for that."}}, "type": "object", "title": "MetaKeggClientConfig"}, "MetaKeggClientLink": {"properties": {"title": {"type": "string", "title": "Title", "description": "Title of the link"}, "link": {"type": "string", "title": "Link", "description": "URL of the link"}}, "type": "object", "required": ["title", "link"], "title": "MetaKeggClientLink"}, "MetaKeggPipelineAnalysisMethod": {"properties": {"name": {"type": "string", "title": "Name"}, "display_name": {"type": "string", "title": "Display Name"}, "internal_id": {"type": "integer", "title": "Internal Id"}, "desc": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Desc"}}, "type": "object", "required": ["name", "display_name", "internal_id"], "title": "MetaKeggPipelineAnalysisMethod"}, "MetaKeggPipelineDef": {"properties": {"ticket": {"$ref": "#/components/schemas/MetaKeggPipelineTicket"}, "state": {"type": "string", "enum": ["initialized", "queued", "running", "failed", "success", "expired"], "title": "State", "description": "When a new pipeline run is started it will be `queued` first. After there is slot free in the background worker it start `running`. based on the failure or success of this run the state will be `failed` or `success`. The result of a pipeline run will be cleaned/deleted after 1 minutes and not be available anymore. After that the state will be `expired`", "default": "initialized"}, "place_in_queue": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Place In Queue", "description": "Shows how many pipeline runs are ahead of a queued pipeline-run", "examples": [4]}, "error": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Error", "description": "If the state of a pipeline run is `failed`, the error message will be logged into this attribute", "examples": [null]}, "error_traceback": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Error Traceback", "description": "If the state of a pipeline run is `failed`, the error traceback will be logged into this attribute", "examples": [null]}, "output_log": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Output Log", "description": "Output prints of a MetaKegg Pipeline analysis run."}, "result_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Result Path", "description": "If the state of a pipeline run is `success`, the result can be downloaded from this path.", "examples": [null]}, "pipeline_params": {"$ref": "#/components/schemas/MetaKeggPipelineInputParamsValuesAllOptional"}, "pipeline_analyses_method": {"anyOf": [{"$ref": "#/components/schemas/MetaKeggPipelineAnalysisMethod"}, {"type": "null"}]}, "pipeline_input_file_names": {"anyOf": [{"additionalProperties": {"items": {"type": "string"}, "type": "array"}, "type": "object"}, {"type": "null"}], "title": "Pipeline Input File Names", "description": "Uploaded file per parameter"}, "pipeline_output_zip_file_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Pipeline Output Zip File Name"}, "created_at_utc": {"type": "string", "format": "date-time", "title": "Created At Utc"}, "queued_at_utc": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Queued At Utc"}, "started_at_utc": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Started At Utc"}, "finished_at_utc": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Finished At Utc"}}, "type": "object", "required": ["ticket", "pipeline_params"], "title": "MetaKeggPipelineDef"}, "MetaKeggPipelineInputParamDocItem": {"properties": {"name": {"type": "string", "title": "Name"}, "type": {"type": "string", "enum": ["str", "int", "float", "bool", "file"], "title": "Type", "default": "str"}, "is_list": {"type": "boolean", "title": "Is List", "default": false}, "required": {"type": "boolean", "title": "Required", "default": false}, "default": {"anyOf": [{"type": "string"}, {"type": "integer"}, {"type": "number"}, {"type": "boolean"}, {"items": {"type": "string"}, "type": "array"}, {"items": {"type": "integer"}, "type": "array"}, {"items": {"type": "number"}, "type": "array"}, {"items": {"type": "boolean"}, "type": "array"}, {"items": {}, "type": "array"}, {"type": "null"}], "title": "Default"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}}, "type": "object", "required": ["name", "default"], "title": "MetaKeggPipelineInputParamDocItem"}, "MetaKeggPipelineInputParamsDocs": {"properties": {"global_params": {"items": {"$ref": "#/components/schemas/MetaKeggPipelineInputParamDocItem"}, "type": "array", "title": "Global Params"}, "method_specific_params": {"anyOf": [{"items": {"$ref": "#/components/schemas/MetaKeggPipelineInputParamDocItem"}, "type": "array"}, {"type": "null"}], "title": "Method Specific Params"}}, "type": "object", "required": ["global_params"], "title": "MetaKeggPipelineInputParamsDocs"}, "MetaKeggPipelineInputParamsValuesAllOptional": {"properties": {"global_params": {"$ref": "#/components/schemas/GlobalParams"}, "method_specific_params": {"type": "object", "title": "Method Specific Params"}}, "type": "object", "required": ["global_params"], "title": "MetaKeggPipelineInputParamsValuesAllOptional"}, "MetaKeggPipelineStatistics": {"properties": {"statistics_from": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Statistics From"}, "statistics_to": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Statistics To"}, "total_pipelines_runs_amount": {"type": "integer", "title": "Total Pipelines Runs Amount", "default": 0}, "total_pipelines_run_successful_amount": {"type": "integer", "title": "Total Pipelines Run Successful Amount", "default": 0}, "total_pipelines_run_failed_amount": {"type": "integer", "title": "Total Pipelines Run Failed Amount", "default": 0}, "total_input_files_amount_processed": {"type": "integer", "title": "Total Input Files Amount Processed", "default": 0}, "total_pipeline_runs_per_methodname": {"additionalProperties": {"type": "integer"}, "type": "object", "title": "Total Pipeline Runs Per Methodname"}, "average_waiting_time_sec": {"type": "integer", "title": "Average Waiting Time Sec", "default": 0}, "average_running_time_sec": {"type": "integer", "title": "Average Running Time Sec", "default": 0}, "average_files_input_amount": {"type": "number", "title": "Average Files Input Amount", "default": 0.0}, "average_files_input_size_bytes": {"type": "number", "title": "Average Files Input Size Bytes", "default": 0.0}, "average_result_file_size_bytes": {"type": "number", "title": "Average Result File Size Bytes", "default": 0.0}}, "type": "object", "title": "MetaKeggPipelineStatistics"}, "MetaKeggPipelineTicket": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id"}}, "type": "object", "title": "MetaKeggPipelineTicket"}, "MetaKeggWebServerHealthState": {"properties": {"healthy": {"type": "boolean", "title": "Healthy"}, "dependencies": {"items": {"$ref": "#/components/schemas/MetaKeggWebServerModuleHealthState"}, "type": "array", "title": "Dependencies"}}, "type": "object", "required": ["healthy", "dependencies"], "title": "MetaKeggWebServerHealthState"}, "MetaKeggWebServerModuleHealthState": {"properties": {"name": {"type": "string", "title": "Name"}, "healthy": {"type": "boolean", "title": "Healthy"}}, "type": "object", "required": ["name", "healthy"], "title": "MetaKeggWebServerModuleHealthState"}, "ValidationError": {"properties": {"loc": {"items": {"anyOf": [{"type": "string"}, {"type": "integer"}]}, "type": "array", "title": "Location"}, "msg": {"type": "string", "title": "Message"}, "type": {"type": "string", "title": "Error Type"}}, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError"}, "mekeweserver__fastapi_routes__Error__1": {"properties": {"detail": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Detail", "default": "Pipeline-run could not be found."}}, "type": "object", "title": "Error"}, "mekeweserver__fastapi_routes__Error__2": {"properties": {"detail": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Detail", "default": "Pipeline-run could not be found."}}, "type": "object", "title": "Error"}, "mekeweserver__fastapi_routes__Error__3": {"properties": {"detail": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Detail", "default": "Pipeline-run could not be found."}}, "type": "object", "title": "Error"}, "mekeweserver__fastapi_routes__Error__4": {"properties": {"detail": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Detail", "default": "Pipeline-run could not be found."}}, "type": "object", "title": "Error"}, "mekeweserver__fastapi_routes__Error__5": {"properties": {"detail": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Detail", "default": "Pipeline-run expired and result is cleaned."}}, "type": "object", "title": "Error"}, "mekeweserver__fastapi_routes__Error__6": {"properties": {"detail": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Detail", "default": "Pipeline-run is not finished."}}, "type": "object", "title": "Error"}, "mekeweserver__fastapi_routes__Error__7": {"properties": {"detail": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Detail", "default": "Pipeline-run failed. Check endpoint '/pipeline/{pipeline_ticket_id}/status' for details"}}, "type": "object", "title": "Error"}}}} \ No newline at end of file