diff --git a/addon/flamenco/manager/docs/SocketIOJobUpdate.md b/addon/flamenco/manager/docs/EventJobUpdate.md similarity index 91% rename from addon/flamenco/manager/docs/SocketIOJobUpdate.md rename to addon/flamenco/manager/docs/EventJobUpdate.md index 18b47eea..14f2b9eb 100644 --- a/addon/flamenco/manager/docs/SocketIOJobUpdate.md +++ b/addon/flamenco/manager/docs/EventJobUpdate.md @@ -1,6 +1,6 @@ -# SocketIOJobUpdate +# EventJobUpdate -Subset of a Job, sent over SocketIO when a job changes. For new jobs, `previous_status` will be excluded. +Subset of a Job, sent over SocketIO/MQTT when a job changes. For new jobs, `previous_status` will be excluded. ## Properties Name | Type | Description | Notes diff --git a/addon/flamenco/manager/docs/SocketIOLastRenderedUpdate.md b/addon/flamenco/manager/docs/EventLastRenderedUpdate.md similarity index 95% rename from addon/flamenco/manager/docs/SocketIOLastRenderedUpdate.md rename to addon/flamenco/manager/docs/EventLastRenderedUpdate.md index fd94d9f5..fe0005ef 100644 --- a/addon/flamenco/manager/docs/SocketIOLastRenderedUpdate.md +++ b/addon/flamenco/manager/docs/EventLastRenderedUpdate.md @@ -1,4 +1,4 @@ -# SocketIOLastRenderedUpdate +# EventLastRenderedUpdate Indicator that the last-rendered image of this job was updated. diff --git a/addon/flamenco/manager/docs/SocketIOTaskLogUpdate.md b/addon/flamenco/manager/docs/EventTaskLogUpdate.md similarity index 80% rename from addon/flamenco/manager/docs/SocketIOTaskLogUpdate.md rename to addon/flamenco/manager/docs/EventTaskLogUpdate.md index aa60a320..b8257d34 100644 --- a/addon/flamenco/manager/docs/SocketIOTaskLogUpdate.md +++ b/addon/flamenco/manager/docs/EventTaskLogUpdate.md @@ -1,6 +1,6 @@ -# SocketIOTaskLogUpdate +# EventTaskLogUpdate -Task log chunk, sent to a SocketIO room dedicated to a single task, to avoid sending too many updates. +Task log chunk, sent to a MQTT topic/SocketIO room dedicated to a single task, to avoid sending too many updates. ## Properties Name | Type | Description | Notes diff --git a/addon/flamenco/manager/docs/SocketIOTaskUpdate.md b/addon/flamenco/manager/docs/EventTaskUpdate.md similarity index 85% rename from addon/flamenco/manager/docs/SocketIOTaskUpdate.md rename to addon/flamenco/manager/docs/EventTaskUpdate.md index ea5a0157..ae568eb0 100644 --- a/addon/flamenco/manager/docs/SocketIOTaskUpdate.md +++ b/addon/flamenco/manager/docs/EventTaskUpdate.md @@ -1,6 +1,6 @@ -# SocketIOTaskUpdate +# EventTaskUpdate -Subset of a Task, sent over SocketIO when a task changes. For new tasks, `previous_status` will be excluded. +Subset of a Task, sent over SocketIO/MQTT when a task changes. For new tasks, `previous_status` will be excluded. ## Properties Name | Type | Description | Notes diff --git a/addon/flamenco/manager/docs/SocketIOWorkerTagUpdate.md b/addon/flamenco/manager/docs/EventWorkerTagUpdate.md similarity index 88% rename from addon/flamenco/manager/docs/SocketIOWorkerTagUpdate.md rename to addon/flamenco/manager/docs/EventWorkerTagUpdate.md index 91c6d07a..95f19ef2 100644 --- a/addon/flamenco/manager/docs/SocketIOWorkerTagUpdate.md +++ b/addon/flamenco/manager/docs/EventWorkerTagUpdate.md @@ -1,6 +1,6 @@ -# SocketIOWorkerTagUpdate +# EventWorkerTagUpdate -Worker Tag, sent over SocketIO when it changes. +Worker Tag, sent over SocketIO/MQTT when it changes. ## Properties Name | Type | Description | Notes diff --git a/addon/flamenco/manager/docs/SocketIOWorkerUpdate.md b/addon/flamenco/manager/docs/EventWorkerUpdate.md similarity index 92% rename from addon/flamenco/manager/docs/SocketIOWorkerUpdate.md rename to addon/flamenco/manager/docs/EventWorkerUpdate.md index af535c73..38aebee0 100644 --- a/addon/flamenco/manager/docs/SocketIOWorkerUpdate.md +++ b/addon/flamenco/manager/docs/EventWorkerUpdate.md @@ -1,6 +1,6 @@ -# SocketIOWorkerUpdate +# EventWorkerUpdate -Subset of a Worker, sent over SocketIO when a worker changes. +Subset of a Worker, sent over SocketIO/MQTT when a worker changes. ## Properties Name | Type | Description | Notes diff --git a/addon/flamenco/manager/docs/SocketIOSubscription.md b/addon/flamenco/manager/docs/SocketIOSubscription.md index 297d291c..a36d4d6c 100644 --- a/addon/flamenco/manager/docs/SocketIOSubscription.md +++ b/addon/flamenco/manager/docs/SocketIOSubscription.md @@ -1,6 +1,6 @@ # SocketIOSubscription -Send by SocketIO clients as `/subscription` event type, to manage their subscription to job updates. Clients always get job updates, but for task updates or task logs they need to explicitly subscribe. For simplicity, clients can only subscribe to one job (to get task updates for that job) and one task's log at a time. +Send by SocketIO clients as `/subscription` event type, to manage their subscription to job updates. Clients always get job updates, but for task updates or task logs they need to explicitly subscribe. For simplicity, clients can only subscribe to one job (to get task updates for that job) and one task's log at a time. This is not used by MQTT, as with that protocol the subscriptions are managed by the MQTT broker, not Flamenco. ## Properties Name | Type | Description | Notes diff --git a/addon/flamenco/manager/model/socket_io_job_update.py b/addon/flamenco/manager/model/event_job_update.py similarity index 98% rename from addon/flamenco/manager/model/socket_io_job_update.py rename to addon/flamenco/manager/model/event_job_update.py index 19bab63e..1874784c 100644 --- a/addon/flamenco/manager/model/socket_io_job_update.py +++ b/addon/flamenco/manager/model/event_job_update.py @@ -34,7 +34,7 @@ def lazy_import(): globals()['JobStatus'] = JobStatus -class SocketIOJobUpdate(ModelNormal): +class EventJobUpdate(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -125,7 +125,7 @@ class SocketIOJobUpdate(ModelNormal): @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, id, updated, status, type, refresh_tasks, *args, **kwargs): # noqa: E501 - """SocketIOJobUpdate - a model defined in OpenAPI + """EventJobUpdate - a model defined in OpenAPI Args: id (str): UUID of the Job @@ -225,7 +225,7 @@ class SocketIOJobUpdate(ModelNormal): @convert_js_args_to_python_args def __init__(self, id, updated, status, type, refresh_tasks, *args, **kwargs): # noqa: E501 - """SocketIOJobUpdate - a model defined in OpenAPI + """EventJobUpdate - a model defined in OpenAPI Args: id (str): UUID of the Job diff --git a/addon/flamenco/manager/model/socket_io_last_rendered_update.py b/addon/flamenco/manager/model/event_last_rendered_update.py similarity index 98% rename from addon/flamenco/manager/model/socket_io_last_rendered_update.py rename to addon/flamenco/manager/model/event_last_rendered_update.py index 646cc7b8..12591d2a 100644 --- a/addon/flamenco/manager/model/socket_io_last_rendered_update.py +++ b/addon/flamenco/manager/model/event_last_rendered_update.py @@ -34,7 +34,7 @@ def lazy_import(): globals()['JobLastRenderedImageInfo'] = JobLastRenderedImageInfo -class SocketIOLastRenderedUpdate(ModelNormal): +class EventLastRenderedUpdate(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -109,7 +109,7 @@ class SocketIOLastRenderedUpdate(ModelNormal): @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, job_id, thumbnail, *args, **kwargs): # noqa: E501 - """SocketIOLastRenderedUpdate - a model defined in OpenAPI + """EventLastRenderedUpdate - a model defined in OpenAPI Args: job_id (str): @@ -196,7 +196,7 @@ class SocketIOLastRenderedUpdate(ModelNormal): @convert_js_args_to_python_args def __init__(self, job_id, thumbnail, *args, **kwargs): # noqa: E501 - """SocketIOLastRenderedUpdate - a model defined in OpenAPI + """EventLastRenderedUpdate - a model defined in OpenAPI Args: job_id (str): diff --git a/addon/flamenco/manager/model/socket_io_task_log_update.py b/addon/flamenco/manager/model/event_task_log_update.py similarity index 98% rename from addon/flamenco/manager/model/socket_io_task_log_update.py rename to addon/flamenco/manager/model/event_task_log_update.py index cd95908b..75082d4a 100644 --- a/addon/flamenco/manager/model/socket_io_task_log_update.py +++ b/addon/flamenco/manager/model/event_task_log_update.py @@ -30,7 +30,7 @@ from flamenco.manager.exceptions import ApiAttributeError -class SocketIOTaskLogUpdate(ModelNormal): +class EventTaskLogUpdate(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -103,7 +103,7 @@ class SocketIOTaskLogUpdate(ModelNormal): @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, task_id, log, *args, **kwargs): # noqa: E501 - """SocketIOTaskLogUpdate - a model defined in OpenAPI + """EventTaskLogUpdate - a model defined in OpenAPI Args: task_id (str): UUID of the Task @@ -190,7 +190,7 @@ class SocketIOTaskLogUpdate(ModelNormal): @convert_js_args_to_python_args def __init__(self, task_id, log, *args, **kwargs): # noqa: E501 - """SocketIOTaskLogUpdate - a model defined in OpenAPI + """EventTaskLogUpdate - a model defined in OpenAPI Args: task_id (str): UUID of the Task diff --git a/addon/flamenco/manager/model/socket_io_task_update.py b/addon/flamenco/manager/model/event_task_update.py similarity index 98% rename from addon/flamenco/manager/model/socket_io_task_update.py rename to addon/flamenco/manager/model/event_task_update.py index f08b70c1..beed0f88 100644 --- a/addon/flamenco/manager/model/socket_io_task_update.py +++ b/addon/flamenco/manager/model/event_task_update.py @@ -34,7 +34,7 @@ def lazy_import(): globals()['TaskStatus'] = TaskStatus -class SocketIOTaskUpdate(ModelNormal): +class EventTaskUpdate(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -119,7 +119,7 @@ class SocketIOTaskUpdate(ModelNormal): @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, id, job_id, name, updated, status, activity, *args, **kwargs): # noqa: E501 - """SocketIOTaskUpdate - a model defined in OpenAPI + """EventTaskUpdate - a model defined in OpenAPI Args: id (str): UUID of the Task @@ -215,7 +215,7 @@ class SocketIOTaskUpdate(ModelNormal): @convert_js_args_to_python_args def __init__(self, id, job_id, name, updated, status, activity, *args, **kwargs): # noqa: E501 - """SocketIOTaskUpdate - a model defined in OpenAPI + """EventTaskUpdate - a model defined in OpenAPI Args: id (str): UUID of the Task diff --git a/addon/flamenco/manager/model/socket_io_worker_tag_update.py b/addon/flamenco/manager/model/event_worker_tag_update.py similarity index 98% rename from addon/flamenco/manager/model/socket_io_worker_tag_update.py rename to addon/flamenco/manager/model/event_worker_tag_update.py index 0ebdd199..435d71f9 100644 --- a/addon/flamenco/manager/model/socket_io_worker_tag_update.py +++ b/addon/flamenco/manager/model/event_worker_tag_update.py @@ -34,7 +34,7 @@ def lazy_import(): globals()['WorkerTag'] = WorkerTag -class SocketIOWorkerTagUpdate(ModelNormal): +class EventWorkerTagUpdate(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -109,7 +109,7 @@ class SocketIOWorkerTagUpdate(ModelNormal): @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, tag, *args, **kwargs): # noqa: E501 - """SocketIOWorkerTagUpdate - a model defined in OpenAPI + """EventWorkerTagUpdate - a model defined in OpenAPI Args: tag (WorkerTag): @@ -195,7 +195,7 @@ class SocketIOWorkerTagUpdate(ModelNormal): @convert_js_args_to_python_args def __init__(self, tag, *args, **kwargs): # noqa: E501 - """SocketIOWorkerTagUpdate - a model defined in OpenAPI + """EventWorkerTagUpdate - a model defined in OpenAPI Args: tag (WorkerTag): diff --git a/addon/flamenco/manager/model/socket_io_worker_update.py b/addon/flamenco/manager/model/event_worker_update.py similarity index 98% rename from addon/flamenco/manager/model/socket_io_worker_update.py rename to addon/flamenco/manager/model/event_worker_update.py index b65dfe6c..39f427e8 100644 --- a/addon/flamenco/manager/model/socket_io_worker_update.py +++ b/addon/flamenco/manager/model/event_worker_update.py @@ -36,7 +36,7 @@ def lazy_import(): globals()['WorkerStatusChangeRequest'] = WorkerStatusChangeRequest -class SocketIOWorkerUpdate(ModelNormal): +class EventWorkerUpdate(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -127,7 +127,7 @@ class SocketIOWorkerUpdate(ModelNormal): @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, id, name, updated, status, version, can_restart, *args, **kwargs): # noqa: E501 - """SocketIOWorkerUpdate - a model defined in OpenAPI + """EventWorkerUpdate - a model defined in OpenAPI Args: id (str): UUID of the Worker @@ -226,7 +226,7 @@ class SocketIOWorkerUpdate(ModelNormal): @convert_js_args_to_python_args def __init__(self, id, name, updated, status, version, can_restart, *args, **kwargs): # noqa: E501 - """SocketIOWorkerUpdate - a model defined in OpenAPI + """EventWorkerUpdate - a model defined in OpenAPI Args: id (str): UUID of the Worker diff --git a/addon/flamenco/manager/models/__init__.py b/addon/flamenco/manager/models/__init__.py index 665a5673..ed68bc2e 100644 --- a/addon/flamenco/manager/models/__init__.py +++ b/addon/flamenco/manager/models/__init__.py @@ -22,6 +22,12 @@ from flamenco.manager.model.blender_path_find_result import BlenderPathFindResul from flamenco.manager.model.blender_path_source import BlenderPathSource from flamenco.manager.model.command import Command from flamenco.manager.model.error import Error +from flamenco.manager.model.event_job_update import EventJobUpdate +from flamenco.manager.model.event_last_rendered_update import EventLastRenderedUpdate +from flamenco.manager.model.event_task_log_update import EventTaskLogUpdate +from flamenco.manager.model.event_task_update import EventTaskUpdate +from flamenco.manager.model.event_worker_tag_update import EventWorkerTagUpdate +from flamenco.manager.model.event_worker_update import EventWorkerUpdate from flamenco.manager.model.flamenco_version import FlamencoVersion from flamenco.manager.model.job import Job from flamenco.manager.model.job_all_of import JobAllOf @@ -58,15 +64,9 @@ from flamenco.manager.model.shaman_requirements_request import ShamanRequirement from flamenco.manager.model.shaman_requirements_response import ShamanRequirementsResponse from flamenco.manager.model.shaman_single_file_status import ShamanSingleFileStatus from flamenco.manager.model.shared_storage_location import SharedStorageLocation -from flamenco.manager.model.socket_io_job_update import SocketIOJobUpdate -from flamenco.manager.model.socket_io_last_rendered_update import SocketIOLastRenderedUpdate from flamenco.manager.model.socket_io_subscription import SocketIOSubscription from flamenco.manager.model.socket_io_subscription_operation import SocketIOSubscriptionOperation from flamenco.manager.model.socket_io_subscription_type import SocketIOSubscriptionType -from flamenco.manager.model.socket_io_task_log_update import SocketIOTaskLogUpdate -from flamenco.manager.model.socket_io_task_update import SocketIOTaskUpdate -from flamenco.manager.model.socket_io_worker_tag_update import SocketIOWorkerTagUpdate -from flamenco.manager.model.socket_io_worker_update import SocketIOWorkerUpdate from flamenco.manager.model.submitted_job import SubmittedJob from flamenco.manager.model.task import Task from flamenco.manager.model.task_log_info import TaskLogInfo diff --git a/addon/flamenco/manager_README.md b/addon/flamenco/manager_README.md index 3b946d9a..f611473b 100644 --- a/addon/flamenco/manager_README.md +++ b/addon/flamenco/manager_README.md @@ -76,146 +76,146 @@ All URIs are relative to *http://localhost* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- -*JobsApi* | [**delete_job**](flamenco\manager\docs/JobsApi.md#delete_job) | **DELETE** /api/v3/jobs/{job_id} | Request deletion this job, including its tasks and any log files. The actual deletion may happen in the background. No job files will be deleted (yet). -*JobsApi* | [**delete_job_mass**](flamenco\manager\docs/JobsApi.md#delete_job_mass) | **DELETE** /api/v3/jobs/mass-delete | Mark jobs for deletion, based on certain criteria. -*JobsApi* | [**delete_job_what_would_it_do**](flamenco\manager\docs/JobsApi.md#delete_job_what_would_it_do) | **GET** /api/v3/jobs/{job_id}/what-would-delete-do | Get info about what would be deleted when deleting this job. The job itself, its logs, and the last-rendered images will always be deleted. The job files are only deleted conditionally, and this operation can be used to figure that out. -*JobsApi* | [**fetch_global_last_rendered_info**](flamenco\manager\docs/JobsApi.md#fetch_global_last_rendered_info) | **GET** /api/v3/jobs/last-rendered | Get the URL that serves the last-rendered images. -*JobsApi* | [**fetch_job**](flamenco\manager\docs/JobsApi.md#fetch_job) | **GET** /api/v3/jobs/{job_id} | Fetch info about the job. -*JobsApi* | [**fetch_job_blocklist**](flamenco\manager\docs/JobsApi.md#fetch_job_blocklist) | **GET** /api/v3/jobs/{job_id}/blocklist | Fetch the list of workers that are blocked from doing certain task types on this job. -*JobsApi* | [**fetch_job_last_rendered_info**](flamenco\manager\docs/JobsApi.md#fetch_job_last_rendered_info) | **GET** /api/v3/jobs/{job_id}/last-rendered | Get the URL that serves the last-rendered images of this job. -*JobsApi* | [**fetch_job_tasks**](flamenco\manager\docs/JobsApi.md#fetch_job_tasks) | **GET** /api/v3/jobs/{job_id}/tasks | Fetch a summary of all tasks of the given job. -*JobsApi* | [**fetch_task**](flamenco\manager\docs/JobsApi.md#fetch_task) | **GET** /api/v3/tasks/{task_id} | Fetch a single task. -*JobsApi* | [**fetch_task_log_info**](flamenco\manager\docs/JobsApi.md#fetch_task_log_info) | **GET** /api/v3/tasks/{task_id}/log | Get the URL of the task log, and some more info. -*JobsApi* | [**fetch_task_log_tail**](flamenco\manager\docs/JobsApi.md#fetch_task_log_tail) | **GET** /api/v3/tasks/{task_id}/logtail | Fetch the last few lines of the task's log. -*JobsApi* | [**get_job_type**](flamenco\manager\docs/JobsApi.md#get_job_type) | **GET** /api/v3/jobs/type/{typeName} | Get single job type and its parameters. -*JobsApi* | [**get_job_types**](flamenco\manager\docs/JobsApi.md#get_job_types) | **GET** /api/v3/jobs/types | Get list of job types and their parameters. -*JobsApi* | [**query_jobs**](flamenco\manager\docs/JobsApi.md#query_jobs) | **POST** /api/v3/jobs/query | Fetch list of jobs. -*JobsApi* | [**remove_job_blocklist**](flamenco\manager\docs/JobsApi.md#remove_job_blocklist) | **DELETE** /api/v3/jobs/{job_id}/blocklist | Remove entries from a job blocklist. -*JobsApi* | [**set_job_priority**](flamenco\manager\docs/JobsApi.md#set_job_priority) | **POST** /api/v3/jobs/{job_id}/setpriority | -*JobsApi* | [**set_job_status**](flamenco\manager\docs/JobsApi.md#set_job_status) | **POST** /api/v3/jobs/{job_id}/setstatus | -*JobsApi* | [**set_task_status**](flamenco\manager\docs/JobsApi.md#set_task_status) | **POST** /api/v3/tasks/{task_id}/setstatus | -*JobsApi* | [**submit_job**](flamenco\manager\docs/JobsApi.md#submit_job) | **POST** /api/v3/jobs | Submit a new job for Flamenco Manager to execute. -*JobsApi* | [**submit_job_check**](flamenco\manager\docs/JobsApi.md#submit_job_check) | **POST** /api/v3/jobs/check | Submit a new job for Flamenco Manager to check. -*MetaApi* | [**check_blender_exe_path**](flamenco\manager\docs/MetaApi.md#check_blender_exe_path) | **POST** /api/v3/configuration/check/blender | Validate a CLI command for use as way to start Blender -*MetaApi* | [**check_shared_storage_path**](flamenco\manager\docs/MetaApi.md#check_shared_storage_path) | **POST** /api/v3/configuration/check/shared-storage | Validate a path for use as shared storage. -*MetaApi* | [**find_blender_exe_path**](flamenco\manager\docs/MetaApi.md#find_blender_exe_path) | **GET** /api/v3/configuration/check/blender | Find one or more CLI commands for use as way to start Blender -*MetaApi* | [**get_configuration**](flamenco\manager\docs/MetaApi.md#get_configuration) | **GET** /api/v3/configuration | Get the configuration of this Manager. -*MetaApi* | [**get_configuration_file**](flamenco\manager\docs/MetaApi.md#get_configuration_file) | **GET** /api/v3/configuration/file | Retrieve the configuration of Flamenco Manager. -*MetaApi* | [**get_shared_storage**](flamenco\manager\docs/MetaApi.md#get_shared_storage) | **GET** /api/v3/configuration/shared-storage/{audience}/{platform} | Get the shared storage location of this Manager, adjusted for the given audience and platform. -*MetaApi* | [**get_variables**](flamenco\manager\docs/MetaApi.md#get_variables) | **GET** /api/v3/configuration/variables/{audience}/{platform} | Get the variables of this Manager. Used by the Blender add-on to recognise two-way variables, and for the web interface to do variable replacement based on the browser's platform. -*MetaApi* | [**get_version**](flamenco\manager\docs/MetaApi.md#get_version) | **GET** /api/v3/version | Get the Flamenco version of this Manager -*MetaApi* | [**save_setup_assistant_config**](flamenco\manager\docs/MetaApi.md#save_setup_assistant_config) | **POST** /api/v3/configuration/setup-assistant | Update the Manager's configuration, and restart it in fully functional mode. -*ShamanApi* | [**shaman_checkout**](flamenco\manager\docs/ShamanApi.md#shaman_checkout) | **POST** /api/v3/shaman/checkout/create | Create a directory, and symlink the required files into it. The files must all have been uploaded to Shaman before calling this endpoint. -*ShamanApi* | [**shaman_checkout_requirements**](flamenco\manager\docs/ShamanApi.md#shaman_checkout_requirements) | **POST** /api/v3/shaman/checkout/requirements | Checks a Shaman Requirements file, and reports which files are unknown. -*ShamanApi* | [**shaman_file_store**](flamenco\manager\docs/ShamanApi.md#shaman_file_store) | **POST** /api/v3/shaman/files/{checksum}/{filesize} | Store a new file on the Shaman server. Note that the Shaman server can forcibly close the HTTP connection when another client finishes uploading the exact same file, to prevent double uploads. The file's contents should be sent in the request body. -*ShamanApi* | [**shaman_file_store_check**](flamenco\manager\docs/ShamanApi.md#shaman_file_store_check) | **GET** /api/v3/shaman/files/{checksum}/{filesize} | Check the status of a file on the Shaman server. -*WorkerApi* | [**may_worker_run**](flamenco\manager\docs/WorkerApi.md#may_worker_run) | **GET** /api/v3/worker/task/{task_id}/may-i-run | The response indicates whether the worker is allowed to run / keep running the task. Optionally contains a queued worker status change. -*WorkerApi* | [**register_worker**](flamenco\manager\docs/WorkerApi.md#register_worker) | **POST** /api/v3/worker/register-worker | Register a new worker -*WorkerApi* | [**schedule_task**](flamenco\manager\docs/WorkerApi.md#schedule_task) | **POST** /api/v3/worker/task | Obtain a new task to execute -*WorkerApi* | [**sign_off**](flamenco\manager\docs/WorkerApi.md#sign_off) | **POST** /api/v3/worker/sign-off | Mark the worker as offline -*WorkerApi* | [**sign_on**](flamenco\manager\docs/WorkerApi.md#sign_on) | **POST** /api/v3/worker/sign-on | Authenticate & sign in the worker. -*WorkerApi* | [**task_output_produced**](flamenco\manager\docs/WorkerApi.md#task_output_produced) | **POST** /api/v3/worker/task/{task_id}/output-produced | Store the most recently rendered frame here. Note that it is up to the Worker to ensure this is in a format that's digestable by the Manager. Currently only PNG and JPEG support is planned. -*WorkerApi* | [**task_update**](flamenco\manager\docs/WorkerApi.md#task_update) | **POST** /api/v3/worker/task/{task_id} | Update the task, typically to indicate progress, completion, or failure. -*WorkerApi* | [**worker_state**](flamenco\manager\docs/WorkerApi.md#worker_state) | **GET** /api/v3/worker/state | -*WorkerApi* | [**worker_state_changed**](flamenco\manager\docs/WorkerApi.md#worker_state_changed) | **POST** /api/v3/worker/state-changed | Worker changed state. This could be as acknowledgement of a Manager-requested state change, or in response to worker-local signals. -*WorkerMgtApi* | [**create_worker_tag**](flamenco\manager\docs/WorkerMgtApi.md#create_worker_tag) | **POST** /api/v3/worker-mgt/tags | Create a new worker tag. -*WorkerMgtApi* | [**delete_worker**](flamenco\manager\docs/WorkerMgtApi.md#delete_worker) | **DELETE** /api/v3/worker-mgt/workers/{worker_id} | Remove the given worker. It is recommended to only call this function when the worker is in `offline` state. If the worker is still running, stop it first. Any task still assigned to the worker will be requeued. -*WorkerMgtApi* | [**delete_worker_tag**](flamenco\manager\docs/WorkerMgtApi.md#delete_worker_tag) | **DELETE** /api/v3/worker-mgt/tag/{tag_id} | Remove this worker tag. This unassigns all workers from the tag and removes it. -*WorkerMgtApi* | [**fetch_worker**](flamenco\manager\docs/WorkerMgtApi.md#fetch_worker) | **GET** /api/v3/worker-mgt/workers/{worker_id} | Fetch info about the worker. -*WorkerMgtApi* | [**fetch_worker_sleep_schedule**](flamenco\manager\docs/WorkerMgtApi.md#fetch_worker_sleep_schedule) | **GET** /api/v3/worker-mgt/workers/{worker_id}/sleep-schedule | -*WorkerMgtApi* | [**fetch_worker_tag**](flamenco\manager\docs/WorkerMgtApi.md#fetch_worker_tag) | **GET** /api/v3/worker-mgt/tag/{tag_id} | Get a single worker tag. -*WorkerMgtApi* | [**fetch_worker_tags**](flamenco\manager\docs/WorkerMgtApi.md#fetch_worker_tags) | **GET** /api/v3/worker-mgt/tags | Get list of worker tags. -*WorkerMgtApi* | [**fetch_workers**](flamenco\manager\docs/WorkerMgtApi.md#fetch_workers) | **GET** /api/v3/worker-mgt/workers | Get list of workers. -*WorkerMgtApi* | [**request_worker_status_change**](flamenco\manager\docs/WorkerMgtApi.md#request_worker_status_change) | **POST** /api/v3/worker-mgt/workers/{worker_id}/setstatus | -*WorkerMgtApi* | [**set_worker_sleep_schedule**](flamenco\manager\docs/WorkerMgtApi.md#set_worker_sleep_schedule) | **POST** /api/v3/worker-mgt/workers/{worker_id}/sleep-schedule | -*WorkerMgtApi* | [**set_worker_tags**](flamenco\manager\docs/WorkerMgtApi.md#set_worker_tags) | **POST** /api/v3/worker-mgt/workers/{worker_id}/settags | -*WorkerMgtApi* | [**update_worker_tag**](flamenco\manager\docs/WorkerMgtApi.md#update_worker_tag) | **PUT** /api/v3/worker-mgt/tag/{tag_id} | Update an existing worker tag. +*JobsApi* | [**delete_job**](flamenco/manager/docs/JobsApi.md#delete_job) | **DELETE** /api/v3/jobs/{job_id} | Request deletion this job, including its tasks and any log files. The actual deletion may happen in the background. No job files will be deleted (yet). +*JobsApi* | [**delete_job_mass**](flamenco/manager/docs/JobsApi.md#delete_job_mass) | **DELETE** /api/v3/jobs/mass-delete | Mark jobs for deletion, based on certain criteria. +*JobsApi* | [**delete_job_what_would_it_do**](flamenco/manager/docs/JobsApi.md#delete_job_what_would_it_do) | **GET** /api/v3/jobs/{job_id}/what-would-delete-do | Get info about what would be deleted when deleting this job. The job itself, its logs, and the last-rendered images will always be deleted. The job files are only deleted conditionally, and this operation can be used to figure that out. +*JobsApi* | [**fetch_global_last_rendered_info**](flamenco/manager/docs/JobsApi.md#fetch_global_last_rendered_info) | **GET** /api/v3/jobs/last-rendered | Get the URL that serves the last-rendered images. +*JobsApi* | [**fetch_job**](flamenco/manager/docs/JobsApi.md#fetch_job) | **GET** /api/v3/jobs/{job_id} | Fetch info about the job. +*JobsApi* | [**fetch_job_blocklist**](flamenco/manager/docs/JobsApi.md#fetch_job_blocklist) | **GET** /api/v3/jobs/{job_id}/blocklist | Fetch the list of workers that are blocked from doing certain task types on this job. +*JobsApi* | [**fetch_job_last_rendered_info**](flamenco/manager/docs/JobsApi.md#fetch_job_last_rendered_info) | **GET** /api/v3/jobs/{job_id}/last-rendered | Get the URL that serves the last-rendered images of this job. +*JobsApi* | [**fetch_job_tasks**](flamenco/manager/docs/JobsApi.md#fetch_job_tasks) | **GET** /api/v3/jobs/{job_id}/tasks | Fetch a summary of all tasks of the given job. +*JobsApi* | [**fetch_task**](flamenco/manager/docs/JobsApi.md#fetch_task) | **GET** /api/v3/tasks/{task_id} | Fetch a single task. +*JobsApi* | [**fetch_task_log_info**](flamenco/manager/docs/JobsApi.md#fetch_task_log_info) | **GET** /api/v3/tasks/{task_id}/log | Get the URL of the task log, and some more info. +*JobsApi* | [**fetch_task_log_tail**](flamenco/manager/docs/JobsApi.md#fetch_task_log_tail) | **GET** /api/v3/tasks/{task_id}/logtail | Fetch the last few lines of the task's log. +*JobsApi* | [**get_job_type**](flamenco/manager/docs/JobsApi.md#get_job_type) | **GET** /api/v3/jobs/type/{typeName} | Get single job type and its parameters. +*JobsApi* | [**get_job_types**](flamenco/manager/docs/JobsApi.md#get_job_types) | **GET** /api/v3/jobs/types | Get list of job types and their parameters. +*JobsApi* | [**query_jobs**](flamenco/manager/docs/JobsApi.md#query_jobs) | **POST** /api/v3/jobs/query | Fetch list of jobs. +*JobsApi* | [**remove_job_blocklist**](flamenco/manager/docs/JobsApi.md#remove_job_blocklist) | **DELETE** /api/v3/jobs/{job_id}/blocklist | Remove entries from a job blocklist. +*JobsApi* | [**set_job_priority**](flamenco/manager/docs/JobsApi.md#set_job_priority) | **POST** /api/v3/jobs/{job_id}/setpriority | +*JobsApi* | [**set_job_status**](flamenco/manager/docs/JobsApi.md#set_job_status) | **POST** /api/v3/jobs/{job_id}/setstatus | +*JobsApi* | [**set_task_status**](flamenco/manager/docs/JobsApi.md#set_task_status) | **POST** /api/v3/tasks/{task_id}/setstatus | +*JobsApi* | [**submit_job**](flamenco/manager/docs/JobsApi.md#submit_job) | **POST** /api/v3/jobs | Submit a new job for Flamenco Manager to execute. +*JobsApi* | [**submit_job_check**](flamenco/manager/docs/JobsApi.md#submit_job_check) | **POST** /api/v3/jobs/check | Submit a new job for Flamenco Manager to check. +*MetaApi* | [**check_blender_exe_path**](flamenco/manager/docs/MetaApi.md#check_blender_exe_path) | **POST** /api/v3/configuration/check/blender | Validate a CLI command for use as way to start Blender +*MetaApi* | [**check_shared_storage_path**](flamenco/manager/docs/MetaApi.md#check_shared_storage_path) | **POST** /api/v3/configuration/check/shared-storage | Validate a path for use as shared storage. +*MetaApi* | [**find_blender_exe_path**](flamenco/manager/docs/MetaApi.md#find_blender_exe_path) | **GET** /api/v3/configuration/check/blender | Find one or more CLI commands for use as way to start Blender +*MetaApi* | [**get_configuration**](flamenco/manager/docs/MetaApi.md#get_configuration) | **GET** /api/v3/configuration | Get the configuration of this Manager. +*MetaApi* | [**get_configuration_file**](flamenco/manager/docs/MetaApi.md#get_configuration_file) | **GET** /api/v3/configuration/file | Retrieve the configuration of Flamenco Manager. +*MetaApi* | [**get_shared_storage**](flamenco/manager/docs/MetaApi.md#get_shared_storage) | **GET** /api/v3/configuration/shared-storage/{audience}/{platform} | Get the shared storage location of this Manager, adjusted for the given audience and platform. +*MetaApi* | [**get_variables**](flamenco/manager/docs/MetaApi.md#get_variables) | **GET** /api/v3/configuration/variables/{audience}/{platform} | Get the variables of this Manager. Used by the Blender add-on to recognise two-way variables, and for the web interface to do variable replacement based on the browser's platform. +*MetaApi* | [**get_version**](flamenco/manager/docs/MetaApi.md#get_version) | **GET** /api/v3/version | Get the Flamenco version of this Manager +*MetaApi* | [**save_setup_assistant_config**](flamenco/manager/docs/MetaApi.md#save_setup_assistant_config) | **POST** /api/v3/configuration/setup-assistant | Update the Manager's configuration, and restart it in fully functional mode. +*ShamanApi* | [**shaman_checkout**](flamenco/manager/docs/ShamanApi.md#shaman_checkout) | **POST** /api/v3/shaman/checkout/create | Create a directory, and symlink the required files into it. The files must all have been uploaded to Shaman before calling this endpoint. +*ShamanApi* | [**shaman_checkout_requirements**](flamenco/manager/docs/ShamanApi.md#shaman_checkout_requirements) | **POST** /api/v3/shaman/checkout/requirements | Checks a Shaman Requirements file, and reports which files are unknown. +*ShamanApi* | [**shaman_file_store**](flamenco/manager/docs/ShamanApi.md#shaman_file_store) | **POST** /api/v3/shaman/files/{checksum}/{filesize} | Store a new file on the Shaman server. Note that the Shaman server can forcibly close the HTTP connection when another client finishes uploading the exact same file, to prevent double uploads. The file's contents should be sent in the request body. +*ShamanApi* | [**shaman_file_store_check**](flamenco/manager/docs/ShamanApi.md#shaman_file_store_check) | **GET** /api/v3/shaman/files/{checksum}/{filesize} | Check the status of a file on the Shaman server. +*WorkerApi* | [**may_worker_run**](flamenco/manager/docs/WorkerApi.md#may_worker_run) | **GET** /api/v3/worker/task/{task_id}/may-i-run | The response indicates whether the worker is allowed to run / keep running the task. Optionally contains a queued worker status change. +*WorkerApi* | [**register_worker**](flamenco/manager/docs/WorkerApi.md#register_worker) | **POST** /api/v3/worker/register-worker | Register a new worker +*WorkerApi* | [**schedule_task**](flamenco/manager/docs/WorkerApi.md#schedule_task) | **POST** /api/v3/worker/task | Obtain a new task to execute +*WorkerApi* | [**sign_off**](flamenco/manager/docs/WorkerApi.md#sign_off) | **POST** /api/v3/worker/sign-off | Mark the worker as offline +*WorkerApi* | [**sign_on**](flamenco/manager/docs/WorkerApi.md#sign_on) | **POST** /api/v3/worker/sign-on | Authenticate & sign in the worker. +*WorkerApi* | [**task_output_produced**](flamenco/manager/docs/WorkerApi.md#task_output_produced) | **POST** /api/v3/worker/task/{task_id}/output-produced | Store the most recently rendered frame here. Note that it is up to the Worker to ensure this is in a format that's digestable by the Manager. Currently only PNG and JPEG support is planned. +*WorkerApi* | [**task_update**](flamenco/manager/docs/WorkerApi.md#task_update) | **POST** /api/v3/worker/task/{task_id} | Update the task, typically to indicate progress, completion, or failure. +*WorkerApi* | [**worker_state**](flamenco/manager/docs/WorkerApi.md#worker_state) | **GET** /api/v3/worker/state | +*WorkerApi* | [**worker_state_changed**](flamenco/manager/docs/WorkerApi.md#worker_state_changed) | **POST** /api/v3/worker/state-changed | Worker changed state. This could be as acknowledgement of a Manager-requested state change, or in response to worker-local signals. +*WorkerMgtApi* | [**create_worker_tag**](flamenco/manager/docs/WorkerMgtApi.md#create_worker_tag) | **POST** /api/v3/worker-mgt/tags | Create a new worker tag. +*WorkerMgtApi* | [**delete_worker**](flamenco/manager/docs/WorkerMgtApi.md#delete_worker) | **DELETE** /api/v3/worker-mgt/workers/{worker_id} | Remove the given worker. It is recommended to only call this function when the worker is in `offline` state. If the worker is still running, stop it first. Any task still assigned to the worker will be requeued. +*WorkerMgtApi* | [**delete_worker_tag**](flamenco/manager/docs/WorkerMgtApi.md#delete_worker_tag) | **DELETE** /api/v3/worker-mgt/tag/{tag_id} | Remove this worker tag. This unassigns all workers from the tag and removes it. +*WorkerMgtApi* | [**fetch_worker**](flamenco/manager/docs/WorkerMgtApi.md#fetch_worker) | **GET** /api/v3/worker-mgt/workers/{worker_id} | Fetch info about the worker. +*WorkerMgtApi* | [**fetch_worker_sleep_schedule**](flamenco/manager/docs/WorkerMgtApi.md#fetch_worker_sleep_schedule) | **GET** /api/v3/worker-mgt/workers/{worker_id}/sleep-schedule | +*WorkerMgtApi* | [**fetch_worker_tag**](flamenco/manager/docs/WorkerMgtApi.md#fetch_worker_tag) | **GET** /api/v3/worker-mgt/tag/{tag_id} | Get a single worker tag. +*WorkerMgtApi* | [**fetch_worker_tags**](flamenco/manager/docs/WorkerMgtApi.md#fetch_worker_tags) | **GET** /api/v3/worker-mgt/tags | Get list of worker tags. +*WorkerMgtApi* | [**fetch_workers**](flamenco/manager/docs/WorkerMgtApi.md#fetch_workers) | **GET** /api/v3/worker-mgt/workers | Get list of workers. +*WorkerMgtApi* | [**request_worker_status_change**](flamenco/manager/docs/WorkerMgtApi.md#request_worker_status_change) | **POST** /api/v3/worker-mgt/workers/{worker_id}/setstatus | +*WorkerMgtApi* | [**set_worker_sleep_schedule**](flamenco/manager/docs/WorkerMgtApi.md#set_worker_sleep_schedule) | **POST** /api/v3/worker-mgt/workers/{worker_id}/sleep-schedule | +*WorkerMgtApi* | [**set_worker_tags**](flamenco/manager/docs/WorkerMgtApi.md#set_worker_tags) | **POST** /api/v3/worker-mgt/workers/{worker_id}/settags | +*WorkerMgtApi* | [**update_worker_tag**](flamenco/manager/docs/WorkerMgtApi.md#update_worker_tag) | **PUT** /api/v3/worker-mgt/tag/{tag_id} | Update an existing worker tag. ## Documentation For Models - - [AssignedTask](flamenco\manager\docs/AssignedTask.md) - - [AvailableJobSetting](flamenco\manager\docs/AvailableJobSetting.md) - - [AvailableJobSettingEvalInfo](flamenco\manager\docs/AvailableJobSettingEvalInfo.md) - - [AvailableJobSettingSubtype](flamenco\manager\docs/AvailableJobSettingSubtype.md) - - [AvailableJobSettingType](flamenco\manager\docs/AvailableJobSettingType.md) - - [AvailableJobSettingVisibility](flamenco\manager\docs/AvailableJobSettingVisibility.md) - - [AvailableJobType](flamenco\manager\docs/AvailableJobType.md) - - [AvailableJobTypes](flamenco\manager\docs/AvailableJobTypes.md) - - [BlenderPathCheckResult](flamenco\manager\docs/BlenderPathCheckResult.md) - - [BlenderPathFindResult](flamenco\manager\docs/BlenderPathFindResult.md) - - [BlenderPathSource](flamenco\manager\docs/BlenderPathSource.md) - - [Command](flamenco\manager\docs/Command.md) - - [Error](flamenco\manager\docs/Error.md) - - [FlamencoVersion](flamenco\manager\docs/FlamencoVersion.md) - - [Job](flamenco\manager\docs/Job.md) - - [JobAllOf](flamenco\manager\docs/JobAllOf.md) - - [JobBlocklist](flamenco\manager\docs/JobBlocklist.md) - - [JobBlocklistEntry](flamenco\manager\docs/JobBlocklistEntry.md) - - [JobDeletionInfo](flamenco\manager\docs/JobDeletionInfo.md) - - [JobLastRenderedImageInfo](flamenco\manager\docs/JobLastRenderedImageInfo.md) - - [JobMassDeletionSelection](flamenco\manager\docs/JobMassDeletionSelection.md) - - [JobMetadata](flamenco\manager\docs/JobMetadata.md) - - [JobPriorityChange](flamenco\manager\docs/JobPriorityChange.md) - - [JobSettings](flamenco\manager\docs/JobSettings.md) - - [JobStatus](flamenco\manager\docs/JobStatus.md) - - [JobStatusChange](flamenco\manager\docs/JobStatusChange.md) - - [JobStorageInfo](flamenco\manager\docs/JobStorageInfo.md) - - [JobTasksSummary](flamenco\manager\docs/JobTasksSummary.md) - - [JobsQuery](flamenco\manager\docs/JobsQuery.md) - - [JobsQueryResult](flamenco\manager\docs/JobsQueryResult.md) - - [ManagerConfiguration](flamenco\manager\docs/ManagerConfiguration.md) - - [ManagerVariable](flamenco\manager\docs/ManagerVariable.md) - - [ManagerVariableAudience](flamenco\manager\docs/ManagerVariableAudience.md) - - [ManagerVariables](flamenco\manager\docs/ManagerVariables.md) - - [MayKeepRunning](flamenco\manager\docs/MayKeepRunning.md) - - [PathCheckInput](flamenco\manager\docs/PathCheckInput.md) - - [PathCheckResult](flamenco\manager\docs/PathCheckResult.md) - - [RegisteredWorker](flamenco\manager\docs/RegisteredWorker.md) - - [SecurityError](flamenco\manager\docs/SecurityError.md) - - [SetupAssistantConfig](flamenco\manager\docs/SetupAssistantConfig.md) - - [ShamanCheckout](flamenco\manager\docs/ShamanCheckout.md) - - [ShamanCheckoutResult](flamenco\manager\docs/ShamanCheckoutResult.md) - - [ShamanFileSpec](flamenco\manager\docs/ShamanFileSpec.md) - - [ShamanFileSpecWithStatus](flamenco\manager\docs/ShamanFileSpecWithStatus.md) - - [ShamanFileStatus](flamenco\manager\docs/ShamanFileStatus.md) - - [ShamanRequirementsRequest](flamenco\manager\docs/ShamanRequirementsRequest.md) - - [ShamanRequirementsResponse](flamenco\manager\docs/ShamanRequirementsResponse.md) - - [ShamanSingleFileStatus](flamenco\manager\docs/ShamanSingleFileStatus.md) - - [SharedStorageLocation](flamenco\manager\docs/SharedStorageLocation.md) - - [SocketIOJobUpdate](flamenco\manager\docs/SocketIOJobUpdate.md) - - [SocketIOLastRenderedUpdate](flamenco\manager\docs/SocketIOLastRenderedUpdate.md) - - [SocketIOSubscription](flamenco\manager\docs/SocketIOSubscription.md) - - [SocketIOSubscriptionOperation](flamenco\manager\docs/SocketIOSubscriptionOperation.md) - - [SocketIOSubscriptionType](flamenco\manager\docs/SocketIOSubscriptionType.md) - - [SocketIOTaskLogUpdate](flamenco\manager\docs/SocketIOTaskLogUpdate.md) - - [SocketIOTaskUpdate](flamenco\manager\docs/SocketIOTaskUpdate.md) - - [SocketIOWorkerTagUpdate](flamenco\manager\docs/SocketIOWorkerTagUpdate.md) - - [SocketIOWorkerUpdate](flamenco\manager\docs/SocketIOWorkerUpdate.md) - - [SubmittedJob](flamenco\manager\docs/SubmittedJob.md) - - [Task](flamenco\manager\docs/Task.md) - - [TaskLogInfo](flamenco\manager\docs/TaskLogInfo.md) - - [TaskStatus](flamenco\manager\docs/TaskStatus.md) - - [TaskStatusChange](flamenco\manager\docs/TaskStatusChange.md) - - [TaskSummary](flamenco\manager\docs/TaskSummary.md) - - [TaskUpdate](flamenco\manager\docs/TaskUpdate.md) - - [TaskWorker](flamenco\manager\docs/TaskWorker.md) - - [Worker](flamenco\manager\docs/Worker.md) - - [WorkerAllOf](flamenco\manager\docs/WorkerAllOf.md) - - [WorkerList](flamenco\manager\docs/WorkerList.md) - - [WorkerRegistration](flamenco\manager\docs/WorkerRegistration.md) - - [WorkerSignOn](flamenco\manager\docs/WorkerSignOn.md) - - [WorkerSleepSchedule](flamenco\manager\docs/WorkerSleepSchedule.md) - - [WorkerStateChange](flamenco\manager\docs/WorkerStateChange.md) - - [WorkerStateChanged](flamenco\manager\docs/WorkerStateChanged.md) - - [WorkerStatus](flamenco\manager\docs/WorkerStatus.md) - - [WorkerStatusChangeRequest](flamenco\manager\docs/WorkerStatusChangeRequest.md) - - [WorkerSummary](flamenco\manager\docs/WorkerSummary.md) - - [WorkerTag](flamenco\manager\docs/WorkerTag.md) - - [WorkerTagChangeRequest](flamenco\manager\docs/WorkerTagChangeRequest.md) - - [WorkerTagList](flamenco\manager\docs/WorkerTagList.md) - - [WorkerTask](flamenco\manager\docs/WorkerTask.md) - - [WorkerTaskAllOf](flamenco\manager\docs/WorkerTaskAllOf.md) + - [AssignedTask](flamenco/manager/docs/AssignedTask.md) + - [AvailableJobSetting](flamenco/manager/docs/AvailableJobSetting.md) + - [AvailableJobSettingEvalInfo](flamenco/manager/docs/AvailableJobSettingEvalInfo.md) + - [AvailableJobSettingSubtype](flamenco/manager/docs/AvailableJobSettingSubtype.md) + - [AvailableJobSettingType](flamenco/manager/docs/AvailableJobSettingType.md) + - [AvailableJobSettingVisibility](flamenco/manager/docs/AvailableJobSettingVisibility.md) + - [AvailableJobType](flamenco/manager/docs/AvailableJobType.md) + - [AvailableJobTypes](flamenco/manager/docs/AvailableJobTypes.md) + - [BlenderPathCheckResult](flamenco/manager/docs/BlenderPathCheckResult.md) + - [BlenderPathFindResult](flamenco/manager/docs/BlenderPathFindResult.md) + - [BlenderPathSource](flamenco/manager/docs/BlenderPathSource.md) + - [Command](flamenco/manager/docs/Command.md) + - [Error](flamenco/manager/docs/Error.md) + - [EventJobUpdate](flamenco/manager/docs/EventJobUpdate.md) + - [EventLastRenderedUpdate](flamenco/manager/docs/EventLastRenderedUpdate.md) + - [EventTaskLogUpdate](flamenco/manager/docs/EventTaskLogUpdate.md) + - [EventTaskUpdate](flamenco/manager/docs/EventTaskUpdate.md) + - [EventWorkerTagUpdate](flamenco/manager/docs/EventWorkerTagUpdate.md) + - [EventWorkerUpdate](flamenco/manager/docs/EventWorkerUpdate.md) + - [FlamencoVersion](flamenco/manager/docs/FlamencoVersion.md) + - [Job](flamenco/manager/docs/Job.md) + - [JobAllOf](flamenco/manager/docs/JobAllOf.md) + - [JobBlocklist](flamenco/manager/docs/JobBlocklist.md) + - [JobBlocklistEntry](flamenco/manager/docs/JobBlocklistEntry.md) + - [JobDeletionInfo](flamenco/manager/docs/JobDeletionInfo.md) + - [JobLastRenderedImageInfo](flamenco/manager/docs/JobLastRenderedImageInfo.md) + - [JobMassDeletionSelection](flamenco/manager/docs/JobMassDeletionSelection.md) + - [JobMetadata](flamenco/manager/docs/JobMetadata.md) + - [JobPriorityChange](flamenco/manager/docs/JobPriorityChange.md) + - [JobSettings](flamenco/manager/docs/JobSettings.md) + - [JobStatus](flamenco/manager/docs/JobStatus.md) + - [JobStatusChange](flamenco/manager/docs/JobStatusChange.md) + - [JobStorageInfo](flamenco/manager/docs/JobStorageInfo.md) + - [JobTasksSummary](flamenco/manager/docs/JobTasksSummary.md) + - [JobsQuery](flamenco/manager/docs/JobsQuery.md) + - [JobsQueryResult](flamenco/manager/docs/JobsQueryResult.md) + - [ManagerConfiguration](flamenco/manager/docs/ManagerConfiguration.md) + - [ManagerVariable](flamenco/manager/docs/ManagerVariable.md) + - [ManagerVariableAudience](flamenco/manager/docs/ManagerVariableAudience.md) + - [ManagerVariables](flamenco/manager/docs/ManagerVariables.md) + - [MayKeepRunning](flamenco/manager/docs/MayKeepRunning.md) + - [PathCheckInput](flamenco/manager/docs/PathCheckInput.md) + - [PathCheckResult](flamenco/manager/docs/PathCheckResult.md) + - [RegisteredWorker](flamenco/manager/docs/RegisteredWorker.md) + - [SecurityError](flamenco/manager/docs/SecurityError.md) + - [SetupAssistantConfig](flamenco/manager/docs/SetupAssistantConfig.md) + - [ShamanCheckout](flamenco/manager/docs/ShamanCheckout.md) + - [ShamanCheckoutResult](flamenco/manager/docs/ShamanCheckoutResult.md) + - [ShamanFileSpec](flamenco/manager/docs/ShamanFileSpec.md) + - [ShamanFileSpecWithStatus](flamenco/manager/docs/ShamanFileSpecWithStatus.md) + - [ShamanFileStatus](flamenco/manager/docs/ShamanFileStatus.md) + - [ShamanRequirementsRequest](flamenco/manager/docs/ShamanRequirementsRequest.md) + - [ShamanRequirementsResponse](flamenco/manager/docs/ShamanRequirementsResponse.md) + - [ShamanSingleFileStatus](flamenco/manager/docs/ShamanSingleFileStatus.md) + - [SharedStorageLocation](flamenco/manager/docs/SharedStorageLocation.md) + - [SocketIOSubscription](flamenco/manager/docs/SocketIOSubscription.md) + - [SocketIOSubscriptionOperation](flamenco/manager/docs/SocketIOSubscriptionOperation.md) + - [SocketIOSubscriptionType](flamenco/manager/docs/SocketIOSubscriptionType.md) + - [SubmittedJob](flamenco/manager/docs/SubmittedJob.md) + - [Task](flamenco/manager/docs/Task.md) + - [TaskLogInfo](flamenco/manager/docs/TaskLogInfo.md) + - [TaskStatus](flamenco/manager/docs/TaskStatus.md) + - [TaskStatusChange](flamenco/manager/docs/TaskStatusChange.md) + - [TaskSummary](flamenco/manager/docs/TaskSummary.md) + - [TaskUpdate](flamenco/manager/docs/TaskUpdate.md) + - [TaskWorker](flamenco/manager/docs/TaskWorker.md) + - [Worker](flamenco/manager/docs/Worker.md) + - [WorkerAllOf](flamenco/manager/docs/WorkerAllOf.md) + - [WorkerList](flamenco/manager/docs/WorkerList.md) + - [WorkerRegistration](flamenco/manager/docs/WorkerRegistration.md) + - [WorkerSignOn](flamenco/manager/docs/WorkerSignOn.md) + - [WorkerSleepSchedule](flamenco/manager/docs/WorkerSleepSchedule.md) + - [WorkerStateChange](flamenco/manager/docs/WorkerStateChange.md) + - [WorkerStateChanged](flamenco/manager/docs/WorkerStateChanged.md) + - [WorkerStatus](flamenco/manager/docs/WorkerStatus.md) + - [WorkerStatusChangeRequest](flamenco/manager/docs/WorkerStatusChangeRequest.md) + - [WorkerSummary](flamenco/manager/docs/WorkerSummary.md) + - [WorkerTag](flamenco/manager/docs/WorkerTag.md) + - [WorkerTagChangeRequest](flamenco/manager/docs/WorkerTagChangeRequest.md) + - [WorkerTagList](flamenco/manager/docs/WorkerTagList.md) + - [WorkerTask](flamenco/manager/docs/WorkerTask.md) + - [WorkerTaskAllOf](flamenco/manager/docs/WorkerTaskAllOf.md) ## Documentation For Authorization diff --git a/pkg/api/openapi_spec.gen.go b/pkg/api/openapi_spec.gen.go index 6f63b457..153bb18f 100644 --- a/pkg/api/openapi_spec.gen.go +++ b/pkg/api/openapi_spec.gen.go @@ -18,230 +18,230 @@ import ( // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "H4sIAAAAAAAC/+y923IbObYg+isI7hPhqtgkJUu+lNUvx+1Llartso8ld52JdoUEZoIkrEyADSBFsx2O", - "2B8xfzKzI+Zh9tP8QO0/msBaABKZieRFtmSVe/dDtcXMxGVhYd0vHweZLBdSMGH04OjjQGdzVlL452Ot", - "+Uyw/JTqC/t3znSm+MJwKQZHjaeEa0KJsf+imnBj/1YsY/yS5WSyImbOyK9SXTA1HgwHCyUXTBnOYJZM", - "liUVOfybG1bCP/4fxaaDo8G/7NWL23Mr23uCHww+DQdmtWCDowFViq7s3+/lxH7tftZGcTFzv58tFJeK", - "m1X0AheGzZjyb+Cvic8FLdMP1o+pDTXVxu1Y+J3gm3ZHVF/0L6SqeG4fTKUqqRkc4Q/D9oufhgPF/l5x", - "xfLB0d/8SxY4bi9hbdEWWlCKQBKvalif129hXjl5zzJjF/j4kvKCTgr2s5ycMGPscjqYc8LFrGBE43Mi", - "p4SSn+WE2NF0AkHmkmf4z+Y4v86ZIDN+ycSQFLzkBvDskhY8t/+tmCZG2t80I26QMXklihWptF0jWXIz", - "Jwg0mNzOHVCwA/w2suVsSqvCdNd1OmfEPcR1ED2XS+EWQyrNFFnatefMMFVyAfPPufYgGePw0ZjpKcIv", - "e0bKwvCFm4iLeiKLj2pKMwaDspwbu3Uc0a1/SgvNhl3gmjlTdtG0KOSS2E/bCyV0auw7c0beywmZU00m", - "jAmiq0nJjWH5mPwqqyInvFwUK5KzguFnRUHYB65xQKovNJlKhUO/l5MhoSK3BESWC17Yd7gZvxM1ok+k", - "LBgVsKNLWnTh83pl5lIQ9mGhmNZcAvAnjNi3K2pYbmEkVY4b9OfAYCfNowvrCmcz7KKGHfZYTGV3IS+Z", - "oaOcGuoGYuSOfflOtLQuxneO3h3UYNA+paf1X/YeLefUpCexFDmXdv3kGMgzLbS0GJJbir0oaMbmsgB4", - "sA/GAsWiEqKpHbCkoqIF4WJRGTLlzJ6pJnOe50yQ7yYso5VG8I6kGOH51/hg5GxWsJxI4bmBxc3vG2da", - "Q9PO/IKLiz9XxrQgkETVZ8KitK43bufBJdxxU5MJjEUmbE4vuVTdYyWPW68ueVFYlAlX6s8FEzlTdzSO", - "7cAarhcBclTvdAjrObfrOY8PAsZtYpxbwx2NODcmLwHaxSq6dDW95LBTQYQkhRQzpshCas0nBcN7w4U2", - "jOZAV0V8YriiOxHw7njqZwFh9zl+Jx7ba0PLRQGH5GYjRo4mbKQAAiwnU0VLRhQVMzYkyznP5vZg/c2h", - "lZElNTyDPUylpR84jM6YCN9NKkMyag+FyEumFCJT6ffuSKS2bCx9+1t8roU3TTRJcasLture2OOcCcOn", - "nKlwZR3kh6SstLHLrQT/e4X8w9Ha945/JcmDvd1UzRIs7LFYEfbBKEqomlWlFQw8m5gsVmP7oR6fyJK9", - "RgKx+u57YqGKN9dIkilGDUNUdkRkFa2h3msNqB0oPy9LlnNqWLEiitmhCIWt5mzKBbcfDC2ewfR2yiHA", - "RFbGrYgqw7OqoCrcsx4yrquJl3rWCUsJ+eLEfRk49M4jnLrPLzncoiuM8Ff7JS+s3NRGSotjbmVbCkwn", - "NShaclM1GdknCHHEuUC+nlRKMWGKFZFWwqF+XEDiSMbRY3L+0+OTn549PXt+/OLZ2evHpz+do/yec8Uy", - "I9WKLKiZk38l5+8Ge/8C/3s3OCd0sbDX391FJqrS7m/KC3Zm37f3jSv/T/jZyZpzqucsP6vf/C1xR/rO", - "pSv6OAhEu48uJgp2VJPjp/7KwLYjAj4mv0gimLZSgDaqykylmCbfgWCnhyTnmZ2KKs7094QqRnS1WEhl", - "2lt3ix9amf/wwG66kNQMhoDX224yQp0Gq/fIOEwJvZ49NznYufvm/IjQYklXSNPH5LzmV+dHiB7wtSNd", - "b49RBAeAOsFNke8KfsEI9UAjNM9HUnw/JudLNkkNs2STmhsC1pVU0BmzRA1pvZAGibqbxTO293IyJuco", - "S5wfEcEumYKh/9TGZUca7UpRNrQvAnBA77SzC1o0aY0/rRqgONMAiI6Dy2A4WLLJxjNLY6TXXWo8QSmH", - "a8vI6Ywpx5gNUERaWuafUHSYoQlt6Seq5/GNBy5DjjskQBPHrQo6YQXJ5shkYRl2ZBQ88OcxObU/c418", - "RIr68IO0zISulOUsTqQMMn1zUns/qgVI0dSwHokOlrSbau0n2NoskFI9O1pbizg7AoXLi+Yc4llsItgW", - "HRJM/QXXxlMoILn9iNFFAq91X23jpw1O2LPreorUBt2Ff03N/MmcZRdvmHZabksttxJ/d/MdjWTlRQEz", - "twj3nZDme0enk8ISCKxpjRdlWcDIJdWo+lvMm3KR4yyexCcH1mc4bdKSgCLPnIWFOlYilaVb46TQAsws", - "uVIYJCx0KiuRJ9ekZaWyjRJHdCQn+EH7SBFobkVh2HjPQ3dgG478ORd5feJb4V8PwiQsJt19WKoXCxJU", - "a5lxapAk292cMXF5SdXAIUa/AOHNgp3zcA+IYlYHAxGbEo02KGfMAnr3gWWVYZvMlf22wEDZo8cexmm6", - "E32SOpZnSknV3c+PTDDFM8LsY6KYXkihWcqwmidQ/afT09cErX/EvhHE9zAQObasNCuqHM0keClWhaQ5", - "0RKxOgAQV9uAbVG4pXGBdkourV75xE52f/8wcJ1gW8ipoROKuuak0ivLnRiBhfpFOeYlhaFcEEruvGFG", - "rUaPp4apO/jqnFEwX9jlcZHzjBqmnYEKNVTDS9S37VEwHZRPxYziLB+T56CperHEDcg1CC4WTagVjj0v", - "v6Md37PvZgVnAswmuSRalswqhjOiGNUSrBMExCn2AS8PpwWZ0OxCTqfIMYNB14uSXWtyybSmsxTutZAL", - "zr1+P4VZzwtaMpHJvzKlnZHJ6fz2nzMOAujh+GD08MFolueH9/L7hz944/HR4L/JSnkONgB7jTKXfqjB", - "4fhwRIvFnO4PhoPUz+S7ztjfezW5Rl9YxU4SQ2MZiReiZ8074cAQrkKQ2kpGhQFZdl6VVFgE1FUJn1ls", - "sbevYBZzJxUvcu/5AGmJlqCGnMerOh/CWBJ4Tf0JmOLcjcOvz2fcnBP3FdyjpGDVOni/vxYogs3fQjSF", - "DT+j14QWxavp4Ohv66n9iRcD7Vefhm2pgGaGXwZlZo1ggJKqNsR/YaVQbwBO8ko0daQIvH0AUisvmTa0", - "XMQ3yoqlI/skNSZYpNmZIwgsP6MJ0eN46mweBYNpLEsPXzgJ25vJ/AqIZf1IdSxB8hTHfqqNVCh0+2sY", - "pMEmLVi7cp4AxNu3x089bH8Gb88GR9G2PiorUgcXVbXI0+dwGjYvp3i2+Op4y021ZRq7YH/o9bSR7yog", - "22+ffkM8/nMhs4uCa9MvlS+BsWvHxxQD6g4uDpaTjCngMODKRNldWn6jFyzjU5555NxKMIrX80wYtUrJ", - "RN2XOpL2ep8g7udsK8dgeLuHiLZOoB46dgH2kJCn7nqk/SD2V0InsjLopPDWdbyAQRjA6w/OCnzQFWv0", - "nJZUnGVW1JQpTSEW5k/gZeJfjkxcfgGKlfKS5YQWUszQI+htEttYnJtr6QHNC6rNG2c6Py7pjKVh9EzI", - "ajaPxSZgFzSSLhacZYwYOcMt5nw6Zco+wxME47H9mlAyl9qMFCuo4ZeMvH3zwssq9mbWlnxu1zMmpxKY", - "G5jD0Cr05sXQ/mTFKEENI+8GH62Q9mnvoxTBBKmr6ZR/YPrTuwESr+ZZ2Q+aaKmKJBVywzR0jg0O2NZR", - "wFTRSD1H8ZJq7TH1hBUsS/tXXwfJHP2D9tmEOYr+Xk7AtFYVeYTCFl0iIcpC+czRrLOSfhgcDQ72Dw5H", - "+w9G+3dP7x4e3b13dPf+v+4fHO3vd4Wf7tcdz0FR4EJQy2SKxSTXLmwqFaivnq/WvKl1+Xagz0mQMkOt", - "CA/sP8/BK0CL100S1mW8jc2oCTeKqhUp3WAeocfkpd2Gpa4F+xDba53wXkq7CzCsVFYnIed0PBln55as", - "13fI4uoFW7XOaKEk7ONocLJQ3DDyXPHZ3OrRlWZqzErKC7vq1UQx8f9OnG1Bqpl/w8nDJ/ACOTH/539f", - "smLQA6fXLrTiCZjgumQ+DiYp6QdeWr347v7+cFBygX/tdxWD1jUIg/Tg/0lkVksfllEV6/k2yApeZwcG", - "jLYFkdljwPiQBaCVxSrK8ccFtSrfYDj4e8UqfA2+GAU5aoD7YBVDm3plYT0KNKnpwqvxKCyrD6qogqWt", - "NPgs8gU7tRhtpF9EXGozDC+6uGX1nZKRqpdNuIfAJ4Ll3nthg0hpr0elwWSOLM6+hfyA5WTKC6aR6QqW", - "WU1RrVIEvMXgzlJS550nnrseP70TqfYgunllus2I43CPMXnMrSYkcKX+kxTT9iYDJyR45j1Vsgxb71OV", - "UoA+pfpCn1RlSdUqFahULgo+5SwnhZMeMVjFQ31MnqBJAs0e8LD2ddif/CExalUBqi+6Ag18tbW1DcLF", - "3IK3MPT2MkL9/1UM9xwzLV5arfv+cFBGRL2PTH4aDiCE5myygjAzx67ABeYQ/Tf/rzMuGgQj0AFHIn7r", - "skBcy8ea+t1Nm0U+m/s854WxCnnNfYael7w4/suzmpUkHetyOtWsudD91EJrUH3cIchMb0mv+3YU+2p2", - "2VV0au1b8YaZSgl0zYEEAkIz9dSTO3EDtrCLrhQFQbaRuh+B+7wTgPrb3ik0ZVzxLjnd/YkUUz6rFPUC", - "ZXM9XD/nSps3lVinsKAhwTI9jtK5pXVT+2FtvHTzEVUJXfvxQkARSEKUTNmSTKmlmnpInCtXSDGCqDur", - "MGTxeoEfWFnR67/BvTex7JiwcmEs9bVvmTlbOelX3DFkwnpDOoDkY3BWvpWaBqswigo9ZYo8fn0McQne", - "vZX2wWjkhi9kRtOi/NPAPYA1WcZjLwXM5T4eb7RFtGdp724YH/AaLPkrVdy7oNoIcmaWckkTbOiVYKMl", - "XZFL9zE6XSEqT2oDPgxp76OL/4KIBQ4BXIpBZF9pDxx45PlHK7J+One6IFcYcealhznEeDjBgBIf2h0c", - "bdS7RcjpUibWBJZMN2ne8fUHQYW55S8KaqziMQrmFYy5BM7uBpmswqL7EA0+2mzNcFbQGtD+yy3O63GV", - "cyaaDitnSHK6gE6Kp61h9DoutY5CtdGnw8Ne0sXCwhhO2R8KsVuGOC4TosM4hlgnNrz6C2OLN5UQyaDt", - "4+BSWUYXF2FASroiF4wtLFESXn5LSztlZ57ugdYye48AjsL+m6A7rFmtd1fFon1tvQ3K4dLh9bHxmj0I", - "z3NGzvGR5U7snNitOGNzHDeM18dOAvCeSftfwT4YF6mBRPrc8urzITlvAuGcvHx7cmqV2XMIyDvfKtqx", - "BcgAtT4YpbA8+GyPvdO9pZI6B/f6i9VyySaGv/EYgq/m6gelheWbOYrz1G/noH/DZpZtK5Yj/e1Ckua5", - "YlrvmL7i6G/6psmpWVLF1lzDTVTr13BzUK4LYTBnwZqsdxOHPysBxjEAD6o4CcYDYjjIMI4SVjiIoNCz", - "+tRpnbCsUtysgv++RQG3deSu8+CeMFMtHmvNtaHCoPCZCn2IhTw5sbKdV5dB7rKjkDBMl1o7m9cziI2g", - "WwTH9geDfC1BrbuFJDxBnHvS61Q4YaD+O7uJ8xJwRU5+enxw/wFee12VQ6L5PyDYdLIyTKNA5mLYSeEW", - "5YMqugaOln0SZgOPLJKfQR12PZ5JFEIHR4PD+5P9e4/uZgcPJ/uHh4f53enk3v1ptv/wh0f07kFG9x9M", - "7uYP7u3nB/cfPHr4w/7kh/2HObu/fy9/uH/wiO3bgfg/2ODo7r2De+DSxdkKOZtxMYunenA4eXiQPTic", - "PLp3cG+a3z2cPDp8uD+dPNjff/Bo/4f97JDevf/w7sNsekjze/cOHhzen9z94WH2gP7w6P7+w0f1VAcP", - "P3V1fg+R10lqa3+NpEevCDl+HUfC+3F8sktwgzgXSNsaBTSc6qAUoXs2mmRMjgXB/BjnVtfeBeLGgnkt", - "B3hfafSgvAvbIcdP3w3QLuS14+DbD1EoFFcButq5M7mMdFHN9iBpYmSp1x4mHoyOn573RFo6lNlS8cW1", - "P+cFO1mwbKMOjIMPm8e0+TbV3D9lgrXP0KDWOpVUJuAV0MN5kNuIAYqzA33tRjNzKpyDsunkp7oxKHhQ", - "XIQs9ekg9TUmp5F08fnIt0Xsx5ZHEo66S+CcCka91EWR8jpa5RYd0eG0pNjyuct6PDRl1CMGp2kyA4wm", - "VtgktfGYyTGAznzsWsZYk0YPNvpU7GrceMN+YbcJ4F+5mdf+kq1A7ZXwzDsWk6AfOjF1SHK2YCKHDFoB", - "Gh6KM9/42Wwre0bH0eOK6ZxqbLVed7wdN1glLoRcCghSKSTNUR/DOJ+kWQAHe4Orgawvp6ddWfAAQaMB", - "u15Z4pqEhhsREG6AvfUffvO8MDA1zdXwtEDMpkRFn3mWMoyP0tkmZPO6M3Vp5Y7nvGBRsBIgmuUk7jX7", - "G/vggnWDXB8HBd8UDtQXM9yH60GLeKJw3b4wrkTk+3OxBqsdNAlH26GL578rz/1ShHAt0VMsP9mkubVZ", - "iYbPao5FcysUO50uCqajzqpK3lX7+wcPgj3YSWeVtpjfMTQb6QZMzIXCVLgHToC6o5vujpSnm0YW3h0s", - "scEw/Gk4KCIA7WhruQFXSevUi1pDDltvGEKaa0pih8wumDl+9bOcvAXfbzJlVTMTSnwMibZStrxkiviv", - "vbMBkvrAZqkxtlqwJfgXh1YdYpdcVvoMcfU8RDB50pc60X/62F5v92sO9Ast4wzidL56A9w7+W7jKKaQ", - "zXo/6RFXbKqYnp+FAIi1NvwozcJp/O57DL3A3dzRGIRRO0YB4TAbVWsXHae9Ewr+BAcnzeaQNXLJ84pi", - "JAdZwiwzJphCu74kJRUrP4grKbJQNINSB71+0N2B2F8AaNfY661xbkn1mYsH7Km0g1c0mDjcy/UdsRfd", - "SOfkaPg9HMG3L0PUAJSh4PmdupCIZmboJZc6OBjczls5Q3hPhLirWRRVNWoi3TqyFkft9tE3h6NS1Tia", - "CK8NiSUegG6l6ezPLSO5zbwqJwIiFDdiVjoAOZUXWsd647/CJOsgZal8f62iEybAjRsIPt5iDekxezr6", - "9pywS7DCQCUJI10GuReTozftQwtMdxXH5IkfExPfZ8zEz9H2Br4+e7H9BfZ/F3KmMa5BMOaSARcFz7gp", - "Vn7aCUOuBJ51+2g1DBvJqAuHCe/aMaTAOLXvjIT1NKaeepR5Lyffg/JmX7ev3NF2PQS8lvayplibXGyU", - "+hJH88r7LretlZEaxGcYe09MP5fCFDgjm1DZI5Wof7CS2ngzL2shqlysK6mxfuuR2h6WAeGm9V9Jjb0P", - "FAlaSQ254CJ3t35rGISg2qL4WU4gv6Uofg1BBo5XU31RyBk+jK91/Popnem1uzil+uKFnPVRtVN3KUg2", - "r8SFE9og/CPcYSVlSXKGHDrHhy4l1C4Rbi+9lDy3H+cIhCb7TOG13VnXiWUXEZDKLW1MXtJVSAgtq8Lw", - "BWRZCoaWefbBJF3DnratRd1TdP7thpU11bTbWIeZdvhtJOZTgGS/yAzA6MjMLgr1akJznL+3s1y6HdiG", - "u3C5zTKsc9R+rhDbLMN4lW+uSzZLiTqBVTuf9trkuDWYGOhFHzriC+SUzvoRkZuAhAmMckVNNscJnNKt", - "BVEoZ7KlILpZeOwr9dEE0jYXFt9cd2VdwNQaeGVUnFkpmCqzIVTUnY2VPmhl5Mh9lQ5gcVBKKsFeV0IZ", - "hpk6zt4t18J6x2ShzdTChbJsQS8gG0ozljI90To2lut4vfZ9X8whqray3do3k52lX/3nEp5OkMxnfHWW", - "hSyYbT9uhIldr4rZn5ufInH9lK1ObI/vSvIGx8nqybpNdURFVODIyDqZpGlB3yYt4vOzx9yDw9//O/nP", - "f/v933//j9//5+///p//9vv/+v0/fv8fsToLhpU4RQBmAa/b0WAPldA9Pd17LycawwjuHhyO4SVw41fi", - "4gzt6ofRIb7+5Ud7pgs9ODq4NxxArUc9OBrcHd3dx3JuZ4DjbKlDCUHQc7HEG/tgmHBFH8YLF5poV3Im", - "KxNKuDTWh1OEFe6ld+5q0XXGU1KateO5AoNY2eystsQOCi6qDxGqQtT0yB2VU+K7yZkxEmxQvENu5LZV", - "pDeYzOKz3mRN8q/WsVdb2aDqzLMeqHXC01G3EjOiV9qwss4Ndt+2qo1BRlomZ4Jr1jXvu5fr9FpKCrlk", - "apRRzULYjJvCL8qlOLzDA303GJJ3gyUXuVxq/COnaskF/lsumJjo3P7BTDYmJ2EqWS6o4aEy9I/yjibn", - "qhKghv/46tXJ+Z+IqgQ5h/heWZCcawOpYRBQb5V8GjLFfFHWsEjL7R9r7/+gBbE7Gjb2Qd4N0OSh3g18", - "cIorcI0GZy/CQ6m7hYLUearJu0HT2+HHezeoYV9KbYoVWlUuGDFMm72cTaqZq6CnCaOaQ606ZwzxKYQY", - "Pc0zkssMapRCTYSiaOwsqWv1mTHtD2fbl7sbkkwueOzgPG8XPRvb0c5DCdRuwbxT91ed92+JN8sJd7Y5", - "tEXmkmlxx5CSmgwrAdDMVLQII3UCw06x9CpYrnS7jh7gkSzyKAerWTK7XcYwlEz2JsJ34rixQCumlcin", - "hnWsBpROWi2o1q1auZ3KD0mgO0nSitVglHK3z5fEqhM1I/n7+GlIDXFmXWerQPclNSQUHZwwYklMXhV4", - "/e1SMGgFzMSYXSRVtDGLXb5Qh0VD/0VYSdObspV+7gSKrkk4QeRSwkS6DcKpN0pg4wPIr9Leg+vDxXyF", - "qyHhYzb2ufkhTSNK0xnvppF/yeYJ11FfB7M7zyarM58ts0ueq9MQEmvd0nqwg6EBdAwjK4unG2RfVOXE", - "Kmgb9v/yus6Cy3vZTdP4+r0lrqusjyc9u5z4tqWA2naQVFuLuHlFuEwb+lg4A+nGWjbg8JGuh0Vk//ws", - "z046Os4SGgjwallCh42Iry6mRAbPjTNXqkhP/PbNi9jrXc9OuNGsmIZIWrkUhaT5Nhkwtb00nCKWh4H9", - "953KZxShCDnnWk7NqF2bImUvrye8TeUl4lt9hfoScQWBrk5caUNYtxBRje5YGks2aj/XnncQf7vYv6O1", - "9zYRw6uaaLekSH6mvpNa56PBZyHKARK/vSgnHZVGVQwxz4VZgbsTKBacGJSyRFEPG2FYyT6cHkQYygUm", - "rP6JSGciab3AZwICX74D+Ub6jN9zT2+d80FIQ5iiLrMyVP5rS+12Wd9v8k50c6QLLlzbAhc5ApH8dzTJ", - "Qm18THDmcaUvINfk1SVTS8UNQ1mey0qDLVREBQp9SaKk+JDyXL2QM+eRCjQAnWNeKvYl9e2i4VRgQkZV", - "wXuKGJsGCdyBSiSRq84mTOoDikFaRMZAJwTlnQvMCsdxEsHm6xIRP48KrLlkftLUJar3uF2BS2ccDSVW", - "Oon6i7Nojy3J4DVxzzpG7rUBgdsZVPrH+vzESkNT7UlOKVIKz/drpwM0jChZOUE83Uqkb7h5ugtA7Wqb", - "AfTFdiQ3OqpGaGNUKDWZ0/npt2Gi2lqXHXpqW6PZi21KT3Yvza7KURtH10co+9H7bwfmF0cRErXF29mi", - "3S+j4PZIWFE1yxQDTilHQpqRYUUxomIlBYszaY8Gh+ODPtgf/c0nbFrJbVou2Mx1ExnV7SQGw0HJdZYo", - "GnTFVGe38I9f/ma15TOcqRlom5rCIXP/kZ3wmXjVPqyG79BZ5t0BPn59DE23opM4q4sz6yWdzZgaVfya", - "Dqbl1ez6J/vLOndWe/3H5AlJ+mQ6K1pzSgVjixNn+0r4ju3jYBvz4fGoRvpKKycWZhAhxkSOrs4g3/iw", - "5FBhLKerpp4WxrYEGxSlMXm8WBScOXcvunql/ZCD3eo8pyt9JqdnS8YuziHdDN5p/m5f9uGZiRWCTCjI", - "wb3RXFaK/PTT0cuXdcEp7MtSo2088uBoUEpiKgJx/BAWlZ+B1H00uPvD0f4+Fk1wSp+rfgV45d/af5Qs", - "qdmcpJuTRzM20mxBFQY0LeWoYNAJx5dWdVC3fNmOBQSdsYseMJPv3g1KiR4HU3lnw/dj8gysnSWjQpN3", - "A3bJ1MqO5wuodnsLhv1HohMAtKfyhQfNx3QscgDU5uHaPDaMPWxCszFutOI198JQw/p0aufLVnF5l+19", - "4UmNOBpsq0XlLcIaMo7okl6wLnJdxWm/fRpO47s4gNFCHZMNcV3DAdWWpNhDgOITw4Fh2r0ip1OrjIBx", - "oO0yrxGoPzYgUQgOEx+QbNWKpyuyU6ekQjSOi0JL2Ab0WUH/sVqf9tKs3+P8E6jNxV3qgFzVHhaUVmoN", - "0Cm8mky54Hre11dw+AXPcxj2t+Zk+6wxf6aaZ2sEz/FnRA8td4ke2sWI/lUCdb5UhZovFkazTbOJkCPU", - "0qxUqOl0BTvT9tExtT6WUvxihYU8RmclFcEUVKxcWsfKSxt0RriJHPdQwBNsG+PgGnRm4oUVGOS0jtu1", - "6ifR3P5NBQPjS1dK6GhkjVL+duhckh9fvyUYuBGsPM+e/fXZs3HdvuTH129H8FtCSGh23t05ps3Q2Zg8", - "cT1NnTezVQ2XuiBdNNy7lH8KbnZFRS5LAgMGE5Frs76Vx3Nb28kG3eKUzrYk/TW1D0igO3YCtwOLCM0T", - "NXR2xnPQLe4d3j3IH/yQjRh9kI/u3X/wYPRoMn0wYo+m+48m7N4PGZsk1IowQiTqb86cWSf6+xHXQser", - "+Z3F7KrCJ40hn9ZMjUaS7SxZzVLBH6/qkEpnCSWMJKfoBg+nHbGpT6hlQ1ksqw6Vsd3jjFapAhVvNVNQ", - "wNDlXzqWcfx0SBZU66VUeei2A2q1q1Np9R9vv6zNGhb1ADDA2SxfrXc6N2Yx+PQJms+hww8SCzITGUAC", - "rT5ltHSuKvxSH+3tTX24IJd73eKMmKNBnlNVupQmSNkdDAcFz5irIhCI04vLw874y+VyPBPVWKrZnvtG", - "780WxehwvD9mYjw3Jdad56ZorLYMXZpqZf/ueH8MCpJcMEEXHCwy9iesgwEns0cXfO/ycC9rl7WdoaEk", - "1EE8zqElmWnWvwUZE0oQwGgH+/seqkzA99TqoJiBvPfeedAQb7dMwG7OB4fXBLqwWF2EUgiIgl7QsivG", - "6JlmhbRppzsjXuq/QdAfEKB6jGciX0ju0ktnrjt3Z8BOIrCFfBK8exDKs+fNLH3Afs5F/udQ1Ow1Vi65", - "NnCnewMm4P1cVqKucQbqcejGCC+7wMYvtC4srpdYx0novra0Ev9SSTEbt07/OXcJd1KRUipGnrw49r0A", - "0VkDcW+aLClEzIEM5beTQoqF1ImTggJYiaMC3vlnma++GDRahTwTYPFdEKVyvj6IPMLilRKDyDAn+/rx", - "qFEYsLvSX5oXd4iLxDA3ONIpF+z24dRfacHB4UpjbLoKMrXw1HltL+vxfU/m+iA3EhUskzGKAoHXoGyj", - "7MdXxdrXN4af/xSIidVRaoxsFk/ZwO52GKcXGTE1YUsp4jlWD/usI9+hx82nYWOsFS2L5lhtuXgTgrQP", - "4g30Gb1kacGjKyesPY3HWca0Dv1HE9X8E0OGYHAhDcGN3QGf/qsFE49fH/s8+aKQS9eJ0jdV33OSpDvQ", - "c7Kg2YU97Hei/7g1M9ViRH192X6yc0IvWbKk7fUQnuRUSaYZg9XSbnqJ6N1CynuJZLEWMkAE+pJN6GLh", - "jSS5VZGmVVHUpUyMq3Rt5crbR0re1iFFPaWVsOKtszpBP1QBO1yRaSUyvInQs2sDeluESGF2b+Xifhxs", - "cL69j77a0ae9j94J+2kdSWoww2bTZquAcws7Vz7QqXBRPaVacXaOql1UnG6NKavFJyaMnMn9E7ap12/X", - "yEzTdcN2p5heS2sV+Soa9cbihr2NSmP2S2cS8IXGLHKGKmNo+99Rv1u3nEYbqt7iY/2oGpKgdsfSusPE", - "f2HoFTagPwM568p0bfMBeauxg4l9zQvtNM9HyEzWZMEhGQ3NKdgEM76mFLp/WsaRSh4hE6rr6sETJZe6", - "kQ52dYyv97g7jvtWTD2cH5JvsKLZtbD6Rr/q7iH/LCeuPkvJTQc9r1PjWLMgcItVVsJD3umyxKyo5sJb", - "ozplGqB97+7B9csIp4GihnQ4ZugMsuZcl3yfNtd8IZk0xzWkbRYrkles1Uk/o9ncI18YCu6DlKSwosk7", - "caPiETwgviVDkxIgjjnPDvQskKpzR7CsFCTUxbIP9hVrDPdzM4eQuUvZuVSo2m9xtUCv/br3K4uWsO56", - "3Uun6e94IUK2p6Wi2LJxbgXKX16dYnalq9Po0hfq9Dwzl9Vs/l8X6o9yoQCtNlwnwP6wbzsSmNKggtuS", - "2xM3tXeWJ65Zo6Jfv1memWz+YyEntFGXC1LIrpeL9FX320KgGaav3KkvVujToeH2ULFKNg/vkYug5Thk", - "EzN1yXRfcUS94fheQdcabKRaZyHNANA9y2mdX0m1HmH5mroubPcAoS04cz3Cr4la9nYgT9o+mz3Im73G", - "sPe3dGV5xlcmrRp7h8fEtaSQz2pviq+L6yjigxuhiIrhmoSMOpzXhNCdy/jWUKuXVF3gSmOQDWtp3HfV", - "zBQ3THG6AeNhPCiVt9OgyAO8tFAnXGEBA8sUAFU8JXRFMaGElj1x+3vZPPQuyYVBF0qi7XHOwrsh5X1C", - "s4uZkpXIx+/ELxLmc5VRz9td7c9JUFUh7Ml+xXJSLUBWEoYrcO1LkfuyICVF9ESvXQc82L9lJSvCPixY", - "ZoZY3YFxRc7r9sTndSK7dr1frJJW4J6oINTN2rJtAjH5u2+bnJa5oCmtK994TQTEdW5OmfDajUWapGLG", - "zPimNZxGl95+lgRQjTwrLk4MK0NARRU+tcgMIgyQAtccFz68PaQAhIBQAsYCfjvuVvdRnkLrZggUEznR", - "EgJ8uzzNim97H+1/f6ElW2sachVStjIM+QFvjZ2mXeelV8XAZ205xOVSBIHXwhSaoQZIbDifKNc/alwQ", - "ysokz0VvcRp6cINAS1q3wkthNzoBwAiV8R1UqYCkbg3EeqrAUMJ4XRB+xAizT1vJalthdagv0I/Tm2Lg", - "fttGnHqKJCiiY4Exhbo+RvHZzEqrN0u03grkiCwnkBnQ9U1iQGfESVEFGBIusqLKUTly5fWxz7RVB+QM", - "m92gyu1qJYVBLLv2Qfod8YD8IkODRx3iXV2ZSfLdipnvmwbLgFn9+tdXxYgbMQ1yX7m9zXRaCtJ7OdnC", - "zIQfiZxEOXx993FvUsjsoggZrumb+YaV8tLezD+Ht2/yQK5F4qq3klJYqoXF3++WrvYr1sdYLdj3rkGE", - "AohExcsCHLf0JPu7SbOMLaA8FhNGceaMWkBW3CS3jajYRYXVun5Y9s5HINj1fn8dvLq+i74WucCWsgbB", - "rGo1kwbhGdWggtt/m1ABaRSYgJrJ8HVrM78HQJNcQjCt03HDlnVzh+ulDoyQCagWd+Holzp2sfa1bW9o", - "6vsWkPIPblJsHvUVzIvJQUMRl/UIpJmJyxX1+GZAE3hd1wT6g7NIvxOX09vj6hBsSTxsrmiy9BOFvCOq", - "A2NEK+XBQV85LpcCHJbgI+Hw+xBH+5WJ5hpkDZJAvQUHhma8y0YErbMj16HnSahd9cdGzkYJtx7UbCYY", - "Q3SGMzNfCU1PGsNdBUmbC3KYCp6rcNg+q1mHBpJB8v+DoHFzk7sgcWgat5Y9n8Jb3wZPhr2EfL60rIgw", - "5kzHpdR0R/K5ZWIhdeuGAnDQza9edQMbtpH30jtOI9FyTs0I2vw5/+Aol704FWxOv86p+dV+dGyefisC", - "n/dI9sl5P8dNMhM2CIt8kQyFLfR9Jri36UAiNI4CkQi+qrSP1sBaokOwMxVy5qLgeuUxMBm5hm/1LPVw", - "aFiC+oUiuL9ykknhcwKKlZ+CaxJO23sffLV67MqPgqesTI9R6svAIsZV7MC655ux72EB3DVMG95/Uvdu", - "v5Z4n+YkKS9U3LHcx2gA4G7U+dRcaL8Hyr8BTNrVGI7d4civ9x9dP7EMK6GFYjRfuWLiTmC4d6O+dzw9", - "CEETMwhkJee6BdG6rfl5dE0Q5Xk2J1I48/6NsZuqxW5aRAoKmTNCSc4Vy4xU7vrrVVlwcRGiCyyCOghg", - "fJlBouKAUlnRpSgi6xv2IUdq4Ro0uxrvGS2KcMHrSL6afiBQ29kPbkGU6PgywWJCzX/AFMXoWpoRN5/f", - "lnLEJ3utVKTZUN+VTtmSoHwFWpLs/59ab+gIBr09JIjz8UEM41pi9h3XMN+5Um7VlbGw1oR6tI5hAMv1", - "CT8LqYx2F79mvG5jGxH+MWacUR+tGNhGe8DQ4txHQIIlSOEqarID72pjBYSwhO4tgWH3PsJMuio/7X2E", - "X/g/1jjU43b6UjEfWtuSAVsI8dPjg/sPiJ/HY4adDIqndgVG/+pOfvhhZ96oXDzkBMaV4hOz+t1vM2so", - "v33diUQlFSfgxUeYu1pbWxkib9UlisuYQfFtzNIUcVd/ROamgBndl3XEO2DkPzcyDlNGFUdUeLOhPHc1", - "o9iUKcfBA6cGaADPfzc42P/h3SAgVh1XB0oF+PdMpYQX6evt6SDHYVglknjHwRsHjpF4tNASx9CyZFIw", - "wgoN49T1y1PLBGwBAM4ZxZICDoT//winGT2hYvTU7nP0FgYYJGAYdcdMwVAqPuOCFjCnHR9a92CB9ELG", - "BdWdvGDVuKhfFbac9WEAuG+n5PkaWIJQDm9AW6oZx5j0TXt75RY2eu4WNtgYq7SNPCMzw8xIG8Vo2aQQ", - "QVOfcGHv93BzYvgTnEPH+H81u6IXQ7smxYP9Hza97tCxgYiO5GB878PkCMp9btUBDMOdMLNkDtkdOKNo", - "oKC1u3AQWAC2LlEduhNEZ4/LoOzcT3QhwkvsU6fX31p/A+ub4xDPx67KKZkw+2GYf7Jq3DuUKM57r9AR", - "gfayroIhUJdGdPINZ1Ns4EDAGVw+RT/fIc143cZDuJ9TqTI+KVYkK6Rr4vDT6elrkkkhMJDdN0eSUGjS", - "EV5XbVM3zosR9oFmhmhaMidJGukbqZFcVlbIww/0+J3wp4qphnib6lqDiRMgE5mvellpnNNup6i1iy5Y", - "YskRrIt7H13vmk/rDdCuH/YWYZehFc7tNBC6kvtJxwmWVBVTeUsty82mTGvMdokv1pz8nuv4sf70fQ+p", - "bwUJ/H7W4QJ0hfL40BPQ1JaY4MM51URAIxSyYuZ2oVMcgdBpwIWR2iXDrATc+wYHmKsE0wo78EOONyCe", - "gdbCWyDfqX3x9iCfYR/M3qKgXOxYWee0DZxvBa+iuCiqDZmypesYFCHZHY3b3oJ6xZ+E8XwXorVYtV1Q", - "QNRU6Eax6stbIDut3b75uABkgd9AYAB27Ar5YGCGZ9Mpy4wXa6ELL45ANVmyomhnx9lvGXWVLuZVSYXG", - "GGgQTsGFfMlpt/pGXcra3hEobO9vFAY0wsWq79U54UIbRtu5ZFF58N6SLqGQ97WxdJ+O4ae6chnVkNfR", - "aNBdl0JZX3YEVTsdGk5jpzRvAjYutT3kMdJ6uoSEjscwKmdmz9CZPYnZdtkkdUXmbRVxQ2d1YsdtjsCO", - "S+5DiXK4DJXAYs260W45hKnb3aFt346hITW+PsYazBtCtteA9cshclRNO03Go80nUDgI/fFrvXvdhu/N", - "vgDbW1QJmGIJtiZQvzx33AhPl03bAtgVDVoW01y3ynCdsELH7cnsdKXvqECvPNTJ2wZZGog2dNuENiUu", - "HZs2cbOPkG2IdQsHpm/kmr3oyVeoG8nr8ZpswmX8Wv89S1eoBSf+V78AuyH+DVI66Lpfh7KgPdTHtUCT", - "Dh1cFkOiZW3vy2hROEPfhZBLCMN6+/b46e25hCGAQ7DlrtcPJZEm6qVvW9SNcdOFu4Hb1nfV/gJWfL/W", - "TXdNbwUjlwzhP/WibsNhkCpj3wXe3kfX22EH0WsrlTIMe/3pvJ16zw53Ao9ysXy3U+Lz2tLS9RE8Nnjz", - "M1mWoekw+DAzCLkFB4qr0VobUJahjQsX5Ny1EDsH5Qo9gM2XMOTC9S8aWia+INyQKVfajMljsUKLDL4W", - "twqJhvE+QyDrVejRdTW586vi1JcmBWs47rZpwcvQN2wbeYXkzECb/HDE3q673c3fxqrkdP5uM62bPrrr", - "EiKSDcJug7HpltiBehFwO2uQx+idkNIL1L2GzoY8/U2gYaepVw8OdmV0cvxUN0wItd/V9wAncvrPiaNR", - "RXQLKYSGnvNFsID9ujt+FowtRjrqGryJyzXbDH9LLK+5s22ackBQS6Ov8rqkZBYLdUKmvrydKLiBcn1V", - "jLg2TroJGXyOcfsUr2yZCn2dv6pd6oq0yQpwUnnLWqMfbgLNW24M7J3HlO/4v0Z+wxeDvH195/8m6ue3", - "zvokiV/9jZpmPCRY3i+ud9wptydGzC+/YV7pKAodGa0+Esvy6i91AqmsvjeS0+ka0YvPxKvpdCsXzO2D", - "petwCSS20dvyb9Aus1XiM9J5qSZ1e+61AH9CiwKjFb11xkhSODecL9MJ5jszZ6s7ipEZlFJxw497T0Vs", - "OBRxrVfbTdF/qUtmaE4N/QrG1rhZ/R/iSm+Nho8rM2fCQFS87zNnscGHUvZZCz4bJzEQ2UiYweXgyohT", - "8frAkxhrXCJsUjCOTm3wtZEDVuq1mxDE0SuQCkn6v7jdWLU7hvgMr9DlX2HWhFj1AKEXFUb4Zt5PwjqH", - "lQ+u2+YTJkppLbX/Qgc83VlC/QNTHkfV3bl5ezKEJWTBuKAJzSzZKFiOtQkxccpRlFEzJsqjC/hWuagT", - "dhyVYWpUyIwWQOBoob80Vbtkjd1UKfcSBAet4bNOHndx49dXH9YZ3nvDuqHcWtSupI9c/SJ9PdCQlhmK", - "ZEV2j3v7h1+wdR+iWC9ivmbKd055ygRH0uny99OmcwyhcyyPZoZfoiWWgXvU14gqCrlEX4UDi9u64rO5", - "IUIuXQDf4c0yGH+RqICcNHTgWSkcVoeZZZCxPpPQkt1lZuCF2/HSOvcgDeNH0Nh0mwCnvMKp0k1tkhF0", - "/dfFDon2t28hGNXtpO86OtmIC1yiDwy8klXDjdWNPk3dkjrHQzeb+ztM8mUptXT5XGHsurTaTRtMPpM5", - "NYy6+mJIzGrBM4g9dN2GQGBeKDlTTOshtCPyDRqkIlPKi0qxjRzG8xXNRN5w1Flw+9GhejRTbPNN2Svp", - "asRHquoPK31JV86UUolvIinlJV39hbHFG/Q4f2PqGQZ+OzGmzl6OJObI9R4xKFUJskcuGFt4V3wdAE5e", - "LXztI0iko1xoQgm62mOZNDhlUv73HkTuSPSg7EUra62J6zoqfT1qy8osKjNaKJlX2TpB3xLLV/Dya//u", - "rWAOULNq7/2CzXbNJh66bxdi9rUSkQ+2TEQG6c+l2Pq2Fffu3r3+i/aCiZmZh+I9f4o7n+U8x37XlspS", - "4kAwcp9gXrlb6eH1r/Q1XUG+KbRdo8r1q7p39/5NuBF0tVhIZQ/qJcs5JaerhfOYAYoRxCgvTE5CunTd", - "xTSO/rp38OhmOuT5+g3IKYF0SIkdkqb2YrtCcc4tbeZKGlMwV07uDyV5YJ62BXQptSGKZZi9HkrfwX5R", - "HoiytTkAB/sm2Y9rRwgTGmvXYQ4FSO/ulO2XdzTJ+YxpKH7bPmPyJGTPQ5zY619+BDj//PrZj8Shkh10", - "UVAh0nFa6wQeM6/KiaC80HsLxS45W3qyxBUW/PPUniD192IQQFRdempeqWJwNNgbREaoNrE6bgZBddpa", - "eUwJ7ACSVLqFMH6WE28mBRnt7xVT3KJf3a5z2GqnMG5UgdSJQR+/Pm72N4xNZLIsK4HiJhTY6LT0bztw", - "ExM4bHgZ1kSg1X9vd2FsxmS3Ye+KkoVfUWcycDomSr1g+nyYBfhEnfvvIBh6Lr6Xk1DRLJ7Dpet/+u3T", - "/w0AAP//yB9oGqUMAQA=", + "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", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/pkg/api/openapi_types.gen.go b/pkg/api/openapi_types.gen.go index 525da47c..57657224 100644 --- a/pkg/api/openapi_types.gen.go +++ b/pkg/api/openapi_types.gen.go @@ -266,6 +266,101 @@ type Error struct { Message string `json:"message"` } +// Subset of a Job, sent over SocketIO/MQTT when a job changes. For new jobs, `previous_status` will be excluded. +type EventJobUpdate struct { + // If job deletion was requested, this is the timestamp at which that request was stored on Flamenco Manager. + DeleteRequestedAt *time.Time `json:"delete_requested_at,omitempty"` + + // UUID of the Job + Id string `json:"id"` + + // Name of the job + Name *string `json:"name,omitempty"` + PreviousStatus *JobStatus `json:"previous_status,omitempty"` + Priority int `json:"priority"` + + // Indicates that the client should refresh all the job's tasks. This is sent for mass updates, where updating each individual task would generate too many updates to be practical. + RefreshTasks bool `json:"refresh_tasks"` + Status JobStatus `json:"status"` + Type string `json:"type"` + + // Timestamp of last update + Updated time.Time `json:"updated"` + + // When a job was just deleted, this is set to `true`. If this is specified, only the 'id' field is set, the rest will be empty. + WasDeleted *bool `json:"was_deleted,omitempty"` +} + +// Indicator that the last-rendered image of this job was updated. +type EventLastRenderedUpdate struct { + JobId string `json:"job_id"` + + // Enough information for a client to piece together different strings to form a host-relative URL to the last-rendered image. To construct the URL, concatenate "{base}/{one of the suffixes}". + Thumbnail JobLastRenderedImageInfo `json:"thumbnail"` +} + +// Task log chunk, sent to a MQTT topic/SocketIO room dedicated to a single task, to avoid sending too many updates. +type EventTaskLogUpdate struct { + // Chunk of the task log. May contain multiple lines of text. + Log string `json:"log"` + + // UUID of the Task + TaskId string `json:"task_id"` +} + +// Subset of a Task, sent over SocketIO/MQTT when a task changes. For new tasks, `previous_status` will be excluded. +type EventTaskUpdate struct { + Activity string `json:"activity"` + + // UUID of the Task + Id string `json:"id"` + JobId string `json:"job_id"` + + // Name of the task + Name string `json:"name"` + PreviousStatus *TaskStatus `json:"previous_status,omitempty"` + Status TaskStatus `json:"status"` + + // Timestamp of last update + Updated time.Time `json:"updated"` +} + +// Worker Tag, sent over SocketIO/MQTT when it changes. +type EventWorkerTagUpdate struct { + // Tag of workers. A job can optionally specify which tag it should be limited to. Workers can be part of multiple tags simultaneously. + Tag WorkerTag `json:"tag"` + + // When a tag was just deleted, this is set to `true`. + WasDeleted *bool `json:"was_deleted,omitempty"` +} + +// Subset of a Worker, sent over SocketIO/MQTT when a worker changes. +type EventWorkerUpdate struct { + // Whether this Worker can auto-restart. + CanRestart bool `json:"can_restart"` + + // This is only set when the worker was deleted. + DeletedAt *time.Time `json:"deleted_at,omitempty"` + + // UUID of the Worker + Id string `json:"id"` + + // Last time this worker was seen by the Manager. + LastSeen *time.Time `json:"last_seen,omitempty"` + + // Name of the worker + Name string `json:"name"` + PreviousStatus *WorkerStatus `json:"previous_status,omitempty"` + Status WorkerStatus `json:"status"` + + // Request for a Worker to change its status to `status`. + StatusChange *WorkerStatusChangeRequest `json:"status_change,omitempty"` + + // Timestamp of last update + Updated time.Time `json:"updated"` + Version string `json:"version"` +} + // FlamencoVersion defines model for FlamencoVersion. type FlamencoVersion struct { Git string `json:"git"` @@ -536,40 +631,8 @@ type SharedStorageLocation struct { ShamanEnabled bool `json:"shamanEnabled"` } -// Subset of a Job, sent over SocketIO when a job changes. For new jobs, `previous_status` will be excluded. -type SocketIOJobUpdate struct { - // If job deletion was requested, this is the timestamp at which that request was stored on Flamenco Manager. - DeleteRequestedAt *time.Time `json:"delete_requested_at,omitempty"` - - // UUID of the Job - Id string `json:"id"` - - // Name of the job - Name *string `json:"name,omitempty"` - PreviousStatus *JobStatus `json:"previous_status,omitempty"` - Priority int `json:"priority"` - - // Indicates that the client should refresh all the job's tasks. This is sent for mass updates, where updating each individual task would generate too many updates to be practical. - RefreshTasks bool `json:"refresh_tasks"` - Status JobStatus `json:"status"` - Type string `json:"type"` - - // Timestamp of last update - Updated time.Time `json:"updated"` - - // When a job was just deleted, this is set to `true`. If this is specified, only the 'id' field is set, the rest will be empty. - WasDeleted *bool `json:"was_deleted,omitempty"` -} - -// Indicator that the last-rendered image of this job was updated. -type SocketIOLastRenderedUpdate struct { - JobId string `json:"job_id"` - - // Enough information for a client to piece together different strings to form a host-relative URL to the last-rendered image. To construct the URL, concatenate "{base}/{one of the suffixes}". - Thumbnail JobLastRenderedImageInfo `json:"thumbnail"` -} - // Send by SocketIO clients as `/subscription` event type, to manage their subscription to job updates. Clients always get job updates, but for task updates or task logs they need to explicitly subscribe. For simplicity, clients can only subscribe to one job (to get task updates for that job) and one task's log at a time. +// This is not used by MQTT, as with that protocol the subscriptions are managed by the MQTT broker, not Flamenco. type SocketIOSubscription struct { Op SocketIOSubscriptionOperation `json:"op"` @@ -586,68 +649,6 @@ type SocketIOSubscriptionOperation string // What kind of thing to subscribe to / unsubscribe from. type SocketIOSubscriptionType string -// Task log chunk, sent to a SocketIO room dedicated to a single task, to avoid sending too many updates. -type SocketIOTaskLogUpdate struct { - // Chunk of the task log. May contain multiple lines of text. - Log string `json:"log"` - - // UUID of the Task - TaskId string `json:"task_id"` -} - -// Subset of a Task, sent over SocketIO when a task changes. For new tasks, `previous_status` will be excluded. -type SocketIOTaskUpdate struct { - Activity string `json:"activity"` - - // UUID of the Task - Id string `json:"id"` - JobId string `json:"job_id"` - - // Name of the task - Name string `json:"name"` - PreviousStatus *TaskStatus `json:"previous_status,omitempty"` - Status TaskStatus `json:"status"` - - // Timestamp of last update - Updated time.Time `json:"updated"` -} - -// Worker Tag, sent over SocketIO when it changes. -type SocketIOWorkerTagUpdate struct { - // Tag of workers. A job can optionally specify which tag it should be limited to. Workers can be part of multiple tags simultaneously. - Tag WorkerTag `json:"tag"` - - // When a tag was just deleted, this is set to `true`. - WasDeleted *bool `json:"was_deleted,omitempty"` -} - -// Subset of a Worker, sent over SocketIO when a worker changes. -type SocketIOWorkerUpdate struct { - // Whether this Worker can auto-restart. - CanRestart bool `json:"can_restart"` - - // This is only set when the worker was deleted. - DeletedAt *time.Time `json:"deleted_at,omitempty"` - - // UUID of the Worker - Id string `json:"id"` - - // Last time this worker was seen by the Manager. - LastSeen *time.Time `json:"last_seen,omitempty"` - - // Name of the worker - Name string `json:"name"` - PreviousStatus *WorkerStatus `json:"previous_status,omitempty"` - Status WorkerStatus `json:"status"` - - // Request for a Worker to change its status to `status`. - StatusChange *WorkerStatusChangeRequest `json:"status_change,omitempty"` - - // Timestamp of last update - Updated time.Time `json:"updated"` - Version string `json:"version"` -} - // Job definition submitted to Flamenco. type SubmittedJob struct { // Arbitrary metadata strings. More complex structures can be modeled by using `a.b.c` notation for the key. diff --git a/web/app/src/manager-api/index.js b/web/app/src/manager-api/index.js index d5721a88..505901cd 100644 --- a/web/app/src/manager-api/index.js +++ b/web/app/src/manager-api/index.js @@ -25,6 +25,12 @@ import BlenderPathCheckResult from './model/BlenderPathCheckResult'; import BlenderPathSource from './model/BlenderPathSource'; import Command from './model/Command'; import Error from './model/Error'; +import EventJobUpdate from './model/EventJobUpdate'; +import EventLastRenderedUpdate from './model/EventLastRenderedUpdate'; +import EventTaskLogUpdate from './model/EventTaskLogUpdate'; +import EventTaskUpdate from './model/EventTaskUpdate'; +import EventWorkerTagUpdate from './model/EventWorkerTagUpdate'; +import EventWorkerUpdate from './model/EventWorkerUpdate'; import FlamencoVersion from './model/FlamencoVersion'; import Job from './model/Job'; import JobAllOf from './model/JobAllOf'; @@ -57,15 +63,9 @@ import ShamanRequirementsRequest from './model/ShamanRequirementsRequest'; import ShamanRequirementsResponse from './model/ShamanRequirementsResponse'; import ShamanSingleFileStatus from './model/ShamanSingleFileStatus'; import SharedStorageLocation from './model/SharedStorageLocation'; -import SocketIOJobUpdate from './model/SocketIOJobUpdate'; -import SocketIOLastRenderedUpdate from './model/SocketIOLastRenderedUpdate'; import SocketIOSubscription from './model/SocketIOSubscription'; import SocketIOSubscriptionOperation from './model/SocketIOSubscriptionOperation'; import SocketIOSubscriptionType from './model/SocketIOSubscriptionType'; -import SocketIOTaskLogUpdate from './model/SocketIOTaskLogUpdate'; -import SocketIOTaskUpdate from './model/SocketIOTaskUpdate'; -import SocketIOWorkerTagUpdate from './model/SocketIOWorkerTagUpdate'; -import SocketIOWorkerUpdate from './model/SocketIOWorkerUpdate'; import SubmittedJob from './model/SubmittedJob'; import Task from './model/Task'; import TaskLogInfo from './model/TaskLogInfo'; @@ -207,6 +207,42 @@ export { */ Error, + /** + * The EventJobUpdate model constructor. + * @property {module:model/EventJobUpdate} + */ + EventJobUpdate, + + /** + * The EventLastRenderedUpdate model constructor. + * @property {module:model/EventLastRenderedUpdate} + */ + EventLastRenderedUpdate, + + /** + * The EventTaskLogUpdate model constructor. + * @property {module:model/EventTaskLogUpdate} + */ + EventTaskLogUpdate, + + /** + * The EventTaskUpdate model constructor. + * @property {module:model/EventTaskUpdate} + */ + EventTaskUpdate, + + /** + * The EventWorkerTagUpdate model constructor. + * @property {module:model/EventWorkerTagUpdate} + */ + EventWorkerTagUpdate, + + /** + * The EventWorkerUpdate model constructor. + * @property {module:model/EventWorkerUpdate} + */ + EventWorkerUpdate, + /** * The FlamencoVersion model constructor. * @property {module:model/FlamencoVersion} @@ -399,18 +435,6 @@ export { */ SharedStorageLocation, - /** - * The SocketIOJobUpdate model constructor. - * @property {module:model/SocketIOJobUpdate} - */ - SocketIOJobUpdate, - - /** - * The SocketIOLastRenderedUpdate model constructor. - * @property {module:model/SocketIOLastRenderedUpdate} - */ - SocketIOLastRenderedUpdate, - /** * The SocketIOSubscription model constructor. * @property {module:model/SocketIOSubscription} @@ -429,30 +453,6 @@ export { */ SocketIOSubscriptionType, - /** - * The SocketIOTaskLogUpdate model constructor. - * @property {module:model/SocketIOTaskLogUpdate} - */ - SocketIOTaskLogUpdate, - - /** - * The SocketIOTaskUpdate model constructor. - * @property {module:model/SocketIOTaskUpdate} - */ - SocketIOTaskUpdate, - - /** - * The SocketIOWorkerTagUpdate model constructor. - * @property {module:model/SocketIOWorkerTagUpdate} - */ - SocketIOWorkerTagUpdate, - - /** - * The SocketIOWorkerUpdate model constructor. - * @property {module:model/SocketIOWorkerUpdate} - */ - SocketIOWorkerUpdate, - /** * The SubmittedJob model constructor. * @property {module:model/SubmittedJob} diff --git a/web/app/src/manager-api/model/SocketIOJobUpdate.js b/web/app/src/manager-api/model/EventJobUpdate.js similarity index 75% rename from web/app/src/manager-api/model/SocketIOJobUpdate.js rename to web/app/src/manager-api/model/EventJobUpdate.js index 529d0cc2..bd15c7d3 100644 --- a/web/app/src/manager-api/model/SocketIOJobUpdate.js +++ b/web/app/src/manager-api/model/EventJobUpdate.js @@ -15,15 +15,15 @@ import ApiClient from '../ApiClient'; import JobStatus from './JobStatus'; /** - * The SocketIOJobUpdate model module. - * @module model/SocketIOJobUpdate + * The EventJobUpdate model module. + * @module model/EventJobUpdate * @version 0.0.0 */ -class SocketIOJobUpdate { +class EventJobUpdate { /** - * Constructs a new SocketIOJobUpdate. - * Subset of a Job, sent over SocketIO when a job changes. For new jobs, `previous_status` will be excluded. - * @alias module:model/SocketIOJobUpdate + * Constructs a new EventJobUpdate. + * Subset of a Job, sent over SocketIO/MQTT when a job changes. For new jobs, `previous_status` will be excluded. + * @alias module:model/EventJobUpdate * @param id {String} UUID of the Job * @param updated {Date} Timestamp of last update * @param status {module:model/JobStatus} @@ -33,7 +33,7 @@ class SocketIOJobUpdate { */ constructor(id, updated, status, type, priority, refreshTasks) { - SocketIOJobUpdate.initialize(this, id, updated, status, type, priority, refreshTasks); + EventJobUpdate.initialize(this, id, updated, status, type, priority, refreshTasks); } /** @@ -51,15 +51,15 @@ class SocketIOJobUpdate { } /** - * Constructs a SocketIOJobUpdate from a plain JavaScript object, optionally creating a new instance. + * Constructs a EventJobUpdate from a plain JavaScript object, optionally creating a new instance. * Copies all relevant properties from data to obj if supplied or a new instance if not. * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/SocketIOJobUpdate} obj Optional instance to populate. - * @return {module:model/SocketIOJobUpdate} The populated SocketIOJobUpdate instance. + * @param {module:model/EventJobUpdate} obj Optional instance to populate. + * @return {module:model/EventJobUpdate} The populated EventJobUpdate instance. */ static constructFromObject(data, obj) { if (data) { - obj = obj || new SocketIOJobUpdate(); + obj = obj || new EventJobUpdate(); if (data.hasOwnProperty('id')) { obj['id'] = ApiClient.convertToType(data['id'], 'String'); @@ -102,63 +102,63 @@ class SocketIOJobUpdate { * UUID of the Job * @member {String} id */ -SocketIOJobUpdate.prototype['id'] = undefined; +EventJobUpdate.prototype['id'] = undefined; /** * Name of the job * @member {String} name */ -SocketIOJobUpdate.prototype['name'] = undefined; +EventJobUpdate.prototype['name'] = undefined; /** * Timestamp of last update * @member {Date} updated */ -SocketIOJobUpdate.prototype['updated'] = undefined; +EventJobUpdate.prototype['updated'] = undefined; /** * @member {module:model/JobStatus} status */ -SocketIOJobUpdate.prototype['status'] = undefined; +EventJobUpdate.prototype['status'] = undefined; /** * @member {module:model/JobStatus} previous_status */ -SocketIOJobUpdate.prototype['previous_status'] = undefined; +EventJobUpdate.prototype['previous_status'] = undefined; /** * @member {String} type */ -SocketIOJobUpdate.prototype['type'] = undefined; +EventJobUpdate.prototype['type'] = undefined; /** * @member {Number} priority * @default 50 */ -SocketIOJobUpdate.prototype['priority'] = 50; +EventJobUpdate.prototype['priority'] = 50; /** * Indicates that the client should refresh all the job's tasks. This is sent for mass updates, where updating each individual task would generate too many updates to be practical. * @member {Boolean} refresh_tasks */ -SocketIOJobUpdate.prototype['refresh_tasks'] = undefined; +EventJobUpdate.prototype['refresh_tasks'] = undefined; /** * If job deletion was requested, this is the timestamp at which that request was stored on Flamenco Manager. * @member {Date} delete_requested_at */ -SocketIOJobUpdate.prototype['delete_requested_at'] = undefined; +EventJobUpdate.prototype['delete_requested_at'] = undefined; /** * When a job was just deleted, this is set to `true`. If this is specified, only the 'id' field is set, the rest will be empty. * @member {Boolean} was_deleted */ -SocketIOJobUpdate.prototype['was_deleted'] = undefined; +EventJobUpdate.prototype['was_deleted'] = undefined; -export default SocketIOJobUpdate; +export default EventJobUpdate; diff --git a/web/app/src/manager-api/model/SocketIOLastRenderedUpdate.js b/web/app/src/manager-api/model/EventLastRenderedUpdate.js similarity index 66% rename from web/app/src/manager-api/model/SocketIOLastRenderedUpdate.js rename to web/app/src/manager-api/model/EventLastRenderedUpdate.js index 3ebaf854..0e4af74a 100644 --- a/web/app/src/manager-api/model/SocketIOLastRenderedUpdate.js +++ b/web/app/src/manager-api/model/EventLastRenderedUpdate.js @@ -15,21 +15,21 @@ import ApiClient from '../ApiClient'; import JobLastRenderedImageInfo from './JobLastRenderedImageInfo'; /** - * The SocketIOLastRenderedUpdate model module. - * @module model/SocketIOLastRenderedUpdate + * The EventLastRenderedUpdate model module. + * @module model/EventLastRenderedUpdate * @version 0.0.0 */ -class SocketIOLastRenderedUpdate { +class EventLastRenderedUpdate { /** - * Constructs a new SocketIOLastRenderedUpdate. + * Constructs a new EventLastRenderedUpdate. * Indicator that the last-rendered image of this job was updated. - * @alias module:model/SocketIOLastRenderedUpdate + * @alias module:model/EventLastRenderedUpdate * @param jobId {String} * @param thumbnail {module:model/JobLastRenderedImageInfo} */ constructor(jobId, thumbnail) { - SocketIOLastRenderedUpdate.initialize(this, jobId, thumbnail); + EventLastRenderedUpdate.initialize(this, jobId, thumbnail); } /** @@ -43,15 +43,15 @@ class SocketIOLastRenderedUpdate { } /** - * Constructs a SocketIOLastRenderedUpdate from a plain JavaScript object, optionally creating a new instance. + * Constructs a EventLastRenderedUpdate from a plain JavaScript object, optionally creating a new instance. * Copies all relevant properties from data to obj if supplied or a new instance if not. * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/SocketIOLastRenderedUpdate} obj Optional instance to populate. - * @return {module:model/SocketIOLastRenderedUpdate} The populated SocketIOLastRenderedUpdate instance. + * @param {module:model/EventLastRenderedUpdate} obj Optional instance to populate. + * @return {module:model/EventLastRenderedUpdate} The populated EventLastRenderedUpdate instance. */ static constructFromObject(data, obj) { if (data) { - obj = obj || new SocketIOLastRenderedUpdate(); + obj = obj || new EventLastRenderedUpdate(); if (data.hasOwnProperty('job_id')) { obj['job_id'] = ApiClient.convertToType(data['job_id'], 'String'); @@ -69,17 +69,17 @@ class SocketIOLastRenderedUpdate { /** * @member {String} job_id */ -SocketIOLastRenderedUpdate.prototype['job_id'] = undefined; +EventLastRenderedUpdate.prototype['job_id'] = undefined; /** * @member {module:model/JobLastRenderedImageInfo} thumbnail */ -SocketIOLastRenderedUpdate.prototype['thumbnail'] = undefined; +EventLastRenderedUpdate.prototype['thumbnail'] = undefined; -export default SocketIOLastRenderedUpdate; +export default EventLastRenderedUpdate; diff --git a/web/app/src/manager-api/model/SocketIOTaskLogUpdate.js b/web/app/src/manager-api/model/EventTaskLogUpdate.js similarity index 64% rename from web/app/src/manager-api/model/SocketIOTaskLogUpdate.js rename to web/app/src/manager-api/model/EventTaskLogUpdate.js index 457d405c..f47c9b89 100644 --- a/web/app/src/manager-api/model/SocketIOTaskLogUpdate.js +++ b/web/app/src/manager-api/model/EventTaskLogUpdate.js @@ -14,21 +14,21 @@ import ApiClient from '../ApiClient'; /** - * The SocketIOTaskLogUpdate model module. - * @module model/SocketIOTaskLogUpdate + * The EventTaskLogUpdate model module. + * @module model/EventTaskLogUpdate * @version 0.0.0 */ -class SocketIOTaskLogUpdate { +class EventTaskLogUpdate { /** - * Constructs a new SocketIOTaskLogUpdate. - * Task log chunk, sent to a SocketIO room dedicated to a single task, to avoid sending too many updates. - * @alias module:model/SocketIOTaskLogUpdate + * Constructs a new EventTaskLogUpdate. + * Task log chunk, sent to a MQTT topic/SocketIO room dedicated to a single task, to avoid sending too many updates. + * @alias module:model/EventTaskLogUpdate * @param taskId {String} UUID of the Task * @param log {String} Chunk of the task log. May contain multiple lines of text. */ constructor(taskId, log) { - SocketIOTaskLogUpdate.initialize(this, taskId, log); + EventTaskLogUpdate.initialize(this, taskId, log); } /** @@ -42,15 +42,15 @@ class SocketIOTaskLogUpdate { } /** - * Constructs a SocketIOTaskLogUpdate from a plain JavaScript object, optionally creating a new instance. + * Constructs a EventTaskLogUpdate from a plain JavaScript object, optionally creating a new instance. * Copies all relevant properties from data to obj if supplied or a new instance if not. * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/SocketIOTaskLogUpdate} obj Optional instance to populate. - * @return {module:model/SocketIOTaskLogUpdate} The populated SocketIOTaskLogUpdate instance. + * @param {module:model/EventTaskLogUpdate} obj Optional instance to populate. + * @return {module:model/EventTaskLogUpdate} The populated EventTaskLogUpdate instance. */ static constructFromObject(data, obj) { if (data) { - obj = obj || new SocketIOTaskLogUpdate(); + obj = obj || new EventTaskLogUpdate(); if (data.hasOwnProperty('task_id')) { obj['task_id'] = ApiClient.convertToType(data['task_id'], 'String'); @@ -69,18 +69,18 @@ class SocketIOTaskLogUpdate { * UUID of the Task * @member {String} task_id */ -SocketIOTaskLogUpdate.prototype['task_id'] = undefined; +EventTaskLogUpdate.prototype['task_id'] = undefined; /** * Chunk of the task log. May contain multiple lines of text. * @member {String} log */ -SocketIOTaskLogUpdate.prototype['log'] = undefined; +EventTaskLogUpdate.prototype['log'] = undefined; -export default SocketIOTaskLogUpdate; +export default EventTaskLogUpdate; diff --git a/web/app/src/manager-api/model/SocketIOTaskUpdate.js b/web/app/src/manager-api/model/EventTaskUpdate.js similarity index 71% rename from web/app/src/manager-api/model/SocketIOTaskUpdate.js rename to web/app/src/manager-api/model/EventTaskUpdate.js index 7c34734a..9522df10 100644 --- a/web/app/src/manager-api/model/SocketIOTaskUpdate.js +++ b/web/app/src/manager-api/model/EventTaskUpdate.js @@ -15,15 +15,15 @@ import ApiClient from '../ApiClient'; import TaskStatus from './TaskStatus'; /** - * The SocketIOTaskUpdate model module. - * @module model/SocketIOTaskUpdate + * The EventTaskUpdate model module. + * @module model/EventTaskUpdate * @version 0.0.0 */ -class SocketIOTaskUpdate { +class EventTaskUpdate { /** - * Constructs a new SocketIOTaskUpdate. - * Subset of a Task, sent over SocketIO when a task changes. For new tasks, `previous_status` will be excluded. - * @alias module:model/SocketIOTaskUpdate + * Constructs a new EventTaskUpdate. + * Subset of a Task, sent over SocketIO/MQTT when a task changes. For new tasks, `previous_status` will be excluded. + * @alias module:model/EventTaskUpdate * @param id {String} UUID of the Task * @param jobId {String} * @param name {String} Name of the task @@ -33,7 +33,7 @@ class SocketIOTaskUpdate { */ constructor(id, jobId, name, updated, status, activity) { - SocketIOTaskUpdate.initialize(this, id, jobId, name, updated, status, activity); + EventTaskUpdate.initialize(this, id, jobId, name, updated, status, activity); } /** @@ -51,15 +51,15 @@ class SocketIOTaskUpdate { } /** - * Constructs a SocketIOTaskUpdate from a plain JavaScript object, optionally creating a new instance. + * Constructs a EventTaskUpdate from a plain JavaScript object, optionally creating a new instance. * Copies all relevant properties from data to obj if supplied or a new instance if not. * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/SocketIOTaskUpdate} obj Optional instance to populate. - * @return {module:model/SocketIOTaskUpdate} The populated SocketIOTaskUpdate instance. + * @param {module:model/EventTaskUpdate} obj Optional instance to populate. + * @return {module:model/EventTaskUpdate} The populated EventTaskUpdate instance. */ static constructFromObject(data, obj) { if (data) { - obj = obj || new SocketIOTaskUpdate(); + obj = obj || new EventTaskUpdate(); if (data.hasOwnProperty('id')) { obj['id'] = ApiClient.convertToType(data['id'], 'String'); @@ -93,44 +93,44 @@ class SocketIOTaskUpdate { * UUID of the Task * @member {String} id */ -SocketIOTaskUpdate.prototype['id'] = undefined; +EventTaskUpdate.prototype['id'] = undefined; /** * @member {String} job_id */ -SocketIOTaskUpdate.prototype['job_id'] = undefined; +EventTaskUpdate.prototype['job_id'] = undefined; /** * Name of the task * @member {String} name */ -SocketIOTaskUpdate.prototype['name'] = undefined; +EventTaskUpdate.prototype['name'] = undefined; /** * Timestamp of last update * @member {Date} updated */ -SocketIOTaskUpdate.prototype['updated'] = undefined; +EventTaskUpdate.prototype['updated'] = undefined; /** * @member {module:model/TaskStatus} status */ -SocketIOTaskUpdate.prototype['status'] = undefined; +EventTaskUpdate.prototype['status'] = undefined; /** * @member {module:model/TaskStatus} previous_status */ -SocketIOTaskUpdate.prototype['previous_status'] = undefined; +EventTaskUpdate.prototype['previous_status'] = undefined; /** * @member {String} activity */ -SocketIOTaskUpdate.prototype['activity'] = undefined; +EventTaskUpdate.prototype['activity'] = undefined; -export default SocketIOTaskUpdate; +export default EventTaskUpdate; diff --git a/web/app/src/manager-api/model/SocketIOWorkerTagUpdate.js b/web/app/src/manager-api/model/EventWorkerTagUpdate.js similarity index 63% rename from web/app/src/manager-api/model/SocketIOWorkerTagUpdate.js rename to web/app/src/manager-api/model/EventWorkerTagUpdate.js index 14c86f5b..e8910db1 100644 --- a/web/app/src/manager-api/model/SocketIOWorkerTagUpdate.js +++ b/web/app/src/manager-api/model/EventWorkerTagUpdate.js @@ -15,20 +15,20 @@ import ApiClient from '../ApiClient'; import WorkerTag from './WorkerTag'; /** - * The SocketIOWorkerTagUpdate model module. - * @module model/SocketIOWorkerTagUpdate + * The EventWorkerTagUpdate model module. + * @module model/EventWorkerTagUpdate * @version 0.0.0 */ -class SocketIOWorkerTagUpdate { +class EventWorkerTagUpdate { /** - * Constructs a new SocketIOWorkerTagUpdate. - * Worker Tag, sent over SocketIO when it changes. - * @alias module:model/SocketIOWorkerTagUpdate + * Constructs a new EventWorkerTagUpdate. + * Worker Tag, sent over SocketIO/MQTT when it changes. + * @alias module:model/EventWorkerTagUpdate * @param tag {module:model/WorkerTag} */ constructor(tag) { - SocketIOWorkerTagUpdate.initialize(this, tag); + EventWorkerTagUpdate.initialize(this, tag); } /** @@ -41,15 +41,15 @@ class SocketIOWorkerTagUpdate { } /** - * Constructs a SocketIOWorkerTagUpdate from a plain JavaScript object, optionally creating a new instance. + * Constructs a EventWorkerTagUpdate from a plain JavaScript object, optionally creating a new instance. * Copies all relevant properties from data to obj if supplied or a new instance if not. * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/SocketIOWorkerTagUpdate} obj Optional instance to populate. - * @return {module:model/SocketIOWorkerTagUpdate} The populated SocketIOWorkerTagUpdate instance. + * @param {module:model/EventWorkerTagUpdate} obj Optional instance to populate. + * @return {module:model/EventWorkerTagUpdate} The populated EventWorkerTagUpdate instance. */ static constructFromObject(data, obj) { if (data) { - obj = obj || new SocketIOWorkerTagUpdate(); + obj = obj || new EventWorkerTagUpdate(); if (data.hasOwnProperty('tag')) { obj['tag'] = WorkerTag.constructFromObject(data['tag']); @@ -67,18 +67,18 @@ class SocketIOWorkerTagUpdate { /** * @member {module:model/WorkerTag} tag */ -SocketIOWorkerTagUpdate.prototype['tag'] = undefined; +EventWorkerTagUpdate.prototype['tag'] = undefined; /** * When a tag was just deleted, this is set to `true`. * @member {Boolean} was_deleted */ -SocketIOWorkerTagUpdate.prototype['was_deleted'] = undefined; +EventWorkerTagUpdate.prototype['was_deleted'] = undefined; -export default SocketIOWorkerTagUpdate; +export default EventWorkerTagUpdate; diff --git a/web/app/src/manager-api/model/SocketIOWorkerUpdate.js b/web/app/src/manager-api/model/EventWorkerUpdate.js similarity index 74% rename from web/app/src/manager-api/model/SocketIOWorkerUpdate.js rename to web/app/src/manager-api/model/EventWorkerUpdate.js index ea27eb71..a6c4fd64 100644 --- a/web/app/src/manager-api/model/SocketIOWorkerUpdate.js +++ b/web/app/src/manager-api/model/EventWorkerUpdate.js @@ -16,15 +16,15 @@ import WorkerStatus from './WorkerStatus'; import WorkerStatusChangeRequest from './WorkerStatusChangeRequest'; /** - * The SocketIOWorkerUpdate model module. - * @module model/SocketIOWorkerUpdate + * The EventWorkerUpdate model module. + * @module model/EventWorkerUpdate * @version 0.0.0 */ -class SocketIOWorkerUpdate { +class EventWorkerUpdate { /** - * Constructs a new SocketIOWorkerUpdate. - * Subset of a Worker, sent over SocketIO when a worker changes. - * @alias module:model/SocketIOWorkerUpdate + * Constructs a new EventWorkerUpdate. + * Subset of a Worker, sent over SocketIO/MQTT when a worker changes. + * @alias module:model/EventWorkerUpdate * @param id {String} UUID of the Worker * @param name {String} Name of the worker * @param updated {Date} Timestamp of last update @@ -34,7 +34,7 @@ class SocketIOWorkerUpdate { */ constructor(id, name, updated, status, version, canRestart) { - SocketIOWorkerUpdate.initialize(this, id, name, updated, status, version, canRestart); + EventWorkerUpdate.initialize(this, id, name, updated, status, version, canRestart); } /** @@ -52,15 +52,15 @@ class SocketIOWorkerUpdate { } /** - * Constructs a SocketIOWorkerUpdate from a plain JavaScript object, optionally creating a new instance. + * Constructs a EventWorkerUpdate from a plain JavaScript object, optionally creating a new instance. * Copies all relevant properties from data to obj if supplied or a new instance if not. * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/SocketIOWorkerUpdate} obj Optional instance to populate. - * @return {module:model/SocketIOWorkerUpdate} The populated SocketIOWorkerUpdate instance. + * @param {module:model/EventWorkerUpdate} obj Optional instance to populate. + * @return {module:model/EventWorkerUpdate} The populated EventWorkerUpdate instance. */ static constructFromObject(data, obj) { if (data) { - obj = obj || new SocketIOWorkerUpdate(); + obj = obj || new EventWorkerUpdate(); if (data.hasOwnProperty('id')) { obj['id'] = ApiClient.convertToType(data['id'], 'String'); @@ -103,62 +103,62 @@ class SocketIOWorkerUpdate { * UUID of the Worker * @member {String} id */ -SocketIOWorkerUpdate.prototype['id'] = undefined; +EventWorkerUpdate.prototype['id'] = undefined; /** * Name of the worker * @member {String} name */ -SocketIOWorkerUpdate.prototype['name'] = undefined; +EventWorkerUpdate.prototype['name'] = undefined; /** * Timestamp of last update * @member {Date} updated */ -SocketIOWorkerUpdate.prototype['updated'] = undefined; +EventWorkerUpdate.prototype['updated'] = undefined; /** * Last time this worker was seen by the Manager. * @member {Date} last_seen */ -SocketIOWorkerUpdate.prototype['last_seen'] = undefined; +EventWorkerUpdate.prototype['last_seen'] = undefined; /** * @member {module:model/WorkerStatus} status */ -SocketIOWorkerUpdate.prototype['status'] = undefined; +EventWorkerUpdate.prototype['status'] = undefined; /** * @member {module:model/WorkerStatus} previous_status */ -SocketIOWorkerUpdate.prototype['previous_status'] = undefined; +EventWorkerUpdate.prototype['previous_status'] = undefined; /** * @member {module:model/WorkerStatusChangeRequest} status_change */ -SocketIOWorkerUpdate.prototype['status_change'] = undefined; +EventWorkerUpdate.prototype['status_change'] = undefined; /** * @member {String} version */ -SocketIOWorkerUpdate.prototype['version'] = undefined; +EventWorkerUpdate.prototype['version'] = undefined; /** * This is only set when the worker was deleted. * @member {Date} deleted_at */ -SocketIOWorkerUpdate.prototype['deleted_at'] = undefined; +EventWorkerUpdate.prototype['deleted_at'] = undefined; /** * Whether this Worker can auto-restart. * @member {Boolean} can_restart */ -SocketIOWorkerUpdate.prototype['can_restart'] = undefined; +EventWorkerUpdate.prototype['can_restart'] = undefined; -export default SocketIOWorkerUpdate; +export default EventWorkerUpdate; diff --git a/web/app/src/manager-api/model/SocketIOSubscription.js b/web/app/src/manager-api/model/SocketIOSubscription.js index d559ad90..5fa48513 100644 --- a/web/app/src/manager-api/model/SocketIOSubscription.js +++ b/web/app/src/manager-api/model/SocketIOSubscription.js @@ -23,7 +23,7 @@ import SocketIOSubscriptionType from './SocketIOSubscriptionType'; class SocketIOSubscription { /** * Constructs a new SocketIOSubscription. - * Send by SocketIO clients as `/subscription` event type, to manage their subscription to job updates. Clients always get job updates, but for task updates or task logs they need to explicitly subscribe. For simplicity, clients can only subscribe to one job (to get task updates for that job) and one task's log at a time. + * Send by SocketIO clients as `/subscription` event type, to manage their subscription to job updates. Clients always get job updates, but for task updates or task logs they need to explicitly subscribe. For simplicity, clients can only subscribe to one job (to get task updates for that job) and one task's log at a time. This is not used by MQTT, as with that protocol the subscriptions are managed by the MQTT broker, not Flamenco. * @alias module:model/SocketIOSubscription * @param op {module:model/SocketIOSubscriptionOperation} * @param type {module:model/SocketIOSubscriptionType}