OAPI: regenerate code

This commit is contained in:
Sybren A. Stüvel 2022-07-14 12:22:13 +02:00
parent 186dd06401
commit 898019cf1d
25 changed files with 2035 additions and 170 deletions

View File

@ -10,7 +10,7 @@
"""
__version__ = "b3f245cf"
__version__ = "186dd064"
# import ApiClient
from flamenco.manager.api_client import ApiClient

View File

@ -21,6 +21,8 @@ from flamenco.manager.model_utils import ( # noqa: F401
none_type,
validate_and_convert_types
)
from flamenco.manager.model.blender_path_check_result import BlenderPathCheckResult
from flamenco.manager.model.blender_path_find_result import BlenderPathFindResult
from flamenco.manager.model.error import Error
from flamenco.manager.model.flamenco_version import FlamencoVersion
from flamenco.manager.model.manager_configuration import ManagerConfiguration
@ -41,6 +43,54 @@ class MetaApi(object):
if api_client is None:
api_client = ApiClient()
self.api_client = api_client
self.check_blender_exe_path_endpoint = _Endpoint(
settings={
'response_type': (BlenderPathCheckResult,),
'auth': [],
'endpoint_path': '/api/v3/configuration/check/blender',
'operation_id': 'check_blender_exe_path',
'http_method': 'POST',
'servers': None,
},
params_map={
'all': [
'path_check_input',
],
'required': [],
'nullable': [
],
'enum': [
],
'validation': [
]
},
root_map={
'validations': {
},
'allowed_values': {
},
'openapi_types': {
'path_check_input':
(PathCheckInput,),
},
'attribute_map': {
},
'location_map': {
'path_check_input': 'body',
},
'collection_format_map': {
}
},
headers_map={
'accept': [
'application/json'
],
'content_type': [
'application/json'
]
},
api_client=api_client
)
self.check_shared_storage_path_endpoint = _Endpoint(
settings={
'response_type': (PathCheckResult,),
@ -89,6 +139,48 @@ class MetaApi(object):
},
api_client=api_client
)
self.find_blender_exe_path_endpoint = _Endpoint(
settings={
'response_type': (BlenderPathFindResult,),
'auth': [],
'endpoint_path': '/api/v3/configuration/check/blender',
'operation_id': 'find_blender_exe_path',
'http_method': 'GET',
'servers': None,
},
params_map={
'all': [
],
'required': [],
'nullable': [
],
'enum': [
],
'validation': [
]
},
root_map={
'validations': {
},
'allowed_values': {
},
'openapi_types': {
},
'attribute_map': {
},
'location_map': {
},
'collection_format_map': {
}
},
headers_map={
'accept': [
'application/json'
],
'content_type': [],
},
api_client=api_client
)
self.get_configuration_endpoint = _Endpoint(
settings={
'response_type': (ManagerConfiguration,),
@ -272,6 +364,79 @@ class MetaApi(object):
api_client=api_client
)
def check_blender_exe_path(
self,
**kwargs
):
"""Validate a CLI command for use as way to start Blender # noqa: E501
This method makes a synchronous HTTP request by default. To make an
asynchronous HTTP request, please pass async_req=True
>>> thread = api.check_blender_exe_path(async_req=True)
>>> result = thread.get()
Keyword Args:
path_check_input (PathCheckInput): Command or executable path to check. [optional]
_return_http_data_only (bool): response data without head status
code and headers. Default is True.
_preload_content (bool): if False, the urllib3.HTTPResponse object
will be returned without reading/decoding response data.
Default is True.
_request_timeout (int/float/tuple): timeout setting for this request. If
one number provided, it will be total request timeout. It can also
be a pair (tuple) of (connection, read) timeouts.
Default is None.
_check_input_type (bool): specifies if type checking
should be done one the data sent to the server.
Default is True.
_check_return_type (bool): specifies if type checking
should be done one the data received from the server.
Default is True.
_spec_property_naming (bool): True if the variable names in the input data
are serialized names, as specified in the OpenAPI document.
False if the variable names in the input data
are pythonic names, e.g. snake case (default)
_content_type (str/None): force body content-type.
Default is None and content-type will be predicted by allowed
content-types and body.
_host_index (int/None): specifies the index of the server
that we want to use.
Default is read from the configuration.
async_req (bool): execute request asynchronously
Returns:
BlenderPathCheckResult
If the method is called asynchronously, returns the request
thread.
"""
kwargs['async_req'] = kwargs.get(
'async_req', False
)
kwargs['_return_http_data_only'] = kwargs.get(
'_return_http_data_only', True
)
kwargs['_preload_content'] = kwargs.get(
'_preload_content', True
)
kwargs['_request_timeout'] = kwargs.get(
'_request_timeout', None
)
kwargs['_check_input_type'] = kwargs.get(
'_check_input_type', True
)
kwargs['_check_return_type'] = kwargs.get(
'_check_return_type', True
)
kwargs['_spec_property_naming'] = kwargs.get(
'_spec_property_naming', False
)
kwargs['_content_type'] = kwargs.get(
'_content_type')
kwargs['_host_index'] = kwargs.get('_host_index')
return self.check_blender_exe_path_endpoint.call_with_http_info(**kwargs)
def check_shared_storage_path(
self,
**kwargs
@ -345,6 +510,78 @@ class MetaApi(object):
kwargs['_host_index'] = kwargs.get('_host_index')
return self.check_shared_storage_path_endpoint.call_with_http_info(**kwargs)
def find_blender_exe_path(
self,
**kwargs
):
"""Find one or more CLI commands for use as way to start Blender # noqa: E501
This method makes a synchronous HTTP request by default. To make an
asynchronous HTTP request, please pass async_req=True
>>> thread = api.find_blender_exe_path(async_req=True)
>>> result = thread.get()
Keyword Args:
_return_http_data_only (bool): response data without head status
code and headers. Default is True.
_preload_content (bool): if False, the urllib3.HTTPResponse object
will be returned without reading/decoding response data.
Default is True.
_request_timeout (int/float/tuple): timeout setting for this request. If
one number provided, it will be total request timeout. It can also
be a pair (tuple) of (connection, read) timeouts.
Default is None.
_check_input_type (bool): specifies if type checking
should be done one the data sent to the server.
Default is True.
_check_return_type (bool): specifies if type checking
should be done one the data received from the server.
Default is True.
_spec_property_naming (bool): True if the variable names in the input data
are serialized names, as specified in the OpenAPI document.
False if the variable names in the input data
are pythonic names, e.g. snake case (default)
_content_type (str/None): force body content-type.
Default is None and content-type will be predicted by allowed
content-types and body.
_host_index (int/None): specifies the index of the server
that we want to use.
Default is read from the configuration.
async_req (bool): execute request asynchronously
Returns:
BlenderPathFindResult
If the method is called asynchronously, returns the request
thread.
"""
kwargs['async_req'] = kwargs.get(
'async_req', False
)
kwargs['_return_http_data_only'] = kwargs.get(
'_return_http_data_only', True
)
kwargs['_preload_content'] = kwargs.get(
'_preload_content', True
)
kwargs['_request_timeout'] = kwargs.get(
'_request_timeout', None
)
kwargs['_check_input_type'] = kwargs.get(
'_check_input_type', True
)
kwargs['_check_return_type'] = kwargs.get(
'_check_return_type', True
)
kwargs['_spec_property_naming'] = kwargs.get(
'_spec_property_naming', False
)
kwargs['_content_type'] = kwargs.get(
'_content_type')
kwargs['_host_index'] = kwargs.get('_host_index')
return self.find_blender_exe_path_endpoint.call_with_http_info(**kwargs)
def get_configuration(
self,
**kwargs

View File

@ -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/b3f245cf (Blender add-on)'
self.user_agent = 'Flamenco/186dd064 (Blender add-on)'
def __enter__(self):
return self

View File

@ -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: b3f245cf".\
"SDK Package Version: 186dd064".\
format(env=sys.platform, pyversion=sys.version)
def get_host_settings(self):

View File

@ -0,0 +1,16 @@
# BlenderPathCheckResult
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**path** | **str** | The path that was found. |
**source** | [**BlenderPathSource**](BlenderPathSource.md) | |
**is_usable** | **bool** | Whether the path is usable or not. |
**cause** | **str** | Description of why this path is (not) usable. |
**input** | **str** | The input that was given to find this Blender. | [optional]
**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# BlenderPathFindResult
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**value** | [**[BlenderPathCheckResult]**](BlenderPathCheckResult.md) | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# BlenderPathSource
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**value** | **str** | | must be one of ["file_association", "path_envvar", "input_path", ]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -4,13 +4,86 @@ All URIs are relative to *http://localhost*
Method | HTTP request | Description
------------- | ------------- | -------------
[**check_blender_exe_path**](MetaApi.md#check_blender_exe_path) | **POST** /api/v3/configuration/check/blender | Validate a CLI command for use as way to start Blender
[**check_shared_storage_path**](MetaApi.md#check_shared_storage_path) | **POST** /api/v3/configuration/check/shared-storage | Validate a path for use as shared storage.
[**find_blender_exe_path**](MetaApi.md#find_blender_exe_path) | **GET** /api/v3/configuration/check/blender | Find one or more CLI commands for use as way to start Blender
[**get_configuration**](MetaApi.md#get_configuration) | **GET** /api/v3/configuration | Get the configuration of this Manager.
[**get_configuration_file**](MetaApi.md#get_configuration_file) | **GET** /api/v3/configuration/file | Retrieve the configuration of Flamenco Manager.
[**get_variables**](MetaApi.md#get_variables) | **GET** /api/v3/configuration/variables/{audience}/{platform} | Get the variables of this Manager. Used by the Blender add-on to recognise two-way variables, and for the web interface to do variable replacement based on the browser's platform.
[**get_version**](MetaApi.md#get_version) | **GET** /api/v3/version | Get the Flamenco version of this Manager
# **check_blender_exe_path**
> BlenderPathCheckResult check_blender_exe_path()
Validate a CLI command for use as way to start Blender
### Example
```python
import time
import flamenco.manager
from flamenco.manager.api import meta_api
from flamenco.manager.model.error import Error
from flamenco.manager.model.path_check_input import PathCheckInput
from flamenco.manager.model.blender_path_check_result import BlenderPathCheckResult
from pprint import pprint
# Defining the host is optional and defaults to http://localhost
# See configuration.py for a list of all supported configuration parameters.
configuration = flamenco.manager.Configuration(
host = "http://localhost"
)
# Enter a context with an instance of the API client
with flamenco.manager.ApiClient() as api_client:
# Create an instance of the API class
api_instance = meta_api.MetaApi(api_client)
path_check_input = PathCheckInput(
path="path_example",
) # PathCheckInput | Command or executable path to check (optional)
# example passing only required values which don't have defaults set
# and optional values
try:
# Validate a CLI command for use as way to start Blender
api_response = api_instance.check_blender_exe_path(path_check_input=path_check_input)
pprint(api_response)
except flamenco.manager.ApiException as e:
print("Exception when calling MetaApi->check_blender_exe_path: %s\n" % e)
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**path_check_input** | [**PathCheckInput**](PathCheckInput.md)| Command or executable path to check | [optional]
### Return type
[**BlenderPathCheckResult**](BlenderPathCheckResult.md)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
**200** | Normal response, path check went fine. | - |
**0** | Something went wrong. | - |
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **check_shared_storage_path**
> PathCheckResult check_shared_storage_path()
@ -82,6 +155,69 @@ No authorization required
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **find_blender_exe_path**
> BlenderPathFindResult find_blender_exe_path()
Find one or more CLI commands for use as way to start Blender
### Example
```python
import time
import flamenco.manager
from flamenco.manager.api import meta_api
from flamenco.manager.model.error import Error
from flamenco.manager.model.blender_path_find_result import BlenderPathFindResult
from pprint import pprint
# Defining the host is optional and defaults to http://localhost
# See configuration.py for a list of all supported configuration parameters.
configuration = flamenco.manager.Configuration(
host = "http://localhost"
)
# Enter a context with an instance of the API client
with flamenco.manager.ApiClient() as api_client:
# Create an instance of the API class
api_instance = meta_api.MetaApi(api_client)
# example, this endpoint has no required or optional parameters
try:
# Find one or more CLI commands for use as way to start Blender
api_response = api_instance.find_blender_exe_path()
pprint(api_response)
except flamenco.manager.ApiException as e:
print("Exception when calling MetaApi->find_blender_exe_path: %s\n" % e)
```
### Parameters
This endpoint does not need any parameter.
### Return type
[**BlenderPathFindResult**](BlenderPathFindResult.md)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
**200** | Found locations of Blender. | - |
**0** | Something went wrong. | - |
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **get_configuration**
> ManagerConfiguration get_configuration()

View File

@ -6,7 +6,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**path** | **str** | The path that was checked. |
**is_usable** | **bool** | Whether the path is usable or not. |
**cause** | **str** | Description of why this path is not usable. |
**cause** | **str** | Description of why this path is (not) usable. |
**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,289 @@
"""
Flamenco manager
Render Farm manager API # noqa: E501
The version of the OpenAPI document: 1.0.0
Generated by: https://openapi-generator.tech
"""
import re # noqa: F401
import sys # noqa: F401
from flamenco.manager.model_utils import ( # noqa: F401
ApiTypeError,
ModelComposed,
ModelNormal,
ModelSimple,
cached_property,
change_keys_js_to_python,
convert_js_args_to_python_args,
date,
datetime,
file_type,
none_type,
validate_get_composed_info,
OpenApiModel
)
from flamenco.manager.exceptions import ApiAttributeError
def lazy_import():
from flamenco.manager.model.blender_path_source import BlenderPathSource
globals()['BlenderPathSource'] = BlenderPathSource
class BlenderPathCheckResult(ModelNormal):
"""NOTE: This class is auto generated by OpenAPI Generator.
Ref: https://openapi-generator.tech
Do not edit the class manually.
Attributes:
allowed_values (dict): The key is the tuple path to the attribute
and the for var_name this is (var_name,). The value is a dict
with a capitalized key describing the allowed value and an allowed
value. These dicts store the allowed enum values.
attribute_map (dict): The key is attribute name
and the value is json key in definition.
discriminator_value_class_map (dict): A dict to go from the discriminator
variable value to the discriminator class name.
validations (dict): The key is the tuple path to the attribute
and the for var_name this is (var_name,). The value is a dict
that stores validations for max_length, min_length, max_items,
min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
inclusive_minimum, and regex.
additional_properties_type (tuple): A tuple of classes accepted
as additional properties values.
"""
allowed_values = {
}
validations = {
}
@cached_property
def additional_properties_type():
"""
This must be a method because a model may have properties that are
of type self, this must run after the class is loaded
"""
lazy_import()
return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
_nullable = False
@cached_property
def openapi_types():
"""
This must be a method because a model may have properties that are
of type self, this must run after the class is loaded
Returns
openapi_types (dict): The key is attribute name
and the value is attribute type.
"""
lazy_import()
return {
'path': (str,), # noqa: E501
'source': (BlenderPathSource,), # noqa: E501
'is_usable': (bool,), # noqa: E501
'cause': (str,), # noqa: E501
'input': (str,), # noqa: E501
}
@cached_property
def discriminator():
return None
attribute_map = {
'path': 'path', # noqa: E501
'source': 'source', # noqa: E501
'is_usable': 'is_usable', # noqa: E501
'cause': 'cause', # noqa: E501
'input': 'input', # noqa: E501
}
read_only_vars = {
}
_composed_schemas = {}
@classmethod
@convert_js_args_to_python_args
def _from_openapi_data(cls, path, source, is_usable, cause, *args, **kwargs): # noqa: E501
"""BlenderPathCheckResult - a model defined in OpenAPI
Args:
path (str): The path that was found.
source (BlenderPathSource):
is_usable (bool): Whether the path is usable or not.
cause (str): Description of why this path is (not) usable.
Keyword Args:
_check_type (bool): if True, values for parameters in openapi_types
will be type checked and a TypeError will be
raised if the wrong type is input.
Defaults to True
_path_to_item (tuple/list): This is a list of keys or values to
drill down to the model in received_data
when deserializing a response
_spec_property_naming (bool): True if the variable names in the input data
are serialized names, as specified in the OpenAPI document.
False if the variable names in the input data
are pythonic names, e.g. snake case (default)
_configuration (Configuration): the instance to use when
deserializing a file_type parameter.
If passed, type conversion is attempted
If omitted no type conversion is done.
_visited_composed_classes (tuple): This stores a tuple of
classes that we have traveled through so that
if we see that class again we will not use its
discriminator again.
When traveling through a discriminator, the
composed schema that is
is traveled through is added to this set.
For example if Animal has a discriminator
petType and we pass in "Dog", and the class Dog
allOf includes Animal, we move through Animal
once using the discriminator, and pick Dog.
Then in Dog, we will make an instance of the
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
input (str): The input that was given to find this Blender.. [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
_spec_property_naming = kwargs.pop('_spec_property_naming', False)
_path_to_item = kwargs.pop('_path_to_item', ())
_configuration = kwargs.pop('_configuration', None)
_visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
self = super(OpenApiModel, cls).__new__(cls)
if args:
raise ApiTypeError(
"Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
args,
self.__class__.__name__,
),
path_to_item=_path_to_item,
valid_classes=(self.__class__,),
)
self._data_store = {}
self._check_type = _check_type
self._spec_property_naming = _spec_property_naming
self._path_to_item = _path_to_item
self._configuration = _configuration
self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
self.path = path
self.source = source
self.is_usable = is_usable
self.cause = cause
for var_name, var_value in kwargs.items():
if var_name not in self.attribute_map and \
self._configuration is not None and \
self._configuration.discard_unknown_keys and \
self.additional_properties_type is None:
# discard variable.
continue
setattr(self, var_name, var_value)
return self
required_properties = set([
'_data_store',
'_check_type',
'_spec_property_naming',
'_path_to_item',
'_configuration',
'_visited_composed_classes',
])
@convert_js_args_to_python_args
def __init__(self, path, source, is_usable, cause, *args, **kwargs): # noqa: E501
"""BlenderPathCheckResult - a model defined in OpenAPI
Args:
path (str): The path that was found.
source (BlenderPathSource):
is_usable (bool): Whether the path is usable or not.
cause (str): Description of why this path is (not) usable.
Keyword Args:
_check_type (bool): if True, values for parameters in openapi_types
will be type checked and a TypeError will be
raised if the wrong type is input.
Defaults to True
_path_to_item (tuple/list): This is a list of keys or values to
drill down to the model in received_data
when deserializing a response
_spec_property_naming (bool): True if the variable names in the input data
are serialized names, as specified in the OpenAPI document.
False if the variable names in the input data
are pythonic names, e.g. snake case (default)
_configuration (Configuration): the instance to use when
deserializing a file_type parameter.
If passed, type conversion is attempted
If omitted no type conversion is done.
_visited_composed_classes (tuple): This stores a tuple of
classes that we have traveled through so that
if we see that class again we will not use its
discriminator again.
When traveling through a discriminator, the
composed schema that is
is traveled through is added to this set.
For example if Animal has a discriminator
petType and we pass in "Dog", and the class Dog
allOf includes Animal, we move through Animal
once using the discriminator, and pick Dog.
Then in Dog, we will make an instance of the
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
input (str): The input that was given to find this Blender.. [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
_spec_property_naming = kwargs.pop('_spec_property_naming', False)
_path_to_item = kwargs.pop('_path_to_item', ())
_configuration = kwargs.pop('_configuration', None)
_visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
if args:
raise ApiTypeError(
"Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
args,
self.__class__.__name__,
),
path_to_item=_path_to_item,
valid_classes=(self.__class__,),
)
self._data_store = {}
self._check_type = _check_type
self._spec_property_naming = _spec_property_naming
self._path_to_item = _path_to_item
self._configuration = _configuration
self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
self.path = path
self.source = source
self.is_usable = is_usable
self.cause = cause
for var_name, var_value in kwargs.items():
if var_name not in self.attribute_map and \
self._configuration is not None and \
self._configuration.discard_unknown_keys and \
self.additional_properties_type is None:
# discard variable.
continue
setattr(self, var_name, var_value)
if var_name in self.read_only_vars:
raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
f"class with read only attributes.")

View File

@ -0,0 +1,283 @@
"""
Flamenco manager
Render Farm manager API # noqa: E501
The version of the OpenAPI document: 1.0.0
Generated by: https://openapi-generator.tech
"""
import re # noqa: F401
import sys # noqa: F401
from flamenco.manager.model_utils import ( # noqa: F401
ApiTypeError,
ModelComposed,
ModelNormal,
ModelSimple,
cached_property,
change_keys_js_to_python,
convert_js_args_to_python_args,
date,
datetime,
file_type,
none_type,
validate_get_composed_info,
OpenApiModel
)
from flamenco.manager.exceptions import ApiAttributeError
def lazy_import():
from flamenco.manager.model.blender_path_check_result import BlenderPathCheckResult
globals()['BlenderPathCheckResult'] = BlenderPathCheckResult
class BlenderPathFindResult(ModelSimple):
"""NOTE: This class is auto generated by OpenAPI Generator.
Ref: https://openapi-generator.tech
Do not edit the class manually.
Attributes:
allowed_values (dict): The key is the tuple path to the attribute
and the for var_name this is (var_name,). The value is a dict
with a capitalized key describing the allowed value and an allowed
value. These dicts store the allowed enum values.
validations (dict): The key is the tuple path to the attribute
and the for var_name this is (var_name,). The value is a dict
that stores validations for max_length, min_length, max_items,
min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
inclusive_minimum, and regex.
additional_properties_type (tuple): A tuple of classes accepted
as additional properties values.
"""
allowed_values = {
}
validations = {
}
additional_properties_type = None
_nullable = False
@cached_property
def openapi_types():
"""
This must be a method because a model may have properties that are
of type self, this must run after the class is loaded
Returns
openapi_types (dict): The key is attribute name
and the value is attribute type.
"""
lazy_import()
return {
'value': ([BlenderPathCheckResult],),
}
@cached_property
def discriminator():
return None
attribute_map = {}
read_only_vars = set()
_composed_schemas = None
required_properties = set([
'_data_store',
'_check_type',
'_spec_property_naming',
'_path_to_item',
'_configuration',
'_visited_composed_classes',
])
@convert_js_args_to_python_args
def __init__(self, *args, **kwargs):
"""BlenderPathFindResult - a model defined in OpenAPI
Note that value can be passed either in args or in kwargs, but not in both.
Args:
args[0] ([BlenderPathCheckResult]): # noqa: E501
Keyword Args:
value ([BlenderPathCheckResult]): # noqa: E501
_check_type (bool): if True, values for parameters in openapi_types
will be type checked and a TypeError will be
raised if the wrong type is input.
Defaults to True
_path_to_item (tuple/list): This is a list of keys or values to
drill down to the model in received_data
when deserializing a response
_spec_property_naming (bool): True if the variable names in the input data
are serialized names, as specified in the OpenAPI document.
False if the variable names in the input data
are pythonic names, e.g. snake case (default)
_configuration (Configuration): the instance to use when
deserializing a file_type parameter.
If passed, type conversion is attempted
If omitted no type conversion is done.
_visited_composed_classes (tuple): This stores a tuple of
classes that we have traveled through so that
if we see that class again we will not use its
discriminator again.
When traveling through a discriminator, the
composed schema that is
is traveled through is added to this set.
For example if Animal has a discriminator
petType and we pass in "Dog", and the class Dog
allOf includes Animal, we move through Animal
once using the discriminator, and pick Dog.
Then in Dog, we will make an instance of the
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
"""
# required up here when default value is not given
_path_to_item = kwargs.pop('_path_to_item', ())
if 'value' in kwargs:
value = kwargs.pop('value')
elif args:
args = list(args)
value = args.pop(0)
else:
raise ApiTypeError(
"value is required, but not passed in args or kwargs and doesn't have default",
path_to_item=_path_to_item,
valid_classes=(self.__class__,),
)
_check_type = kwargs.pop('_check_type', True)
_spec_property_naming = kwargs.pop('_spec_property_naming', False)
_configuration = kwargs.pop('_configuration', None)
_visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
if args:
raise ApiTypeError(
"Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
args,
self.__class__.__name__,
),
path_to_item=_path_to_item,
valid_classes=(self.__class__,),
)
self._data_store = {}
self._check_type = _check_type
self._spec_property_naming = _spec_property_naming
self._path_to_item = _path_to_item
self._configuration = _configuration
self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
self.value = value
if kwargs:
raise ApiTypeError(
"Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
kwargs,
self.__class__.__name__,
),
path_to_item=_path_to_item,
valid_classes=(self.__class__,),
)
@classmethod
@convert_js_args_to_python_args
def _from_openapi_data(cls, *args, **kwargs):
"""BlenderPathFindResult - a model defined in OpenAPI
Note that value can be passed either in args or in kwargs, but not in both.
Args:
args[0] ([BlenderPathCheckResult]): # noqa: E501
Keyword Args:
value ([BlenderPathCheckResult]): # noqa: E501
_check_type (bool): if True, values for parameters in openapi_types
will be type checked and a TypeError will be
raised if the wrong type is input.
Defaults to True
_path_to_item (tuple/list): This is a list of keys or values to
drill down to the model in received_data
when deserializing a response
_spec_property_naming (bool): True if the variable names in the input data
are serialized names, as specified in the OpenAPI document.
False if the variable names in the input data
are pythonic names, e.g. snake case (default)
_configuration (Configuration): the instance to use when
deserializing a file_type parameter.
If passed, type conversion is attempted
If omitted no type conversion is done.
_visited_composed_classes (tuple): This stores a tuple of
classes that we have traveled through so that
if we see that class again we will not use its
discriminator again.
When traveling through a discriminator, the
composed schema that is
is traveled through is added to this set.
For example if Animal has a discriminator
petType and we pass in "Dog", and the class Dog
allOf includes Animal, we move through Animal
once using the discriminator, and pick Dog.
Then in Dog, we will make an instance of the
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
"""
# required up here when default value is not given
_path_to_item = kwargs.pop('_path_to_item', ())
self = super(OpenApiModel, cls).__new__(cls)
if 'value' in kwargs:
value = kwargs.pop('value')
elif args:
args = list(args)
value = args.pop(0)
else:
raise ApiTypeError(
"value is required, but not passed in args or kwargs and doesn't have default",
path_to_item=_path_to_item,
valid_classes=(self.__class__,),
)
_check_type = kwargs.pop('_check_type', True)
_spec_property_naming = kwargs.pop('_spec_property_naming', False)
_configuration = kwargs.pop('_configuration', None)
_visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
if args:
raise ApiTypeError(
"Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
args,
self.__class__.__name__,
),
path_to_item=_path_to_item,
valid_classes=(self.__class__,),
)
self._data_store = {}
self._check_type = _check_type
self._spec_property_naming = _spec_property_naming
self._path_to_item = _path_to_item
self._configuration = _configuration
self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
self.value = value
if kwargs:
raise ApiTypeError(
"Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
kwargs,
self.__class__.__name__,
),
path_to_item=_path_to_item,
valid_classes=(self.__class__,),
)
return self

View File

@ -0,0 +1,283 @@
"""
Flamenco manager
Render Farm manager API # noqa: E501
The version of the OpenAPI document: 1.0.0
Generated by: https://openapi-generator.tech
"""
import re # noqa: F401
import sys # noqa: F401
from flamenco.manager.model_utils import ( # noqa: F401
ApiTypeError,
ModelComposed,
ModelNormal,
ModelSimple,
cached_property,
change_keys_js_to_python,
convert_js_args_to_python_args,
date,
datetime,
file_type,
none_type,
validate_get_composed_info,
OpenApiModel
)
from flamenco.manager.exceptions import ApiAttributeError
class BlenderPathSource(ModelSimple):
"""NOTE: This class is auto generated by OpenAPI Generator.
Ref: https://openapi-generator.tech
Do not edit the class manually.
Attributes:
allowed_values (dict): The key is the tuple path to the attribute
and the for var_name this is (var_name,). The value is a dict
with a capitalized key describing the allowed value and an allowed
value. These dicts store the allowed enum values.
validations (dict): The key is the tuple path to the attribute
and the for var_name this is (var_name,). The value is a dict
that stores validations for max_length, min_length, max_items,
min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
inclusive_minimum, and regex.
additional_properties_type (tuple): A tuple of classes accepted
as additional properties values.
"""
allowed_values = {
('value',): {
'FILE_ASSOCIATION': "file_association",
'PATH_ENVVAR': "path_envvar",
'INPUT_PATH': "input_path",
},
}
validations = {
}
additional_properties_type = None
_nullable = False
@cached_property
def openapi_types():
"""
This must be a method because a model may have properties that are
of type self, this must run after the class is loaded
Returns
openapi_types (dict): The key is attribute name
and the value is attribute type.
"""
return {
'value': (str,),
}
@cached_property
def discriminator():
return None
attribute_map = {}
read_only_vars = set()
_composed_schemas = None
required_properties = set([
'_data_store',
'_check_type',
'_spec_property_naming',
'_path_to_item',
'_configuration',
'_visited_composed_classes',
])
@convert_js_args_to_python_args
def __init__(self, *args, **kwargs):
"""BlenderPathSource - a model defined in OpenAPI
Note that value can be passed either in args or in kwargs, but not in both.
Args:
args[0] (str):, must be one of ["file_association", "path_envvar", "input_path", ] # noqa: E501
Keyword Args:
value (str):, must be one of ["file_association", "path_envvar", "input_path", ] # noqa: E501
_check_type (bool): if True, values for parameters in openapi_types
will be type checked and a TypeError will be
raised if the wrong type is input.
Defaults to True
_path_to_item (tuple/list): This is a list of keys or values to
drill down to the model in received_data
when deserializing a response
_spec_property_naming (bool): True if the variable names in the input data
are serialized names, as specified in the OpenAPI document.
False if the variable names in the input data
are pythonic names, e.g. snake case (default)
_configuration (Configuration): the instance to use when
deserializing a file_type parameter.
If passed, type conversion is attempted
If omitted no type conversion is done.
_visited_composed_classes (tuple): This stores a tuple of
classes that we have traveled through so that
if we see that class again we will not use its
discriminator again.
When traveling through a discriminator, the
composed schema that is
is traveled through is added to this set.
For example if Animal has a discriminator
petType and we pass in "Dog", and the class Dog
allOf includes Animal, we move through Animal
once using the discriminator, and pick Dog.
Then in Dog, we will make an instance of the
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
"""
# required up here when default value is not given
_path_to_item = kwargs.pop('_path_to_item', ())
if 'value' in kwargs:
value = kwargs.pop('value')
elif args:
args = list(args)
value = args.pop(0)
else:
raise ApiTypeError(
"value is required, but not passed in args or kwargs and doesn't have default",
path_to_item=_path_to_item,
valid_classes=(self.__class__,),
)
_check_type = kwargs.pop('_check_type', True)
_spec_property_naming = kwargs.pop('_spec_property_naming', False)
_configuration = kwargs.pop('_configuration', None)
_visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
if args:
raise ApiTypeError(
"Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
args,
self.__class__.__name__,
),
path_to_item=_path_to_item,
valid_classes=(self.__class__,),
)
self._data_store = {}
self._check_type = _check_type
self._spec_property_naming = _spec_property_naming
self._path_to_item = _path_to_item
self._configuration = _configuration
self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
self.value = value
if kwargs:
raise ApiTypeError(
"Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
kwargs,
self.__class__.__name__,
),
path_to_item=_path_to_item,
valid_classes=(self.__class__,),
)
@classmethod
@convert_js_args_to_python_args
def _from_openapi_data(cls, *args, **kwargs):
"""BlenderPathSource - a model defined in OpenAPI
Note that value can be passed either in args or in kwargs, but not in both.
Args:
args[0] (str):, must be one of ["file_association", "path_envvar", "input_path", ] # noqa: E501
Keyword Args:
value (str):, must be one of ["file_association", "path_envvar", "input_path", ] # noqa: E501
_check_type (bool): if True, values for parameters in openapi_types
will be type checked and a TypeError will be
raised if the wrong type is input.
Defaults to True
_path_to_item (tuple/list): This is a list of keys or values to
drill down to the model in received_data
when deserializing a response
_spec_property_naming (bool): True if the variable names in the input data
are serialized names, as specified in the OpenAPI document.
False if the variable names in the input data
are pythonic names, e.g. snake case (default)
_configuration (Configuration): the instance to use when
deserializing a file_type parameter.
If passed, type conversion is attempted
If omitted no type conversion is done.
_visited_composed_classes (tuple): This stores a tuple of
classes that we have traveled through so that
if we see that class again we will not use its
discriminator again.
When traveling through a discriminator, the
composed schema that is
is traveled through is added to this set.
For example if Animal has a discriminator
petType and we pass in "Dog", and the class Dog
allOf includes Animal, we move through Animal
once using the discriminator, and pick Dog.
Then in Dog, we will make an instance of the
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
"""
# required up here when default value is not given
_path_to_item = kwargs.pop('_path_to_item', ())
self = super(OpenApiModel, cls).__new__(cls)
if 'value' in kwargs:
value = kwargs.pop('value')
elif args:
args = list(args)
value = args.pop(0)
else:
raise ApiTypeError(
"value is required, but not passed in args or kwargs and doesn't have default",
path_to_item=_path_to_item,
valid_classes=(self.__class__,),
)
_check_type = kwargs.pop('_check_type', True)
_spec_property_naming = kwargs.pop('_spec_property_naming', False)
_configuration = kwargs.pop('_configuration', None)
_visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
if args:
raise ApiTypeError(
"Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
args,
self.__class__.__name__,
),
path_to_item=_path_to_item,
valid_classes=(self.__class__,),
)
self._data_store = {}
self._check_type = _check_type
self._spec_property_naming = _spec_property_naming
self._path_to_item = _path_to_item
self._configuration = _configuration
self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
self.value = value
if kwargs:
raise ApiTypeError(
"Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
kwargs,
self.__class__.__name__,
),
path_to_item=_path_to_item,
valid_classes=(self.__class__,),
)
return self

View File

@ -110,7 +110,7 @@ class PathCheckResult(ModelNormal):
Args:
path (str): The path that was checked.
is_usable (bool): Whether the path is usable or not.
cause (str): Description of why this path is not usable.
cause (str): Description of why this path is (not) usable.
Keyword Args:
_check_type (bool): if True, values for parameters in openapi_types
@ -199,7 +199,7 @@ class PathCheckResult(ModelNormal):
Args:
path (str): The path that was checked.
is_usable (bool): Whether the path is usable or not.
cause (str): Description of why this path is not usable.
cause (str): Description of why this path is (not) usable.
Keyword Args:
_check_type (bool): if True, values for parameters in openapi_types

View File

@ -16,6 +16,9 @@ from flamenco.manager.model.available_job_setting_type import AvailableJobSettin
from flamenco.manager.model.available_job_setting_visibility import AvailableJobSettingVisibility
from flamenco.manager.model.available_job_type import AvailableJobType
from flamenco.manager.model.available_job_types import AvailableJobTypes
from flamenco.manager.model.blender_path_check_result import BlenderPathCheckResult
from flamenco.manager.model.blender_path_find_result import BlenderPathFindResult
from flamenco.manager.model.blender_path_source import BlenderPathSource
from flamenco.manager.model.command import Command
from flamenco.manager.model.error import Error
from flamenco.manager.model.flamenco_version import FlamencoVersion

View File

@ -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: b3f245cf
- Package version: 186dd064
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
For more information, please visit [https://flamenco.io/](https://flamenco.io/)
@ -86,7 +86,9 @@ Class | Method | HTTP request | Description
*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* | [**check_blender_exe_path**](flamenco/manager/docs/MetaApi.md#check_blender_exe_path) | **POST** /api/v3/configuration/check/blender | Validate a CLI command for use as way to start Blender
*MetaApi* | [**check_shared_storage_path**](flamenco/manager/docs/MetaApi.md#check_shared_storage_path) | **POST** /api/v3/configuration/check/shared-storage | Validate a path for use as shared storage.
*MetaApi* | [**find_blender_exe_path**](flamenco/manager/docs/MetaApi.md#find_blender_exe_path) | **GET** /api/v3/configuration/check/blender | Find one or more CLI commands for use as way to start Blender
*MetaApi* | [**get_configuration**](flamenco/manager/docs/MetaApi.md#get_configuration) | **GET** /api/v3/configuration | Get the configuration of this Manager.
*MetaApi* | [**get_configuration_file**](flamenco/manager/docs/MetaApi.md#get_configuration_file) | **GET** /api/v3/configuration/file | Retrieve the configuration of Flamenco Manager.
*MetaApi* | [**get_variables**](flamenco/manager/docs/MetaApi.md#get_variables) | **GET** /api/v3/configuration/variables/{audience}/{platform} | Get the variables of this Manager. Used by the Blender add-on to recognise two-way variables, and for the web interface to do variable replacement based on the browser's platform.
@ -118,6 +120,9 @@ Class | Method | HTTP request | Description
- [AvailableJobSettingVisibility](flamenco/manager/docs/AvailableJobSettingVisibility.md)
- [AvailableJobType](flamenco/manager/docs/AvailableJobType.md)
- [AvailableJobTypes](flamenco/manager/docs/AvailableJobTypes.md)
- [BlenderPathCheckResult](flamenco/manager/docs/BlenderPathCheckResult.md)
- [BlenderPathFindResult](flamenco/manager/docs/BlenderPathFindResult.md)
- [BlenderPathSource](flamenco/manager/docs/BlenderPathSource.md)
- [Command](flamenco/manager/docs/Command.md)
- [Error](flamenco/manager/docs/Error.md)
- [FlamencoVersion](flamenco/manager/docs/FlamencoVersion.md)

View File

@ -95,6 +95,14 @@ type ClientInterface interface {
// GetConfiguration request
GetConfiguration(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)
// FindBlenderExePath request
FindBlenderExePath(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)
// CheckBlenderExePath request with any body
CheckBlenderExePathWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
CheckBlenderExePath(ctx context.Context, body CheckBlenderExePathJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
// CheckSharedStoragePath request with any body
CheckSharedStoragePathWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
@ -236,6 +244,42 @@ func (c *Client) GetConfiguration(ctx context.Context, reqEditors ...RequestEdit
return c.Client.Do(req)
}
func (c *Client) FindBlenderExePath(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) {
req, err := NewFindBlenderExePathRequest(c.Server)
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) CheckBlenderExePathWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
req, err := NewCheckBlenderExePathRequestWithBody(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) CheckBlenderExePath(ctx context.Context, body CheckBlenderExePathJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
req, err := NewCheckBlenderExePathRequest(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) CheckSharedStoragePathWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
req, err := NewCheckSharedStoragePathRequestWithBody(c.Server, contentType, body)
if err != nil {
@ -827,6 +871,73 @@ func NewGetConfigurationRequest(server string) (*http.Request, error) {
return req, nil
}
// NewFindBlenderExePathRequest generates requests for FindBlenderExePath
func NewFindBlenderExePathRequest(server string) (*http.Request, error) {
var err error
serverURL, err := url.Parse(server)
if err != nil {
return nil, err
}
operationPath := fmt.Sprintf("/api/v3/configuration/check/blender")
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
}
// NewCheckBlenderExePathRequest calls the generic CheckBlenderExePath builder with application/json body
func NewCheckBlenderExePathRequest(server string, body CheckBlenderExePathJSONRequestBody) (*http.Request, error) {
var bodyReader io.Reader
buf, err := json.Marshal(body)
if err != nil {
return nil, err
}
bodyReader = bytes.NewReader(buf)
return NewCheckBlenderExePathRequestWithBody(server, "application/json", bodyReader)
}
// NewCheckBlenderExePathRequestWithBody generates requests for CheckBlenderExePath with any type of body
func NewCheckBlenderExePathRequestWithBody(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/configuration/check/blender")
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
}
// NewCheckSharedStoragePathRequest calls the generic CheckSharedStoragePath builder with application/json body
func NewCheckSharedStoragePathRequest(server string, body CheckSharedStoragePathJSONRequestBody) (*http.Request, error) {
var bodyReader io.Reader
@ -2133,6 +2244,14 @@ type ClientWithResponsesInterface interface {
// GetConfiguration request
GetConfigurationWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetConfigurationResponse, error)
// FindBlenderExePath request
FindBlenderExePathWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*FindBlenderExePathResponse, error)
// CheckBlenderExePath request with any body
CheckBlenderExePathWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CheckBlenderExePathResponse, error)
CheckBlenderExePathWithResponse(ctx context.Context, body CheckBlenderExePathJSONRequestBody, reqEditors ...RequestEditorFn) (*CheckBlenderExePathResponse, error)
// CheckSharedStoragePath request with any body
CheckSharedStoragePathWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CheckSharedStoragePathResponse, error)
@ -2284,6 +2403,52 @@ func (r GetConfigurationResponse) StatusCode() int {
return 0
}
type FindBlenderExePathResponse struct {
Body []byte
HTTPResponse *http.Response
JSON200 *BlenderPathFindResult
JSONDefault *Error
}
// Status returns HTTPResponse.Status
func (r FindBlenderExePathResponse) Status() string {
if r.HTTPResponse != nil {
return r.HTTPResponse.Status
}
return http.StatusText(0)
}
// StatusCode returns HTTPResponse.StatusCode
func (r FindBlenderExePathResponse) StatusCode() int {
if r.HTTPResponse != nil {
return r.HTTPResponse.StatusCode
}
return 0
}
type CheckBlenderExePathResponse struct {
Body []byte
HTTPResponse *http.Response
JSON200 *BlenderPathCheckResult
JSONDefault *Error
}
// Status returns HTTPResponse.Status
func (r CheckBlenderExePathResponse) Status() string {
if r.HTTPResponse != nil {
return r.HTTPResponse.Status
}
return http.StatusText(0)
}
// StatusCode returns HTTPResponse.StatusCode
func (r CheckBlenderExePathResponse) StatusCode() int {
if r.HTTPResponse != nil {
return r.HTTPResponse.StatusCode
}
return 0
}
type CheckSharedStoragePathResponse struct {
Body []byte
HTTPResponse *http.Response
@ -3065,6 +3230,32 @@ func (c *ClientWithResponses) GetConfigurationWithResponse(ctx context.Context,
return ParseGetConfigurationResponse(rsp)
}
// FindBlenderExePathWithResponse request returning *FindBlenderExePathResponse
func (c *ClientWithResponses) FindBlenderExePathWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*FindBlenderExePathResponse, error) {
rsp, err := c.FindBlenderExePath(ctx, reqEditors...)
if err != nil {
return nil, err
}
return ParseFindBlenderExePathResponse(rsp)
}
// CheckBlenderExePathWithBodyWithResponse request with arbitrary body returning *CheckBlenderExePathResponse
func (c *ClientWithResponses) CheckBlenderExePathWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CheckBlenderExePathResponse, error) {
rsp, err := c.CheckBlenderExePathWithBody(ctx, contentType, body, reqEditors...)
if err != nil {
return nil, err
}
return ParseCheckBlenderExePathResponse(rsp)
}
func (c *ClientWithResponses) CheckBlenderExePathWithResponse(ctx context.Context, body CheckBlenderExePathJSONRequestBody, reqEditors ...RequestEditorFn) (*CheckBlenderExePathResponse, error) {
rsp, err := c.CheckBlenderExePath(ctx, body, reqEditors...)
if err != nil {
return nil, err
}
return ParseCheckBlenderExePathResponse(rsp)
}
// CheckSharedStoragePathWithBodyWithResponse request with arbitrary body returning *CheckSharedStoragePathResponse
func (c *ClientWithResponses) CheckSharedStoragePathWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CheckSharedStoragePathResponse, error) {
rsp, err := c.CheckSharedStoragePathWithBody(ctx, contentType, body, reqEditors...)
@ -3501,6 +3692,72 @@ func ParseGetConfigurationResponse(rsp *http.Response) (*GetConfigurationRespons
return response, nil
}
// ParseFindBlenderExePathResponse parses an HTTP response from a FindBlenderExePathWithResponse call
func ParseFindBlenderExePathResponse(rsp *http.Response) (*FindBlenderExePathResponse, error) {
bodyBytes, err := ioutil.ReadAll(rsp.Body)
defer func() { _ = rsp.Body.Close() }()
if err != nil {
return nil, err
}
response := &FindBlenderExePathResponse{
Body: bodyBytes,
HTTPResponse: rsp,
}
switch {
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
var dest BlenderPathFindResult
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
}
// ParseCheckBlenderExePathResponse parses an HTTP response from a CheckBlenderExePathWithResponse call
func ParseCheckBlenderExePathResponse(rsp *http.Response) (*CheckBlenderExePathResponse, error) {
bodyBytes, err := ioutil.ReadAll(rsp.Body)
defer func() { _ = rsp.Body.Close() }()
if err != nil {
return nil, err
}
response := &CheckBlenderExePathResponse{
Body: bodyBytes,
HTTPResponse: rsp,
}
switch {
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
var dest BlenderPathCheckResult
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
}
// ParseCheckSharedStoragePathResponse parses an HTTP response from a CheckSharedStoragePathWithResponse call
func ParseCheckSharedStoragePathResponse(rsp *http.Response) (*CheckSharedStoragePathResponse, error) {
bodyBytes, err := ioutil.ReadAll(rsp.Body)

View File

@ -16,6 +16,12 @@ type ServerInterface interface {
// Get the configuration of this Manager.
// (GET /api/v3/configuration)
GetConfiguration(ctx echo.Context) error
// Find one or more CLI commands for use as way to start Blender
// (GET /api/v3/configuration/check/blender)
FindBlenderExePath(ctx echo.Context) error
// Validate a CLI command for use as way to start Blender
// (POST /api/v3/configuration/check/blender)
CheckBlenderExePath(ctx echo.Context) error
// Validate a path for use as shared storage.
// (POST /api/v3/configuration/check/shared-storage)
CheckSharedStoragePath(ctx echo.Context) error
@ -135,6 +141,24 @@ func (w *ServerInterfaceWrapper) GetConfiguration(ctx echo.Context) error {
return err
}
// FindBlenderExePath converts echo context to params.
func (w *ServerInterfaceWrapper) FindBlenderExePath(ctx echo.Context) error {
var err error
// Invoke the callback with all the unmarshalled arguments
err = w.Handler.FindBlenderExePath(ctx)
return err
}
// CheckBlenderExePath converts echo context to params.
func (w *ServerInterfaceWrapper) CheckBlenderExePath(ctx echo.Context) error {
var err error
// Invoke the callback with all the unmarshalled arguments
err = w.Handler.CheckBlenderExePath(ctx)
return err
}
// CheckSharedStoragePath converts echo context to params.
func (w *ServerInterfaceWrapper) CheckSharedStoragePath(ctx echo.Context) error {
var err error
@ -671,6 +695,8 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL
}
router.GET(baseURL+"/api/v3/configuration", wrapper.GetConfiguration)
router.GET(baseURL+"/api/v3/configuration/check/blender", wrapper.FindBlenderExePath)
router.POST(baseURL+"/api/v3/configuration/check/blender", wrapper.CheckBlenderExePath)
router.POST(baseURL+"/api/v3/configuration/check/shared-storage", wrapper.CheckSharedStoragePath)
router.GET(baseURL+"/api/v3/configuration/file", wrapper.GetConfigurationFile)
router.GET(baseURL+"/api/v3/configuration/variables/:audience/:platform", wrapper.GetVariables)

View File

@ -18,165 +18,169 @@ import (
// Base64 encoded, gzipped, json marshaled Swagger object
var swaggerSpec = []string{
"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",
"cbTy12m5AAA=",
"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",
"AA==",
}
// GetSwagger returns the content of the embedded swagger specification file

View File

@ -46,6 +46,15 @@ const (
AvailableJobSettingVisibilityWeb AvailableJobSettingVisibility = "web"
)
// Defines values for BlenderPathSource.
const (
BlenderPathSourceFileAssociation BlenderPathSource = "file_association"
BlenderPathSourceInputPath BlenderPathSource = "input_path"
BlenderPathSourcePathEnvvar BlenderPathSource = "path_envvar"
)
// Defines values for JobStatus.
const (
JobStatusActive JobStatus = "active"
@ -211,6 +220,28 @@ type AvailableJobTypes struct {
JobTypes []AvailableJobType `json:"job_types"`
}
// BlenderPathCheckResult defines model for BlenderPathCheckResult.
type BlenderPathCheckResult struct {
// Description of why this path is (not) usable.
Cause string `json:"cause"`
// The input that was given to find this Blender.
Input *string `json:"input,omitempty"`
// Whether the path is usable or not.
IsUsable bool `json:"is_usable"`
// The path that was found.
Path string `json:"path"`
Source BlenderPathSource `json:"source"`
}
// BlenderPathFindResult defines model for BlenderPathFindResult.
type BlenderPathFindResult []BlenderPathCheckResult
// BlenderPathSource defines model for BlenderPathSource.
type BlenderPathSource string
// Command represents a single command to execute by the Worker.
type Command struct {
Name string `json:"name"`
@ -364,7 +395,7 @@ type PathCheckInput struct {
// PathCheckResult defines model for PathCheckResult.
type PathCheckResult struct {
// Description of why this path is not usable.
// Description of why this path is (not) usable.
Cause string `json:"cause"`
// Whether the path is usable or not.
@ -678,6 +709,9 @@ type WorkerSummary struct {
Version string `json:"version"`
}
// CheckBlenderExePathJSONBody defines parameters for CheckBlenderExePath.
type CheckBlenderExePathJSONBody PathCheckInput
// CheckSharedStoragePathJSONBody defines parameters for CheckSharedStoragePath.
type CheckSharedStoragePathJSONBody PathCheckInput
@ -726,6 +760,9 @@ type WorkerStateChangedJSONBody WorkerStateChanged
// TaskUpdateJSONBody defines parameters for TaskUpdate.
type TaskUpdateJSONBody TaskUpdate
// CheckBlenderExePathJSONRequestBody defines body for CheckBlenderExePath for application/json ContentType.
type CheckBlenderExePathJSONRequestBody CheckBlenderExePathJSONBody
// CheckSharedStoragePathJSONRequestBody defines body for CheckSharedStoragePath for application/json ContentType.
type CheckSharedStoragePathJSONRequestBody CheckSharedStoragePathJSONBody

View File

@ -55,7 +55,7 @@ class ApiClient {
* @default {}
*/
this.defaultHeaders = {
'User-Agent': 'Flamenco/b3f245cf / webbrowser'
'User-Agent': 'Flamenco/186dd064 / webbrowser'
};
/**

View File

@ -20,6 +20,8 @@ import AvailableJobSettingType from './model/AvailableJobSettingType';
import AvailableJobSettingVisibility from './model/AvailableJobSettingVisibility';
import AvailableJobType from './model/AvailableJobType';
import AvailableJobTypes from './model/AvailableJobTypes';
import BlenderPathCheckResult from './model/BlenderPathCheckResult';
import BlenderPathSource from './model/BlenderPathSource';
import Command from './model/Command';
import Error from './model/Error';
import FlamencoVersion from './model/FlamencoVersion';
@ -160,6 +162,18 @@ export {
*/
AvailableJobTypes,
/**
* The BlenderPathCheckResult model constructor.
* @property {module:model/BlenderPathCheckResult}
*/
BlenderPathCheckResult,
/**
* The BlenderPathSource model constructor.
* @property {module:model/BlenderPathSource}
*/
BlenderPathSource,
/**
* The Command model constructor.
* @property {module:model/Command}

View File

@ -13,6 +13,7 @@
import ApiClient from "../ApiClient";
import BlenderPathCheckResult from '../model/BlenderPathCheckResult';
import Error from '../model/Error';
import FlamencoVersion from '../model/FlamencoVersion';
import ManagerConfiguration from '../model/ManagerConfiguration';
@ -41,6 +42,50 @@ export default class MetaApi {
/**
* Validate a CLI command for use as way to start Blender
* @param {Object} opts Optional parameters
* @param {module:model/PathCheckInput} opts.pathCheckInput Command or executable path to check
* @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/BlenderPathCheckResult} and HTTP response
*/
checkBlenderExePathWithHttpInfo(opts) {
opts = opts || {};
let postBody = opts['pathCheckInput'];
let pathParams = {
};
let queryParams = {
};
let headerParams = {
};
let formParams = {
};
let authNames = [];
let contentTypes = ['application/json'];
let accepts = ['application/json'];
let returnType = BlenderPathCheckResult;
return this.apiClient.callApi(
'/api/v3/configuration/check/blender', 'POST',
pathParams, queryParams, headerParams, formParams, postBody,
authNames, contentTypes, accepts, returnType, null
);
}
/**
* Validate a CLI command for use as way to start Blender
* @param {Object} opts Optional parameters
* @param {module:model/PathCheckInput} opts.pathCheckInput Command or executable path to check
* @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/BlenderPathCheckResult}
*/
checkBlenderExePath(opts) {
return this.checkBlenderExePathWithHttpInfo(opts)
.then(function(response_and_data) {
return response_and_data.data;
});
}
/**
* Validate a path for use as shared storage.
* @param {Object} opts Optional parameters
@ -85,6 +130,45 @@ export default class MetaApi {
}
/**
* Find one or more CLI commands for use as way to start Blender
* @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link Array.<module:model/BlenderPathCheckResult>} and HTTP response
*/
findBlenderExePathWithHttpInfo() {
let postBody = null;
let pathParams = {
};
let queryParams = {
};
let headerParams = {
};
let formParams = {
};
let authNames = [];
let contentTypes = [];
let accepts = ['application/json'];
let returnType = [BlenderPathCheckResult];
return this.apiClient.callApi(
'/api/v3/configuration/check/blender', 'GET',
pathParams, queryParams, headerParams, formParams, postBody,
authNames, contentTypes, accepts, returnType, null
);
}
/**
* Find one or more CLI commands for use as way to start Blender
* @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link Array.<module:model/BlenderPathCheckResult>}
*/
findBlenderExePath() {
return this.findBlenderExePathWithHttpInfo()
.then(function(response_and_data) {
return response_and_data.data;
});
}
/**
* Get the configuration of this Manager.
* @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/ManagerConfiguration} and HTTP response

View File

@ -0,0 +1,116 @@
/**
* Flamenco manager
* Render Farm manager API
*
* The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*
*/
import ApiClient from '../ApiClient';
import BlenderPathSource from './BlenderPathSource';
/**
* The BlenderPathCheckResult model module.
* @module model/BlenderPathCheckResult
* @version 0.0.0
*/
class BlenderPathCheckResult {
/**
* Constructs a new <code>BlenderPathCheckResult</code>.
* @alias module:model/BlenderPathCheckResult
* @param path {String} The path that was found.
* @param source {module:model/BlenderPathSource}
* @param isUsable {Boolean} Whether the path is usable or not.
* @param cause {String} Description of why this path is (not) usable.
*/
constructor(path, source, isUsable, cause) {
BlenderPathCheckResult.initialize(this, path, source, isUsable, cause);
}
/**
* Initializes the fields of this object.
* This method is used by the constructors of any subclasses, in order to implement multiple inheritance (mix-ins).
* Only for internal use.
*/
static initialize(obj, path, source, isUsable, cause) {
obj['path'] = path;
obj['source'] = source;
obj['is_usable'] = isUsable;
obj['cause'] = cause;
}
/**
* Constructs a <code>BlenderPathCheckResult</code> from a plain JavaScript object, optionally creating a new instance.
* Copies all relevant properties from <code>data</code> to <code>obj</code> if supplied or a new instance if not.
* @param {Object} data The plain JavaScript object bearing properties of interest.
* @param {module:model/BlenderPathCheckResult} obj Optional instance to populate.
* @return {module:model/BlenderPathCheckResult} The populated <code>BlenderPathCheckResult</code> instance.
*/
static constructFromObject(data, obj) {
if (data) {
obj = obj || new BlenderPathCheckResult();
if (data.hasOwnProperty('input')) {
obj['input'] = ApiClient.convertToType(data['input'], 'String');
}
if (data.hasOwnProperty('path')) {
obj['path'] = ApiClient.convertToType(data['path'], 'String');
}
if (data.hasOwnProperty('source')) {
obj['source'] = BlenderPathSource.constructFromObject(data['source']);
}
if (data.hasOwnProperty('is_usable')) {
obj['is_usable'] = ApiClient.convertToType(data['is_usable'], 'Boolean');
}
if (data.hasOwnProperty('cause')) {
obj['cause'] = ApiClient.convertToType(data['cause'], 'String');
}
}
return obj;
}
}
/**
* The input that was given to find this Blender.
* @member {String} input
*/
BlenderPathCheckResult.prototype['input'] = undefined;
/**
* The path that was found.
* @member {String} path
*/
BlenderPathCheckResult.prototype['path'] = undefined;
/**
* @member {module:model/BlenderPathSource} source
*/
BlenderPathCheckResult.prototype['source'] = undefined;
/**
* Whether the path is usable or not.
* @member {Boolean} is_usable
*/
BlenderPathCheckResult.prototype['is_usable'] = undefined;
/**
* Description of why this path is (not) usable.
* @member {String} cause
*/
BlenderPathCheckResult.prototype['cause'] = undefined;
export default BlenderPathCheckResult;

View File

@ -0,0 +1,53 @@
/**
* Flamenco manager
* Render Farm manager API
*
* The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*
*/
import ApiClient from '../ApiClient';
/**
* Enum class BlenderPathSource.
* @enum {}
* @readonly
*/
export default class BlenderPathSource {
/**
* value: "file_association"
* @const
*/
"file_association" = "file_association";
/**
* value: "path_envvar"
* @const
*/
"path_envvar" = "path_envvar";
/**
* value: "input_path"
* @const
*/
"input_path" = "input_path";
/**
* Returns a <code>BlenderPathSource</code> enum value from a Javascript object name.
* @param {Object} data The plain JavaScript object containing the name of the enum value.
* @return {module:model/BlenderPathSource} The enum <code>BlenderPathSource</code> value.
*/
static constructFromObject(object) {
return object;
}
}

View File

@ -24,7 +24,7 @@ class PathCheckResult {
* @alias module:model/PathCheckResult
* @param path {String} The path that was checked.
* @param isUsable {Boolean} Whether the path is usable or not.
* @param cause {String} Description of why this path is not usable.
* @param cause {String} Description of why this path is (not) usable.
*/
constructor(path, isUsable, cause) {
@ -82,7 +82,7 @@ PathCheckResult.prototype['path'] = undefined;
PathCheckResult.prototype['is_usable'] = undefined;
/**
* Description of why this path is not usable.
* Description of why this path is (not) usable.
* @member {String} cause
*/
PathCheckResult.prototype['cause'] = undefined;