diff --git a/addon/flamenco/manager/docs/Job.md b/addon/flamenco/manager/docs/Job.md
index 702667fe..a01d0c63 100644
--- a/addon/flamenco/manager/docs/Job.md
+++ b/addon/flamenco/manager/docs/Job.md
@@ -16,6 +16,7 @@ Name | Type | Description | Notes
**type_etag** | **str** | Hash of the job type, copied from the `AvailableJobType.etag` property of the job type. The job will be rejected if this field doesn't match the actual job type on the Manager. This prevents job submission with old settings, after the job compiler script has been updated. If this field is ommitted, the check is bypassed. | [optional]
**settings** | [**JobSettings**](JobSettings.md) | | [optional]
**metadata** | [**JobMetadata**](JobMetadata.md) | | [optional]
+**storage** | [**JobStorageInfo**](JobStorageInfo.md) | | [optional]
**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/addon/flamenco/manager/docs/JobStorageInfo.md b/addon/flamenco/manager/docs/JobStorageInfo.md
new file mode 100644
index 00000000..217c026b
--- /dev/null
+++ b/addon/flamenco/manager/docs/JobStorageInfo.md
@@ -0,0 +1,13 @@
+# JobStorageInfo
+
+Storage info of a job, which Flamenco can use to remove job-related files when necessary.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**shaman_checkout_id** | **str** | 'Checkout ID' used when creating the Shaman checkout for this job. Aids in removing the checkout directory when the job is removed from Flamenco. | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/addon/flamenco/manager/docs/JobsApi.md b/addon/flamenco/manager/docs/JobsApi.md
index de7c0566..a988806a 100644
--- a/addon/flamenco/manager/docs/JobsApi.md
+++ b/addon/flamenco/manager/docs/JobsApi.md
@@ -1090,6 +1090,9 @@ with flamenco.manager.ApiClient() as api_client:
key="key_example",
),
submitter_platform="submitter_platform_example",
+ storage=JobStorageInfo(
+ shaman_checkout_id="shaman_checkout_id_example",
+ ),
) # SubmittedJob | Job to submit
# example passing only required values which don't have defaults set
@@ -1168,6 +1171,9 @@ with flamenco.manager.ApiClient() as api_client:
key="key_example",
),
submitter_platform="submitter_platform_example",
+ storage=JobStorageInfo(
+ shaman_checkout_id="shaman_checkout_id_example",
+ ),
) # SubmittedJob | Job to check
# example passing only required values which don't have defaults set
diff --git a/addon/flamenco/manager/docs/SubmittedJob.md b/addon/flamenco/manager/docs/SubmittedJob.md
index be4c6edd..ee2eab53 100644
--- a/addon/flamenco/manager/docs/SubmittedJob.md
+++ b/addon/flamenco/manager/docs/SubmittedJob.md
@@ -12,6 +12,7 @@ Name | Type | Description | Notes
**type_etag** | **str** | Hash of the job type, copied from the `AvailableJobType.etag` property of the job type. The job will be rejected if this field doesn't match the actual job type on the Manager. This prevents job submission with old settings, after the job compiler script has been updated. If this field is ommitted, the check is bypassed. | [optional]
**settings** | [**JobSettings**](JobSettings.md) | | [optional]
**metadata** | [**JobMetadata**](JobMetadata.md) | | [optional]
+**storage** | [**JobStorageInfo**](JobStorageInfo.md) | | [optional]
**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/addon/flamenco/manager/model/job.py b/addon/flamenco/manager/model/job.py
index e4d6e7d7..8261a53d 100644
--- a/addon/flamenco/manager/model/job.py
+++ b/addon/flamenco/manager/model/job.py
@@ -34,11 +34,13 @@ def lazy_import():
from flamenco.manager.model.job_metadata import JobMetadata
from flamenco.manager.model.job_settings import JobSettings
from flamenco.manager.model.job_status import JobStatus
+ from flamenco.manager.model.job_storage_info import JobStorageInfo
from flamenco.manager.model.submitted_job import SubmittedJob
globals()['JobAllOf'] = JobAllOf
globals()['JobMetadata'] = JobMetadata
globals()['JobSettings'] = JobSettings
globals()['JobStatus'] = JobStatus
+ globals()['JobStorageInfo'] = JobStorageInfo
globals()['SubmittedJob'] = SubmittedJob
@@ -107,6 +109,7 @@ class Job(ModelComposed):
'type_etag': (str,), # noqa: E501
'settings': (JobSettings,), # noqa: E501
'metadata': (JobMetadata,), # noqa: E501
+ 'storage': (JobStorageInfo,), # noqa: E501
}
@cached_property
@@ -127,6 +130,7 @@ class Job(ModelComposed):
'type_etag': 'type_etag', # noqa: E501
'settings': 'settings', # noqa: E501
'metadata': 'metadata', # noqa: E501
+ 'storage': 'storage', # noqa: E501
}
read_only_vars = {
@@ -180,6 +184,7 @@ class Job(ModelComposed):
type_etag (str): Hash of the job type, copied from the `AvailableJobType.etag` property of the job type. The job will be rejected if this field doesn't match the actual job type on the Manager. This prevents job submission with old settings, after the job compiler script has been updated. If this field is ommitted, the check is bypassed. . [optional] # noqa: E501
settings (JobSettings): [optional] # noqa: E501
metadata (JobMetadata): [optional] # noqa: E501
+ storage (JobStorageInfo): [optional] # noqa: E501
"""
priority = kwargs.get('priority', 50)
@@ -292,6 +297,7 @@ class Job(ModelComposed):
type_etag (str): Hash of the job type, copied from the `AvailableJobType.etag` property of the job type. The job will be rejected if this field doesn't match the actual job type on the Manager. This prevents job submission with old settings, after the job compiler script has been updated. If this field is ommitted, the check is bypassed. . [optional] # noqa: E501
settings (JobSettings): [optional] # noqa: E501
metadata (JobMetadata): [optional] # noqa: E501
+ storage (JobStorageInfo): [optional] # noqa: E501
"""
priority = kwargs.get('priority', 50)
diff --git a/addon/flamenco/manager/model/job_storage_info.py b/addon/flamenco/manager/model/job_storage_info.py
new file mode 100644
index 00000000..929fd23c
--- /dev/null
+++ b/addon/flamenco/manager/model/job_storage_info.py
@@ -0,0 +1,255 @@
+"""
+ Flamenco manager
+
+ Render Farm manager API # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from flamenco.manager.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from flamenco.manager.exceptions import ApiAttributeError
+
+
+
+class JobStorageInfo(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'shaman_checkout_id': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'shaman_checkout_id': 'shaman_checkout_id', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JobStorageInfo - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ shaman_checkout_id (str): 'Checkout ID' used when creating the Shaman checkout for this job. Aids in removing the checkout directory when the job is removed from Flamenco. . [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """JobStorageInfo - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ shaman_checkout_id (str): 'Checkout ID' used when creating the Shaman checkout for this job. Aids in removing the checkout directory when the job is removed from Flamenco. . [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/addon/flamenco/manager/model/submitted_job.py b/addon/flamenco/manager/model/submitted_job.py
index 24128174..cac9d41e 100644
--- a/addon/flamenco/manager/model/submitted_job.py
+++ b/addon/flamenco/manager/model/submitted_job.py
@@ -32,8 +32,10 @@ from flamenco.manager.exceptions import ApiAttributeError
def lazy_import():
from flamenco.manager.model.job_metadata import JobMetadata
from flamenco.manager.model.job_settings import JobSettings
+ from flamenco.manager.model.job_storage_info import JobStorageInfo
globals()['JobMetadata'] = JobMetadata
globals()['JobSettings'] = JobSettings
+ globals()['JobStorageInfo'] = JobStorageInfo
class SubmittedJob(ModelNormal):
@@ -96,6 +98,7 @@ class SubmittedJob(ModelNormal):
'type_etag': (str,), # noqa: E501
'settings': (JobSettings,), # noqa: E501
'metadata': (JobMetadata,), # noqa: E501
+ 'storage': (JobStorageInfo,), # noqa: E501
}
@cached_property
@@ -111,6 +114,7 @@ class SubmittedJob(ModelNormal):
'type_etag': 'type_etag', # noqa: E501
'settings': 'settings', # noqa: E501
'metadata': 'metadata', # noqa: E501
+ 'storage': 'storage', # noqa: E501
}
read_only_vars = {
@@ -163,6 +167,7 @@ class SubmittedJob(ModelNormal):
type_etag (str): Hash of the job type, copied from the `AvailableJobType.etag` property of the job type. The job will be rejected if this field doesn't match the actual job type on the Manager. This prevents job submission with old settings, after the job compiler script has been updated. If this field is ommitted, the check is bypassed. . [optional] # noqa: E501
settings (JobSettings): [optional] # noqa: E501
metadata (JobMetadata): [optional] # noqa: E501
+ storage (JobStorageInfo): [optional] # noqa: E501
"""
priority = kwargs.get('priority', 50)
@@ -258,6 +263,7 @@ class SubmittedJob(ModelNormal):
type_etag (str): Hash of the job type, copied from the `AvailableJobType.etag` property of the job type. The job will be rejected if this field doesn't match the actual job type on the Manager. This prevents job submission with old settings, after the job compiler script has been updated. If this field is ommitted, the check is bypassed. . [optional] # noqa: E501
settings (JobSettings): [optional] # noqa: E501
metadata (JobMetadata): [optional] # noqa: E501
+ storage (JobStorageInfo): [optional] # noqa: E501
"""
priority = kwargs.get('priority', 50)
diff --git a/addon/flamenco/manager/models/__init__.py b/addon/flamenco/manager/models/__init__.py
index 367f72b6..aa05f468 100644
--- a/addon/flamenco/manager/models/__init__.py
+++ b/addon/flamenco/manager/models/__init__.py
@@ -32,6 +32,7 @@ from flamenco.manager.model.job_priority_change import JobPriorityChange
from flamenco.manager.model.job_settings import JobSettings
from flamenco.manager.model.job_status import JobStatus
from flamenco.manager.model.job_status_change import JobStatusChange
+from flamenco.manager.model.job_storage_info import JobStorageInfo
from flamenco.manager.model.job_tasks_summary import JobTasksSummary
from flamenco.manager.model.jobs_query import JobsQuery
from flamenco.manager.model.jobs_query_result import JobsQueryResult
diff --git a/addon/flamenco/manager_README.md b/addon/flamenco/manager_README.md
index 50fa47c8..abc8bee9 100644
--- a/addon/flamenco/manager_README.md
+++ b/addon/flamenco/manager_README.md
@@ -74,129 +74,130 @@ All URIs are relative to *http://localhost*
Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
-*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* | [**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* | [**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_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 |
+*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* | [**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* | [**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_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 |
## Documentation For Models
- - [AssignedTask](flamenco/manager/docs/AssignedTask.md)
- - [AvailableJobSetting](flamenco/manager/docs/AvailableJobSetting.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)
- - [JobLastRenderedImageInfo](flamenco/manager/docs/JobLastRenderedImageInfo.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)
- - [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)
- - [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)
- - [WorkerTask](flamenco/manager/docs/WorkerTask.md)
- - [WorkerTaskAllOf](flamenco/manager/docs/WorkerTaskAllOf.md)
+ - [AssignedTask](flamenco\manager\docs/AssignedTask.md)
+ - [AvailableJobSetting](flamenco\manager\docs/AvailableJobSetting.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)
+ - [JobLastRenderedImageInfo](flamenco\manager\docs/JobLastRenderedImageInfo.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)
+ - [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)
+ - [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 bdc43f20..4191b899 100644
--- a/pkg/api/openapi_spec.gen.go
+++ b/pkg/api/openapi_spec.gen.go
@@ -18,197 +18,199 @@ import (
// Base64 encoded, gzipped, json marshaled Swagger object
var swaggerSpec = []string{
- "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",
+ "H4sIAAAAAAAC/+x923IcN5bgryBqNkJ2bFWRInWx1C+rliybbsniilR7N5oOEpWJqoKYBWQDSJaqFYqY",
+ "j9g/2Z2Ifdh52h/w/NEEzgGQyExkXSiRoj3TD26qMhOXg4Nzv3wcZHJRSsGE0YOnHwc6m7MFhT+fac1n",
+ "guWnVF/af+dMZ4qXhksxeNp4SrgmlBj7F9WEG/tvxTLGr1hOJiti5oz8ItUlU+PBcFAqWTJlOINZMrlY",
+ "UJHD39ywBfzxXxSbDp4O/mmvXtyeW9nec/xg8Gk4MKuSDZ4OqFJ0Zf/9Xk7s1+5nbRQXM/f7eam4VNys",
+ "ohe4MGzGlH8Df018Lugi/WD9mNpQU23cjoXfCb5pd0T1Zf9Cqorn9sFUqgU1g6f4w7D94qfhQLG/V1yx",
+ "fPD0b/4lCxy3l7C2aAstKEUgiVc1rM/r1zCvnLxnmbELfHZFeUEnBftJTk6YMXY5Hcw54WJWMKLxOZFT",
+ "QslPckLsaDqBIHPJM/yzOc4vcybIjF8xMSQFX3ADeHZFC57b/1ZMEyPtb5oRN8iYvBHFilTarpEsuZkT",
+ "BBpMbucOKNgBfhvZcjalVWG66zqdM+Ie4jqInsulcIshlWaKLO3ac2aYWnAB88+59iAZ4/DRmOkpwi97",
+ "RsrC8NJNxEU9kcVHNaUZg0FZzo3dOo7o1j+lhWbDLnDNnCm7aFoUcknsp+2FEjo19p05I+/lhMypJhPG",
+ "BNHVZMGNYfmY/CKrIid8URYrkrOC4WdFQdgHrnFAqi81mUqFQ7+XkyGhIrcERC5KXth3uBmfiRrRJ1IW",
+ "jArY0RUtuvA5Xpm5FIR9KBXTmksA/oQR+3ZFDcstjKTKcYP+HBjspHl0YV3hbIZd1Lhkq+4ajnImDJ9y",
+ "ptwgAeWHZFFpY9dTCf73ChHRHdp7dxGS89iLQdUscReeiRVhH4yihKpZtbAUxuPbpFyN7Yd6fCIX7Bjv",
+ "1uqbb0lmj6HSLLdvZopRw3Cr7v6tojXUV7ymLDugEF8sWM6pYcWKKGaHIhS2mrMpF9x+MLSEAKa3Uw4B",
+ "JrIybkVUGZ5VBVXhHHrwQVcTTz7XUd0EoTpxX4arvvMIp+7zK665u2Q7jvBX+yUvLAFuU3GLY25lW1Le",
+ "kxoULQJcTUb2CUIccc6DlTyvlGLCFCsiLamkflxA4ohY6jG5+PHZyY/fvzh/efTq+/PjZ6c/XqAgkHPF",
+ "MiPVipTUzMl/JRdng71/gv+dDS4ILUsmcpbjETJRLez+prxg5/b9wXCQc+X/hJ8d05pTPWf5ef3mr4k7",
+ "0ncuXRrqIBDtPrqYyCGoJkcv/JWBbVvC8efCrl+Nyc+SCKYtOdFGVZmpFNPkG+AQekhyntmpqOJMf0uo",
+ "YkRXZSmVaW/dLX5ohYfDA7vpQlIzGAJeb7vJCHXimxmQcZjinkYCy2hSOHLhvrl4SmixpCsNL43JBdB1",
+ "oKcXTxE94GtHut4dIS8HgDoOoMg3Bb9khHqgEZrnIym+HZOLJZukhlmySc21AOsWVNAZs0RtSCaVIUIa",
+ "ZKBuFmRLgMdjcjHnec7sAgW7YgqG/lMblx1ptCtFJmNfBOCAAGtnF7Ro0hp/WjVAcaYBEB0Hl8FwsGST",
+ "jWeWxkgvBNV4gsIz1+Q1gEAhZ+QGKCJdWL6VkJiYoQmx60eq5/GNBy5DjjokQBPHrQo6YQXJ5lTM2BCX",
+ "YUcmS174n8fk1P7MNfIRKerDD2yXCV0py1koCmhBOGhOau9HVQI7poY1yHsNQ1jSbjK6n2Br/SIlw3bE",
+ "vxZxdgQKlxfNOcSz2ESwLTokmPorro2nUEBy+xGjiwRefL/exk8bnLBn1/UUqQ26C39Mzfz5nGWXb5l2",
+ "4nJLvqeVTlyGF/W/LAyW85UXBczcItw3QppvHZ1OCktclFWPdA6PECOXVKMOYTFvykWOs3gSnxxYn+O0",
+ "SZUERZ45Cwt1rEQqS7fGSaEFmFlypTBIWOhUViJPrknLSmUbJY7oSE7wg/aRItDcisKw8Z6H7sA2HPlL",
+ "LvL6xLfCvx6ESahe3X1YqhcLElRrmXFqkCTb3ZwzcXVF1cAhRr8A4e0LnfNwD4hiVqsAEZsSjcqs04qB",
+ "3n1gWWXYJrtHv1EhUPbosYdxmu5En6SO5XulpOru5wcmmOIZYfYxUUyXUmiWstDkCVT/8fT0mKAZgdg3",
+ "gvgeBiJHlpVmRZWjvoWXYlVImhMtEasDAHG1DdhaJRGWxgUaPLgU4zPx3E72cP8wcB0QBUBzo4ZOqGb2",
+ "yaTSK8udGIGF+kU55iWFoVwQSu69ZUatRs+sHnsPX50zCnqhXR4XOc+oYdppuss5z+bE8AWqivYomDYk",
+ "o8IKjYoZxa3S+1JaldmLJW5ArkFwsWhCrXDsefk97fiefTcrOBMGuKAkWi6YVQxnRDGqpQA6AuIU+4CX",
+ "h9OCTGh2KadT5JjBMuRFya5ZasG0prMU7rWQC869fj+FWS8LumAik39lSjtDBftAFyXSRkTxwf+UlfJ8",
+ "ytKUuVTmyn8wOBzvjybM0PuD4SDx6+jho9HsweNH99lh/niUc2VWXhPe4i4150q80P+sBQz/YmtMJ3ik",
+ "YPMTGiNpUbyZDp7+bT3tO/FCkf3q07DNI2lm+FUQ7dewSZTbtCH+CyuTebtKknOg4p8id/YByHB8wbSh",
+ "izLGLyukjeyTJIdMDPfu3dELv8KfwBS5wYq5rQHVimnBflqVeXo3p34Tdg0AIXx1vOWm2nzSLtiDrp42",
+ "MqyGI/v106+IDX8uZHZZcG36Jb0lMAvtaKNiQDHA/sZykjEFVAvs7CgPSkvDdMkyPuWZP+KtmG28nu+F",
+ "UasUn+2+1JHe1huscT/nW1mtw9s9t7l1AvXQsX265yK+otq8BZmB5UcLOmNHYiq7x/C9kNVsHvMb0D9p",
+ "RJZLzjKrP85Q0Mv5dMqUfYbLBKub/ZpQMpfajBQrqOFXjLx7+8oTeYt+I+WWQ7hdz5icSsuW0I6A6vTb",
+ "V0P7k+U/ghpGzgYfLXf7tPdRimC70dV0yj8w/elsgBygeTz2gybsVZG8am6YhrC2wQTeOhCYKhqp5yhe",
+ "M0Mtowayludg+6PFcROp2hO3jJ1qwo2iakUWbjAP/TF5LRVIY2XBPsRWGceiFzJnBapPlZU8yAUdT8bZ",
+ "hb1o9YFbwF4ysH9G7KxUEvbxdHBSKm4Yean4bG6l5UozNWYLygu76tVEMfHfJk6DkGrm33D88AReICfm",
+ "//+/K1ZEcG3A6dh5Yp6Dot29eLHvaUE/8IWVfu/v7w8HCy7wX/td9t86szBIz2GdRMpz+rCMqljPt4F6",
+ "e8kcSCJqECKzx4DupLJgxv3t8J9LMZpSjm+EP0qrd9g//l6xCv6gKpvzq+hPNKPh8CMnncFj+Lti+Lyy",
+ "BzOKZ0sqAmEPfUeAUllaccNnkfvAScpoNvki3K51loHzuGX1HamRqpcAuodAAYMxb+jEXi/swV2qNFjR",
+ "FFvIKzAfIaVjObH6l0ahXLDMCo9qlSJNek4XVJxnVtWTlTlPCQ33nrun5OjFvUjaB87r5esTGIj4gRqu",
+ "pDF5xnOrhuBK/Sfh3dpUHbSI93KC/mu7s5xMlVyErSfNUj0X+JTqS31SLRZUrVJO0EVZ8ClnOSkc80dH",
+ "mIf6mDxHLQU1IXhYmz/tT/6QGLU6CdWXXdUNvtpaAQdXtFvwFrafXhKv/3vFcM8R9QQP7eDpQ6tQ1Byg",
+ "j6Z+Gg7APXc+WYELuy1f/er/OueiQVoCbXBk49eOsuAW8rGmk/fTatJn86mXvLBK46TmU0PPdV4d/eX7",
+ "mukkHW1yOtWsudD91EJrOH3cwXutt6TsfTuKbbe77Co6tfaVeMtMpQSa6i16oX+eetLJnSIDW9hFzo2i",
+ "K9oY3Y+9fdZKwPttLxQqc9e8SE5jfi7FlM8qRX0kQHM9XL/kSpu3lVhnjUQbveV4HIVOS+im9sPamOHm",
+ "I6oSurbrB984yEyUTNmSTKklmXpInGtHSDECd76Vg7N4vcAMiFRBdwnm/onlxYQtSmNJr33LzBk4gqoi",
+ "F/cMmbBeFy/Q++/BHJKvt8E61gCrMIoKPWWKPDs+Aj+lN3enbbIaWeErmdF0DMaLwDqAL1muYy8FzOU+",
+ "Hm/UI9uztHc3jA94DZb8lSruTdJtBDk3S7mkCR70RrDRkq7IlfsYnTAWbgupDdg0pb2PDE1V4MG0bMtK",
+ "N2VBM3DJIYO8+GiF208XTsXhCsMnvOgwB5+vkwoo8TFjwfBOvZmUnC5lYk200NJPmnd8f0FKYW75ZUGN",
+ "1XhGQTXGYA5g626QySosug/R4KPNmqgzwtaA9l9ucV7Pqpwz0TRgOyOA0xp0UjZtDaPXcal1FKqNPh0e",
+ "9pqWpYUxnLI/FGK3DHEdJkSLcIzdSmx49RfGyreVEMlosKNgYl1GFxdhQBZ0RS4ZKy1REl54S4s6i848",
+ "3QOtBfYe6Rsl/bdBcVizWm++juV6ElSOoEYuHV4fGUfbUHKeM3KBjyx3YhfEbsWZ2+KAJLw+dhKA90za",
+ "/wr2wTjPLRLpC8urL4bkogmEC/L63cmpVXsvIECnB9Fb6NwCZIBaH4xSWB58OEfeCddSXp3Da/3Farlo",
+ "EsPfuk/xq7n+QGNh+WaO4jx32zns3rKZZduK5Uh/u5Ckea6Y1jvGxTr6m75pcmqWVLE113AT1fol3ByU",
+ "64Jb/DxYAvVu4vBnRdY6BuBBFUfXekAMBxnGVcEKBxEUelafOq0TllWKm1Xw57Uo4LaOnXUenRNmqvKZ",
+ "1lwbKgwKnylXaCzkyYmV7byuDHKXHYWEYbrU2lnHvgdfKd0iWK7fOfy1BLXuFpLwBHHOmzESdgAGur8z",
+ "mnC48lZ8Ovnx2cHDR3jtdbUYEs3/AcFnk5VhGgWynGm7PFK4RXkna9e60bJkwmzgk0LyM6jDMMcziULo",
+ "4Ong8OFk/8GT+9nB48n+4eFhfn86efBwmu0//u4JvX+Q0f1Hk/v5owf7+cHDR08ef7c/+W7/cc4e7j/I",
+ "H+8fPGH7diD+DzZ4ev/BwQNwauFshZzNuJjFUz06nDw+yB4dTp48OHgwze8fTp4cPt6fTh7t7z96sv/d",
+ "fnZI7z98fP9xNj2k+YMHB48OH07uf/c4e0S/e/Jw//GTeqqDx5+6Or+HyHGS2tpfI+nRK0KOX8eRsX4c",
+ "4OcgTTrrvrPst01RQMOpDkoRxkhFk4zJkSCyyJkizqWovWXfjQXzWg7wvtLoGDgL2yFHL84GaBTy2rEb",
+ "hfDglaa4CtDVLpy9ZaSLaranMybYyFKvPQxEHh29uOiJvHIos6Xii2t/yQt2UrJsow6Mgw+bx7T5NtXc",
+ "P2V/tc/QmtY6lVSKwTXQw3n/2ogBirMDfe0dMnMqyNIz8yAmDi1yxINCeIKLmKM+PLy+xuQ0ki4+H/l6",
+ "rJmNIIDtjiQcdZfAORWMeqmLIuV1tMotOqLDaUmx5S+V9XhoyqhH9CtO2tjnNLHCJqmNx0yOAXTmY9cy",
+ "xpo0erDR+2JX48Yb9gu7TQD/ws289qxsBWqvhGdAziY9oB86MXVIclYykUNqjgAND8WZP/jZbCt7RsfR",
+ "44fpnGpstV53vB2HWSUuhVwKCDAoJM1RH7MH1tC76v3jYG9xNZAF4vS0awseIGg0YNcrS9yQ0HArAsIt",
+ "sLf+w2+eFwaqpbkanhaI2ZSo6DPPUobxUTrbhGxed6aurNzxEoYKgSaAaJaTuNfsb+yDC94Lcn0cJHhb",
+ "OFBfzHAfbgYt4onCdfvCuBKR78/FGkyjbBKOtjcXz39XnvulCOFaoqdYfrJJc2uzEg2f1RyL5lYodjpd",
+ "FAhFnVWVnFX7+wePgj3YSWeVtpjfMTQb6QZMzIXCVLgHToC6p5vujpSbm0YW3h0sscEw/Gk4KCIA7Whr",
+ "uQVXSevUi1pDDltvGEKaa0pih8wumTl685OcvAPHbzKFTTMTcoeHRFspW14xRfzX3tkAST5gs9Rj8tIK",
+ "OWwJ/sWhVYfYFZeVPkdcvUD5e1KTvtSJfqHoRm89aw70M13EeXnpLNDGonfygMZRQyFH7GHSr6zYVDE9",
+ "Pw8xBGst4VHwstOb3fcYvYC7uacxjqF2L8KxYY6X1i4kU3tXDvwT3IQ0m0Ms9hXPK4rBEGQJs8yYYAqt",
+ "45IsqFj5QVzGb6loZnhGi15v4u5A7M/P3zX69DOCTxMhpy5DP8rhb57hursWR0j2XTp35FLVR54IZQyJ",
+ "APbiWW3XrTSdorRlaKiZV4uJgAC7jQeVDvZMJS/VwaP4V5hkHaQs6enPzD9hAnyLgQrhpdBWEb/Y09G3",
+ "F4RdgWkA0p2NdGmOXnaL3rQPLTAdZo/Jcz8mZmfOmImfo0EIHFD2nvj74P9dyJlGZ7tgzGWslAXPuClW",
+ "ftoJQ1IJ7l77aDUMG8moi9EI79oxpMDIqW+MhPU0pp56lHkvJ9+CRmFft6/c03Y9BFxpFvdT9FaWG0WR",
+ "xNG88Q61bRO6U4P4NDjvHugn+pinYWQTKnukEvUPVnwYb2YNLUSV5bq87/Vbj3TJsAwIgKz/lVQj+0CR",
+ "kCCoIZfcnuh0JxiEmNCi+ElOIGC+KH4Jnm/H+qi+LOQMH8bXeu2qT6m+fCVnfVTs1F0Cks0rcekkB4hB",
+ "CHdWSbkgOUMGl+NDl6dklwS3lV5JntuPc9x0k/uk8NjupOtJsYsISOSWNiav6SpkKS2qwvASUn8EQ/Mw",
+ "+2CS/klPy9ai6il6oHbDwppK2m2sw0Q7/DZi2ylAsl9uA2B0BDcXB3k9yS1Oo9k5aWU7sA134WqbRUDn",
+ "LfxcGbBZZOg639ymaBNYs3Osrs2uWYOJSE62wUV8cx02uoAUj48J5ILqNiw/p0mPBIq7yDeZqaON3bhW",
+ "TnIDjL9YmpXz6W+Bs/bczjVjKR2c1kGCXMfrte/7LNcoDX27tW9G/aVf/ecifyda4DO+Os9CLsC2Hzfi",
+ "ZW7yKu2QzbjhdvlxkpcrzlRMlrConclRrQcj6yD6pvFwm3Dwz0+xcQ8Of/tf5N/++bd/+e1ff/s/v/3L",
+ "v/3zb//3t3/97X/HShNow3F0tJvlPFvkg6eDj+6fn8BdWYnLc7QfHto9GatsntMq59LHT095wZzbew/1",
+ "pD093XsvJxrdr/cPDscwZHzIxz//YP9Z6sHTgwfDwVTRhaUxg/uj+/uD4QDULH0u1fkVz5m0ajv8MhgO",
+ "ZGXKymCJHPbBMOHyacelC+WCrbi3uuvCmcLK9tLgcrV8OuMpKc3a8VyBJqwMc15brgYFF9WHCKMhynTk",
+ "QO30y27ab4w5G3TCkHW2bTm/DcaRGEE22Q38q3WsylbWhjpNpwdqnXBeFPvFjOiVNmxRpwi6b1vVWiB9",
+ "J5MzwTXrmkPdy86YA3EEhVwyNcqoZiHMwE3hF+VCws/wQM8GQ3I2WHKRy6XGf+RULbnAv2XJxETn9h/M",
+ "ZGNyEqaSi5IaHkr0/SDvaXKhKgEa4g9v3pxc/ImoSpALiIeUBcm5NpBHAwHIVv+kIa2mlBoK9oRFWu79",
+ "THt7MS2I3dGwsQ9yNkBtXJ0NvDPfVRpEX6qXNqFUUKks37Ya/tmgaR32450NatgvpLaaNij8l4wYps1e",
+ "zibVzFUg0oRRzaHWj9PTfb4VRpvyjOQygxpvkP9bFI2dJdWCPoOV/eF8+3JBQ5LJkscOoYt20ZixHe0i",
+ "lJDrFhw6df/yEMRycCwn3JmNppwVOckl0+KeIQtqMvBnEZqZihZhpE4gzSmWrgOjim7XIQI8kkUe5aw0",
+ "axe2y0CFWobeenUmjhoLtNLcApnbsPZtQ+mJVUm19hrIVrHjXctd4sKnuHG6Nuup1yWxGivkZmjv/fGh",
+ "Jr5axpDwMRuTCZtKxeoQ7yjEf7ybIvUlK7reRHUCzAw7n6zOfaT9LglyTqhOrHVLpW8H/RDEciOrbL5R",
+ "XEQ1RayCgG7/Lw/VH3zM/G7C+dcveHtT5Rx8sYFdTnzbEhBt9TVVazeuqBsu04bius6ulc7ctb8SOsGK",
+ "mQzsW6DZRmarzzLApyNrLKGB4JCWAWvYiBbpYkpkp9o4c6WK9MTv3r4i1PiaPNHshBvNimmIwpNLUUia",
+ "bxM9X5u5wilixQTYf9+p7J7qHpLaQ76qllMzaue6p8yc9YR3KS89vtXXSEyPU4+7SmWlDWHd2hw1umNJ",
+ "FNmoI1n7G0EUHPf4cbc20t0lYnhdy9qWFMnP1HdS60zr+Cz4diFpFCmoPSAcGdUSxDwXogFeKaBYcGJQ",
+ "FgsrqUFJ0mdWyg2nB9FJssRktz8R6WwMrRf4TEjFcvINyDfSZwteeHrrbMZCGsIUdVlZoW5SW4K1y/p2",
+ "k1G5m19ZcOFKIDt/OUQB39MkC3V2MTnSLs3HbiG5Jm+umFoqbhjKtVxWGsyHIirv5AufJMWHlMPhlZw5",
+ "R0KgAejT8AK5L89rFw2nAhMyqgreUxDRNEjgDlQiiVx1JlLL1YRIpBiEVGcM9CNQZLnAjFIcJxGoui6J",
+ "6fOowJpL5idNXaJ6j9uVB3P2xFCboZPkW55He2xJBsfEPevYhdcGE21nXOgf6/OTsoxTbjZDBtSgrShe",
+ "BKlGVFJU3y2ZjvXp104VIleCo8mNPLGrT/nVNhW/uji7q27SRpH1wYV+9H7kxNTAvrID10z9Y5nCkhZf",
+ "HFvaMgfO1Aw8S02xpoCfgyifiTc9lQ2fHR9Bl4Uon++8rmGol3Q2Y2pU8b7Jn/7NW5etSDhdlGzmSp6P",
+ "6prXg+FgwXWWqGTSX/aws5ibh7i/aGkgd1a0BuAFY+WJVXmrVJ4tPCbaPfeRn6jl+CICJ4YqA3EmTOTo",
+ "vArsF9grRzcTxJXldNVUI8LYXCOfZWPyrCwLzpwDD5130n7IwaxykdOVPpfT8yVjlxeQSQHvNH+3L0PB",
+ "i/GZSKwQRBZBDh6M5rJS5Mcfn75+XddSwRLkNQbGIw+eDhaSmIpAiCoEV+TnIBQ+Hdz/7un+PuYDO53E",
+ "OSa0XYF/a/+JfauDYM1JuukmNGMjzUqqMExiKUcFg6Lvvhieg7plG3YsIHiMXfaAmXxzNlhINA6bytuF",
+ "vx2T76FMyIJRocnZgF0xtbLj+ZJ3HUSt9x9xdgBoT1K3B83HdIBgANTm4do8KIw9bEKzMW604jX3wlDD",
+ "+lQ+551UceWC7b2bSYUtGmyrReUtGhmC6emSXrIucl3HDbt9hHnjuzgMykId82hwXcMB1Zak2EOAvOrh",
+ "wDDtXpHTqZWVk3p4v483UdkI6wQjsaq1IVc1os6xsj9euIiWhMKqzwv6j9X6OO5mQQrnvkEVI27DAkSq",
+ "NoGjPFCrJU4L02TKBdfzljF75/DZbU5xGPa35jz7TAR/pppna8Sxa2v/Xy8y4kvVRvhicQuRMNEExF9r",
+ "Z2CoEQggcZjOta/fcj0rxWaZwbtBttOmmnXuPl7XKJoOKE5oCqfoisF+eY1yRzCIdmUdrMyziIX/c1ql",
+ "EizfaaagAA/XcQjR0YshKanWS6ly/wjFYFdnyQo5XoeuZXuLmAAYuNj2GtU7nRtTDj59gmYKaHSGmMTM",
+ "RDJwOPFTRhfOXIpf6qd7e1Mf88HlXre4EIZzkpdULVz0M6ScDIaDgmfMZcG5eX44fnV12Bl/uVyOZ6Ia",
+ "SzXbc9/ovVlZjA7H+2MmxnOzwAqr3BSN1S5CPfJaYL8/3h+DFCRLJmjJsQ75eN/lccLJ7NGS710d7mXt",
+ "smwzVGxCHZ+jHErsm2b9NosymEIHox3s73uoWknfYrAVNDGDZu+9s+Ii3m6ZQNScDw6vCXRhsboIqXyI",
+ "gp6u2hWjN7NZ4WPa6TZi6ExjMRFDQTepx/he5KXkLrFj5lrFdQYMRxEG/TRMg3cPXKt7XlXqA/ZLLvI/",
+ "h6Icx5h5e2PgTve6SMD7paxEXaMDZODQXaTZRvCLrAuLwyTWcRK6CSwtg18qCZ0GGyf3krvYfKnIQipG",
+ "nr868r0t0GAIcQiaLClEMIA05beTQopS6sRJQQGHxFEBq/mzzFdfDBqtQlQJsPiuHlI5ezN4v7H4kkSn",
+ "PmZD3TweNQrbdFf6c/PiDnGRGHYARzrlgt09nPorLTgY/WmMTddBphaeOs/BVT2+7zFWH+RGooJpnqMo",
+ "MGsNyjbSVr8q1h7fGn7+h0BMzO6tMbKZ/LuB3e0wTi8yQkGLbaWIl1j94rOOfIdq7p+GjbFWdFE0x2rL",
+ "xZsQpH0Qb6FvzhVLCx5dOWHtaTzLMqZD89NUNdrEkCE4T0hDcGP3wK/0pmTi2fGRT6krCrlEyfrCNwnc",
+ "c5KkO9ALUtLs0h72meg/bs1MVY6or4/WT3ZO6BVLlmS7GcKTnCrJNGOwWtpNrxC9W0j5IBHj30IGiAhc",
+ "sgktS2+uyK2KNK2Kok4i9o1grVx590jJu9qt3VMawPc0RibHoWCX3eGKTCuBfUIL6E6xAb0tQqQwu7fy",
+ "Xj8ONjjf3kefrf9p76N3mnxaR5IazLDZhMwq4NzCzpW/cSpcVA+gVpydNXoXFadbI8Fq8YkJI+dP/4Rt",
+ "6vXrDTLTdN2L3Smm19JaRSqKRr2MRtvQuFKG/dKZBHyhDIucoUoGmvp21O/WLafRQ6G3eEY/qoag9N2x",
+ "tK6Q/J8Yeo0N6M9AzrqyStt8QN5p38KUtRoDb8hKQDIaiis3WgVj07xUADOZUF1Xv5soudSN8PzrY3y9",
+ "x91x3LcS6OH8EACOtURuhNU3Os51DxmaEUuXPNJBz5vUONYsCIzrlZXwkHe6qH0rqrkQq6hCiAZoP7h/",
+ "cPMywmmgqCE9AVol55L5ro8+jaH5QjKJgWtIoylWJK9YqzNkRrN51O8ah4L7ICUpJDarvk3xCB4QX1K4",
+ "SQkQxwj1JXdgoe07EvVMjWUf7IvRGO6nZk4Hc5eyc6lQtd/iaoFe+3XvVxYtYd31epDOtdzxQoTsG+hV",
+ "C/2G5lag/PnNKWa7YG1BH0Jbp4iYuaxm8/+8UL+XCwVoteE6AfaHfduRwJQGxV6W3J64qRtt8cQ1axT/",
+ "6TfLM5PNfyjkhDZKeEAaw81ykb5CQFsINMP0lTv1dY18ehrcHipWyZ6OPXIRdIKcU4OlGHVfHSW94fje",
+ "QNV17AJWR8LPANA9y2md3999m640mYQ+SK44y01QyLpTWErrbteyxfgs6AuFKZ7j2xZKGo2h+rEIoBoZ",
+ "Q10WCrY6gqRUPrUkDKgOkDHXjwk+HN8ZWgP3NmTRWsBvh5B1664pdAuDDj0iJ1pC4E0XDS3F3fto//sz",
+ "XbC12pxLMt1Kl/MD3hnVqp0q2ysV4LM26XAxjoFHYfdwTWpIbDifKEWs2TQYM3OT56K3OA09uEWgJRXS",
+ "8FLYjU4AMEJl1z4ZpCAot7Y1EOupAtsN43VB+BGDQj6tZ46o5G3G6JCS1o/Pm0JWfv06ehv3Ffja5KXF",
+ "vXyT8vU6AH4kchIFSfdBfm/S7LpdMExcah7DW2j22ejRfZsHciO8td5KSr6uyoJp8s3SFT4KPcW/dXUz",
+ "G+1PwWrih9vSzO9jHmmWsRKS5JkwijOncYC24Sa5XZ73TrAPJZYcgIDPrjcKWtr61bpi2/aSRyBI4Oja",
+ "+/118OrmLvpa5AJBdw2CWdl3Jg3CM0pSh9t/l1ABaRTI530N+v0eAE1yCZFOyT799Q7X8xd0XwZUi6up",
+ "9vOXXVSxtmKEetgfASl/5/pe86ivofslB210w+5HIM1MnM/cYzgDme+4Thr+nbPIVo/9HjuUYEviYTO+",
+ "nqnOT+TD8pdUB8aIRrWDg758fd9R0i/Bhyng9yHI6SsTzTXIGiSBegsODE1n5EYErQPg16HnSUhu/30j",
+ "Z6PGQw9qNpM9wHUGa7kmmp40hrsOkjYX5DAVzIrhsH2GiQ7dKYLk/ztB4+Ymd0HiUEt/LXs+hbf+GDwZ",
+ "9hKSLdKyIsKYMx3XWtAdyeeOiYXUrRsqRECTg3rVDWzYRt5L79gjEbbM2PPds/aw6tAaQthsOnlDDq7m",
+ "JCkbbtxiyjsliOvAd3um22TTwFRQm2+cB/12XXe/yLmGNHD/yc0jYFgJLRSj+cpVcHNE+MGtuN8UI0v7",
+ "Hzw98LmKGURukAvdgmjdhwrqL2K3QQKgBKu9FM44dmtXuGpd4dYNfo49PWndWhEDS/RqUXBx6XpdIYI6",
+ "CKBD1aAL1QGlsuygKCKLBjaOwiwv11HHFdbLaFGgn5HryHVdEwcEajvczy2IEh1fJlhMo9UrVYyupRlx",
+ "t7BtKUd8sjdKRVId67YlKF+BliQbtqXWG0qMQ3FRCSJSfBDDOEPevuM6nOEW79aVgYaAdTfVGAauzSRG",
+ "uJZSGe0uPp4UVWFjGxH+GYZYU++eD2yjPWDoSeVd/tjYDldRkx14VxteFPUSurcEht376Jseftr7CL/w",
+ "f6xxR8X9z6RiPpakJbRt3c7SQiYh4flXd/JiDTvzRjX6fCe4UJ4vMavf/Taz1t1Nf73xi9fpebelcedO",
+ "XaI4Tb/uzZfs0tiIS4zuyzriHTDyPzYyDlOKqiMqvNm7zPXKztmUKRJaP/piv4VLUTgbHOx/dzYIiFVX",
+ "j4OiMOAzMZUSLK+7O+D2dJDjMEgr9NrsHDjmmdBCSxxDywWTghFWaBinLhqXWiZgCwBwzijm0DkQ/o8R",
+ "TjN6TsXohd3n6B0MMEjAMOrsl4KhVHzGBS1gTjv+mBxNXVW6QsZV7EJPUm6igtmupyiPqTYUmgt9iqkg",
+ "lMMbUBcbesVvsbc3bmGjl25hg42e/m3kGZkZZkbaKEYXTQoRVOsJF/Z+DzdnQj3HOXSrkfE1bDVeDO2a",
+ "aQ72v9v0ukPHBiI6koMhfo+TIyj3uVUHMABvwsySOWR34Ix86d7B7mt3T0MjZqk6dCeIzh6XQdl5mCj9",
+ "3GgzuOHW+htY3xyHeKWSmauJN2H2wzD/ZNW4dyhRXPReoafEntmFK/whjJ/Am+JuOXxwAwcCzuACCPv5",
+ "DvlZQjqT6/LXeAj3cypVxifFimSFdJUzfzw9PSaZFIJBOpOvSC2hMo0jvK6ajG6cFyPsA80M0XTBnCRp",
+ "pK/kTnJZWSEPP9DjM+FPFWPr8TbVXQoSJ0AmMl/1stI4ictOUWsXXbDEkiNYbPY+uoLBGyI8XO+oLYKW",
+ "Qv3hu2nRc4UWk8ZoLBkkpvKOWuualbDX2OQSX6w5+T1XZnX96fvC3X8UJPD7WYcLUIrb40NPkEhbYoIP",
+ "51QTAdVnyYqZu4VOsVe3U/Uc4xwXDItn4N43OBVc6nPLlRs6AW5APONaom5EvlP74t1BPsM+mL2yoFzs",
+ "mEp+2gbOHwWvolgTqg2ZsmXU73Eed0vdinrFn4TxfOnntVi1naM1quR8q1j15S2QnXr6f3hfK7LAP4Cz",
+ "FcukQ5DOgq7QDM+mU5YZL9ZCGyAcgWqyZEXh3vcWeOjIxKhL7ZxXCyo0xpWCcApuuStOu+mmY1fDTYNd",
+ "Fwo3+huFQWJwsep7dUG40IbRvFUYIqqq15vDHGpT3xhL98HMfqpr1w0LUdGNDmF17u/6PNvnUY/pSrvC",
+ "isEEbFwuF2qTxYrQerqEhI7HMFrMzF5UTLufU9bdh28MzFFF8ASE/wLquF9rfwB7VDPcw7LeazpSzH/q",
+ "cbah+acKsHWBt/fRVSV02k5fLPUL+D3Uhd/MG8KwX1jm2Fx7ZOgLIoZuX64H610MSK7J3tKVuT4C6qVY",
+ "JheL0LIBjJEZxCOAJcRVF+l0nHWVq12F2wugkmjKa76EvhNXv3NItJEl4VaTV9qMyTOxQtEKX4uLXMbd",
+ "bUOvN2x301TGW7i76YJ+VZz60qQghQ++auqWORPLUOB2IzGwRCRnBpoMhSP2Ctp2N38b8dAx724x2ds+",
+ "ui8vLK4pkHsXpMY7ItD1IuB2Yp3H6B2QsmCsHOmoacAmKtLsMvBHIinNnW1Trg+s/422Cusi4lnMNIVM",
+ "fXk30bBXl70DGHFjlGoTMvgA9/YpXtsnFdo6BJkKa0r8LuiTZZBSxV3KQmH8BJq39D2sqs3UqG4t2ccf",
+ "8cUgz9zc+Te6+PTLGsCXcFG3Gk7lIcHyfnGoo3feHWeaX77zpy1DL6wGnnV4YH0kViWrv9QJpLLy9EhO",
+ "p2uMcXwm3kyng20u6N2Dpat9DyS2UfX+b1BIvwbba6ouY52CauK7c2wA+HNaFOjW9dqvkaRw9gpfM8Uq",
+ "xNBt+55iZAZ5fG74ce+piA2HIm70arsp+i91aI9/mze626vmd3Glt0bDZ5WZM2Gwl5SrQG2xwfuc+7Sx",
+ "z8ZJjNgwEmZAT1OjnyavDzyJscZlDCQF4+jUBl8bOWClXjGoexD1CaRCkv4v7jZW7Y4hPhQ2tPtRGF4m",
+ "Vj1A6EWFUVY3bUqTsESDp5vWqcNEKa0lsEnc6vUk1N8x5XFU3Z2bt9eBMyPz0S9gD7Bko2A5FsbACFNH",
+ "UUZN55FHF+gFxUUd2eioDFOjQma0AAJHC/2lqdoVa+ym0ils9U1Ae/isk8ddgM3NlaFxhs3e+BfXgDoU",
+ "MuwjVz9L51Sq49dDhvYvtd3jwf7hFyzqjSjWi5jHTPmaii+Y4Eg6XaJT2jSJvkbH8lzzPsCoIdEyJCgX",
+ "hVyiLdiBxW1d8dncECGXztN5eLsMxl8kKiB4Fx0kVgqH1WEILqT2zCQ0a3IhbHjhdry0zv1Cw/gRNDbd",
+ "JsApr3CqdLnLpKux/7pEzbv/AF57t5O+6+hko6gp3PWtGm6srps+dUvqYDjdbPvlMMnXRNHSBb6Gseu8",
+ "/ts2mHwmc4oK4GM3cbMqeQZO2rj3eankTDGth1CotGBYGV8qMqW8qBTbyGE8X9FM5A1HiAW3H90SMisa",
+ "bb4pewu6GvGRqvr976/pyplSKvGHiN57TVd/Yax86zry/bHUM4yQcWJMneYRScyRazNiUKoSZI9cMlZ6",
+ "V2fch7/E/gxQX1dYgq4JJejKjGXS4M9I+Td7ELkj0YOyF62stSbXrn8L1JaVKSszKpXMq2ydoG+J5Rt4",
+ "+di/eyeYAxSw2XtfstmuaRdD920pZl8rY+Ngy4wNkP5cLoKvjvng/v2bv2ivmJiZechy/lNcEznnOXbC",
+ "sVSWEgeCkfsEE3DcSg9vfqXHdAWB+VCQmSpXyfbB/Ye34UYI/czJa5ZzSk5XpfOYAYoRxCgvTE5CXknd",
+ "3yCOrnlw8OR2amf7RDfklEA6JDS9XJGpvdiukYLLmzBzJY0poBMxK6a/K8kDE1osoBdSG6JYhmk+oQ4W",
+ "7BflgSithQNwqtJHqtSOECZ0pVgINgPp3Z2y/fKeJjmfMY19AltnTJ6HNCOIwzn++QeA80/H3/9AHCrZ",
+ "QcuCCpGOg1kn8Jh5tZgIygu9Vyp2xdnSkyWusPqXp/YEqb8XgwCi6spTc+yhujeIjFBtYnXUDDLp1Bj3",
+ "mBLYAUTzdTMGf5ITbyYFGe3vFVPcol9dyH/YquU5btS30YlBnx0fNSufxyYyuVhUAsVNyERM9Q9rOHAT",
+ "EzhseB3WRKAJWG/fEaz5bLdh74qShV9RZzJwOiZyYjHPKMwCfKJOknIQDNXY38tJKP0Qz+Hymj79+unf",
+ "AwAA//+Tnnpa2OcAAA==",
}
// 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 c0a78a41..96b5e1a6 100644
--- a/pkg/api/openapi_types.gen.go
+++ b/pkg/api/openapi_types.gen.go
@@ -325,6 +325,12 @@ type JobStatusChange struct {
Status JobStatus `json:"status"`
}
+// Storage info of a job, which Flamenco can use to remove job-related files when necessary.
+type JobStorageInfo struct {
+ // 'Checkout ID' used when creating the Shaman checkout for this job. Aids in removing the checkout directory when the job is removed from Flamenco.
+ ShamanCheckoutId *string `json:"shaman_checkout_id,omitempty"`
+}
+
// Simplified list of tasks of a job. Contains all tasks, but not all info of each task.
type JobTasksSummary struct {
Tasks *[]TaskSummary `json:"tasks,omitempty"`
@@ -606,6 +612,9 @@ type SubmittedJob struct {
Priority int `json:"priority"`
Settings *JobSettings `json:"settings,omitempty"`
+ // Storage info of a job, which Flamenco can use to remove job-related files when necessary.
+ Storage *JobStorageInfo `json:"storage,omitempty"`
+
// Operating system of the submitter. This is used to recognise two-way variables. This should be a lower-case version of the platform, like "linux", "windows", "darwin", "openbsd", etc. Should be ompatible with Go's `runtime.GOOS`; run `go tool dist list` to get a list of possible platforms.
// As a special case, the platform "manager" can be given, which will be interpreted as "the Manager's platform". This is mostly to make test/debug scripts easier, as they can use a static document on all platforms.
SubmitterPlatform string `json:"submitter_platform"`
diff --git a/web/app/src/manager-api/index.js b/web/app/src/manager-api/index.js
index 79632dbc..977d31ba 100644
--- a/web/app/src/manager-api/index.js
+++ b/web/app/src/manager-api/index.js
@@ -32,6 +32,7 @@ import JobLastRenderedImageInfo from './model/JobLastRenderedImageInfo';
import JobPriorityChange from './model/JobPriorityChange';
import JobStatus from './model/JobStatus';
import JobStatusChange from './model/JobStatusChange';
+import JobStorageInfo from './model/JobStorageInfo';
import JobTasksSummary from './model/JobTasksSummary';
import JobsQuery from './model/JobsQuery';
import JobsQueryResult from './model/JobsQueryResult';
@@ -241,6 +242,12 @@ export {
*/
JobStatusChange,
+ /**
+ * The JobStorageInfo model constructor.
+ * @property {module:model/JobStorageInfo}
+ */
+ JobStorageInfo,
+
/**
* The JobTasksSummary model constructor.
* @property {module:model/JobTasksSummary}
diff --git a/web/app/src/manager-api/model/Job.js b/web/app/src/manager-api/model/Job.js
index 9ee8f1ed..5d863cc5 100644
--- a/web/app/src/manager-api/model/Job.js
+++ b/web/app/src/manager-api/model/Job.js
@@ -14,6 +14,7 @@
import ApiClient from '../ApiClient';
import JobAllOf from './JobAllOf';
import JobStatus from './JobStatus';
+import JobStorageInfo from './JobStorageInfo';
import SubmittedJob from './SubmittedJob';
/**
@@ -93,6 +94,9 @@ class Job {
if (data.hasOwnProperty('submitter_platform')) {
obj['submitter_platform'] = ApiClient.convertToType(data['submitter_platform'], 'String');
}
+ if (data.hasOwnProperty('storage')) {
+ obj['storage'] = JobStorageInfo.constructFromObject(data['storage']);
+ }
if (data.hasOwnProperty('id')) {
obj['id'] = ApiClient.convertToType(data['id'], 'String');
}
@@ -154,6 +158,11 @@ Job.prototype['metadata'] = undefined;
*/
Job.prototype['submitter_platform'] = undefined;
+/**
+ * @member {module:model/JobStorageInfo} storage
+ */
+Job.prototype['storage'] = undefined;
+
/**
* UUID of the Job
* @member {String} id
@@ -217,6 +226,10 @@ SubmittedJob.prototype['metadata'] = undefined;
* @member {String} submitter_platform
*/
SubmittedJob.prototype['submitter_platform'] = undefined;
+/**
+ * @member {module:model/JobStorageInfo} storage
+ */
+SubmittedJob.prototype['storage'] = undefined;
// Implement JobAllOf interface:
/**
* UUID of the Job
diff --git a/web/app/src/manager-api/model/JobStorageInfo.js b/web/app/src/manager-api/model/JobStorageInfo.js
new file mode 100644
index 00000000..7c40bfba
--- /dev/null
+++ b/web/app/src/manager-api/model/JobStorageInfo.js
@@ -0,0 +1,73 @@
+/**
+ * Flamenco manager
+ * Render Farm manager API
+ *
+ * The version of the OpenAPI document: 1.0.0
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ *
+ */
+
+import ApiClient from '../ApiClient';
+
+/**
+ * The JobStorageInfo model module.
+ * @module model/JobStorageInfo
+ * @version 0.0.0
+ */
+class JobStorageInfo {
+ /**
+ * Constructs a new JobStorageInfo
.
+ * Storage info of a job, which Flamenco can use to remove job-related files when necessary.
+ * @alias module:model/JobStorageInfo
+ */
+ constructor() {
+
+ JobStorageInfo.initialize(this);
+ }
+
+ /**
+ * Initializes the fields of this object.
+ * This method is used by the constructors of any subclasses, in order to implement multiple inheritance (mix-ins).
+ * Only for internal use.
+ */
+ static initialize(obj) {
+ }
+
+ /**
+ * Constructs a JobStorageInfo
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/JobStorageInfo} obj Optional instance to populate.
+ * @return {module:model/JobStorageInfo} The populated JobStorageInfo
instance.
+ */
+ static constructFromObject(data, obj) {
+ if (data) {
+ obj = obj || new JobStorageInfo();
+
+ if (data.hasOwnProperty('shaman_checkout_id')) {
+ obj['shaman_checkout_id'] = ApiClient.convertToType(data['shaman_checkout_id'], 'String');
+ }
+ }
+ return obj;
+ }
+
+
+}
+
+/**
+ * 'Checkout ID' used when creating the Shaman checkout for this job. Aids in removing the checkout directory when the job is removed from Flamenco.
+ * @member {String} shaman_checkout_id
+ */
+JobStorageInfo.prototype['shaman_checkout_id'] = undefined;
+
+
+
+
+
+
+export default JobStorageInfo;
+
diff --git a/web/app/src/manager-api/model/SubmittedJob.js b/web/app/src/manager-api/model/SubmittedJob.js
index 599b794f..ff2c8266 100644
--- a/web/app/src/manager-api/model/SubmittedJob.js
+++ b/web/app/src/manager-api/model/SubmittedJob.js
@@ -12,6 +12,7 @@
*/
import ApiClient from '../ApiClient';
+import JobStorageInfo from './JobStorageInfo';
/**
* The SubmittedJob model module.
@@ -77,6 +78,9 @@ class SubmittedJob {
if (data.hasOwnProperty('submitter_platform')) {
obj['submitter_platform'] = ApiClient.convertToType(data['submitter_platform'], 'String');
}
+ if (data.hasOwnProperty('storage')) {
+ obj['storage'] = JobStorageInfo.constructFromObject(data['storage']);
+ }
}
return obj;
}
@@ -123,6 +127,11 @@ SubmittedJob.prototype['metadata'] = undefined;
*/
SubmittedJob.prototype['submitter_platform'] = undefined;
+/**
+ * @member {module:model/JobStorageInfo} storage
+ */
+SubmittedJob.prototype['storage'] = undefined;
+