diff --git a/addon/flamenco/manager/__init__.py b/addon/flamenco/manager/__init__.py index 44625841..2e316bd7 100644 --- a/addon/flamenco/manager/__init__.py +++ b/addon/flamenco/manager/__init__.py @@ -10,7 +10,7 @@ """ -__version__ = "60f3f548" +__version__ = "9daecf2b" # import ApiClient from flamenco.manager.api_client import ApiClient diff --git a/addon/flamenco/manager/api/jobs_api.py b/addon/flamenco/manager/api/jobs_api.py index 6988e86a..b46b645e 100644 --- a/addon/flamenco/manager/api/jobs_api.py +++ b/addon/flamenco/manager/api/jobs_api.py @@ -51,7 +51,7 @@ class JobsApi(object): settings={ 'response_type': (JobLastRenderedImageInfo,), 'auth': [], - 'endpoint_path': '/api/jobs/last-rendered', + 'endpoint_path': '/api/v3/jobs/last-rendered', 'operation_id': 'fetch_global_last_rendered_info', 'http_method': 'GET', 'servers': None, @@ -93,7 +93,7 @@ class JobsApi(object): settings={ 'response_type': (Job,), 'auth': [], - 'endpoint_path': '/api/jobs/{job_id}', + 'endpoint_path': '/api/v3/jobs/{job_id}', 'operation_id': 'fetch_job', 'http_method': 'GET', 'servers': None, @@ -142,7 +142,7 @@ class JobsApi(object): settings={ 'response_type': (JobBlocklist,), 'auth': [], - 'endpoint_path': '/api/jobs/{job_id}/blocklist', + 'endpoint_path': '/api/v3/jobs/{job_id}/blocklist', 'operation_id': 'fetch_job_blocklist', 'http_method': 'GET', 'servers': None, @@ -191,7 +191,7 @@ class JobsApi(object): settings={ 'response_type': (JobLastRenderedImageInfo,), 'auth': [], - 'endpoint_path': '/api/jobs/{job_id}/last-rendered', + 'endpoint_path': '/api/v3/jobs/{job_id}/last-rendered', 'operation_id': 'fetch_job_last_rendered_info', 'http_method': 'GET', 'servers': None, @@ -240,7 +240,7 @@ class JobsApi(object): settings={ 'response_type': (JobTasksSummary,), 'auth': [], - 'endpoint_path': '/api/jobs/{job_id}/tasks', + 'endpoint_path': '/api/v3/jobs/{job_id}/tasks', 'operation_id': 'fetch_job_tasks', 'http_method': 'GET', 'servers': None, @@ -289,7 +289,7 @@ class JobsApi(object): settings={ 'response_type': (Task,), 'auth': [], - 'endpoint_path': '/api/tasks/{task_id}', + 'endpoint_path': '/api/v3/tasks/{task_id}', 'operation_id': 'fetch_task', 'http_method': 'GET', 'servers': None, @@ -338,7 +338,7 @@ class JobsApi(object): settings={ 'response_type': (str,), 'auth': [], - 'endpoint_path': '/api/tasks/{task_id}/logtail', + 'endpoint_path': '/api/v3/tasks/{task_id}/logtail', 'operation_id': 'fetch_task_log_tail', 'http_method': 'GET', 'servers': None, @@ -388,7 +388,7 @@ class JobsApi(object): settings={ 'response_type': (AvailableJobType,), 'auth': [], - 'endpoint_path': '/api/jobs/type/{typeName}', + 'endpoint_path': '/api/v3/jobs/type/{typeName}', 'operation_id': 'get_job_type', 'http_method': 'GET', 'servers': None, @@ -437,7 +437,7 @@ class JobsApi(object): settings={ 'response_type': (AvailableJobTypes,), 'auth': [], - 'endpoint_path': '/api/jobs/types', + 'endpoint_path': '/api/v3/jobs/types', 'operation_id': 'get_job_types', 'http_method': 'GET', 'servers': None, @@ -479,7 +479,7 @@ class JobsApi(object): settings={ 'response_type': (JobsQueryResult,), 'auth': [], - 'endpoint_path': '/api/jobs/query', + 'endpoint_path': '/api/v3/jobs/query', 'operation_id': 'query_jobs', 'http_method': 'POST', 'servers': None, @@ -529,7 +529,7 @@ class JobsApi(object): settings={ 'response_type': None, 'auth': [], - 'endpoint_path': '/api/jobs/{job_id}/blocklist', + 'endpoint_path': '/api/v3/jobs/{job_id}/blocklist', 'operation_id': 'remove_job_blocklist', 'http_method': 'DELETE', 'servers': None, @@ -584,7 +584,7 @@ class JobsApi(object): settings={ 'response_type': None, 'auth': [], - 'endpoint_path': '/api/jobs/{job_id}/setstatus', + 'endpoint_path': '/api/v3/jobs/{job_id}/setstatus', 'operation_id': 'set_job_status', 'http_method': 'POST', 'servers': None, @@ -640,7 +640,7 @@ class JobsApi(object): settings={ 'response_type': None, 'auth': [], - 'endpoint_path': '/api/tasks/{task_id}/setstatus', + 'endpoint_path': '/api/v3/tasks/{task_id}/setstatus', 'operation_id': 'set_task_status', 'http_method': 'POST', 'servers': None, @@ -696,7 +696,7 @@ class JobsApi(object): settings={ 'response_type': (Job,), 'auth': [], - 'endpoint_path': '/api/jobs', + 'endpoint_path': '/api/v3/jobs', 'operation_id': 'submit_job', 'http_method': 'POST', 'servers': None, diff --git a/addon/flamenco/manager/api/meta_api.py b/addon/flamenco/manager/api/meta_api.py index 3109dcf8..aa42eb5a 100644 --- a/addon/flamenco/manager/api/meta_api.py +++ b/addon/flamenco/manager/api/meta_api.py @@ -40,7 +40,7 @@ class MetaApi(object): settings={ 'response_type': (ManagerConfiguration,), 'auth': [], - 'endpoint_path': '/api/configuration', + 'endpoint_path': '/api/v3/configuration', 'operation_id': 'get_configuration', 'http_method': 'GET', 'servers': None, @@ -82,7 +82,7 @@ class MetaApi(object): settings={ 'response_type': (FlamencoVersion,), 'auth': [], - 'endpoint_path': '/api/version', + 'endpoint_path': '/api/v3/version', 'operation_id': 'get_version', 'http_method': 'GET', 'servers': None, diff --git a/addon/flamenco/manager/api/shaman_api.py b/addon/flamenco/manager/api/shaman_api.py index 74f99e8b..f925d1c7 100644 --- a/addon/flamenco/manager/api/shaman_api.py +++ b/addon/flamenco/manager/api/shaman_api.py @@ -44,7 +44,7 @@ class ShamanApi(object): settings={ 'response_type': (ShamanCheckoutResult,), 'auth': [], - 'endpoint_path': '/shaman/checkout/create', + 'endpoint_path': '/api/v3/shaman/checkout/create', 'operation_id': 'shaman_checkout', 'http_method': 'POST', 'servers': None, @@ -94,7 +94,7 @@ class ShamanApi(object): settings={ 'response_type': (ShamanRequirementsResponse,), 'auth': [], - 'endpoint_path': '/shaman/checkout/requirements', + 'endpoint_path': '/api/v3/shaman/checkout/requirements', 'operation_id': 'shaman_checkout_requirements', 'http_method': 'POST', 'servers': None, @@ -144,7 +144,7 @@ class ShamanApi(object): settings={ 'response_type': None, 'auth': [], - 'endpoint_path': '/shaman/files/{checksum}/{filesize}', + 'endpoint_path': '/api/v3/shaman/files/{checksum}/{filesize}', 'operation_id': 'shaman_file_store', 'http_method': 'POST', 'servers': None, @@ -216,7 +216,7 @@ class ShamanApi(object): settings={ 'response_type': (ShamanSingleFileStatus,), 'auth': [], - 'endpoint_path': '/shaman/files/{checksum}/{filesize}', + 'endpoint_path': '/api/v3/shaman/files/{checksum}/{filesize}', 'operation_id': 'shaman_file_store_check', 'http_method': 'GET', 'servers': None, diff --git a/addon/flamenco/manager/api/worker_api.py b/addon/flamenco/manager/api/worker_api.py index 29720fca..e81067c9 100644 --- a/addon/flamenco/manager/api/worker_api.py +++ b/addon/flamenco/manager/api/worker_api.py @@ -50,7 +50,7 @@ class WorkerApi(object): 'auth': [ 'worker_auth' ], - 'endpoint_path': '/api/worker/task/{task_id}/may-i-run', + 'endpoint_path': '/api/v3/worker/task/{task_id}/may-i-run', 'operation_id': 'may_worker_run', 'http_method': 'GET', 'servers': None, @@ -99,7 +99,7 @@ class WorkerApi(object): settings={ 'response_type': (RegisteredWorker,), 'auth': [], - 'endpoint_path': '/api/worker/register-worker', + 'endpoint_path': '/api/v3/worker/register-worker', 'operation_id': 'register_worker', 'http_method': 'POST', 'servers': None, @@ -151,7 +151,7 @@ class WorkerApi(object): 'auth': [ 'worker_auth' ], - 'endpoint_path': '/api/worker/task', + 'endpoint_path': '/api/v3/worker/task', 'operation_id': 'schedule_task', 'http_method': 'POST', 'servers': None, @@ -195,7 +195,7 @@ class WorkerApi(object): 'auth': [ 'worker_auth' ], - 'endpoint_path': '/api/worker/sign-off', + 'endpoint_path': '/api/v3/worker/sign-off', 'operation_id': 'sign_off', 'http_method': 'POST', 'servers': None, @@ -239,7 +239,7 @@ class WorkerApi(object): 'auth': [ 'worker_auth' ], - 'endpoint_path': '/api/worker/sign-on', + 'endpoint_path': '/api/v3/worker/sign-on', 'operation_id': 'sign_on', 'http_method': 'POST', 'servers': None, @@ -291,7 +291,7 @@ class WorkerApi(object): 'auth': [ 'worker_auth' ], - 'endpoint_path': '/api/worker/task/{task_id}/output-produced', + 'endpoint_path': '/api/v3/worker/task/{task_id}/output-produced', 'operation_id': 'task_output_produced', 'http_method': 'POST', 'servers': None, @@ -350,7 +350,7 @@ class WorkerApi(object): 'auth': [ 'worker_auth' ], - 'endpoint_path': '/api/worker/task/{task_id}', + 'endpoint_path': '/api/v3/worker/task/{task_id}', 'operation_id': 'task_update', 'http_method': 'POST', 'servers': None, @@ -408,7 +408,7 @@ class WorkerApi(object): 'auth': [ 'worker_auth' ], - 'endpoint_path': '/api/worker/state', + 'endpoint_path': '/api/v3/worker/state', 'operation_id': 'worker_state', 'http_method': 'GET', 'servers': None, @@ -452,7 +452,7 @@ class WorkerApi(object): 'auth': [ 'worker_auth' ], - 'endpoint_path': '/api/worker/state-changed', + 'endpoint_path': '/api/v3/worker/state-changed', 'operation_id': 'worker_state_changed', 'http_method': 'POST', 'servers': None, diff --git a/addon/flamenco/manager/api/worker_mgt_api.py b/addon/flamenco/manager/api/worker_mgt_api.py index 1db68c65..a831ef3f 100644 --- a/addon/flamenco/manager/api/worker_mgt_api.py +++ b/addon/flamenco/manager/api/worker_mgt_api.py @@ -42,7 +42,7 @@ class WorkerMgtApi(object): settings={ 'response_type': (Worker,), 'auth': [], - 'endpoint_path': '/api/worker-mgt/workers/{worker_id}', + 'endpoint_path': '/api/v3/worker-mgt/workers/{worker_id}', 'operation_id': 'fetch_worker', 'http_method': 'GET', 'servers': None, @@ -91,7 +91,7 @@ class WorkerMgtApi(object): settings={ 'response_type': (WorkerList,), 'auth': [], - 'endpoint_path': '/api/worker-mgt/workers', + 'endpoint_path': '/api/v3/worker-mgt/workers', 'operation_id': 'fetch_workers', 'http_method': 'GET', 'servers': None, @@ -133,7 +133,7 @@ class WorkerMgtApi(object): settings={ 'response_type': None, 'auth': [], - 'endpoint_path': '/api/worker-mgt/workers/{worker_id}/setstatus', + 'endpoint_path': '/api/v3/worker-mgt/workers/{worker_id}/setstatus', 'operation_id': 'request_worker_status_change', 'http_method': 'POST', 'servers': None, diff --git a/addon/flamenco/manager/api_client.py b/addon/flamenco/manager/api_client.py index ee23fb4d..7785363a 100644 --- a/addon/flamenco/manager/api_client.py +++ b/addon/flamenco/manager/api_client.py @@ -76,7 +76,7 @@ class ApiClient(object): self.default_headers[header_name] = header_value self.cookie = cookie # Set default User-Agent. - self.user_agent = 'Flamenco/60f3f548 (Blender add-on)' + self.user_agent = 'Flamenco/9daecf2b (Blender add-on)' def __enter__(self): return self diff --git a/addon/flamenco/manager/configuration.py b/addon/flamenco/manager/configuration.py index 83bd24f6..a6d0f02d 100644 --- a/addon/flamenco/manager/configuration.py +++ b/addon/flamenco/manager/configuration.py @@ -404,7 +404,7 @@ conf = flamenco.manager.Configuration( "OS: {env}\n"\ "Python Version: {pyversion}\n"\ "Version of the API: 1.0.0\n"\ - "SDK Package Version: 60f3f548".\ + "SDK Package Version: 9daecf2b".\ format(env=sys.platform, pyversion=sys.version) def get_host_settings(self): diff --git a/addon/flamenco/manager/docs/JobsApi.md b/addon/flamenco/manager/docs/JobsApi.md index e9569bbb..0498dde8 100644 --- a/addon/flamenco/manager/docs/JobsApi.md +++ b/addon/flamenco/manager/docs/JobsApi.md @@ -4,20 +4,20 @@ All URIs are relative to *http://localhost* Method | HTTP request | Description ------------- | ------------- | ------------- -[**fetch_global_last_rendered_info**](JobsApi.md#fetch_global_last_rendered_info) | **GET** /api/jobs/last-rendered | Get the URL that serves the last-rendered images. -[**fetch_job**](JobsApi.md#fetch_job) | **GET** /api/jobs/{job_id} | Fetch info about the job. -[**fetch_job_blocklist**](JobsApi.md#fetch_job_blocklist) | **GET** /api/jobs/{job_id}/blocklist | Fetch the list of workers that are blocked from doing certain task types on this job. -[**fetch_job_last_rendered_info**](JobsApi.md#fetch_job_last_rendered_info) | **GET** /api/jobs/{job_id}/last-rendered | Get the URL that serves the last-rendered images of this job. -[**fetch_job_tasks**](JobsApi.md#fetch_job_tasks) | **GET** /api/jobs/{job_id}/tasks | Fetch a summary of all tasks of the given job. -[**fetch_task**](JobsApi.md#fetch_task) | **GET** /api/tasks/{task_id} | Fetch a single task. -[**fetch_task_log_tail**](JobsApi.md#fetch_task_log_tail) | **GET** /api/tasks/{task_id}/logtail | Fetch the last few lines of the task's log. -[**get_job_type**](JobsApi.md#get_job_type) | **GET** /api/jobs/type/{typeName} | Get single job type and its parameters. -[**get_job_types**](JobsApi.md#get_job_types) | **GET** /api/jobs/types | Get list of job types and their parameters. -[**query_jobs**](JobsApi.md#query_jobs) | **POST** /api/jobs/query | Fetch list of jobs. -[**remove_job_blocklist**](JobsApi.md#remove_job_blocklist) | **DELETE** /api/jobs/{job_id}/blocklist | Remove entries from a job blocklist. -[**set_job_status**](JobsApi.md#set_job_status) | **POST** /api/jobs/{job_id}/setstatus | -[**set_task_status**](JobsApi.md#set_task_status) | **POST** /api/tasks/{task_id}/setstatus | -[**submit_job**](JobsApi.md#submit_job) | **POST** /api/jobs | Submit a new job for Flamenco Manager to execute. +[**fetch_global_last_rendered_info**](JobsApi.md#fetch_global_last_rendered_info) | **GET** /api/v3/jobs/last-rendered | Get the URL that serves the last-rendered images. +[**fetch_job**](JobsApi.md#fetch_job) | **GET** /api/v3/jobs/{job_id} | Fetch info about the job. +[**fetch_job_blocklist**](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. +[**fetch_job_last_rendered_info**](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. +[**fetch_job_tasks**](JobsApi.md#fetch_job_tasks) | **GET** /api/v3/jobs/{job_id}/tasks | Fetch a summary of all tasks of the given job. +[**fetch_task**](JobsApi.md#fetch_task) | **GET** /api/v3/tasks/{task_id} | Fetch a single task. +[**fetch_task_log_tail**](JobsApi.md#fetch_task_log_tail) | **GET** /api/v3/tasks/{task_id}/logtail | Fetch the last few lines of the task's log. +[**get_job_type**](JobsApi.md#get_job_type) | **GET** /api/v3/jobs/type/{typeName} | Get single job type and its parameters. +[**get_job_types**](JobsApi.md#get_job_types) | **GET** /api/v3/jobs/types | Get list of job types and their parameters. +[**query_jobs**](JobsApi.md#query_jobs) | **POST** /api/v3/jobs/query | Fetch list of jobs. +[**remove_job_blocklist**](JobsApi.md#remove_job_blocklist) | **DELETE** /api/v3/jobs/{job_id}/blocklist | Remove entries from a job blocklist. +[**set_job_status**](JobsApi.md#set_job_status) | **POST** /api/v3/jobs/{job_id}/setstatus | +[**set_task_status**](JobsApi.md#set_task_status) | **POST** /api/v3/tasks/{task_id}/setstatus | +[**submit_job**](JobsApi.md#submit_job) | **POST** /api/v3/jobs | Submit a new job for Flamenco Manager to execute. # **fetch_global_last_rendered_info** diff --git a/addon/flamenco/manager/docs/MetaApi.md b/addon/flamenco/manager/docs/MetaApi.md index 3fa46c5e..d1bbcca6 100644 --- a/addon/flamenco/manager/docs/MetaApi.md +++ b/addon/flamenco/manager/docs/MetaApi.md @@ -4,8 +4,8 @@ All URIs are relative to *http://localhost* Method | HTTP request | Description ------------- | ------------- | ------------- -[**get_configuration**](MetaApi.md#get_configuration) | **GET** /api/configuration | Get the configuration of this Manager. -[**get_version**](MetaApi.md#get_version) | **GET** /api/version | Get the Flamenco version of this Manager +[**get_configuration**](MetaApi.md#get_configuration) | **GET** /api/v3/configuration | Get the configuration of this Manager. +[**get_version**](MetaApi.md#get_version) | **GET** /api/v3/version | Get the Flamenco version of this Manager # **get_configuration** diff --git a/addon/flamenco/manager/docs/ShamanApi.md b/addon/flamenco/manager/docs/ShamanApi.md index e5c3aacc..149dbd4b 100644 --- a/addon/flamenco/manager/docs/ShamanApi.md +++ b/addon/flamenco/manager/docs/ShamanApi.md @@ -4,10 +4,10 @@ All URIs are relative to *http://localhost* Method | HTTP request | Description ------------- | ------------- | ------------- -[**shaman_checkout**](ShamanApi.md#shaman_checkout) | **POST** /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. -[**shaman_checkout_requirements**](ShamanApi.md#shaman_checkout_requirements) | **POST** /shaman/checkout/requirements | Checks a Shaman Requirements file, and reports which files are unknown. -[**shaman_file_store**](ShamanApi.md#shaman_file_store) | **POST** /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. -[**shaman_file_store_check**](ShamanApi.md#shaman_file_store_check) | **GET** /shaman/files/{checksum}/{filesize} | Check the status of a file on the Shaman server. +[**shaman_checkout**](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. +[**shaman_checkout_requirements**](ShamanApi.md#shaman_checkout_requirements) | **POST** /api/v3/shaman/checkout/requirements | Checks a Shaman Requirements file, and reports which files are unknown. +[**shaman_file_store**](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. +[**shaman_file_store_check**](ShamanApi.md#shaman_file_store_check) | **GET** /api/v3/shaman/files/{checksum}/{filesize} | Check the status of a file on the Shaman server. # **shaman_checkout** diff --git a/addon/flamenco/manager/docs/WorkerApi.md b/addon/flamenco/manager/docs/WorkerApi.md index 8702c0e3..0fbb0caf 100644 --- a/addon/flamenco/manager/docs/WorkerApi.md +++ b/addon/flamenco/manager/docs/WorkerApi.md @@ -4,15 +4,15 @@ All URIs are relative to *http://localhost* Method | HTTP request | Description ------------- | ------------- | ------------- -[**may_worker_run**](WorkerApi.md#may_worker_run) | **GET** /api/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. -[**register_worker**](WorkerApi.md#register_worker) | **POST** /api/worker/register-worker | Register a new worker -[**schedule_task**](WorkerApi.md#schedule_task) | **POST** /api/worker/task | Obtain a new task to execute -[**sign_off**](WorkerApi.md#sign_off) | **POST** /api/worker/sign-off | Mark the worker as offline -[**sign_on**](WorkerApi.md#sign_on) | **POST** /api/worker/sign-on | Authenticate & sign in the worker. -[**task_output_produced**](WorkerApi.md#task_output_produced) | **POST** /api/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. -[**task_update**](WorkerApi.md#task_update) | **POST** /api/worker/task/{task_id} | Update the task, typically to indicate progress, completion, or failure. -[**worker_state**](WorkerApi.md#worker_state) | **GET** /api/worker/state | -[**worker_state_changed**](WorkerApi.md#worker_state_changed) | **POST** /api/worker/state-changed | Worker changed state. This could be as acknowledgement of a Manager-requested state change, or in response to worker-local signals. +[**may_worker_run**](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. +[**register_worker**](WorkerApi.md#register_worker) | **POST** /api/v3/worker/register-worker | Register a new worker +[**schedule_task**](WorkerApi.md#schedule_task) | **POST** /api/v3/worker/task | Obtain a new task to execute +[**sign_off**](WorkerApi.md#sign_off) | **POST** /api/v3/worker/sign-off | Mark the worker as offline +[**sign_on**](WorkerApi.md#sign_on) | **POST** /api/v3/worker/sign-on | Authenticate & sign in the worker. +[**task_output_produced**](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. +[**task_update**](WorkerApi.md#task_update) | **POST** /api/v3/worker/task/{task_id} | Update the task, typically to indicate progress, completion, or failure. +[**worker_state**](WorkerApi.md#worker_state) | **GET** /api/v3/worker/state | +[**worker_state_changed**](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. # **may_worker_run** diff --git a/addon/flamenco/manager/docs/WorkerMgtApi.md b/addon/flamenco/manager/docs/WorkerMgtApi.md index d63eb5b0..d7625a7d 100644 --- a/addon/flamenco/manager/docs/WorkerMgtApi.md +++ b/addon/flamenco/manager/docs/WorkerMgtApi.md @@ -4,9 +4,9 @@ All URIs are relative to *http://localhost* Method | HTTP request | Description ------------- | ------------- | ------------- -[**fetch_worker**](WorkerMgtApi.md#fetch_worker) | **GET** /api/worker-mgt/workers/{worker_id} | Fetch info about the worker. -[**fetch_workers**](WorkerMgtApi.md#fetch_workers) | **GET** /api/worker-mgt/workers | Get list of workers. -[**request_worker_status_change**](WorkerMgtApi.md#request_worker_status_change) | **POST** /api/worker-mgt/workers/{worker_id}/setstatus | +[**fetch_worker**](WorkerMgtApi.md#fetch_worker) | **GET** /api/v3/worker-mgt/workers/{worker_id} | Fetch info about the worker. +[**fetch_workers**](WorkerMgtApi.md#fetch_workers) | **GET** /api/v3/worker-mgt/workers | Get list of workers. +[**request_worker_status_change**](WorkerMgtApi.md#request_worker_status_change) | **POST** /api/v3/worker-mgt/workers/{worker_id}/setstatus | # **fetch_worker** diff --git a/addon/flamenco/manager_README.md b/addon/flamenco/manager_README.md index 5d2acc15..9f936c7d 100644 --- a/addon/flamenco/manager_README.md +++ b/addon/flamenco/manager_README.md @@ -4,7 +4,7 @@ Render Farm manager API The `flamenco.manager` package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: - API version: 1.0.0 -- Package version: 60f3f548 +- Package version: 9daecf2b - Build package: org.openapitools.codegen.languages.PythonClientCodegen For more information, please visit [https://flamenco.io/](https://flamenco.io/) @@ -72,38 +72,38 @@ 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/jobs/last-rendered | Get the URL that serves the last-rendered images. -*JobsApi* | [**fetch_job**](flamenco/manager/docs/JobsApi.md#fetch_job) | **GET** /api/jobs/{job_id} | Fetch info about the job. -*JobsApi* | [**fetch_job_blocklist**](flamenco/manager/docs/JobsApi.md#fetch_job_blocklist) | **GET** /api/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/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/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/tasks/{task_id} | Fetch a single task. -*JobsApi* | [**fetch_task_log_tail**](flamenco/manager/docs/JobsApi.md#fetch_task_log_tail) | **GET** /api/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/jobs/type/{typeName} | Get single job type and its parameters. -*JobsApi* | [**get_job_types**](flamenco/manager/docs/JobsApi.md#get_job_types) | **GET** /api/jobs/types | Get list of job types and their parameters. -*JobsApi* | [**query_jobs**](flamenco/manager/docs/JobsApi.md#query_jobs) | **POST** /api/jobs/query | Fetch list of jobs. -*JobsApi* | [**remove_job_blocklist**](flamenco/manager/docs/JobsApi.md#remove_job_blocklist) | **DELETE** /api/jobs/{job_id}/blocklist | Remove entries from a job blocklist. -*JobsApi* | [**set_job_status**](flamenco/manager/docs/JobsApi.md#set_job_status) | **POST** /api/jobs/{job_id}/setstatus | -*JobsApi* | [**set_task_status**](flamenco/manager/docs/JobsApi.md#set_task_status) | **POST** /api/tasks/{task_id}/setstatus | -*JobsApi* | [**submit_job**](flamenco/manager/docs/JobsApi.md#submit_job) | **POST** /api/jobs | Submit a new job for Flamenco Manager to execute. -*MetaApi* | [**get_configuration**](flamenco/manager/docs/MetaApi.md#get_configuration) | **GET** /api/configuration | Get the configuration of this Manager. -*MetaApi* | [**get_version**](flamenco/manager/docs/MetaApi.md#get_version) | **GET** /api/version | Get the Flamenco version of this Manager -*ShamanApi* | [**shaman_checkout**](flamenco/manager/docs/ShamanApi.md#shaman_checkout) | **POST** /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** /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** /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** /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/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/worker/register-worker | Register a new worker -*WorkerApi* | [**schedule_task**](flamenco/manager/docs/WorkerApi.md#schedule_task) | **POST** /api/worker/task | Obtain a new task to execute -*WorkerApi* | [**sign_off**](flamenco/manager/docs/WorkerApi.md#sign_off) | **POST** /api/worker/sign-off | Mark the worker as offline -*WorkerApi* | [**sign_on**](flamenco/manager/docs/WorkerApi.md#sign_on) | **POST** /api/worker/sign-on | Authenticate & sign in the worker. -*WorkerApi* | [**task_output_produced**](flamenco/manager/docs/WorkerApi.md#task_output_produced) | **POST** /api/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/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/worker/state | -*WorkerApi* | [**worker_state_changed**](flamenco/manager/docs/WorkerApi.md#worker_state_changed) | **POST** /api/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* | [**fetch_worker**](flamenco/manager/docs/WorkerMgtApi.md#fetch_worker) | **GET** /api/worker-mgt/workers/{worker_id} | Fetch info about the worker. -*WorkerMgtApi* | [**fetch_workers**](flamenco/manager/docs/WorkerMgtApi.md#fetch_workers) | **GET** /api/worker-mgt/workers | Get list of workers. -*WorkerMgtApi* | [**request_worker_status_change**](flamenco/manager/docs/WorkerMgtApi.md#request_worker_status_change) | **POST** /api/worker-mgt/workers/{worker_id}/setstatus | +*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_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_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. +*MetaApi* | [**get_configuration**](flamenco/manager/docs/MetaApi.md#get_configuration) | **GET** /api/v3/configuration | Get the configuration of this Manager. +*MetaApi* | [**get_version**](flamenco/manager/docs/MetaApi.md#get_version) | **GET** /api/v3/version | Get the Flamenco version of this Manager +*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* | [**fetch_worker**](flamenco/manager/docs/WorkerMgtApi.md#fetch_worker) | **GET** /api/v3/worker-mgt/workers/{worker_id} | Fetch info about the worker. +*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 | ## Documentation For Models diff --git a/pkg/api/openapi_client.gen.go b/pkg/api/openapi_client.gen.go index 43f21508..5392d7b8 100644 --- a/pkg/api/openapi_client.gen.go +++ b/pkg/api/openapi_client.gen.go @@ -134,6 +134,22 @@ type ClientInterface interface { // FetchJobTasks request FetchJobTasks(ctx context.Context, jobId string, reqEditors ...RequestEditorFn) (*http.Response, error) + // ShamanCheckout request with any body + ShamanCheckoutWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + ShamanCheckout(ctx context.Context, body ShamanCheckoutJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // ShamanCheckoutRequirements request with any body + ShamanCheckoutRequirementsWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + ShamanCheckoutRequirements(ctx context.Context, body ShamanCheckoutRequirementsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // ShamanFileStoreCheck request + ShamanFileStoreCheck(ctx context.Context, checksum string, filesize int, reqEditors ...RequestEditorFn) (*http.Response, error) + + // ShamanFileStore request with any body + ShamanFileStoreWithBody(ctx context.Context, checksum string, filesize int, params *ShamanFileStoreParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + // FetchTask request FetchTask(ctx context.Context, taskId string, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -193,22 +209,6 @@ type ClientInterface interface { // TaskOutputProduced request with any body TaskOutputProducedWithBody(ctx context.Context, taskId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) - - // ShamanCheckout request with any body - ShamanCheckoutWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) - - ShamanCheckout(ctx context.Context, body ShamanCheckoutJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) - - // ShamanCheckoutRequirements request with any body - ShamanCheckoutRequirementsWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) - - ShamanCheckoutRequirements(ctx context.Context, body ShamanCheckoutRequirementsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) - - // ShamanFileStoreCheck request - ShamanFileStoreCheck(ctx context.Context, checksum string, filesize int, reqEditors ...RequestEditorFn) (*http.Response, error) - - // ShamanFileStore request with any body - ShamanFileStoreWithBody(ctx context.Context, checksum string, filesize int, params *ShamanFileStoreParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) } func (c *Client) GetConfiguration(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { @@ -403,6 +403,78 @@ func (c *Client) FetchJobTasks(ctx context.Context, jobId string, reqEditors ... return c.Client.Do(req) } +func (c *Client) ShamanCheckoutWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewShamanCheckoutRequestWithBody(c.Server, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) ShamanCheckout(ctx context.Context, body ShamanCheckoutJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewShamanCheckoutRequest(c.Server, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) ShamanCheckoutRequirementsWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewShamanCheckoutRequirementsRequestWithBody(c.Server, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) ShamanCheckoutRequirements(ctx context.Context, body ShamanCheckoutRequirementsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewShamanCheckoutRequirementsRequest(c.Server, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) ShamanFileStoreCheck(ctx context.Context, checksum string, filesize int, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewShamanFileStoreCheckRequest(c.Server, checksum, filesize) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) ShamanFileStoreWithBody(ctx context.Context, checksum string, filesize int, params *ShamanFileStoreParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewShamanFileStoreRequestWithBody(c.Server, checksum, filesize, params, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + func (c *Client) FetchTask(ctx context.Context, taskId string, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewFetchTaskRequest(c.Server, taskId) if err != nil { @@ -667,78 +739,6 @@ func (c *Client) TaskOutputProducedWithBody(ctx context.Context, taskId string, return c.Client.Do(req) } -func (c *Client) ShamanCheckoutWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewShamanCheckoutRequestWithBody(c.Server, contentType, body) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) ShamanCheckout(ctx context.Context, body ShamanCheckoutJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewShamanCheckoutRequest(c.Server, body) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) ShamanCheckoutRequirementsWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewShamanCheckoutRequirementsRequestWithBody(c.Server, contentType, body) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) ShamanCheckoutRequirements(ctx context.Context, body ShamanCheckoutRequirementsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewShamanCheckoutRequirementsRequest(c.Server, body) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) ShamanFileStoreCheck(ctx context.Context, checksum string, filesize int, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewShamanFileStoreCheckRequest(c.Server, checksum, filesize) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) ShamanFileStoreWithBody(ctx context.Context, checksum string, filesize int, params *ShamanFileStoreParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewShamanFileStoreRequestWithBody(c.Server, checksum, filesize, params, contentType, body) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - // NewGetConfigurationRequest generates requests for GetConfiguration func NewGetConfigurationRequest(server string) (*http.Request, error) { var err error @@ -748,7 +748,7 @@ func NewGetConfigurationRequest(server string) (*http.Request, error) { return nil, err } - operationPath := fmt.Sprintf("/api/configuration") + operationPath := fmt.Sprintf("/api/v3/configuration") if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -786,7 +786,7 @@ func NewSubmitJobRequestWithBody(server string, contentType string, body io.Read return nil, err } - operationPath := fmt.Sprintf("/api/jobs") + operationPath := fmt.Sprintf("/api/v3/jobs") if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -815,7 +815,7 @@ func NewFetchGlobalLastRenderedInfoRequest(server string) (*http.Request, error) return nil, err } - operationPath := fmt.Sprintf("/api/jobs/last-rendered") + operationPath := fmt.Sprintf("/api/v3/jobs/last-rendered") if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -853,7 +853,7 @@ func NewQueryJobsRequestWithBody(server string, contentType string, body io.Read return nil, err } - operationPath := fmt.Sprintf("/api/jobs/query") + operationPath := fmt.Sprintf("/api/v3/jobs/query") if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -889,7 +889,7 @@ func NewGetJobTypeRequest(server string, typeName string) (*http.Request, error) return nil, err } - operationPath := fmt.Sprintf("/api/jobs/type/%s", pathParam0) + operationPath := fmt.Sprintf("/api/v3/jobs/type/%s", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -916,7 +916,7 @@ func NewGetJobTypesRequest(server string) (*http.Request, error) { return nil, err } - operationPath := fmt.Sprintf("/api/jobs/types") + operationPath := fmt.Sprintf("/api/v3/jobs/types") if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -950,7 +950,7 @@ func NewFetchJobRequest(server string, jobId string) (*http.Request, error) { return nil, err } - operationPath := fmt.Sprintf("/api/jobs/%s", pathParam0) + operationPath := fmt.Sprintf("/api/v3/jobs/%s", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -995,7 +995,7 @@ func NewRemoveJobBlocklistRequestWithBody(server string, jobId string, contentTy return nil, err } - operationPath := fmt.Sprintf("/api/jobs/%s/blocklist", pathParam0) + operationPath := fmt.Sprintf("/api/v3/jobs/%s/blocklist", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1031,7 +1031,7 @@ func NewFetchJobBlocklistRequest(server string, jobId string) (*http.Request, er return nil, err } - operationPath := fmt.Sprintf("/api/jobs/%s/blocklist", pathParam0) + operationPath := fmt.Sprintf("/api/v3/jobs/%s/blocklist", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1065,7 +1065,7 @@ func NewFetchJobLastRenderedInfoRequest(server string, jobId string) (*http.Requ return nil, err } - operationPath := fmt.Sprintf("/api/jobs/%s/last-rendered", pathParam0) + operationPath := fmt.Sprintf("/api/v3/jobs/%s/last-rendered", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1110,7 +1110,7 @@ func NewSetJobStatusRequestWithBody(server string, jobId string, contentType str return nil, err } - operationPath := fmt.Sprintf("/api/jobs/%s/setstatus", pathParam0) + operationPath := fmt.Sprintf("/api/v3/jobs/%s/setstatus", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1146,7 +1146,7 @@ func NewFetchJobTasksRequest(server string, jobId string) (*http.Request, error) return nil, err } - operationPath := fmt.Sprintf("/api/jobs/%s/tasks", pathParam0) + operationPath := fmt.Sprintf("/api/v3/jobs/%s/tasks", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1164,6 +1164,192 @@ func NewFetchJobTasksRequest(server string, jobId string) (*http.Request, error) return req, nil } +// NewShamanCheckoutRequest calls the generic ShamanCheckout builder with application/json body +func NewShamanCheckoutRequest(server string, body ShamanCheckoutJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewShamanCheckoutRequestWithBody(server, "application/json", bodyReader) +} + +// NewShamanCheckoutRequestWithBody generates requests for ShamanCheckout with any type of body +func NewShamanCheckoutRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/api/v3/shaman/checkout/create") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewShamanCheckoutRequirementsRequest calls the generic ShamanCheckoutRequirements builder with application/json body +func NewShamanCheckoutRequirementsRequest(server string, body ShamanCheckoutRequirementsJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewShamanCheckoutRequirementsRequestWithBody(server, "application/json", bodyReader) +} + +// NewShamanCheckoutRequirementsRequestWithBody generates requests for ShamanCheckoutRequirements with any type of body +func NewShamanCheckoutRequirementsRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/api/v3/shaman/checkout/requirements") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewShamanFileStoreCheckRequest generates requests for ShamanFileStoreCheck +func NewShamanFileStoreCheckRequest(server string, checksum string, filesize int) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "checksum", runtime.ParamLocationPath, checksum) + if err != nil { + return nil, err + } + + var pathParam1 string + + pathParam1, err = runtime.StyleParamWithLocation("simple", false, "filesize", runtime.ParamLocationPath, filesize) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/api/v3/shaman/files/%s/%s", pathParam0, pathParam1) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewShamanFileStoreRequestWithBody generates requests for ShamanFileStore with any type of body +func NewShamanFileStoreRequestWithBody(server string, checksum string, filesize int, params *ShamanFileStoreParams, contentType string, body io.Reader) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "checksum", runtime.ParamLocationPath, checksum) + if err != nil { + return nil, err + } + + var pathParam1 string + + pathParam1, err = runtime.StyleParamWithLocation("simple", false, "filesize", runtime.ParamLocationPath, filesize) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/api/v3/shaman/files/%s/%s", pathParam0, pathParam1) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + if params.XShamanCanDeferUpload != nil { + var headerParam0 string + + headerParam0, err = runtime.StyleParamWithLocation("simple", false, "X-Shaman-Can-Defer-Upload", runtime.ParamLocationHeader, *params.XShamanCanDeferUpload) + if err != nil { + return nil, err + } + + req.Header.Set("X-Shaman-Can-Defer-Upload", headerParam0) + } + + if params.XShamanOriginalFilename != nil { + var headerParam1 string + + headerParam1, err = runtime.StyleParamWithLocation("simple", false, "X-Shaman-Original-Filename", runtime.ParamLocationHeader, *params.XShamanOriginalFilename) + if err != nil { + return nil, err + } + + req.Header.Set("X-Shaman-Original-Filename", headerParam1) + } + + return req, nil +} + // NewFetchTaskRequest generates requests for FetchTask func NewFetchTaskRequest(server string, taskId string) (*http.Request, error) { var err error @@ -1180,7 +1366,7 @@ func NewFetchTaskRequest(server string, taskId string) (*http.Request, error) { return nil, err } - operationPath := fmt.Sprintf("/api/tasks/%s", pathParam0) + operationPath := fmt.Sprintf("/api/v3/tasks/%s", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1214,7 +1400,7 @@ func NewFetchTaskLogTailRequest(server string, taskId string) (*http.Request, er return nil, err } - operationPath := fmt.Sprintf("/api/tasks/%s/logtail", pathParam0) + operationPath := fmt.Sprintf("/api/v3/tasks/%s/logtail", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1259,7 +1445,7 @@ func NewSetTaskStatusRequestWithBody(server string, taskId string, contentType s return nil, err } - operationPath := fmt.Sprintf("/api/tasks/%s/setstatus", pathParam0) + operationPath := fmt.Sprintf("/api/v3/tasks/%s/setstatus", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1288,7 +1474,7 @@ func NewGetVersionRequest(server string) (*http.Request, error) { return nil, err } - operationPath := fmt.Sprintf("/api/version") + operationPath := fmt.Sprintf("/api/v3/version") if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1315,7 +1501,7 @@ func NewFetchWorkersRequest(server string) (*http.Request, error) { return nil, err } - operationPath := fmt.Sprintf("/api/worker-mgt/workers") + operationPath := fmt.Sprintf("/api/v3/worker-mgt/workers") if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1349,7 +1535,7 @@ func NewFetchWorkerRequest(server string, workerId string) (*http.Request, error return nil, err } - operationPath := fmt.Sprintf("/api/worker-mgt/workers/%s", pathParam0) + operationPath := fmt.Sprintf("/api/v3/worker-mgt/workers/%s", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1394,7 +1580,7 @@ func NewRequestWorkerStatusChangeRequestWithBody(server string, workerId string, return nil, err } - operationPath := fmt.Sprintf("/api/worker-mgt/workers/%s/setstatus", pathParam0) + operationPath := fmt.Sprintf("/api/v3/worker-mgt/workers/%s/setstatus", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1434,7 +1620,7 @@ func NewRegisterWorkerRequestWithBody(server string, contentType string, body io return nil, err } - operationPath := fmt.Sprintf("/api/worker/register-worker") + operationPath := fmt.Sprintf("/api/v3/worker/register-worker") if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1463,7 +1649,7 @@ func NewSignOffRequest(server string) (*http.Request, error) { return nil, err } - operationPath := fmt.Sprintf("/api/worker/sign-off") + operationPath := fmt.Sprintf("/api/v3/worker/sign-off") if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1501,7 +1687,7 @@ func NewSignOnRequestWithBody(server string, contentType string, body io.Reader) return nil, err } - operationPath := fmt.Sprintf("/api/worker/sign-on") + operationPath := fmt.Sprintf("/api/v3/worker/sign-on") if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1530,7 +1716,7 @@ func NewWorkerStateRequest(server string) (*http.Request, error) { return nil, err } - operationPath := fmt.Sprintf("/api/worker/state") + operationPath := fmt.Sprintf("/api/v3/worker/state") if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1568,7 +1754,7 @@ func NewWorkerStateChangedRequestWithBody(server string, contentType string, bod return nil, err } - operationPath := fmt.Sprintf("/api/worker/state-changed") + operationPath := fmt.Sprintf("/api/v3/worker/state-changed") if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1597,7 +1783,7 @@ func NewScheduleTaskRequest(server string) (*http.Request, error) { return nil, err } - operationPath := fmt.Sprintf("/api/worker/task") + operationPath := fmt.Sprintf("/api/v3/worker/task") if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1642,7 +1828,7 @@ func NewTaskUpdateRequestWithBody(server string, taskId string, contentType stri return nil, err } - operationPath := fmt.Sprintf("/api/worker/task/%s", pathParam0) + operationPath := fmt.Sprintf("/api/v3/worker/task/%s", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1678,7 +1864,7 @@ func NewMayWorkerRunRequest(server string, taskId string) (*http.Request, error) return nil, err } - operationPath := fmt.Sprintf("/api/worker/task/%s/may-i-run", pathParam0) + operationPath := fmt.Sprintf("/api/v3/worker/task/%s/may-i-run", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1712,7 +1898,7 @@ func NewTaskOutputProducedRequestWithBody(server string, taskId string, contentT return nil, err } - operationPath := fmt.Sprintf("/api/worker/task/%s/output-produced", pathParam0) + operationPath := fmt.Sprintf("/api/v3/worker/task/%s/output-produced", pathParam0) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -1732,192 +1918,6 @@ func NewTaskOutputProducedRequestWithBody(server string, taskId string, contentT return req, nil } -// NewShamanCheckoutRequest calls the generic ShamanCheckout builder with application/json body -func NewShamanCheckoutRequest(server string, body ShamanCheckoutJSONRequestBody) (*http.Request, error) { - var bodyReader io.Reader - buf, err := json.Marshal(body) - if err != nil { - return nil, err - } - bodyReader = bytes.NewReader(buf) - return NewShamanCheckoutRequestWithBody(server, "application/json", bodyReader) -} - -// NewShamanCheckoutRequestWithBody generates requests for ShamanCheckout with any type of body -func NewShamanCheckoutRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { - var err error - - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } - - operationPath := fmt.Sprintf("/shaman/checkout/create") - if operationPath[0] == '/' { - operationPath = "." + operationPath - } - - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err - } - - req, err := http.NewRequest("POST", queryURL.String(), body) - if err != nil { - return nil, err - } - - req.Header.Add("Content-Type", contentType) - - return req, nil -} - -// NewShamanCheckoutRequirementsRequest calls the generic ShamanCheckoutRequirements builder with application/json body -func NewShamanCheckoutRequirementsRequest(server string, body ShamanCheckoutRequirementsJSONRequestBody) (*http.Request, error) { - var bodyReader io.Reader - buf, err := json.Marshal(body) - if err != nil { - return nil, err - } - bodyReader = bytes.NewReader(buf) - return NewShamanCheckoutRequirementsRequestWithBody(server, "application/json", bodyReader) -} - -// NewShamanCheckoutRequirementsRequestWithBody generates requests for ShamanCheckoutRequirements with any type of body -func NewShamanCheckoutRequirementsRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { - var err error - - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } - - operationPath := fmt.Sprintf("/shaman/checkout/requirements") - if operationPath[0] == '/' { - operationPath = "." + operationPath - } - - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err - } - - req, err := http.NewRequest("POST", queryURL.String(), body) - if err != nil { - return nil, err - } - - req.Header.Add("Content-Type", contentType) - - return req, nil -} - -// NewShamanFileStoreCheckRequest generates requests for ShamanFileStoreCheck -func NewShamanFileStoreCheckRequest(server string, checksum string, filesize int) (*http.Request, error) { - var err error - - var pathParam0 string - - pathParam0, err = runtime.StyleParamWithLocation("simple", false, "checksum", runtime.ParamLocationPath, checksum) - if err != nil { - return nil, err - } - - var pathParam1 string - - pathParam1, err = runtime.StyleParamWithLocation("simple", false, "filesize", runtime.ParamLocationPath, filesize) - if err != nil { - return nil, err - } - - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } - - operationPath := fmt.Sprintf("/shaman/files/%s/%s", pathParam0, pathParam1) - if operationPath[0] == '/' { - operationPath = "." + operationPath - } - - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err - } - - req, err := http.NewRequest("GET", queryURL.String(), nil) - if err != nil { - return nil, err - } - - return req, nil -} - -// NewShamanFileStoreRequestWithBody generates requests for ShamanFileStore with any type of body -func NewShamanFileStoreRequestWithBody(server string, checksum string, filesize int, params *ShamanFileStoreParams, contentType string, body io.Reader) (*http.Request, error) { - var err error - - var pathParam0 string - - pathParam0, err = runtime.StyleParamWithLocation("simple", false, "checksum", runtime.ParamLocationPath, checksum) - if err != nil { - return nil, err - } - - var pathParam1 string - - pathParam1, err = runtime.StyleParamWithLocation("simple", false, "filesize", runtime.ParamLocationPath, filesize) - if err != nil { - return nil, err - } - - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } - - operationPath := fmt.Sprintf("/shaman/files/%s/%s", pathParam0, pathParam1) - if operationPath[0] == '/' { - operationPath = "." + operationPath - } - - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err - } - - req, err := http.NewRequest("POST", queryURL.String(), body) - if err != nil { - return nil, err - } - - req.Header.Add("Content-Type", contentType) - - if params.XShamanCanDeferUpload != nil { - var headerParam0 string - - headerParam0, err = runtime.StyleParamWithLocation("simple", false, "X-Shaman-Can-Defer-Upload", runtime.ParamLocationHeader, *params.XShamanCanDeferUpload) - if err != nil { - return nil, err - } - - req.Header.Set("X-Shaman-Can-Defer-Upload", headerParam0) - } - - if params.XShamanOriginalFilename != nil { - var headerParam1 string - - headerParam1, err = runtime.StyleParamWithLocation("simple", false, "X-Shaman-Original-Filename", runtime.ParamLocationHeader, *params.XShamanOriginalFilename) - if err != nil { - return nil, err - } - - req.Header.Set("X-Shaman-Original-Filename", headerParam1) - } - - return req, nil -} - func (c *Client) applyEditors(ctx context.Context, req *http.Request, additionalEditors []RequestEditorFn) error { for _, r := range c.RequestEditors { if err := r(ctx, req); err != nil { @@ -2005,6 +2005,22 @@ type ClientWithResponsesInterface interface { // FetchJobTasks request FetchJobTasksWithResponse(ctx context.Context, jobId string, reqEditors ...RequestEditorFn) (*FetchJobTasksResponse, error) + // ShamanCheckout request with any body + ShamanCheckoutWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ShamanCheckoutResponse, error) + + ShamanCheckoutWithResponse(ctx context.Context, body ShamanCheckoutJSONRequestBody, reqEditors ...RequestEditorFn) (*ShamanCheckoutResponse, error) + + // ShamanCheckoutRequirements request with any body + ShamanCheckoutRequirementsWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ShamanCheckoutRequirementsResponse, error) + + ShamanCheckoutRequirementsWithResponse(ctx context.Context, body ShamanCheckoutRequirementsJSONRequestBody, reqEditors ...RequestEditorFn) (*ShamanCheckoutRequirementsResponse, error) + + // ShamanFileStoreCheck request + ShamanFileStoreCheckWithResponse(ctx context.Context, checksum string, filesize int, reqEditors ...RequestEditorFn) (*ShamanFileStoreCheckResponse, error) + + // ShamanFileStore request with any body + ShamanFileStoreWithBodyWithResponse(ctx context.Context, checksum string, filesize int, params *ShamanFileStoreParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ShamanFileStoreResponse, error) + // FetchTask request FetchTaskWithResponse(ctx context.Context, taskId string, reqEditors ...RequestEditorFn) (*FetchTaskResponse, error) @@ -2064,22 +2080,6 @@ type ClientWithResponsesInterface interface { // TaskOutputProduced request with any body TaskOutputProducedWithBodyWithResponse(ctx context.Context, taskId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*TaskOutputProducedResponse, error) - - // ShamanCheckout request with any body - ShamanCheckoutWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ShamanCheckoutResponse, error) - - ShamanCheckoutWithResponse(ctx context.Context, body ShamanCheckoutJSONRequestBody, reqEditors ...RequestEditorFn) (*ShamanCheckoutResponse, error) - - // ShamanCheckoutRequirements request with any body - ShamanCheckoutRequirementsWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ShamanCheckoutRequirementsResponse, error) - - ShamanCheckoutRequirementsWithResponse(ctx context.Context, body ShamanCheckoutRequirementsJSONRequestBody, reqEditors ...RequestEditorFn) (*ShamanCheckoutRequirementsResponse, error) - - // ShamanFileStoreCheck request - ShamanFileStoreCheckWithResponse(ctx context.Context, checksum string, filesize int, reqEditors ...RequestEditorFn) (*ShamanFileStoreCheckResponse, error) - - // ShamanFileStore request with any body - ShamanFileStoreWithBodyWithResponse(ctx context.Context, checksum string, filesize int, params *ShamanFileStoreParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ShamanFileStoreResponse, error) } type GetConfigurationResponse struct { @@ -2350,6 +2350,99 @@ func (r FetchJobTasksResponse) StatusCode() int { return 0 } +type ShamanCheckoutResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *ShamanCheckoutResult + JSON409 *Error + JSON424 *Error + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r ShamanCheckoutResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r ShamanCheckoutResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type ShamanCheckoutRequirementsResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *ShamanRequirementsResponse + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r ShamanCheckoutRequirementsResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r ShamanCheckoutRequirementsResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type ShamanFileStoreCheckResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *ShamanSingleFileStatus + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r ShamanFileStoreCheckResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r ShamanFileStoreCheckResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type ShamanFileStoreResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r ShamanFileStoreResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r ShamanFileStoreResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + type FetchTaskResponse struct { Body []byte HTTPResponse *http.Response @@ -2713,99 +2806,6 @@ func (r TaskOutputProducedResponse) StatusCode() int { return 0 } -type ShamanCheckoutResponse struct { - Body []byte - HTTPResponse *http.Response - JSON200 *ShamanCheckoutResult - JSON409 *Error - JSON424 *Error - JSONDefault *Error -} - -// Status returns HTTPResponse.Status -func (r ShamanCheckoutResponse) Status() string { - if r.HTTPResponse != nil { - return r.HTTPResponse.Status - } - return http.StatusText(0) -} - -// StatusCode returns HTTPResponse.StatusCode -func (r ShamanCheckoutResponse) StatusCode() int { - if r.HTTPResponse != nil { - return r.HTTPResponse.StatusCode - } - return 0 -} - -type ShamanCheckoutRequirementsResponse struct { - Body []byte - HTTPResponse *http.Response - JSON200 *ShamanRequirementsResponse - JSONDefault *Error -} - -// Status returns HTTPResponse.Status -func (r ShamanCheckoutRequirementsResponse) Status() string { - if r.HTTPResponse != nil { - return r.HTTPResponse.Status - } - return http.StatusText(0) -} - -// StatusCode returns HTTPResponse.StatusCode -func (r ShamanCheckoutRequirementsResponse) StatusCode() int { - if r.HTTPResponse != nil { - return r.HTTPResponse.StatusCode - } - return 0 -} - -type ShamanFileStoreCheckResponse struct { - Body []byte - HTTPResponse *http.Response - JSON200 *ShamanSingleFileStatus - JSONDefault *Error -} - -// Status returns HTTPResponse.Status -func (r ShamanFileStoreCheckResponse) Status() string { - if r.HTTPResponse != nil { - return r.HTTPResponse.Status - } - return http.StatusText(0) -} - -// StatusCode returns HTTPResponse.StatusCode -func (r ShamanFileStoreCheckResponse) StatusCode() int { - if r.HTTPResponse != nil { - return r.HTTPResponse.StatusCode - } - return 0 -} - -type ShamanFileStoreResponse struct { - Body []byte - HTTPResponse *http.Response - JSONDefault *Error -} - -// Status returns HTTPResponse.Status -func (r ShamanFileStoreResponse) Status() string { - if r.HTTPResponse != nil { - return r.HTTPResponse.Status - } - return http.StatusText(0) -} - -// StatusCode returns HTTPResponse.StatusCode -func (r ShamanFileStoreResponse) StatusCode() int { - if r.HTTPResponse != nil { - return r.HTTPResponse.StatusCode - } - return 0 -} - // GetConfigurationWithResponse request returning *GetConfigurationResponse func (c *ClientWithResponses) GetConfigurationWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetConfigurationResponse, error) { rsp, err := c.GetConfiguration(ctx, reqEditors...) @@ -2946,6 +2946,58 @@ func (c *ClientWithResponses) FetchJobTasksWithResponse(ctx context.Context, job return ParseFetchJobTasksResponse(rsp) } +// ShamanCheckoutWithBodyWithResponse request with arbitrary body returning *ShamanCheckoutResponse +func (c *ClientWithResponses) ShamanCheckoutWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ShamanCheckoutResponse, error) { + rsp, err := c.ShamanCheckoutWithBody(ctx, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseShamanCheckoutResponse(rsp) +} + +func (c *ClientWithResponses) ShamanCheckoutWithResponse(ctx context.Context, body ShamanCheckoutJSONRequestBody, reqEditors ...RequestEditorFn) (*ShamanCheckoutResponse, error) { + rsp, err := c.ShamanCheckout(ctx, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseShamanCheckoutResponse(rsp) +} + +// ShamanCheckoutRequirementsWithBodyWithResponse request with arbitrary body returning *ShamanCheckoutRequirementsResponse +func (c *ClientWithResponses) ShamanCheckoutRequirementsWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ShamanCheckoutRequirementsResponse, error) { + rsp, err := c.ShamanCheckoutRequirementsWithBody(ctx, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseShamanCheckoutRequirementsResponse(rsp) +} + +func (c *ClientWithResponses) ShamanCheckoutRequirementsWithResponse(ctx context.Context, body ShamanCheckoutRequirementsJSONRequestBody, reqEditors ...RequestEditorFn) (*ShamanCheckoutRequirementsResponse, error) { + rsp, err := c.ShamanCheckoutRequirements(ctx, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseShamanCheckoutRequirementsResponse(rsp) +} + +// ShamanFileStoreCheckWithResponse request returning *ShamanFileStoreCheckResponse +func (c *ClientWithResponses) ShamanFileStoreCheckWithResponse(ctx context.Context, checksum string, filesize int, reqEditors ...RequestEditorFn) (*ShamanFileStoreCheckResponse, error) { + rsp, err := c.ShamanFileStoreCheck(ctx, checksum, filesize, reqEditors...) + if err != nil { + return nil, err + } + return ParseShamanFileStoreCheckResponse(rsp) +} + +// ShamanFileStoreWithBodyWithResponse request with arbitrary body returning *ShamanFileStoreResponse +func (c *ClientWithResponses) ShamanFileStoreWithBodyWithResponse(ctx context.Context, checksum string, filesize int, params *ShamanFileStoreParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ShamanFileStoreResponse, error) { + rsp, err := c.ShamanFileStoreWithBody(ctx, checksum, filesize, params, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseShamanFileStoreResponse(rsp) +} + // FetchTaskWithResponse request returning *FetchTaskResponse func (c *ClientWithResponses) FetchTaskWithResponse(ctx context.Context, taskId string, reqEditors ...RequestEditorFn) (*FetchTaskResponse, error) { rsp, err := c.FetchTask(ctx, taskId, reqEditors...) @@ -3138,58 +3190,6 @@ func (c *ClientWithResponses) TaskOutputProducedWithBodyWithResponse(ctx context return ParseTaskOutputProducedResponse(rsp) } -// ShamanCheckoutWithBodyWithResponse request with arbitrary body returning *ShamanCheckoutResponse -func (c *ClientWithResponses) ShamanCheckoutWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ShamanCheckoutResponse, error) { - rsp, err := c.ShamanCheckoutWithBody(ctx, contentType, body, reqEditors...) - if err != nil { - return nil, err - } - return ParseShamanCheckoutResponse(rsp) -} - -func (c *ClientWithResponses) ShamanCheckoutWithResponse(ctx context.Context, body ShamanCheckoutJSONRequestBody, reqEditors ...RequestEditorFn) (*ShamanCheckoutResponse, error) { - rsp, err := c.ShamanCheckout(ctx, body, reqEditors...) - if err != nil { - return nil, err - } - return ParseShamanCheckoutResponse(rsp) -} - -// ShamanCheckoutRequirementsWithBodyWithResponse request with arbitrary body returning *ShamanCheckoutRequirementsResponse -func (c *ClientWithResponses) ShamanCheckoutRequirementsWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ShamanCheckoutRequirementsResponse, error) { - rsp, err := c.ShamanCheckoutRequirementsWithBody(ctx, contentType, body, reqEditors...) - if err != nil { - return nil, err - } - return ParseShamanCheckoutRequirementsResponse(rsp) -} - -func (c *ClientWithResponses) ShamanCheckoutRequirementsWithResponse(ctx context.Context, body ShamanCheckoutRequirementsJSONRequestBody, reqEditors ...RequestEditorFn) (*ShamanCheckoutRequirementsResponse, error) { - rsp, err := c.ShamanCheckoutRequirements(ctx, body, reqEditors...) - if err != nil { - return nil, err - } - return ParseShamanCheckoutRequirementsResponse(rsp) -} - -// ShamanFileStoreCheckWithResponse request returning *ShamanFileStoreCheckResponse -func (c *ClientWithResponses) ShamanFileStoreCheckWithResponse(ctx context.Context, checksum string, filesize int, reqEditors ...RequestEditorFn) (*ShamanFileStoreCheckResponse, error) { - rsp, err := c.ShamanFileStoreCheck(ctx, checksum, filesize, reqEditors...) - if err != nil { - return nil, err - } - return ParseShamanFileStoreCheckResponse(rsp) -} - -// ShamanFileStoreWithBodyWithResponse request with arbitrary body returning *ShamanFileStoreResponse -func (c *ClientWithResponses) ShamanFileStoreWithBodyWithResponse(ctx context.Context, checksum string, filesize int, params *ShamanFileStoreParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ShamanFileStoreResponse, error) { - rsp, err := c.ShamanFileStoreWithBody(ctx, checksum, filesize, params, contentType, body, reqEditors...) - if err != nil { - return nil, err - } - return ParseShamanFileStoreResponse(rsp) -} - // ParseGetConfigurationResponse parses an HTTP response from a GetConfigurationWithResponse call func ParseGetConfigurationResponse(rsp *http.Response) (*GetConfigurationResponse, error) { bodyBytes, err := ioutil.ReadAll(rsp.Body) @@ -3530,6 +3530,145 @@ func ParseFetchJobTasksResponse(rsp *http.Response) (*FetchJobTasksResponse, err return response, nil } +// ParseShamanCheckoutResponse parses an HTTP response from a ShamanCheckoutWithResponse call +func ParseShamanCheckoutResponse(rsp *http.Response) (*ShamanCheckoutResponse, error) { + bodyBytes, err := ioutil.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &ShamanCheckoutResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest ShamanCheckoutResult + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 409: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON409 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 424: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON424 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseShamanCheckoutRequirementsResponse parses an HTTP response from a ShamanCheckoutRequirementsWithResponse call +func ParseShamanCheckoutRequirementsResponse(rsp *http.Response) (*ShamanCheckoutRequirementsResponse, error) { + bodyBytes, err := ioutil.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &ShamanCheckoutRequirementsResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest ShamanRequirementsResponse + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseShamanFileStoreCheckResponse parses an HTTP response from a ShamanFileStoreCheckWithResponse call +func ParseShamanFileStoreCheckResponse(rsp *http.Response) (*ShamanFileStoreCheckResponse, error) { + bodyBytes, err := ioutil.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &ShamanFileStoreCheckResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest ShamanSingleFileStatus + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseShamanFileStoreResponse parses an HTTP response from a ShamanFileStoreWithResponse call +func ParseShamanFileStoreResponse(rsp *http.Response) (*ShamanFileStoreResponse, error) { + bodyBytes, err := ioutil.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &ShamanFileStoreResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + // ParseFetchTaskResponse parses an HTTP response from a FetchTaskWithResponse call func ParseFetchTaskResponse(rsp *http.Response) (*FetchTaskResponse, error) { bodyBytes, err := ioutil.ReadAll(rsp.Body) @@ -4022,142 +4161,3 @@ func ParseTaskOutputProducedResponse(rsp *http.Response) (*TaskOutputProducedRes return response, nil } - -// ParseShamanCheckoutResponse parses an HTTP response from a ShamanCheckoutWithResponse call -func ParseShamanCheckoutResponse(rsp *http.Response) (*ShamanCheckoutResponse, error) { - bodyBytes, err := ioutil.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &ShamanCheckoutResponse{ - Body: bodyBytes, - HTTPResponse: rsp, - } - - switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest ShamanCheckoutResult - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON200 = &dest - - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 409: - var dest Error - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON409 = &dest - - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 424: - var dest Error - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON424 = &dest - - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: - var dest Error - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSONDefault = &dest - - } - - return response, nil -} - -// ParseShamanCheckoutRequirementsResponse parses an HTTP response from a ShamanCheckoutRequirementsWithResponse call -func ParseShamanCheckoutRequirementsResponse(rsp *http.Response) (*ShamanCheckoutRequirementsResponse, error) { - bodyBytes, err := ioutil.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &ShamanCheckoutRequirementsResponse{ - Body: bodyBytes, - HTTPResponse: rsp, - } - - switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest ShamanRequirementsResponse - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON200 = &dest - - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: - var dest Error - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSONDefault = &dest - - } - - return response, nil -} - -// ParseShamanFileStoreCheckResponse parses an HTTP response from a ShamanFileStoreCheckWithResponse call -func ParseShamanFileStoreCheckResponse(rsp *http.Response) (*ShamanFileStoreCheckResponse, error) { - bodyBytes, err := ioutil.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &ShamanFileStoreCheckResponse{ - Body: bodyBytes, - HTTPResponse: rsp, - } - - switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest ShamanSingleFileStatus - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON200 = &dest - - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: - var dest Error - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSONDefault = &dest - - } - - return response, nil -} - -// ParseShamanFileStoreResponse parses an HTTP response from a ShamanFileStoreWithResponse call -func ParseShamanFileStoreResponse(rsp *http.Response) (*ShamanFileStoreResponse, error) { - bodyBytes, err := ioutil.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &ShamanFileStoreResponse{ - Body: bodyBytes, - HTTPResponse: rsp, - } - - switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: - var dest Error - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSONDefault = &dest - - } - - return response, nil -} diff --git a/pkg/api/openapi_server.gen.go b/pkg/api/openapi_server.gen.go index ff1e775a..1618a903 100644 --- a/pkg/api/openapi_server.gen.go +++ b/pkg/api/openapi_server.gen.go @@ -14,102 +14,102 @@ import ( // ServerInterface represents all server handlers. type ServerInterface interface { // Get the configuration of this Manager. - // (GET /api/configuration) + // (GET /api/v3/configuration) GetConfiguration(ctx echo.Context) error // Submit a new job for Flamenco Manager to execute. - // (POST /api/jobs) + // (POST /api/v3/jobs) SubmitJob(ctx echo.Context) error // Get the URL that serves the last-rendered images. - // (GET /api/jobs/last-rendered) + // (GET /api/v3/jobs/last-rendered) FetchGlobalLastRenderedInfo(ctx echo.Context) error // Fetch list of jobs. - // (POST /api/jobs/query) + // (POST /api/v3/jobs/query) QueryJobs(ctx echo.Context) error // Get single job type and its parameters. - // (GET /api/jobs/type/{typeName}) + // (GET /api/v3/jobs/type/{typeName}) GetJobType(ctx echo.Context, typeName string) error // Get list of job types and their parameters. - // (GET /api/jobs/types) + // (GET /api/v3/jobs/types) GetJobTypes(ctx echo.Context) error // Fetch info about the job. - // (GET /api/jobs/{job_id}) + // (GET /api/v3/jobs/{job_id}) FetchJob(ctx echo.Context, jobId string) error // Remove entries from a job blocklist. - // (DELETE /api/jobs/{job_id}/blocklist) + // (DELETE /api/v3/jobs/{job_id}/blocklist) RemoveJobBlocklist(ctx echo.Context, jobId string) error // Fetch the list of workers that are blocked from doing certain task types on this job. - // (GET /api/jobs/{job_id}/blocklist) + // (GET /api/v3/jobs/{job_id}/blocklist) FetchJobBlocklist(ctx echo.Context, jobId string) error // Get the URL that serves the last-rendered images of this job. - // (GET /api/jobs/{job_id}/last-rendered) + // (GET /api/v3/jobs/{job_id}/last-rendered) FetchJobLastRenderedInfo(ctx echo.Context, jobId string) error - // (POST /api/jobs/{job_id}/setstatus) + // (POST /api/v3/jobs/{job_id}/setstatus) SetJobStatus(ctx echo.Context, jobId string) error // Fetch a summary of all tasks of the given job. - // (GET /api/jobs/{job_id}/tasks) + // (GET /api/v3/jobs/{job_id}/tasks) FetchJobTasks(ctx echo.Context, jobId string) error - // Fetch a single task. - // (GET /api/tasks/{task_id}) - FetchTask(ctx echo.Context, taskId string) error - // Fetch the last few lines of the task's log. - // (GET /api/tasks/{task_id}/logtail) - FetchTaskLogTail(ctx echo.Context, taskId string) error - - // (POST /api/tasks/{task_id}/setstatus) - SetTaskStatus(ctx echo.Context, taskId string) error - // Get the Flamenco version of this Manager - // (GET /api/version) - GetVersion(ctx echo.Context) error - // Get list of workers. - // (GET /api/worker-mgt/workers) - FetchWorkers(ctx echo.Context) error - // Fetch info about the worker. - // (GET /api/worker-mgt/workers/{worker_id}) - FetchWorker(ctx echo.Context, workerId string) error - - // (POST /api/worker-mgt/workers/{worker_id}/setstatus) - RequestWorkerStatusChange(ctx echo.Context, workerId string) error - // Register a new worker - // (POST /api/worker/register-worker) - RegisterWorker(ctx echo.Context) error - // Mark the worker as offline - // (POST /api/worker/sign-off) - SignOff(ctx echo.Context) error - // Authenticate & sign in the worker. - // (POST /api/worker/sign-on) - SignOn(ctx echo.Context) error - - // (GET /api/worker/state) - WorkerState(ctx echo.Context) error - // Worker changed state. This could be as acknowledgement of a Manager-requested state change, or in response to worker-local signals. - // (POST /api/worker/state-changed) - WorkerStateChanged(ctx echo.Context) error - // Obtain a new task to execute - // (POST /api/worker/task) - ScheduleTask(ctx echo.Context) error - // Update the task, typically to indicate progress, completion, or failure. - // (POST /api/worker/task/{task_id}) - TaskUpdate(ctx echo.Context, taskId string) error - // The response indicates whether the worker is allowed to run / keep running the task. Optionally contains a queued worker status change. - // (GET /api/worker/task/{task_id}/may-i-run) - MayWorkerRun(ctx echo.Context, taskId string) error - // 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. - // (POST /api/worker/task/{task_id}/output-produced) - TaskOutputProduced(ctx echo.Context, taskId string) error // Create a directory, and symlink the required files into it. The files must all have been uploaded to Shaman before calling this endpoint. - // (POST /shaman/checkout/create) + // (POST /api/v3/shaman/checkout/create) ShamanCheckout(ctx echo.Context) error // Checks a Shaman Requirements file, and reports which files are unknown. - // (POST /shaman/checkout/requirements) + // (POST /api/v3/shaman/checkout/requirements) ShamanCheckoutRequirements(ctx echo.Context) error // Check the status of a file on the Shaman server. - // (GET /shaman/files/{checksum}/{filesize}) + // (GET /api/v3/shaman/files/{checksum}/{filesize}) ShamanFileStoreCheck(ctx echo.Context, checksum string, filesize int) error // 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. - // (POST /shaman/files/{checksum}/{filesize}) + // (POST /api/v3/shaman/files/{checksum}/{filesize}) ShamanFileStore(ctx echo.Context, checksum string, filesize int, params ShamanFileStoreParams) error + // Fetch a single task. + // (GET /api/v3/tasks/{task_id}) + FetchTask(ctx echo.Context, taskId string) error + // Fetch the last few lines of the task's log. + // (GET /api/v3/tasks/{task_id}/logtail) + FetchTaskLogTail(ctx echo.Context, taskId string) error + + // (POST /api/v3/tasks/{task_id}/setstatus) + SetTaskStatus(ctx echo.Context, taskId string) error + // Get the Flamenco version of this Manager + // (GET /api/v3/version) + GetVersion(ctx echo.Context) error + // Get list of workers. + // (GET /api/v3/worker-mgt/workers) + FetchWorkers(ctx echo.Context) error + // Fetch info about the worker. + // (GET /api/v3/worker-mgt/workers/{worker_id}) + FetchWorker(ctx echo.Context, workerId string) error + + // (POST /api/v3/worker-mgt/workers/{worker_id}/setstatus) + RequestWorkerStatusChange(ctx echo.Context, workerId string) error + // Register a new worker + // (POST /api/v3/worker/register-worker) + RegisterWorker(ctx echo.Context) error + // Mark the worker as offline + // (POST /api/v3/worker/sign-off) + SignOff(ctx echo.Context) error + // Authenticate & sign in the worker. + // (POST /api/v3/worker/sign-on) + SignOn(ctx echo.Context) error + + // (GET /api/v3/worker/state) + WorkerState(ctx echo.Context) error + // Worker changed state. This could be as acknowledgement of a Manager-requested state change, or in response to worker-local signals. + // (POST /api/v3/worker/state-changed) + WorkerStateChanged(ctx echo.Context) error + // Obtain a new task to execute + // (POST /api/v3/worker/task) + ScheduleTask(ctx echo.Context) error + // Update the task, typically to indicate progress, completion, or failure. + // (POST /api/v3/worker/task/{task_id}) + TaskUpdate(ctx echo.Context, taskId string) error + // The response indicates whether the worker is allowed to run / keep running the task. Optionally contains a queued worker status change. + // (GET /api/v3/worker/task/{task_id}/may-i-run) + MayWorkerRun(ctx echo.Context, taskId string) error + // 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. + // (POST /api/v3/worker/task/{task_id}/output-produced) + TaskOutputProduced(ctx echo.Context, taskId string) error } // ServerInterfaceWrapper converts echo contexts to parameters. @@ -274,6 +274,107 @@ func (w *ServerInterfaceWrapper) FetchJobTasks(ctx echo.Context) error { return err } +// ShamanCheckout converts echo context to params. +func (w *ServerInterfaceWrapper) ShamanCheckout(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.ShamanCheckout(ctx) + return err +} + +// ShamanCheckoutRequirements converts echo context to params. +func (w *ServerInterfaceWrapper) ShamanCheckoutRequirements(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.ShamanCheckoutRequirements(ctx) + return err +} + +// ShamanFileStoreCheck converts echo context to params. +func (w *ServerInterfaceWrapper) ShamanFileStoreCheck(ctx echo.Context) error { + var err error + // ------------- Path parameter "checksum" ------------- + var checksum string + + err = runtime.BindStyledParameterWithLocation("simple", false, "checksum", runtime.ParamLocationPath, ctx.Param("checksum"), &checksum) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter checksum: %s", err)) + } + + // ------------- Path parameter "filesize" ------------- + var filesize int + + err = runtime.BindStyledParameterWithLocation("simple", false, "filesize", runtime.ParamLocationPath, ctx.Param("filesize"), &filesize) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter filesize: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.ShamanFileStoreCheck(ctx, checksum, filesize) + return err +} + +// ShamanFileStore converts echo context to params. +func (w *ServerInterfaceWrapper) ShamanFileStore(ctx echo.Context) error { + var err error + // ------------- Path parameter "checksum" ------------- + var checksum string + + err = runtime.BindStyledParameterWithLocation("simple", false, "checksum", runtime.ParamLocationPath, ctx.Param("checksum"), &checksum) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter checksum: %s", err)) + } + + // ------------- Path parameter "filesize" ------------- + var filesize int + + err = runtime.BindStyledParameterWithLocation("simple", false, "filesize", runtime.ParamLocationPath, ctx.Param("filesize"), &filesize) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter filesize: %s", err)) + } + + // Parameter object where we will unmarshal all parameters from the context + var params ShamanFileStoreParams + + headers := ctx.Request().Header + // ------------- Optional header parameter "X-Shaman-Can-Defer-Upload" ------------- + if valueList, found := headers[http.CanonicalHeaderKey("X-Shaman-Can-Defer-Upload")]; found { + var XShamanCanDeferUpload bool + n := len(valueList) + if n != 1 { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for X-Shaman-Can-Defer-Upload, got %d", n)) + } + + err = runtime.BindStyledParameterWithLocation("simple", false, "X-Shaman-Can-Defer-Upload", runtime.ParamLocationHeader, valueList[0], &XShamanCanDeferUpload) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter X-Shaman-Can-Defer-Upload: %s", err)) + } + + params.XShamanCanDeferUpload = &XShamanCanDeferUpload + } + // ------------- Optional header parameter "X-Shaman-Original-Filename" ------------- + if valueList, found := headers[http.CanonicalHeaderKey("X-Shaman-Original-Filename")]; found { + var XShamanOriginalFilename string + n := len(valueList) + if n != 1 { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for X-Shaman-Original-Filename, got %d", n)) + } + + err = runtime.BindStyledParameterWithLocation("simple", false, "X-Shaman-Original-Filename", runtime.ParamLocationHeader, valueList[0], &XShamanOriginalFilename) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter X-Shaman-Original-Filename: %s", err)) + } + + params.XShamanOriginalFilename = &XShamanOriginalFilename + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.ShamanFileStore(ctx, checksum, filesize, params) + return err +} + // FetchTask converts echo context to params. func (w *ServerInterfaceWrapper) FetchTask(ctx echo.Context) error { var err error @@ -490,107 +591,6 @@ func (w *ServerInterfaceWrapper) TaskOutputProduced(ctx echo.Context) error { return err } -// ShamanCheckout converts echo context to params. -func (w *ServerInterfaceWrapper) ShamanCheckout(ctx echo.Context) error { - var err error - - // Invoke the callback with all the unmarshalled arguments - err = w.Handler.ShamanCheckout(ctx) - return err -} - -// ShamanCheckoutRequirements converts echo context to params. -func (w *ServerInterfaceWrapper) ShamanCheckoutRequirements(ctx echo.Context) error { - var err error - - // Invoke the callback with all the unmarshalled arguments - err = w.Handler.ShamanCheckoutRequirements(ctx) - return err -} - -// ShamanFileStoreCheck converts echo context to params. -func (w *ServerInterfaceWrapper) ShamanFileStoreCheck(ctx echo.Context) error { - var err error - // ------------- Path parameter "checksum" ------------- - var checksum string - - err = runtime.BindStyledParameterWithLocation("simple", false, "checksum", runtime.ParamLocationPath, ctx.Param("checksum"), &checksum) - if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter checksum: %s", err)) - } - - // ------------- Path parameter "filesize" ------------- - var filesize int - - err = runtime.BindStyledParameterWithLocation("simple", false, "filesize", runtime.ParamLocationPath, ctx.Param("filesize"), &filesize) - if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter filesize: %s", err)) - } - - // Invoke the callback with all the unmarshalled arguments - err = w.Handler.ShamanFileStoreCheck(ctx, checksum, filesize) - return err -} - -// ShamanFileStore converts echo context to params. -func (w *ServerInterfaceWrapper) ShamanFileStore(ctx echo.Context) error { - var err error - // ------------- Path parameter "checksum" ------------- - var checksum string - - err = runtime.BindStyledParameterWithLocation("simple", false, "checksum", runtime.ParamLocationPath, ctx.Param("checksum"), &checksum) - if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter checksum: %s", err)) - } - - // ------------- Path parameter "filesize" ------------- - var filesize int - - err = runtime.BindStyledParameterWithLocation("simple", false, "filesize", runtime.ParamLocationPath, ctx.Param("filesize"), &filesize) - if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter filesize: %s", err)) - } - - // Parameter object where we will unmarshal all parameters from the context - var params ShamanFileStoreParams - - headers := ctx.Request().Header - // ------------- Optional header parameter "X-Shaman-Can-Defer-Upload" ------------- - if valueList, found := headers[http.CanonicalHeaderKey("X-Shaman-Can-Defer-Upload")]; found { - var XShamanCanDeferUpload bool - n := len(valueList) - if n != 1 { - return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for X-Shaman-Can-Defer-Upload, got %d", n)) - } - - err = runtime.BindStyledParameterWithLocation("simple", false, "X-Shaman-Can-Defer-Upload", runtime.ParamLocationHeader, valueList[0], &XShamanCanDeferUpload) - if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter X-Shaman-Can-Defer-Upload: %s", err)) - } - - params.XShamanCanDeferUpload = &XShamanCanDeferUpload - } - // ------------- Optional header parameter "X-Shaman-Original-Filename" ------------- - if valueList, found := headers[http.CanonicalHeaderKey("X-Shaman-Original-Filename")]; found { - var XShamanOriginalFilename string - n := len(valueList) - if n != 1 { - return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for X-Shaman-Original-Filename, got %d", n)) - } - - err = runtime.BindStyledParameterWithLocation("simple", false, "X-Shaman-Original-Filename", runtime.ParamLocationHeader, valueList[0], &XShamanOriginalFilename) - if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter X-Shaman-Original-Filename: %s", err)) - } - - params.XShamanOriginalFilename = &XShamanOriginalFilename - } - - // Invoke the callback with all the unmarshalled arguments - err = w.Handler.ShamanFileStore(ctx, checksum, filesize, params) - return err -} - // This is a simple interface which specifies echo.Route addition functions which // are present on both echo.Echo and echo.Group, since we want to allow using // either of them for path registration @@ -619,37 +619,37 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL Handler: si, } - router.GET(baseURL+"/api/configuration", wrapper.GetConfiguration) - router.POST(baseURL+"/api/jobs", wrapper.SubmitJob) - router.GET(baseURL+"/api/jobs/last-rendered", wrapper.FetchGlobalLastRenderedInfo) - router.POST(baseURL+"/api/jobs/query", wrapper.QueryJobs) - router.GET(baseURL+"/api/jobs/type/:typeName", wrapper.GetJobType) - router.GET(baseURL+"/api/jobs/types", wrapper.GetJobTypes) - router.GET(baseURL+"/api/jobs/:job_id", wrapper.FetchJob) - router.DELETE(baseURL+"/api/jobs/:job_id/blocklist", wrapper.RemoveJobBlocklist) - router.GET(baseURL+"/api/jobs/:job_id/blocklist", wrapper.FetchJobBlocklist) - router.GET(baseURL+"/api/jobs/:job_id/last-rendered", wrapper.FetchJobLastRenderedInfo) - router.POST(baseURL+"/api/jobs/:job_id/setstatus", wrapper.SetJobStatus) - router.GET(baseURL+"/api/jobs/:job_id/tasks", wrapper.FetchJobTasks) - router.GET(baseURL+"/api/tasks/:task_id", wrapper.FetchTask) - router.GET(baseURL+"/api/tasks/:task_id/logtail", wrapper.FetchTaskLogTail) - router.POST(baseURL+"/api/tasks/:task_id/setstatus", wrapper.SetTaskStatus) - router.GET(baseURL+"/api/version", wrapper.GetVersion) - router.GET(baseURL+"/api/worker-mgt/workers", wrapper.FetchWorkers) - router.GET(baseURL+"/api/worker-mgt/workers/:worker_id", wrapper.FetchWorker) - router.POST(baseURL+"/api/worker-mgt/workers/:worker_id/setstatus", wrapper.RequestWorkerStatusChange) - router.POST(baseURL+"/api/worker/register-worker", wrapper.RegisterWorker) - router.POST(baseURL+"/api/worker/sign-off", wrapper.SignOff) - router.POST(baseURL+"/api/worker/sign-on", wrapper.SignOn) - router.GET(baseURL+"/api/worker/state", wrapper.WorkerState) - router.POST(baseURL+"/api/worker/state-changed", wrapper.WorkerStateChanged) - router.POST(baseURL+"/api/worker/task", wrapper.ScheduleTask) - router.POST(baseURL+"/api/worker/task/:task_id", wrapper.TaskUpdate) - router.GET(baseURL+"/api/worker/task/:task_id/may-i-run", wrapper.MayWorkerRun) - router.POST(baseURL+"/api/worker/task/:task_id/output-produced", wrapper.TaskOutputProduced) - router.POST(baseURL+"/shaman/checkout/create", wrapper.ShamanCheckout) - router.POST(baseURL+"/shaman/checkout/requirements", wrapper.ShamanCheckoutRequirements) - router.GET(baseURL+"/shaman/files/:checksum/:filesize", wrapper.ShamanFileStoreCheck) - router.POST(baseURL+"/shaman/files/:checksum/:filesize", wrapper.ShamanFileStore) + router.GET(baseURL+"/api/v3/configuration", wrapper.GetConfiguration) + router.POST(baseURL+"/api/v3/jobs", wrapper.SubmitJob) + router.GET(baseURL+"/api/v3/jobs/last-rendered", wrapper.FetchGlobalLastRenderedInfo) + router.POST(baseURL+"/api/v3/jobs/query", wrapper.QueryJobs) + router.GET(baseURL+"/api/v3/jobs/type/:typeName", wrapper.GetJobType) + router.GET(baseURL+"/api/v3/jobs/types", wrapper.GetJobTypes) + router.GET(baseURL+"/api/v3/jobs/:job_id", wrapper.FetchJob) + router.DELETE(baseURL+"/api/v3/jobs/:job_id/blocklist", wrapper.RemoveJobBlocklist) + router.GET(baseURL+"/api/v3/jobs/:job_id/blocklist", wrapper.FetchJobBlocklist) + router.GET(baseURL+"/api/v3/jobs/:job_id/last-rendered", wrapper.FetchJobLastRenderedInfo) + router.POST(baseURL+"/api/v3/jobs/:job_id/setstatus", wrapper.SetJobStatus) + router.GET(baseURL+"/api/v3/jobs/:job_id/tasks", wrapper.FetchJobTasks) + router.POST(baseURL+"/api/v3/shaman/checkout/create", wrapper.ShamanCheckout) + router.POST(baseURL+"/api/v3/shaman/checkout/requirements", wrapper.ShamanCheckoutRequirements) + router.GET(baseURL+"/api/v3/shaman/files/:checksum/:filesize", wrapper.ShamanFileStoreCheck) + router.POST(baseURL+"/api/v3/shaman/files/:checksum/:filesize", wrapper.ShamanFileStore) + router.GET(baseURL+"/api/v3/tasks/:task_id", wrapper.FetchTask) + router.GET(baseURL+"/api/v3/tasks/:task_id/logtail", wrapper.FetchTaskLogTail) + router.POST(baseURL+"/api/v3/tasks/:task_id/setstatus", wrapper.SetTaskStatus) + router.GET(baseURL+"/api/v3/version", wrapper.GetVersion) + router.GET(baseURL+"/api/v3/worker-mgt/workers", wrapper.FetchWorkers) + router.GET(baseURL+"/api/v3/worker-mgt/workers/:worker_id", wrapper.FetchWorker) + router.POST(baseURL+"/api/v3/worker-mgt/workers/:worker_id/setstatus", wrapper.RequestWorkerStatusChange) + router.POST(baseURL+"/api/v3/worker/register-worker", wrapper.RegisterWorker) + router.POST(baseURL+"/api/v3/worker/sign-off", wrapper.SignOff) + router.POST(baseURL+"/api/v3/worker/sign-on", wrapper.SignOn) + router.GET(baseURL+"/api/v3/worker/state", wrapper.WorkerState) + router.POST(baseURL+"/api/v3/worker/state-changed", wrapper.WorkerStateChanged) + router.POST(baseURL+"/api/v3/worker/task", wrapper.ScheduleTask) + router.POST(baseURL+"/api/v3/worker/task/:task_id", wrapper.TaskUpdate) + router.GET(baseURL+"/api/v3/worker/task/:task_id/may-i-run", wrapper.MayWorkerRun) + router.POST(baseURL+"/api/v3/worker/task/:task_id/output-produced", wrapper.TaskOutputProduced) } diff --git a/pkg/api/openapi_spec.gen.go b/pkg/api/openapi_spec.gen.go index 697e5a95..a5bd13a1 100644 --- a/pkg/api/openapi_spec.gen.go +++ b/pkg/api/openapi_spec.gen.go @@ -18,153 +18,153 @@ import ( // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "H4sIAAAAAAAC/+R97XIbt7Lgq6B4typJLUXqy3as82d97DiRjx1rLflkq45dEjjTJGENBzwARjTjUtV9", - "iH2T3Vu1P/b+2hfIfaMtdAMYDAdDUrLlKLn54UiaGaDR3egvdDc+9TI5m8sSSqN7R596OpvCjOOPT7QW", - "kxLyM64v7e856EyJuRGy7B01njKhGWfG/sQ1E8b+riADcQU5Gy2ZmQL7RapLUINevzdXcg7KCMBZMjmb", - "8TLHn4WBGf7wXxSMe0e9fxnWwA0dZMOn9EHvut8zyzn0jnpcKb60v3+QI/u1+7M2SpQT9/fzuRJSCbOM", - "XhClgQko/wb9NfF5yWfpB+vH1IabauNyLP5O6U27Iq4vuwGpKpHbB2OpZtz0jugP/dUXr/s9Bf+shIK8", - "d/QP/5JFjltLgC1awgqWIpTEUPVrer0P88rRB8iMBfDJFRcFHxXwQo5OwRgLTotzTkU5KYBpes7kmHH2", - "Qo6YHU0nGGQqRUY/Nsf5ZQolm4grKPusEDNhkM+ueCFy+28Fmhlp/6aBuUEG7HVZLFmlLYxsIcyUEdJw", - "cjt3YMEW8leZLYcxrwrThutsCsw9JDiYnspF6YBhlQbFFhb2HAyomShx/qnQHiUDGj4aMz1F+MvQSFkY", - "MXcTibKeyPKjGvMMcFDIhbFLpxEd/GNeaOi3kWumoCzQvCjkgtlPVwFlfGzsO1NgH+SITblmI4CS6Wo0", - "E8ZAPmC/yKrImZjNiyXLoQD6rCgYfBSaBuT6UrOxVDT0BznqM17mVoDI2VwU9h1hBu/KmtFHUhbAS1zR", - "FS/a+DlZmqksGXycK9BaSET+CJh9u+IGcosjqXJaoKcD4EqapAtwBdr026xxCcs2DMc5lEaMBSg3SGD5", - "PptV2lh4qlL8syJGdET74DZCch67MbiaJPbCk3LJ4KNRnHE1qWZWwnh+G82XA/uhHpzKGZzQ3lp++x3L", - "LBkqDbl9M1PADdBS3f5bRjDUW7yWLDdgITGbQS64gWLJFNihGMel5jAWpbAf9K0gwOntlH3EiayMg4gr", - "I7Kq4CrQoYMfdDXy4nOd1E0IqlP3ZdjqNx7hzH1+JbRwm+yGI/zdfikKK4BXpbjlMQfZlpL3tEbFigCu", - "Rjv2CWGceM6jlT2tlILSFEsmrajkflxk4khY6gG7+OnJ6U8/PDt/fvzyh/OTJ2c/XZAhkAsFmZFqyebc", - "TNl/ZRfvesN/wf/e9S4Yn8+hzCEnEkJZzez6xqKAc/t+r9/LhfI/4p+d0ppyPYX8vH7zfWKPdNGlLUMd", - "BqLVRxuTNATX7PiZ3zK4bCs4/lpY+NWA/SxZCdqKE21UlZlKgWbfoobQfZaLzE7FlQD9HeMKmK7mc6nM", - "6tId8H1rPBzs20UXkpteH/l620VGrBPvzMCM/ZT2NBJVRlPCsQv3zcUR48WCLzW+NGAXKNdRnl4cEXvg", - "1050vT0mXY4IdRpAsW8LcQmMe6Qxnuc7svxuwC4WMEoNs4BRrbWQ62a85BOwQq3PRpVhpTSkQN0spJaQ", - "jwfsYiryHCyAJVyBwqH/ssrLTjRaSEnJ2BcROWjA2tlLXjRljadWjVCaqYdCx+Gl1+8tYLSRZmmO9EZQ", - "zSdkPAvNXiEKFGlGYVAi8pnVWwmLqeAjKG5mybqVbm+Fpyy9lpG0IsLcNibwojk3yTOLrYTOeym08RsY", - "JVI33to48tbt7VZ81lAUHcutp0gt0LsxrWW5B0yBNV5Qk3OmyWZ2xrflX/gIWWVgk3vV7bsEBooee/DS", - "hIs+Sa3oB6Wkaq/nRyhBiYyBfcwU6LksNaQcwTyxJ346Ozth5K0w+0awEsJA7Nju2KyocjLrLDbmfFlI", - "njNt9zk3NQIJ2gZurS2KoImS/Cohy8G78qmd7MHugVVpaCShxEEDkRs+4hrsk1GllwNmzXEE1APFFqIo", - "WCZLw0XJOPvmDRi13HlizeVv6NUpcDQ/LXiizEXGDWhnUC+mIpsyI2ZkkVpSgDYs46XVTQqMEta2fi6t", - "Ze6lnxtQaJSPlk241cFeZHyjWTX3gi8rBJQGbV/JtJyBtT8nTAHXskQJiVIbPtImELxgI55dyvGYZGFw", - "QL3Ganu/M9CaT1K8t8JcSPf6/RRnPS/4DMpM/h2Udv7Qllx+VX+xHgr/opORKSheUHSBF8Xrce/oH+ul", - "xal3gexX1/1VgHlmxFXQ1THDP6t/8/ZZwbVh/gtmnRnnKCWdBLLkU4LFPkBfSMxAGz6bx5TMuYEd+yQ1", - "pkgM9/bt8TMP4QuMLWwIS2wbEbEaJQREqnmeXs2ZX4SFATFErw62XNQK/RFgj7p62ihSEkj2/vo9ccNf", - "C5ldFkKbbt20QLGsnRRSgHsTHWrIWQYK5QMGzkiDSSst9BwyMRaZJ/FW6imG54fSqGUqZtF+qbWV1keg", - "aD3ntwlD1Z/GAaWOjfaSa/MGDUbIj2d8AsflWLbR/EMpq8k0ltxoMPJIwM0FZNbgm5AzmovxGKyD43wZ", - "dJPt14yzqdRmR0HBjbgC9vbNSy8uLXvtKAcOExaeATuTVsCT4U/275uXffsnK8lL60y/632yeuJ6+EmW", - "wdnS1XgsPoK+ftcjWdpEv/2giVtVJLeSG6ZhvmyIWa0QBKeKRuogxSsw3Ko8FFt5js46L06aTLM68Up0", - "Qo2EUVwt2cwN5rE/YK+kQrtmXsDH2I1yym4mcyjIoKusDmcXfDAaZBd2I9UEt4i9BAxYwEdux3KMjes4", - "6p3OlTDAnisxmVrHqtKgBjDjorBQL0cKyv82cl6dVBP/BqmV3im+wE7N//u/V1BEeG3g6TQyodN4MqqC", - "jm+DYPReBkobjLfyMrMYoNDrvADjfnasJ2S5M+aC3gg/zLm1WXr93j8rqPAHrrKpuIp+JJeTht9xJgY+", - "xp8roOeVxclOPFvSuQlreDrl5QTaYoVMi3Qkk55FoTZn7uFQgy+iSFZYPwh1B1YH659xfalPq9mMq2Uq", - "jj2bF2IsIGeFE/cUy/Re8IA9JQuQrEx8WHuw9k9WcNnXgVt7j+vLtlmMX23tpOBpggN4C/+kc9Pr/14B", - "rTnaTxhk7x09sMZaLRO6dtl1v4cR1vPREk8hVjXqe//TuSgbHB9Y1nHz++uWg0uAfOrNRClmdsPspU3Q", - "z5Zcz0VhDfJRLbn6Xg69PP7bD7UYSsZK5XisoQnobgrQGk+fbnAAobcUOF0rigJf+iariqi2uiXegKlU", - "SdEWy150xML9jhbOdMUl3MSyiQ7IVjm6m3vfgHbnMy3Xf/sNReb7LTeSiz48leVYTCrFTdJ50VM+4+UP", - "6HflyWMuCqNPgZ3iq2wsCmBG8VKPQbEnJ8cYd/XxiUE6MG6k4hN4KTOePlN6FqK26O5aaWw5BOdyHw82", - "Gnmrs/RXVpfG0vJvAPM3VVkmzwuPg3e8iFBB5iSb8SW7BJgzRZ/js7QknbXmaWOpVlMdOof025ugLtdA", - "6yMPsTZjQdEGu4UWMmDHhukpnpZVmvz+C3pkmR8umF2K89/iIyuKFdhJMKw5kfbfEj6aATt2oRKh2YUV", - "BRd9dtFEwgV79fb0zNpZF3iEc5E+Vlkh8goiA9a6cJQi+huYCG2sPU2Rq/a24HmuQOsbnsgX3FjTOU1B", - "OTYLrmANeTeJg18CRUgchYjjeXBp9M2k+Ged6bvAnEdVfK7vEdHvZXSigxD2Iix0QJ+i1ilklRJmGUJ8", - "Kztr21jPuiAPybanU8guZZVwqU8BTSwrj5xeMVMQip3+9GT/wUOW2Q91NeszLX7FY5rR0oCm8FcO2oLA", - "CieXfJwwc7PVR1YrLgTOhsEePHA66tUHloOJJPHWO+odPBjtHj7ey/YfjXYPDg7yvfHo8ME42330/WO+", - "t5/x3Yejvfzh4W6+/+Dh40ff746+332Uw4Pdw/zR7v5j2LUDiV+hd7R3uH+I0SKarZCTiSgn8VQPD0aP", - "9rOHB6PHh/uH43zvYPT44NHuePRwd/fh493vd7MDvvfg0d6jbHzA88PD/YcHD0Z73z/KHvLvHz/YffS4", - "nmr/0XXbtPIYOUEAWufq3EytFFYkoJx+83IrPkP246Bcw3Ctc6udS+00WSAAnhRybf1n1JWQU6ArTDJg", - "xyWTRQ6KuVid9i61GwvnXXDNPlSaPPJ3YTns+Nm7Htne3ghxozARAqucoMDQ54Uza3d0UU2GOoMSduxu", - "G9KR/c7xs6asrDe4Y5kt7QuC/bko4HQO2UZTgwbvN8m0eTfVplDK+7LPyGlZoUoqGecW7OHCaquMcYa/", - "EurrsIyZ8pItrOq0pAzqsm+ZIx4UI+xQ6kpZwrlEinobY0weyflFmC9F6tU49nYkCaRuCzgX9uM+9svJ", - "+HKyygEdmWJN0syTJPGWmN8r8Yge4qSHPeUJCJuiNh4zOQbKmU9tBwSaMjpxfrBqVk65l1v93nw7BP8i", - "zLSOq2yF6r6zpjIUZ6MO1PeZVNZD6rMc5lDmmMRW4qksqd8/OW22tZUicnREYVpUjYMD68jbCpdV5WUp", - "FyVG7gvJc7JLLcEa9me9fhrsDUGD+VLOXr214YGGRgN3nbbEHRkNX8VA+ArqrZv4TXrRWWtaqxG1xkrO", - "GGcq+syrlH5MSuejyeZ2B3Vl7Y7nOFQ4wUFGs5rEvWb/Bh/d+TNOSGe29Tn31+KBemOG/XA3bBFPFLbb", - "F+aVSHx/LtdQwnFTcKxscUf/m+rcLyUI1wg9mV2COX79Qo7eYgQ1mc6nwYQ86j7T1o6SV6CY/5qSFyg1", - "iwIResCeWzUGCwzU9a3BC1dCVvqcoLkgC2tUM3fquOoLHQx7f7450M98FucopjNiG0DfKJQYZ++HfLkH", - "yQCtgrECPT0Pwfi1MZ8ow8J5Ru57Ogag1Xyj6UDA2cGYf1cal++mtTvN1n1nT+Ov1tLAowJR5uJK5BWn", - "UwW2wFkmUIKiOJBkM14u/SAu+3mueGZExovO5NmbI7G7VuGmB/efcW6fOK131QpRPUOThuv2Wnz43LXp", - "HMmlqkmeOCUO2Up241l/xkGazkfbKhDU75lpNRuVeHa5kVDpc/RUplp9Lk8/hUnWYcqKnu4qhVMo8eA2", - "SCHaFNq6WhdDHX17weAKnT9M/TbSpXx67Ry9aR9aZDrOHrCnfkzKVJ2AiZ+Ty4+hVrtP/H7wvxdygl7l", - "kpUALq1uXohMmGLppx0BiUqNx32ZMMt+WIj1XimB1b9rx5AlpZZ+ayTC05h67Fnmgxx9hzajfd2+8o22", - "8DAMGlveT8lbOd+obBKkee1Dx9smt6cG8TmPPmDZLfQpmczIJlaGrCrrP1hDabBZNawwqpyvy4Ffv/TI", - "Wwhg4AF3/VvSUehCReKghht2KSxFxzfCQTjzL4oXcoS5RkVBkWYdCrcshxRyQg/jbb0W6jOuL1/KSZcU", - "O3ObgGXTqrx0loORjNd7Vkk5YzmQgsvpoUumtCDhbuVXUuT245wW3dQ+KT62K2knqFkgAhM50AbsFV+G", - "VMpZVRgxx/zEEigACB9NMkfAy7K1rHpGMfGbcWEtJe0y1nGiHX4bs+0MMdlttyEyWoabSyi4neUWZyDe", - "ON9vO7T1b6LVNpuA7vzic23AZsHlbb75mqZNUM3uqGdtYuIaTiRxsg0v0pvruNEdvXp+vIVb4M78vohn", - "sPBjfS5jtM72PuOr8yzkQW37cePU9C7Z7AZZ0Rs4z4+TZLw4ATpZ6lIfpdUFo1ab+GzvldDJNjlHn5/Z", - "5x4c/PY/2X/862//9tu///a/f/u3//jX3/7Pb//+2/+KHQr0FOMUHDfLeTbLe0e9T+7XazysqcrLc4qe", - "HNg1GeuInfMqF9In6YxFAe7Qb0g+xFCPh9Y1p8Onvf2DAQ4ZE/nk5x/tr3PdO9o/7PfGis/s/uvt7ezt", - "9vo9dEH0uVTnVyIHaV1a/Euv35OVmVeGSungo4GS+KE3mLsDfVyKe6sNF80UIBum0eVq/lrjKSnN2vGi", - "iA9a3bDjsOncq14r0hQzxwaXKOSzblvZvyE2EPPAJrfZv9rtOKcrb1a92dSGS7dpOPOmFDVmwKpr7cNb", - "/izNV7T0mRjAgI1gLBWwK64E1oIomBc8w/Dp4GZ2xJds7nAXdQ2UYXg+Wp67RP0bJVo6LZaAdUub5wbm", - "kRXz50ZW2XSjRiAtXS69nsb/5aFuxCdHbYeh+9P74q4KQXxRw00ovm3xyKr1lmq7ETfXCJtpQ5+NCHE3", - "yBkP2eEhw1bLsdlZTRpP+ZP1hPcpwTvmn1tkeMfJ0m0LpdKGQbu+hI+oK4ETq76Cum7f4AK7mBM+6LCM", - "tzZ779O2u60LsyXv+5m6KLUuhkHPQhB9tAx+jCUQjUzVN8R576rd3f2HFP5DpwcphkWSVFeLdfBPioLV", - "1MODPjmnLOu/MOkM1pUXxKSUCnL2LWpS6cvTL/zOds55KQ0DxV2iZ6jt8503Ypf3u03eexMdr0vYKUTp", - "+m64gwlMqPlGsyw0d5hiFwYLmj8GJcXAXl+BWlibWjPvPxVLQmsA0xfvJBVVKrLzUk5cxCbIAAoe+UiF", - "7wlhgUaq4ITAVSGoqjkZ3jm9jZRIMledhLoS0yMmUoDZSRlgGhLmR4sSoyCuojiR87Euf/XzpMCaTeYn", - "TW2ieo3blbA65zRUk6xKfDE/j9a4cjxywtyzlsu/Nmd3hZcpeFtOmF5qA7PNY31uPu428itadyPPti4h", - "TufVXr9v1cW5EqCmbvGiq6bZy21qTNsceFObdpXg63HjR+9mNcrx7ip7uGUON2SKSmrumvZupgaJk1Os", - "KRl3GBWT8vVNMOBTtM+7AzVffLmey9MrbEG0ZrWGG+iyEl10TMX1E9tH15I2XjTYVkDlXVB9AVg2QNA0", - "17XhylCiGl/wSxTfugCw7it2pLACDrR7RY7HVoMmrfPuMGKiQot6SVCZdG0jufKUOonR/vHCHSgkzFh9", - "XvBfl+urlZqVLy4VggyPuCMY5lPWneRIrtTGirPNNBuLUuipP824bfbCNlTsh/WtoWeX4/BXrkW2Rqx/", - "eZ/g9w5UR1KqiQrXr8MqKR/UJePP8Z3Qvmzrdp5EtzAiTYE1K6d2CbFCPOdVKhv3rQZlJ7BQRQVmx8/6", - "bM61XkiV+0ekGqj3JOPGv6oifWepjMhDJrUsUS9xasy8d21hFK6rAR5vZqZWCqHlCTsDbjVPpQr3pT4a", - "Dsc+RC7ksF20SifD7DlXM5dIgUWCvX6vEBm4lEk3z48nL68OWuMvFovBpKwGUk2G7hs9nMyLnYPB7gDK", - "wdTMqA5emKIBrZsuos1Rb2+wO9jFMtc5lHwueke9A/wTJf0iZYZ8LobZap3khDR9qHw7zrGfkGkWVFpG", - "oWRLHGp/d9ejFEr8ns/nhcv1Hn5wQQpi7E1snyzgRMo1MV7avVuEpE/iPy8gLMSUExYPE1KDohZVhk80", - "lUkZjmXP9Rg/lPlcCpcgNnHtN1sDBjqEQa/7hFtf9DqXOoFTOqyhZD2nTv8q8+UXw2OzG04bf9j5TLpj", - "oF68842q4PoOKbwGoAXXTFdZBnpcFcXSd4qzrp9zraMUPD1Y6Qn7RaCjersEfPiA+XK6JrsRshn3yZ3I", - "MqucEbUQizmPSpkbw73w7fyokSo4Rmyy1rCR/Na5d5+DyaY/FnLEGyksmJR2t0TuSoRrYfbn5lbGZe7v", - "HqYCmy6vL5egy28Mm/IrwLh7ql1Mh0jAJjNTbijZXHflEeoNNHo9wuwYbCdRBygniOgOcGLi/dM3e0hL", - "B6ymd5lJdyEd6n4TCXq0SnWoRAe7C1B+3eBrC4xGe4FuFkKsBkbq+1I3mM3NkjqGiDErJWWKzbjJplgj", - "B/Th/ZEnuGlDixOL+O24sW4AMcaeE9j5ucyZlip0ua550NpGw0/235/5DK7XqX/fgLHZxPAfn3rCLsUV", - "Ejn7xg/Y4pF+hLJV0/P9HfJPu41khzqkZ6tCw6Xe+Z6XHf1A1xDnuJYRzU5jru10iyh6C1Lo3lfEmE6h", - "LLxUtwNNYK9otQzFbpqYZbw1BuupglL9ULevb+DvEx0AXq9XiGR3beblcJrYzcmbEhnf/z6mlPBZ56tS", - "ZUVj+Z6G660R+qjMo8bAabQPR80OfQXQAVKTBm9gJq+g0c/va1LjTvRpvZQERc6qeQGafbtwmX6h/+B3", - "rlBEIUaiaraAx0GvrVsPu6NMPMtgjtXbUBolQJORhJcEuEm+rp57W8LHOWQGcmr6umqXES8EaF39oN3e", - "EQoSDLp2c/8+fHV3u3wtc6Flu4bBrLE7kYbwGaWl4Na/T6xAAgoN8q5mnn4NyCa5RJc82dOz0bB1jWax", - "zqauWS0uH+rQLDdxvFbdIPK6/gwc+Qf37pp0voWnlxw0vlKli3s0mDp63BEbQivvNGRv/LEVYyOJKaUb", - "W+cWRvqS8W0czcPO4mI33ILroBaRKof7+11ZU75VWBMg1+GbLjryXcT8YYkOlczBnvr9heoafg6Wwsoi", - "/booxr6Gg0NJ7lq5h508/yTCrtGVtEMDE4IF6DiTSLf0yT1TttzBjflPoWWqX0LECtto0fSKkYPw0fCT", - "q+Pa4J25WqctQg2hLOx+sg4upEPk0RlrOZb3lC3qgsMNxE980UX2YSEnxpVRryf/Szk5sy/eHy4w8NEM", - "5wUXK1RYHamb2IWcdFs/1Mc1vvQCv5lyq3qwYHQJ5t6a61wbNoZFVCM6jSust+Kg+JMwns9i7JQkW9pT", - "UUbiV2WpL29RtfLC//QmFcmgP4FNRem+6OfM+JL8GxiPITO+DxI2iKYRuGYLKAr3vj8DtHibAXen0tNq", - "xktNQbn6YscrwdvXeg1cBohmdo9gqhFuJ/KwcVfVm+qCiVIb4Jj44zdelHPSFZv+e8jHvDOVunoxza1T", - "A0Ik+apOmYmzA9YnBzyN2lFQ82ChKakLssvQA5hnpuJFsWS8ns71uApoJQLszCZmGGWPdmvHukvBneE4", - "SoFNoPdv2I3Lw9od8Y+SZD0i67WmfWz/qWfV0Pgrbgy5BnPDT+HKk+ttsLiVLohvUbmfZmaokWrRymd9", - "bXkYsAjpchspZimdg8FCJp+NFazZLcizjd52UrWdCfe16fbltfia7L77oM7viabt5L7t9K1n5yZHDpVr", - "hL5TVyF28R+9GITF3XFCI3G/eyMj3Qmor5qC0eodv43a/YpsVK2wUeuMicB3GVp1/4oGn7V4rCaJVUr1", - "l3qVo7SYlDtyPF7jgohJ+Xo87m2zN+8fIl1eL0raRkbvP7DEpsbZK64u41Rebo14yqLfgO2nvHCXTnnl", - "byQrnK3mM+isPYDNw75RwCaS7rLH4QdpkpQbKFLe6aZ2U3Rv59BD4Wvu5XbNyB9iM2/Ng08qM4XSUBWm", - "Kzu13BBuO+4wcj6bIRXwfGnfsuPRLQiNUlhRE7zNrsZV2iZN1ohkvd+bM+jek9W7VTrjWqVk3V/cb5a6", - "OXuQ9xfdmaMw0MHLZQcS0nywk0VlU0nhlSixums7NUyUOuMNqpHWeTub9A8sc36J+3NRqAv8dQu+sz3a", - "2FZgFJBTChUVwjtZstOMlHlewVItUdb3HDv5AmqnkBkvULTxQn9peXYFjdVUusWqxnW/6VCv2RTyqgB3", - "lnN3qYraIgDyzqMW1zIiZN53CaqfpQuf1XfWh+P8X2pH4nD34MvVaDTu+EkAfwLKFwE8g1KQ0DzcfdxZ", - "Ne+iqk7TUXcSYqc+09I/9rfhRnea09KxpRcr5cLFdA++rmrxu4iXFkpJMaGo7eKoMmxWaeOu3OKlRDlL", - "u+2GO9ZFnHgYP8LGpq2EPKUdg6tEfUYyqNq9V6JeG3+Cwwm3kq696OyhqFrzdtribAp+rPZpRGqL1Ieu", - "mnEnNWI28qlzmsKN0di4Z36X8MhnqqW3dRsW1zl2ORcZRqTjViVzJScKtO67W4Ht5Kh3xlwUlYKNusVr", - "FA1l3ogpWnT70a0UsxbRhm0ynPHljthRVfdJwyu+dFGTqvxT5Ams3Mf45/LHzqK7OQLPJW+WFDpWTaoq", - "2bDjpkn22nUFKkKjYs04oy5bsSla97yiEvZtuLhlxaN3F0G2AlPo8Laer6kV485cybzK1hn3Vky+xpdP", - "/Lv3Qi1gkuPwwxwmTaYKg45EaTGZKiynb+fljT9tceNTAkivXLe0SYPsd19a09AfaPTNlcysxHIlU4d7", - "e3e/y15COTFTf3FO/pf4Totc5KiEUL5y5lCw4z6ZAs+9dbp3cPeQnvBlIXmOXccLrlxt4+Heg69xXBC6", - "pbBXkAvOzuj+gim46x+Io7wNiVdwIC3J9Vk9Rzzcf3z3QJ/VhKR2ac2e7dSJleJFrmOHmSppTIHNQaAY", - "/6FsjlMj3WWEM6kNU5BR+7OQK43rJUuA/SzRPOGGCURONfenvfWBh7tx0J+po9HuqGyox1ouJqANumwr", - "NGZPQ/s1vDTi5OcfEc8vTn74kTlWsoPOC16Woc/J1qZOuLJDD7FzGyy8WBKKMsS9tGck/SMDiG5pHvpb", - "54bUzHKNQ928rPWOugY0J0kVB8dXs4WQl7u58usFsZOXbaa0hb9w0sp4fytm1GIgdhfudlsFSHhBgWJq", - "DOzE0OFXEUMK2ML+Q9TD0EI5GbC3GtiFXsFofX/bhaUz3dLJEJVYDi59Vt59OeR7Snfh8vpKUidTl7NC", - "lJfujjhiUIcBaith6OpSh5RKY4AkKpujC9fI9HPXk7l+zdaVCjZgHQaoRQghdUWEnDqAONPxZkJgGlck", - "cwU8LSzi6/W2FRkxSe9UfKSueNxWkvwOQiR5w2EK3nBjgyWSxTjkjXsO+9678a6KuxKQlni/9greoFlf", - "PxzjwN3LareOAqsgtdvxRCmuwsI2cvoT6zPZaZz5Ex2RNAesY64uEZKy5AiKWt7gu9qIoqhBiLYHjjf8", - "5K8HvR5+wr+IX9c0N4hvCpQKnjomXHG3tr741aIk4Zv5V2/UE6Hfmlf8Cqs314ZrTxOz+tVvM2t9D/D7", - "O99xrdshtywbvFe7J+63V99imbzPtGFVRhtlndQOHPmfmxn7n9Y4U807IN2t8jmMQbFwSSrpZsQGavl3", - "vf3d79/16ohUaA6NDgKW4q9WYtDydLDcqDlVIzm1QXA6qeCFljSGljOQJTAoNI5T94ROgYncgggkx75G", - "4f/YoWl2nvJy55ld585bHKCXwGFo05jGoVRiIkpe4Jx2/AE7Hrum04WMm1SH23uFCc2jRelu3xWxuMY+", - "0uFGb14yLvCNHEbVZGJNzS3W9toBtvPcAdbb2DdmG0NGZgbMjjYK+Oz3ikEdbhmDcoeU32963bFjgxGj", - "9PLDvUfJEZT73DoA2ASJjcAswDG7Q2fUnMV3bHHp7AQAXrstVUvuBGPZ8zK6Nw8Sd4g0rmvdsGv9Dqx3", - "jmM8F92xs4/AfhjmHy0b+45MiYvOLXTELM0uqAUdSZcYHW4l90UDUZCFDi+79U4UXmk9xP05lioTo2LJ", - "skK6xvg/nZ2dsEyWJWSY+OiuNqEjMid4XVtY3aAXMPjIM8M0n4EzIY3EhvYYwZSVte7oAz14V3qqfqNZ", - "5neT44URpCjARjJfdqrS+MwLg5PBrWijxQW07M+kUKkT57AXJf20L59tJMq3evv5QF2QZ1gz0ha9L+TI", - "56Th4dg/K1ACdD/q99dfabQzaFRK68SgT06Omx0H45QkOZtVpbuSwIr0dsPKlYz5xAQuGPcqwMSenBz3", - "Q7Z1o9DITkp92OwyLG2VLDxErckwtzthXBDBwizI4zW3OQxiPMf+Tpdsk5sbz+EY5Pr99f8PAAD//z5c", - "0o91qwAA", + "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", + "6sPV/w8AAP//NBc+Sd6rAAA=", } // 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 28ad3ad2..014728c8 100644 --- a/pkg/api/openapi_types.gen.go +++ b/pkg/api/openapi_types.gen.go @@ -642,6 +642,21 @@ type RemoveJobBlocklistJSONBody JobBlocklist // SetJobStatusJSONBody defines parameters for SetJobStatus. type SetJobStatusJSONBody JobStatusChange +// ShamanCheckoutJSONBody defines parameters for ShamanCheckout. +type ShamanCheckoutJSONBody ShamanCheckout + +// ShamanCheckoutRequirementsJSONBody defines parameters for ShamanCheckoutRequirements. +type ShamanCheckoutRequirementsJSONBody ShamanRequirementsRequest + +// ShamanFileStoreParams defines parameters for ShamanFileStore. +type ShamanFileStoreParams struct { + // The client indicates that it can defer uploading this file. The "208" response will not only be returned when the file is already fully known to the Shaman server, but also when someone else is currently uploading this file. + XShamanCanDeferUpload *bool `json:"X-Shaman-Can-Defer-Upload,omitempty"` + + // The original filename. If sent along with the request, it will be included in the server logs, which can aid in debugging. + XShamanOriginalFilename *string `json:"X-Shaman-Original-Filename,omitempty"` +} + // SetTaskStatusJSONBody defines parameters for SetTaskStatus. type SetTaskStatusJSONBody TaskStatusChange @@ -660,21 +675,6 @@ type WorkerStateChangedJSONBody WorkerStateChanged // TaskUpdateJSONBody defines parameters for TaskUpdate. type TaskUpdateJSONBody TaskUpdate -// ShamanCheckoutJSONBody defines parameters for ShamanCheckout. -type ShamanCheckoutJSONBody ShamanCheckout - -// ShamanCheckoutRequirementsJSONBody defines parameters for ShamanCheckoutRequirements. -type ShamanCheckoutRequirementsJSONBody ShamanRequirementsRequest - -// ShamanFileStoreParams defines parameters for ShamanFileStore. -type ShamanFileStoreParams struct { - // The client indicates that it can defer uploading this file. The "208" response will not only be returned when the file is already fully known to the Shaman server, but also when someone else is currently uploading this file. - XShamanCanDeferUpload *bool `json:"X-Shaman-Can-Defer-Upload,omitempty"` - - // The original filename. If sent along with the request, it will be included in the server logs, which can aid in debugging. - XShamanOriginalFilename *string `json:"X-Shaman-Original-Filename,omitempty"` -} - // SubmitJobJSONRequestBody defines body for SubmitJob for application/json ContentType. type SubmitJobJSONRequestBody SubmitJobJSONBody @@ -687,6 +687,12 @@ type RemoveJobBlocklistJSONRequestBody RemoveJobBlocklistJSONBody // SetJobStatusJSONRequestBody defines body for SetJobStatus for application/json ContentType. type SetJobStatusJSONRequestBody SetJobStatusJSONBody +// ShamanCheckoutJSONRequestBody defines body for ShamanCheckout for application/json ContentType. +type ShamanCheckoutJSONRequestBody ShamanCheckoutJSONBody + +// ShamanCheckoutRequirementsJSONRequestBody defines body for ShamanCheckoutRequirements for application/json ContentType. +type ShamanCheckoutRequirementsJSONRequestBody ShamanCheckoutRequirementsJSONBody + // SetTaskStatusJSONRequestBody defines body for SetTaskStatus for application/json ContentType. type SetTaskStatusJSONRequestBody SetTaskStatusJSONBody @@ -705,12 +711,6 @@ type WorkerStateChangedJSONRequestBody WorkerStateChangedJSONBody // TaskUpdateJSONRequestBody defines body for TaskUpdate for application/json ContentType. type TaskUpdateJSONRequestBody TaskUpdateJSONBody -// ShamanCheckoutJSONRequestBody defines body for ShamanCheckout for application/json ContentType. -type ShamanCheckoutJSONRequestBody ShamanCheckoutJSONBody - -// ShamanCheckoutRequirementsJSONRequestBody defines body for ShamanCheckoutRequirements for application/json ContentType. -type ShamanCheckoutRequirementsJSONRequestBody ShamanCheckoutRequirementsJSONBody - // Getter for additional properties for JobMetadata. Returns the specified // element and whether it was found func (a JobMetadata) Get(fieldName string) (value string, found bool) { diff --git a/web/app/src/manager-api/ApiClient.js b/web/app/src/manager-api/ApiClient.js index d8c03b6a..de141fc7 100644 --- a/web/app/src/manager-api/ApiClient.js +++ b/web/app/src/manager-api/ApiClient.js @@ -55,7 +55,7 @@ class ApiClient { * @default {} */ this.defaultHeaders = { - 'User-Agent': 'Flamenco/60f3f548 / webbrowser' + 'User-Agent': 'Flamenco/9daecf2b / webbrowser' }; /** diff --git a/web/app/src/manager-api/manager/JobsApi.js b/web/app/src/manager-api/manager/JobsApi.js index c57cb9a2..858afcfd 100644 --- a/web/app/src/manager-api/manager/JobsApi.js +++ b/web/app/src/manager-api/manager/JobsApi.js @@ -68,7 +68,7 @@ export default class JobsApi { let accepts = ['application/json']; let returnType = JobLastRenderedImageInfo; return this.apiClient.callApi( - '/api/jobs/last-rendered', 'GET', + '/api/v3/jobs/last-rendered', 'GET', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -113,7 +113,7 @@ export default class JobsApi { let accepts = ['application/json']; let returnType = Job; return this.apiClient.callApi( - '/api/jobs/{job_id}', 'GET', + '/api/v3/jobs/{job_id}', 'GET', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -159,7 +159,7 @@ export default class JobsApi { let accepts = ['application/json']; let returnType = [JobBlocklistEntry]; return this.apiClient.callApi( - '/api/jobs/{job_id}/blocklist', 'GET', + '/api/v3/jobs/{job_id}/blocklist', 'GET', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -205,7 +205,7 @@ export default class JobsApi { let accepts = ['application/json']; let returnType = JobLastRenderedImageInfo; return this.apiClient.callApi( - '/api/jobs/{job_id}/last-rendered', 'GET', + '/api/v3/jobs/{job_id}/last-rendered', 'GET', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -251,7 +251,7 @@ export default class JobsApi { let accepts = ['application/json']; let returnType = JobTasksSummary; return this.apiClient.callApi( - '/api/jobs/{job_id}/tasks', 'GET', + '/api/v3/jobs/{job_id}/tasks', 'GET', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -297,7 +297,7 @@ export default class JobsApi { let accepts = ['application/json']; let returnType = Task; return this.apiClient.callApi( - '/api/tasks/{task_id}', 'GET', + '/api/v3/tasks/{task_id}', 'GET', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -343,7 +343,7 @@ export default class JobsApi { let accepts = ['text/plain', 'application/json']; let returnType = 'String'; return this.apiClient.callApi( - '/api/tasks/{task_id}/logtail', 'GET', + '/api/v3/tasks/{task_id}/logtail', 'GET', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -389,7 +389,7 @@ export default class JobsApi { let accepts = ['application/json']; let returnType = AvailableJobType; return this.apiClient.callApi( - '/api/jobs/type/{typeName}', 'GET', + '/api/v3/jobs/type/{typeName}', 'GET', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -429,7 +429,7 @@ export default class JobsApi { let accepts = ['application/json']; let returnType = AvailableJobTypes; return this.apiClient.callApi( - '/api/jobs/types', 'GET', + '/api/v3/jobs/types', 'GET', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -473,7 +473,7 @@ export default class JobsApi { let accepts = ['application/json']; let returnType = JobsQueryResult; return this.apiClient.callApi( - '/api/jobs/query', 'POST', + '/api/v3/jobs/query', 'POST', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -522,7 +522,7 @@ export default class JobsApi { let accepts = ['application/json']; let returnType = null; return this.apiClient.callApi( - '/api/jobs/{job_id}/blocklist', 'DELETE', + '/api/v3/jobs/{job_id}/blocklist', 'DELETE', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -574,7 +574,7 @@ export default class JobsApi { let accepts = ['application/json']; let returnType = null; return this.apiClient.callApi( - '/api/jobs/{job_id}/setstatus', 'POST', + '/api/v3/jobs/{job_id}/setstatus', 'POST', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -624,7 +624,7 @@ export default class JobsApi { let accepts = ['application/json']; let returnType = null; return this.apiClient.callApi( - '/api/tasks/{task_id}/setstatus', 'POST', + '/api/v3/tasks/{task_id}/setstatus', 'POST', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -669,7 +669,7 @@ export default class JobsApi { let accepts = ['application/json']; let returnType = Job; return this.apiClient.callApi( - '/api/jobs', 'POST', + '/api/v3/jobs', 'POST', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); diff --git a/web/app/src/manager-api/manager/MetaApi.js b/web/app/src/manager-api/manager/MetaApi.js index 61cc034d..0dc0587e 100644 --- a/web/app/src/manager-api/manager/MetaApi.js +++ b/web/app/src/manager-api/manager/MetaApi.js @@ -57,7 +57,7 @@ export default class MetaApi { let accepts = ['application/json']; let returnType = ManagerConfiguration; return this.apiClient.callApi( - '/api/configuration', 'GET', + '/api/v3/configuration', 'GET', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -96,7 +96,7 @@ export default class MetaApi { let accepts = ['application/json']; let returnType = FlamencoVersion; return this.apiClient.callApi( - '/api/version', 'GET', + '/api/v3/version', 'GET', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); diff --git a/web/app/src/manager-api/manager/ShamanApi.js b/web/app/src/manager-api/manager/ShamanApi.js index a764e54a..21f2c0a9 100644 --- a/web/app/src/manager-api/manager/ShamanApi.js +++ b/web/app/src/manager-api/manager/ShamanApi.js @@ -66,7 +66,7 @@ export default class ShamanApi { let accepts = ['application/json']; let returnType = ShamanCheckoutResult; return this.apiClient.callApi( - '/shaman/checkout/create', 'POST', + '/api/v3/shaman/checkout/create', 'POST', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -111,7 +111,7 @@ export default class ShamanApi { let accepts = ['application/json']; let returnType = ShamanRequirementsResponse; return this.apiClient.callApi( - '/shaman/checkout/requirements', 'POST', + '/api/v3/shaman/checkout/requirements', 'POST', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -174,7 +174,7 @@ export default class ShamanApi { let accepts = ['application/json']; let returnType = null; return this.apiClient.callApi( - '/shaman/files/{checksum}/{filesize}', 'POST', + '/api/v3/shaman/files/{checksum}/{filesize}', 'POST', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -231,7 +231,7 @@ export default class ShamanApi { let accepts = ['application/json']; let returnType = ShamanSingleFileStatus; return this.apiClient.callApi( - '/shaman/files/{checksum}/{filesize}', 'GET', + '/api/v3/shaman/files/{checksum}/{filesize}', 'GET', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); diff --git a/web/app/src/manager-api/manager/WorkerApi.js b/web/app/src/manager-api/manager/WorkerApi.js index 2f68a1af..9c001e7f 100644 --- a/web/app/src/manager-api/manager/WorkerApi.js +++ b/web/app/src/manager-api/manager/WorkerApi.js @@ -71,7 +71,7 @@ export default class WorkerApi { let accepts = ['application/json']; let returnType = MayKeepRunning; return this.apiClient.callApi( - '/api/worker/task/{task_id}/may-i-run', 'GET', + '/api/v3/worker/task/{task_id}/may-i-run', 'GET', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -116,7 +116,7 @@ export default class WorkerApi { let accepts = ['application/json']; let returnType = RegisteredWorker; return this.apiClient.callApi( - '/api/worker/register-worker', 'POST', + '/api/v3/worker/register-worker', 'POST', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -156,7 +156,7 @@ export default class WorkerApi { let accepts = ['application/json']; let returnType = AssignedTask; return this.apiClient.callApi( - '/api/worker/task', 'POST', + '/api/v3/worker/task', 'POST', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -195,7 +195,7 @@ export default class WorkerApi { let accepts = ['application/json']; let returnType = null; return this.apiClient.callApi( - '/api/worker/sign-off', 'POST', + '/api/v3/worker/sign-off', 'POST', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -239,7 +239,7 @@ export default class WorkerApi { let accepts = ['application/json']; let returnType = WorkerStateChange; return this.apiClient.callApi( - '/api/worker/sign-on', 'POST', + '/api/v3/worker/sign-on', 'POST', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -290,7 +290,7 @@ export default class WorkerApi { let accepts = ['application/json']; let returnType = null; return this.apiClient.callApi( - '/api/worker/task/{task_id}/output-produced', 'POST', + '/api/v3/worker/task/{task_id}/output-produced', 'POST', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -342,7 +342,7 @@ export default class WorkerApi { let accepts = ['application/json']; let returnType = null; return this.apiClient.callApi( - '/api/worker/task/{task_id}', 'POST', + '/api/v3/worker/task/{task_id}', 'POST', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -382,7 +382,7 @@ export default class WorkerApi { let accepts = ['application/json']; let returnType = WorkerStateChange; return this.apiClient.callApi( - '/api/worker/state', 'GET', + '/api/v3/worker/state', 'GET', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -425,7 +425,7 @@ export default class WorkerApi { let accepts = ['application/json']; let returnType = null; return this.apiClient.callApi( - '/api/worker/state-changed', 'POST', + '/api/v3/worker/state-changed', 'POST', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); diff --git a/web/app/src/manager-api/manager/WorkerMgtApi.js b/web/app/src/manager-api/manager/WorkerMgtApi.js index 506f54f2..fe05d6c7 100644 --- a/web/app/src/manager-api/manager/WorkerMgtApi.js +++ b/web/app/src/manager-api/manager/WorkerMgtApi.js @@ -65,7 +65,7 @@ export default class WorkerMgtApi { let accepts = ['application/json']; let returnType = Worker; return this.apiClient.callApi( - '/api/worker-mgt/workers/{worker_id}', 'GET', + '/api/v3/worker-mgt/workers/{worker_id}', 'GET', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -105,7 +105,7 @@ export default class WorkerMgtApi { let accepts = ['application/json']; let returnType = WorkerList; return this.apiClient.callApi( - '/api/worker-mgt/workers', 'GET', + '/api/v3/worker-mgt/workers', 'GET', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -154,7 +154,7 @@ export default class WorkerMgtApi { let accepts = ['application/json']; let returnType = null; return this.apiClient.callApi( - '/api/worker-mgt/workers/{worker_id}/setstatus', 'POST', + '/api/v3/worker-mgt/workers/{worker_id}/setstatus', 'POST', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null );