# coding: utf-8

"""
    herd

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)  # noqa: E501

    OpenAPI spec version: 0.178.0-SNAPSHOT
    Generated by: https://openapi-generator.tech
"""


from __future__ import absolute_import

import re  # noqa: F401

# python 2 and python 3 compatibility library
import six

from herdsdk.api_client import ApiClient


class BusinessObjectDataApi(object):
    """NOTE: This class is auto generated by OpenAPI Generator
    Ref: https://openapi-generator.tech

    Do not edit the class manually.
    """

    def __init__(self, api_client=None):
        if api_client is None:
            api_client = ApiClient()
        self.api_client = api_client

    def business_object_data_check_business_object_data_availability(self, business_object_data_availability_request, **kwargs):  # noqa: E501
        """checkBusinessObjectDataAvailability  # noqa: E501

        Performs a search and returns a list of business object data key values and relative statuses for a range of requested business object data. <p> Requires READ permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_check_business_object_data_availability(business_object_data_availability_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param BusinessObjectDataAvailabilityRequest business_object_data_availability_request: the business object data availability request (required)
        :return: BusinessObjectDataAvailability
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_check_business_object_data_availability_with_http_info(business_object_data_availability_request, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_check_business_object_data_availability_with_http_info(business_object_data_availability_request, **kwargs)  # noqa: E501
            return data

    def business_object_data_check_business_object_data_availability_with_http_info(self, business_object_data_availability_request, **kwargs):  # noqa: E501
        """checkBusinessObjectDataAvailability  # noqa: E501

        Performs a search and returns a list of business object data key values and relative statuses for a range of requested business object data. <p> Requires READ permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_check_business_object_data_availability_with_http_info(business_object_data_availability_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param BusinessObjectDataAvailabilityRequest business_object_data_availability_request: the business object data availability request (required)
        :return: BusinessObjectDataAvailability
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['business_object_data_availability_request']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_check_business_object_data_availability" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'business_object_data_availability_request' is set
        if ('business_object_data_availability_request' not in local_var_params or
                local_var_params['business_object_data_availability_request'] is None):
            raise ValueError("Missing the required parameter `business_object_data_availability_request` when calling `business_object_data_check_business_object_data_availability`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'business_object_data_availability_request' in local_var_params:
            body_params = local_var_params['business_object_data_availability_request']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # HTTP header `Content-Type`
        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/availability', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectDataAvailability',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_check_business_object_data_availability_collection(self, business_object_data_availability_collection_request, **kwargs):  # noqa: E501
        """checkBusinessObjectDataAvailabilityCollection  # noqa: E501

        Performs an availability check for a collection of business object data. <p> Requires READ permission on ALL namespaces </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_check_business_object_data_availability_collection(business_object_data_availability_collection_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param BusinessObjectDataAvailabilityCollectionRequest business_object_data_availability_collection_request: the business object data availability collection request (required)
        :return: BusinessObjectDataAvailabilityCollectionResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_check_business_object_data_availability_collection_with_http_info(business_object_data_availability_collection_request, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_check_business_object_data_availability_collection_with_http_info(business_object_data_availability_collection_request, **kwargs)  # noqa: E501
            return data

    def business_object_data_check_business_object_data_availability_collection_with_http_info(self, business_object_data_availability_collection_request, **kwargs):  # noqa: E501
        """checkBusinessObjectDataAvailabilityCollection  # noqa: E501

        Performs an availability check for a collection of business object data. <p> Requires READ permission on ALL namespaces </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_check_business_object_data_availability_collection_with_http_info(business_object_data_availability_collection_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param BusinessObjectDataAvailabilityCollectionRequest business_object_data_availability_collection_request: the business object data availability collection request (required)
        :return: BusinessObjectDataAvailabilityCollectionResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['business_object_data_availability_collection_request']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_check_business_object_data_availability_collection" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'business_object_data_availability_collection_request' is set
        if ('business_object_data_availability_collection_request' not in local_var_params or
                local_var_params['business_object_data_availability_collection_request'] is None):
            raise ValueError("Missing the required parameter `business_object_data_availability_collection_request` when calling `business_object_data_check_business_object_data_availability_collection`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'business_object_data_availability_collection_request' in local_var_params:
            body_params = local_var_params['business_object_data_availability_collection_request']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # HTTP header `Content-Type`
        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/availabilityCollection', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectDataAvailabilityCollectionResponse',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_create_business_object_data(self, business_object_data_create_request, **kwargs):  # noqa: E501
        """createBusinessObjectData  # noqa: E501

        Creates (i.e. registers) business object data. You may pre-register business object data by setting the status to one of the pre-registration statuses (UPLOADING, PENDING_VALID, and PROCESSING). <p> Requires WRITE permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_create_business_object_data(business_object_data_create_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param BusinessObjectDataCreateRequest business_object_data_create_request: the information needed to create the business object data (required)
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_create_business_object_data_with_http_info(business_object_data_create_request, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_create_business_object_data_with_http_info(business_object_data_create_request, **kwargs)  # noqa: E501
            return data

    def business_object_data_create_business_object_data_with_http_info(self, business_object_data_create_request, **kwargs):  # noqa: E501
        """createBusinessObjectData  # noqa: E501

        Creates (i.e. registers) business object data. You may pre-register business object data by setting the status to one of the pre-registration statuses (UPLOADING, PENDING_VALID, and PROCESSING). <p> Requires WRITE permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_create_business_object_data_with_http_info(business_object_data_create_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param BusinessObjectDataCreateRequest business_object_data_create_request: the information needed to create the business object data (required)
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['business_object_data_create_request']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_create_business_object_data" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'business_object_data_create_request' is set
        if ('business_object_data_create_request' not in local_var_params or
                local_var_params['business_object_data_create_request'] is None):
            raise ValueError("Missing the required parameter `business_object_data_create_request` when calling `business_object_data_create_business_object_data`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'business_object_data_create_request' in local_var_params:
            body_params = local_var_params['business_object_data_create_request']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # HTTP header `Content-Type`
        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectData',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_delete_business_object_data(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, **kwargs):  # noqa: E501
        """deleteBusinessObjectData  # noqa: E501

        Deletes an existing business object data without subpartition values with namespace. <p> Requires WRITE permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_delete_business_object_data(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the partition value (required)
        :param int business_object_data_version: the business object data version (required)
        :param bool delete_files: whether files should be deleted
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_delete_business_object_data_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_delete_business_object_data_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, **kwargs)  # noqa: E501
            return data

    def business_object_data_delete_business_object_data_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, **kwargs):  # noqa: E501
        """deleteBusinessObjectData  # noqa: E501

        Deletes an existing business object data without subpartition values with namespace. <p> Requires WRITE permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_delete_business_object_data_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the partition value (required)
        :param int business_object_data_version: the business object data version (required)
        :param bool delete_files: whether files should be deleted
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'business_object_format_version', 'partition_value', 'business_object_data_version', 'delete_files']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_delete_business_object_data" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_delete_business_object_data`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_delete_business_object_data`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_delete_business_object_data`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_delete_business_object_data`")  # noqa: E501
        # verify the required parameter 'business_object_format_version' is set
        if ('business_object_format_version' not in local_var_params or
                local_var_params['business_object_format_version'] is None):
            raise ValueError("Missing the required parameter `business_object_format_version` when calling `business_object_data_delete_business_object_data`")  # noqa: E501
        # verify the required parameter 'partition_value' is set
        if ('partition_value' not in local_var_params or
                local_var_params['partition_value'] is None):
            raise ValueError("Missing the required parameter `partition_value` when calling `business_object_data_delete_business_object_data`")  # noqa: E501
        # verify the required parameter 'business_object_data_version' is set
        if ('business_object_data_version' not in local_var_params or
                local_var_params['business_object_data_version'] is None):
            raise ValueError("Missing the required parameter `business_object_data_version` when calling `business_object_data_delete_business_object_data`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            path_params['businessObjectFormatVersion'] = local_var_params['business_object_format_version']  # noqa: E501
        if 'partition_value' in local_var_params:
            path_params['partitionValue'] = local_var_params['partition_value']  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            path_params['businessObjectDataVersion'] = local_var_params['business_object_data_version']  # noqa: E501

        query_params = []
        if 'delete_files' in local_var_params:
            query_params.append(('deleteFiles', local_var_params['delete_files']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/businessObjectFormatVersions/{businessObjectFormatVersion}/partitionValues/{partitionValue}/businessObjectDataVersions/{businessObjectDataVersion}', 'DELETE',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectData',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_delete_business_object_data1(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, business_object_data_version, **kwargs):  # noqa: E501
        """deleteBusinessObjectData  # noqa: E501

        Deletes an existing business object data with 1 subpartition value with namespace. <p> Requires WRITE permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_delete_business_object_data1(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, business_object_data_version, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace. (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the partition value (required)
        :param str sub_partition1_value: sub-partition value 1 (required)
        :param int business_object_data_version: the business object data version (required)
        :param bool delete_files: whether files should be deleted
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_delete_business_object_data1_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, business_object_data_version, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_delete_business_object_data1_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, business_object_data_version, **kwargs)  # noqa: E501
            return data

    def business_object_data_delete_business_object_data1_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, business_object_data_version, **kwargs):  # noqa: E501
        """deleteBusinessObjectData  # noqa: E501

        Deletes an existing business object data with 1 subpartition value with namespace. <p> Requires WRITE permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_delete_business_object_data1_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, business_object_data_version, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace. (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the partition value (required)
        :param str sub_partition1_value: sub-partition value 1 (required)
        :param int business_object_data_version: the business object data version (required)
        :param bool delete_files: whether files should be deleted
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'business_object_format_version', 'partition_value', 'sub_partition1_value', 'business_object_data_version', 'delete_files']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_delete_business_object_data1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_delete_business_object_data1`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_delete_business_object_data1`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_delete_business_object_data1`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_delete_business_object_data1`")  # noqa: E501
        # verify the required parameter 'business_object_format_version' is set
        if ('business_object_format_version' not in local_var_params or
                local_var_params['business_object_format_version'] is None):
            raise ValueError("Missing the required parameter `business_object_format_version` when calling `business_object_data_delete_business_object_data1`")  # noqa: E501
        # verify the required parameter 'partition_value' is set
        if ('partition_value' not in local_var_params or
                local_var_params['partition_value'] is None):
            raise ValueError("Missing the required parameter `partition_value` when calling `business_object_data_delete_business_object_data1`")  # noqa: E501
        # verify the required parameter 'sub_partition1_value' is set
        if ('sub_partition1_value' not in local_var_params or
                local_var_params['sub_partition1_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition1_value` when calling `business_object_data_delete_business_object_data1`")  # noqa: E501
        # verify the required parameter 'business_object_data_version' is set
        if ('business_object_data_version' not in local_var_params or
                local_var_params['business_object_data_version'] is None):
            raise ValueError("Missing the required parameter `business_object_data_version` when calling `business_object_data_delete_business_object_data1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            path_params['businessObjectFormatVersion'] = local_var_params['business_object_format_version']  # noqa: E501
        if 'partition_value' in local_var_params:
            path_params['partitionValue'] = local_var_params['partition_value']  # noqa: E501
        if 'sub_partition1_value' in local_var_params:
            path_params['subPartition1Value'] = local_var_params['sub_partition1_value']  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            path_params['businessObjectDataVersion'] = local_var_params['business_object_data_version']  # noqa: E501

        query_params = []
        if 'delete_files' in local_var_params:
            query_params.append(('deleteFiles', local_var_params['delete_files']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/businessObjectFormatVersions/{businessObjectFormatVersion}/partitionValues/{partitionValue}/subPartition1Values/{subPartition1Value}/businessObjectDataVersions/{businessObjectDataVersion}', 'DELETE',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectData',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_delete_business_object_data2(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, business_object_data_version, **kwargs):  # noqa: E501
        """deleteBusinessObjectData  # noqa: E501

        Deletes an existing business object data with 2 subpartition values with namespace. <p> Requires WRITE permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_delete_business_object_data2(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, business_object_data_version, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the partition value (required)
        :param str sub_partition1_value: sub-partition value 1 (required)
        :param str sub_partition2_value: sub-partition value 2 (required)
        :param int business_object_data_version: the business object data version (required)
        :param bool delete_files: whether files should be deleted
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_delete_business_object_data2_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, business_object_data_version, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_delete_business_object_data2_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, business_object_data_version, **kwargs)  # noqa: E501
            return data

    def business_object_data_delete_business_object_data2_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, business_object_data_version, **kwargs):  # noqa: E501
        """deleteBusinessObjectData  # noqa: E501

        Deletes an existing business object data with 2 subpartition values with namespace. <p> Requires WRITE permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_delete_business_object_data2_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, business_object_data_version, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the partition value (required)
        :param str sub_partition1_value: sub-partition value 1 (required)
        :param str sub_partition2_value: sub-partition value 2 (required)
        :param int business_object_data_version: the business object data version (required)
        :param bool delete_files: whether files should be deleted
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'business_object_format_version', 'partition_value', 'sub_partition1_value', 'sub_partition2_value', 'business_object_data_version', 'delete_files']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_delete_business_object_data2" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_delete_business_object_data2`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_delete_business_object_data2`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_delete_business_object_data2`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_delete_business_object_data2`")  # noqa: E501
        # verify the required parameter 'business_object_format_version' is set
        if ('business_object_format_version' not in local_var_params or
                local_var_params['business_object_format_version'] is None):
            raise ValueError("Missing the required parameter `business_object_format_version` when calling `business_object_data_delete_business_object_data2`")  # noqa: E501
        # verify the required parameter 'partition_value' is set
        if ('partition_value' not in local_var_params or
                local_var_params['partition_value'] is None):
            raise ValueError("Missing the required parameter `partition_value` when calling `business_object_data_delete_business_object_data2`")  # noqa: E501
        # verify the required parameter 'sub_partition1_value' is set
        if ('sub_partition1_value' not in local_var_params or
                local_var_params['sub_partition1_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition1_value` when calling `business_object_data_delete_business_object_data2`")  # noqa: E501
        # verify the required parameter 'sub_partition2_value' is set
        if ('sub_partition2_value' not in local_var_params or
                local_var_params['sub_partition2_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition2_value` when calling `business_object_data_delete_business_object_data2`")  # noqa: E501
        # verify the required parameter 'business_object_data_version' is set
        if ('business_object_data_version' not in local_var_params or
                local_var_params['business_object_data_version'] is None):
            raise ValueError("Missing the required parameter `business_object_data_version` when calling `business_object_data_delete_business_object_data2`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            path_params['businessObjectFormatVersion'] = local_var_params['business_object_format_version']  # noqa: E501
        if 'partition_value' in local_var_params:
            path_params['partitionValue'] = local_var_params['partition_value']  # noqa: E501
        if 'sub_partition1_value' in local_var_params:
            path_params['subPartition1Value'] = local_var_params['sub_partition1_value']  # noqa: E501
        if 'sub_partition2_value' in local_var_params:
            path_params['subPartition2Value'] = local_var_params['sub_partition2_value']  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            path_params['businessObjectDataVersion'] = local_var_params['business_object_data_version']  # noqa: E501

        query_params = []
        if 'delete_files' in local_var_params:
            query_params.append(('deleteFiles', local_var_params['delete_files']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/businessObjectFormatVersions/{businessObjectFormatVersion}/partitionValues/{partitionValue}/subPartition1Values/{subPartition1Value}/subPartition2Values/{subPartition2Value}/businessObjectDataVersions/{businessObjectDataVersion}', 'DELETE',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectData',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_delete_business_object_data3(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, business_object_data_version, **kwargs):  # noqa: E501
        """deleteBusinessObjectData  # noqa: E501

        Deletes an existing business object data with 3 subpartition values with namespace <p> Requires WRITE permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_delete_business_object_data3(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, business_object_data_version, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace. (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the partition value (required)
        :param str sub_partition1_value: sub-partition value 1 (required)
        :param str sub_partition2_value: sub-partition value 2 (required)
        :param str sub_partition3_value: sub-partition value 3 (required)
        :param int business_object_data_version: the business object data version (required)
        :param bool delete_files: whether files should be deleted
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_delete_business_object_data3_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, business_object_data_version, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_delete_business_object_data3_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, business_object_data_version, **kwargs)  # noqa: E501
            return data

    def business_object_data_delete_business_object_data3_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, business_object_data_version, **kwargs):  # noqa: E501
        """deleteBusinessObjectData  # noqa: E501

        Deletes an existing business object data with 3 subpartition values with namespace <p> Requires WRITE permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_delete_business_object_data3_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, business_object_data_version, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace. (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the partition value (required)
        :param str sub_partition1_value: sub-partition value 1 (required)
        :param str sub_partition2_value: sub-partition value 2 (required)
        :param str sub_partition3_value: sub-partition value 3 (required)
        :param int business_object_data_version: the business object data version (required)
        :param bool delete_files: whether files should be deleted
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'business_object_format_version', 'partition_value', 'sub_partition1_value', 'sub_partition2_value', 'sub_partition3_value', 'business_object_data_version', 'delete_files']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_delete_business_object_data3" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_delete_business_object_data3`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_delete_business_object_data3`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_delete_business_object_data3`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_delete_business_object_data3`")  # noqa: E501
        # verify the required parameter 'business_object_format_version' is set
        if ('business_object_format_version' not in local_var_params or
                local_var_params['business_object_format_version'] is None):
            raise ValueError("Missing the required parameter `business_object_format_version` when calling `business_object_data_delete_business_object_data3`")  # noqa: E501
        # verify the required parameter 'partition_value' is set
        if ('partition_value' not in local_var_params or
                local_var_params['partition_value'] is None):
            raise ValueError("Missing the required parameter `partition_value` when calling `business_object_data_delete_business_object_data3`")  # noqa: E501
        # verify the required parameter 'sub_partition1_value' is set
        if ('sub_partition1_value' not in local_var_params or
                local_var_params['sub_partition1_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition1_value` when calling `business_object_data_delete_business_object_data3`")  # noqa: E501
        # verify the required parameter 'sub_partition2_value' is set
        if ('sub_partition2_value' not in local_var_params or
                local_var_params['sub_partition2_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition2_value` when calling `business_object_data_delete_business_object_data3`")  # noqa: E501
        # verify the required parameter 'sub_partition3_value' is set
        if ('sub_partition3_value' not in local_var_params or
                local_var_params['sub_partition3_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition3_value` when calling `business_object_data_delete_business_object_data3`")  # noqa: E501
        # verify the required parameter 'business_object_data_version' is set
        if ('business_object_data_version' not in local_var_params or
                local_var_params['business_object_data_version'] is None):
            raise ValueError("Missing the required parameter `business_object_data_version` when calling `business_object_data_delete_business_object_data3`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            path_params['businessObjectFormatVersion'] = local_var_params['business_object_format_version']  # noqa: E501
        if 'partition_value' in local_var_params:
            path_params['partitionValue'] = local_var_params['partition_value']  # noqa: E501
        if 'sub_partition1_value' in local_var_params:
            path_params['subPartition1Value'] = local_var_params['sub_partition1_value']  # noqa: E501
        if 'sub_partition2_value' in local_var_params:
            path_params['subPartition2Value'] = local_var_params['sub_partition2_value']  # noqa: E501
        if 'sub_partition3_value' in local_var_params:
            path_params['subPartition3Value'] = local_var_params['sub_partition3_value']  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            path_params['businessObjectDataVersion'] = local_var_params['business_object_data_version']  # noqa: E501

        query_params = []
        if 'delete_files' in local_var_params:
            query_params.append(('deleteFiles', local_var_params['delete_files']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/businessObjectFormatVersions/{businessObjectFormatVersion}/partitionValues/{partitionValue}/subPartition1Values/{subPartition1Value}/subPartition2Values/{subPartition2Value}/subPartition3Values/{subPartition3Value}/businessObjectDataVersions/{businessObjectDataVersion}', 'DELETE',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectData',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_delete_business_object_data4(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, sub_partition4_value, business_object_data_version, **kwargs):  # noqa: E501
        """deleteBusinessObjectData  # noqa: E501

        Deletes an existing business object data with 4 subpartition values with namespace. <p> Requires WRITE permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_delete_business_object_data4(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, sub_partition4_value, business_object_data_version, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the partition value (required)
        :param str sub_partition1_value: sub-partition value 1 (required)
        :param str sub_partition2_value: sub-partition value 2 (required)
        :param str sub_partition3_value: sub-partition value 3 (required)
        :param str sub_partition4_value: sub-partition value 4 (required)
        :param int business_object_data_version: the business object data version (required)
        :param bool delete_files: whether files should be deleted
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_delete_business_object_data4_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, sub_partition4_value, business_object_data_version, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_delete_business_object_data4_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, sub_partition4_value, business_object_data_version, **kwargs)  # noqa: E501
            return data

    def business_object_data_delete_business_object_data4_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, sub_partition4_value, business_object_data_version, **kwargs):  # noqa: E501
        """deleteBusinessObjectData  # noqa: E501

        Deletes an existing business object data with 4 subpartition values with namespace. <p> Requires WRITE permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_delete_business_object_data4_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, sub_partition4_value, business_object_data_version, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the partition value (required)
        :param str sub_partition1_value: sub-partition value 1 (required)
        :param str sub_partition2_value: sub-partition value 2 (required)
        :param str sub_partition3_value: sub-partition value 3 (required)
        :param str sub_partition4_value: sub-partition value 4 (required)
        :param int business_object_data_version: the business object data version (required)
        :param bool delete_files: whether files should be deleted
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'business_object_format_version', 'partition_value', 'sub_partition1_value', 'sub_partition2_value', 'sub_partition3_value', 'sub_partition4_value', 'business_object_data_version', 'delete_files']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_delete_business_object_data4" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_delete_business_object_data4`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_delete_business_object_data4`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_delete_business_object_data4`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_delete_business_object_data4`")  # noqa: E501
        # verify the required parameter 'business_object_format_version' is set
        if ('business_object_format_version' not in local_var_params or
                local_var_params['business_object_format_version'] is None):
            raise ValueError("Missing the required parameter `business_object_format_version` when calling `business_object_data_delete_business_object_data4`")  # noqa: E501
        # verify the required parameter 'partition_value' is set
        if ('partition_value' not in local_var_params or
                local_var_params['partition_value'] is None):
            raise ValueError("Missing the required parameter `partition_value` when calling `business_object_data_delete_business_object_data4`")  # noqa: E501
        # verify the required parameter 'sub_partition1_value' is set
        if ('sub_partition1_value' not in local_var_params or
                local_var_params['sub_partition1_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition1_value` when calling `business_object_data_delete_business_object_data4`")  # noqa: E501
        # verify the required parameter 'sub_partition2_value' is set
        if ('sub_partition2_value' not in local_var_params or
                local_var_params['sub_partition2_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition2_value` when calling `business_object_data_delete_business_object_data4`")  # noqa: E501
        # verify the required parameter 'sub_partition3_value' is set
        if ('sub_partition3_value' not in local_var_params or
                local_var_params['sub_partition3_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition3_value` when calling `business_object_data_delete_business_object_data4`")  # noqa: E501
        # verify the required parameter 'sub_partition4_value' is set
        if ('sub_partition4_value' not in local_var_params or
                local_var_params['sub_partition4_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition4_value` when calling `business_object_data_delete_business_object_data4`")  # noqa: E501
        # verify the required parameter 'business_object_data_version' is set
        if ('business_object_data_version' not in local_var_params or
                local_var_params['business_object_data_version'] is None):
            raise ValueError("Missing the required parameter `business_object_data_version` when calling `business_object_data_delete_business_object_data4`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            path_params['businessObjectFormatVersion'] = local_var_params['business_object_format_version']  # noqa: E501
        if 'partition_value' in local_var_params:
            path_params['partitionValue'] = local_var_params['partition_value']  # noqa: E501
        if 'sub_partition1_value' in local_var_params:
            path_params['subPartition1Value'] = local_var_params['sub_partition1_value']  # noqa: E501
        if 'sub_partition2_value' in local_var_params:
            path_params['subPartition2Value'] = local_var_params['sub_partition2_value']  # noqa: E501
        if 'sub_partition3_value' in local_var_params:
            path_params['subPartition3Value'] = local_var_params['sub_partition3_value']  # noqa: E501
        if 'sub_partition4_value' in local_var_params:
            path_params['subPartition4Value'] = local_var_params['sub_partition4_value']  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            path_params['businessObjectDataVersion'] = local_var_params['business_object_data_version']  # noqa: E501

        query_params = []
        if 'delete_files' in local_var_params:
            query_params.append(('deleteFiles', local_var_params['delete_files']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/businessObjectFormatVersions/{businessObjectFormatVersion}/partitionValues/{partitionValue}/subPartition1Values/{subPartition1Value}/subPartition2Values/{subPartition2Value}/subPartition3Values/{subPartition3Value}/subPartition4Values/{subPartition4Value}/businessObjectDataVersions/{businessObjectDataVersion}', 'DELETE',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectData',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_destroy_business_object_data(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, **kwargs):  # noqa: E501
        """destroyBusinessObjectData  # noqa: E501

        Initiates destruction process for an existing business object data. This endpoint uses S3 tagging to mark the relative S3 files for deletion. The S3 data then gets deleted by S3 bucket lifecycle policy that deletes data based on S3 tagging. This endpoint to be used to delete records that are selected and approved for destruction as per retention information specified for the relative business object format. <p> Requires WRITE permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_destroy_business_object_data(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace of the business object definition (required)
        :param str business_object_definition_name: the name of the business object definition (required)
        :param str business_object_format_usage: the usage of the business object format (required)
        :param str business_object_format_file_type: the file type of the business object format (required)
        :param int business_object_format_version: the version of the business object format (required)
        :param str partition_value: the primary partition value (required)
        :param int business_object_data_version: the version of the business object data (required)
        :param str sub_partition_values: the list of sub-partition values delimited by \"|\" (delimiter can be escaped by \"\\\")
        :param bool batch_mode: the flag used to indicate that related S3 operations should be processed in S3 Batch mode
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_destroy_business_object_data_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_destroy_business_object_data_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, **kwargs)  # noqa: E501
            return data

    def business_object_data_destroy_business_object_data_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, **kwargs):  # noqa: E501
        """destroyBusinessObjectData  # noqa: E501

        Initiates destruction process for an existing business object data. This endpoint uses S3 tagging to mark the relative S3 files for deletion. The S3 data then gets deleted by S3 bucket lifecycle policy that deletes data based on S3 tagging. This endpoint to be used to delete records that are selected and approved for destruction as per retention information specified for the relative business object format. <p> Requires WRITE permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_destroy_business_object_data_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace of the business object definition (required)
        :param str business_object_definition_name: the name of the business object definition (required)
        :param str business_object_format_usage: the usage of the business object format (required)
        :param str business_object_format_file_type: the file type of the business object format (required)
        :param int business_object_format_version: the version of the business object format (required)
        :param str partition_value: the primary partition value (required)
        :param int business_object_data_version: the version of the business object data (required)
        :param str sub_partition_values: the list of sub-partition values delimited by \"|\" (delimiter can be escaped by \"\\\")
        :param bool batch_mode: the flag used to indicate that related S3 operations should be processed in S3 Batch mode
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'business_object_format_version', 'partition_value', 'business_object_data_version', 'sub_partition_values', 'batch_mode']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_destroy_business_object_data" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_destroy_business_object_data`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_destroy_business_object_data`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_destroy_business_object_data`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_destroy_business_object_data`")  # noqa: E501
        # verify the required parameter 'business_object_format_version' is set
        if ('business_object_format_version' not in local_var_params or
                local_var_params['business_object_format_version'] is None):
            raise ValueError("Missing the required parameter `business_object_format_version` when calling `business_object_data_destroy_business_object_data`")  # noqa: E501
        # verify the required parameter 'partition_value' is set
        if ('partition_value' not in local_var_params or
                local_var_params['partition_value'] is None):
            raise ValueError("Missing the required parameter `partition_value` when calling `business_object_data_destroy_business_object_data`")  # noqa: E501
        # verify the required parameter 'business_object_data_version' is set
        if ('business_object_data_version' not in local_var_params or
                local_var_params['business_object_data_version'] is None):
            raise ValueError("Missing the required parameter `business_object_data_version` when calling `business_object_data_destroy_business_object_data`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            path_params['businessObjectFormatVersion'] = local_var_params['business_object_format_version']  # noqa: E501
        if 'partition_value' in local_var_params:
            path_params['partitionValue'] = local_var_params['partition_value']  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            path_params['businessObjectDataVersion'] = local_var_params['business_object_data_version']  # noqa: E501

        query_params = []
        if 'sub_partition_values' in local_var_params:
            query_params.append(('subPartitionValues', local_var_params['sub_partition_values']))  # noqa: E501
        if 'batch_mode' in local_var_params:
            query_params.append(('batchMode', local_var_params['batch_mode']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/destroy/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/businessObjectFormatVersions/{businessObjectFormatVersion}/partitionValues/{partitionValue}/businessObjectDataVersions/{businessObjectDataVersion}', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectData',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_generate_business_object_data_ddl(self, business_object_data_ddl_request, **kwargs):  # noqa: E501
        """generateBusinessObjectDataDdl  # noqa: E501

        Retrieves the DDL to initialize the specified type of the database system to perform queries for a range of requested business object data in the specified storage. <p> Requires READ permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_generate_business_object_data_ddl(business_object_data_ddl_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param BusinessObjectDataDdlRequest business_object_data_ddl_request: the business object data DDL request (required)
        :return: BusinessObjectDataDdl
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_generate_business_object_data_ddl_with_http_info(business_object_data_ddl_request, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_generate_business_object_data_ddl_with_http_info(business_object_data_ddl_request, **kwargs)  # noqa: E501
            return data

    def business_object_data_generate_business_object_data_ddl_with_http_info(self, business_object_data_ddl_request, **kwargs):  # noqa: E501
        """generateBusinessObjectDataDdl  # noqa: E501

        Retrieves the DDL to initialize the specified type of the database system to perform queries for a range of requested business object data in the specified storage. <p> Requires READ permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_generate_business_object_data_ddl_with_http_info(business_object_data_ddl_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param BusinessObjectDataDdlRequest business_object_data_ddl_request: the business object data DDL request (required)
        :return: BusinessObjectDataDdl
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['business_object_data_ddl_request']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_generate_business_object_data_ddl" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'business_object_data_ddl_request' is set
        if ('business_object_data_ddl_request' not in local_var_params or
                local_var_params['business_object_data_ddl_request'] is None):
            raise ValueError("Missing the required parameter `business_object_data_ddl_request` when calling `business_object_data_generate_business_object_data_ddl`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'business_object_data_ddl_request' in local_var_params:
            body_params = local_var_params['business_object_data_ddl_request']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # HTTP header `Content-Type`
        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/generateDdl', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectDataDdl',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_generate_business_object_data_ddl_collection(self, business_object_data_ddl_collection_request, **kwargs):  # noqa: E501
        """generateBusinessObjectDataDdlCollection  # noqa: E501

        Retrieves the DDL to initialize the specified type of the database system to perform queries for a collection of business object data in the specified storage. <p> Requires READ permission on ALL namespaces </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_generate_business_object_data_ddl_collection(business_object_data_ddl_collection_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param BusinessObjectDataDdlCollectionRequest business_object_data_ddl_collection_request: the business object data DDL collection request (required)
        :return: BusinessObjectDataDdlCollectionResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_generate_business_object_data_ddl_collection_with_http_info(business_object_data_ddl_collection_request, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_generate_business_object_data_ddl_collection_with_http_info(business_object_data_ddl_collection_request, **kwargs)  # noqa: E501
            return data

    def business_object_data_generate_business_object_data_ddl_collection_with_http_info(self, business_object_data_ddl_collection_request, **kwargs):  # noqa: E501
        """generateBusinessObjectDataDdlCollection  # noqa: E501

        Retrieves the DDL to initialize the specified type of the database system to perform queries for a collection of business object data in the specified storage. <p> Requires READ permission on ALL namespaces </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_generate_business_object_data_ddl_collection_with_http_info(business_object_data_ddl_collection_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param BusinessObjectDataDdlCollectionRequest business_object_data_ddl_collection_request: the business object data DDL collection request (required)
        :return: BusinessObjectDataDdlCollectionResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['business_object_data_ddl_collection_request']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_generate_business_object_data_ddl_collection" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'business_object_data_ddl_collection_request' is set
        if ('business_object_data_ddl_collection_request' not in local_var_params or
                local_var_params['business_object_data_ddl_collection_request'] is None):
            raise ValueError("Missing the required parameter `business_object_data_ddl_collection_request` when calling `business_object_data_generate_business_object_data_ddl_collection`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'business_object_data_ddl_collection_request' in local_var_params:
            body_params = local_var_params['business_object_data_ddl_collection_request']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # HTTP header `Content-Type`
        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/generateDdlCollection', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectDataDdlCollectionResponse',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_generate_business_object_data_partitions(self, business_object_data_partitions_request, **kwargs):  # noqa: E501
        """generateBusinessObjectDataPartitions  # noqa: E501

        Generates the partitions information for a range of requested business object data in the specified storage. <p> Requires READ permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_generate_business_object_data_partitions(business_object_data_partitions_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param BusinessObjectDataPartitionsRequest business_object_data_partitions_request: the business object data partitions request (required)
        :return: BusinessObjectDataPartitions
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_generate_business_object_data_partitions_with_http_info(business_object_data_partitions_request, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_generate_business_object_data_partitions_with_http_info(business_object_data_partitions_request, **kwargs)  # noqa: E501
            return data

    def business_object_data_generate_business_object_data_partitions_with_http_info(self, business_object_data_partitions_request, **kwargs):  # noqa: E501
        """generateBusinessObjectDataPartitions  # noqa: E501

        Generates the partitions information for a range of requested business object data in the specified storage. <p> Requires READ permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_generate_business_object_data_partitions_with_http_info(business_object_data_partitions_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param BusinessObjectDataPartitionsRequest business_object_data_partitions_request: the business object data partitions request (required)
        :return: BusinessObjectDataPartitions
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['business_object_data_partitions_request']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_generate_business_object_data_partitions" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'business_object_data_partitions_request' is set
        if ('business_object_data_partitions_request' not in local_var_params or
                local_var_params['business_object_data_partitions_request'] is None):
            raise ValueError("Missing the required parameter `business_object_data_partitions_request` when calling `business_object_data_generate_business_object_data_partitions`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'business_object_data_partitions_request' in local_var_params:
            body_params = local_var_params['business_object_data_partitions_request']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # HTTP header `Content-Type`
        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/generatePartitions', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectDataPartitions',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_get_all_business_object_data_by_business_object_definition(self, namespace, business_object_definition_name, **kwargs):  # noqa: E501
        """getAllBusinessObjectDataByBusinessObjectDefinition  # noqa: E501

        Retrieves a list of keys for all existing business object data up to the limit configured in the system for all latest business object format versions registered under specified business object definition. <p> Results are sorted alphabetically by primary and sub-partition values descending. </p> <p> The limit on how many records this endpoint returns is set by \"business.object.data.search.max.results.per.page\" configuration value. </p> <p> Requires READ permission on namespace. </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_get_all_business_object_data_by_business_object_definition(namespace, business_object_definition_name, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :return: BusinessObjectDataKeys
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_get_all_business_object_data_by_business_object_definition_with_http_info(namespace, business_object_definition_name, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_get_all_business_object_data_by_business_object_definition_with_http_info(namespace, business_object_definition_name, **kwargs)  # noqa: E501
            return data

    def business_object_data_get_all_business_object_data_by_business_object_definition_with_http_info(self, namespace, business_object_definition_name, **kwargs):  # noqa: E501
        """getAllBusinessObjectDataByBusinessObjectDefinition  # noqa: E501

        Retrieves a list of keys for all existing business object data up to the limit configured in the system for all latest business object format versions registered under specified business object definition. <p> Results are sorted alphabetically by primary and sub-partition values descending. </p> <p> The limit on how many records this endpoint returns is set by \"business.object.data.search.max.results.per.page\" configuration value. </p> <p> Requires READ permission on namespace. </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_get_all_business_object_data_by_business_object_definition_with_http_info(namespace, business_object_definition_name, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :return: BusinessObjectDataKeys
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_get_all_business_object_data_by_business_object_definition" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_get_all_business_object_data_by_business_object_definition`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_get_all_business_object_data_by_business_object_definition`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectDataKeys',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_get_all_business_object_data_by_business_object_format(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, **kwargs):  # noqa: E501
        """getAllBusinessObjectDataByBusinessObjectFormat  # noqa: E501

        Retrieves a list of keys for all existing business object data up to the limit configured in the system per specified business object format. <p> Results are sorted alphabetically by primary and sub-partition values descending. </p> <p> The limit on how many records this endpoint returns is set by \"business.object.data.search.max.results.per.page\" configuration value. </p> <p> Requires READ permission on namespace. </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_get_all_business_object_data_by_business_object_format(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :return: BusinessObjectDataKeys
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_get_all_business_object_data_by_business_object_format_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_get_all_business_object_data_by_business_object_format_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, **kwargs)  # noqa: E501
            return data

    def business_object_data_get_all_business_object_data_by_business_object_format_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, **kwargs):  # noqa: E501
        """getAllBusinessObjectDataByBusinessObjectFormat  # noqa: E501

        Retrieves a list of keys for all existing business object data up to the limit configured in the system per specified business object format. <p> Results are sorted alphabetically by primary and sub-partition values descending. </p> <p> The limit on how many records this endpoint returns is set by \"business.object.data.search.max.results.per.page\" configuration value. </p> <p> Requires READ permission on namespace. </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_get_all_business_object_data_by_business_object_format_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :return: BusinessObjectDataKeys
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'business_object_format_version']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_get_all_business_object_data_by_business_object_format" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_get_all_business_object_data_by_business_object_format`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_get_all_business_object_data_by_business_object_format`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_get_all_business_object_data_by_business_object_format`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_get_all_business_object_data_by_business_object_format`")  # noqa: E501
        # verify the required parameter 'business_object_format_version' is set
        if ('business_object_format_version' not in local_var_params or
                local_var_params['business_object_format_version'] is None):
            raise ValueError("Missing the required parameter `business_object_format_version` when calling `business_object_data_get_all_business_object_data_by_business_object_format`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            path_params['businessObjectFormatVersion'] = local_var_params['business_object_format_version']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/businessObjectFormatVersions/{businessObjectFormatVersion}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectDataKeys',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_get_business_object_data(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, **kwargs):  # noqa: E501
        """getBusinessObjectData  # noqa: E501

        Retrieves existing business object data entry information. <p/> NOTE: When both business object format version and business object data version are not specified, the business object format version has the precedence. The latest business object format version is determined by a sub-query, which does the following: <p> <ul> <li>selects all available data for the specified business object format (disregarding business object format version), partition values, and business object data status (default is \"VALID\") <li>gets the latest business object format version from the records selected in the previous step </ul> <p> <p> Requires READ permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_get_business_object_data(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param str partition_key: the partition key of the business object format. When specified, the partition key is validated against the partition key associated with the relative business object format
        :param str partition_value: the partition value of the business object data
        :param str sub_partition_values: the list of sub-partition values delimited by \"|\" (delimiter can be escaped by \"\\\")
        :param int business_object_format_version: the version of the business object format. When the business object format version is not specified, the business object data with the latest business format version available for the specified partition values is returned
        :param int business_object_data_version: the version of the business object data. When business object data version is not specified, the latest version of business object data of the specified business object data status is returned
        :param str business_object_data_status: the status of the business object data. When business object data version is specified, this parameter is ignored. Default value is \"VALID\"
        :param bool include_business_object_data_status_history: specifies to include business object data status history in the response
        :param bool include_storage_unit_status_history: specifies to include storage unit status history for each storage unit in the response
        :param bool exclude_business_object_data_storage_files: specifies to exclude storage files in the response
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_get_business_object_data_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_get_business_object_data_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, **kwargs)  # noqa: E501
            return data

    def business_object_data_get_business_object_data_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, **kwargs):  # noqa: E501
        """getBusinessObjectData  # noqa: E501

        Retrieves existing business object data entry information. <p/> NOTE: When both business object format version and business object data version are not specified, the business object format version has the precedence. The latest business object format version is determined by a sub-query, which does the following: <p> <ul> <li>selects all available data for the specified business object format (disregarding business object format version), partition values, and business object data status (default is \"VALID\") <li>gets the latest business object format version from the records selected in the previous step </ul> <p> <p> Requires READ permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_get_business_object_data_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param str partition_key: the partition key of the business object format. When specified, the partition key is validated against the partition key associated with the relative business object format
        :param str partition_value: the partition value of the business object data
        :param str sub_partition_values: the list of sub-partition values delimited by \"|\" (delimiter can be escaped by \"\\\")
        :param int business_object_format_version: the version of the business object format. When the business object format version is not specified, the business object data with the latest business format version available for the specified partition values is returned
        :param int business_object_data_version: the version of the business object data. When business object data version is not specified, the latest version of business object data of the specified business object data status is returned
        :param str business_object_data_status: the status of the business object data. When business object data version is specified, this parameter is ignored. Default value is \"VALID\"
        :param bool include_business_object_data_status_history: specifies to include business object data status history in the response
        :param bool include_storage_unit_status_history: specifies to include storage unit status history for each storage unit in the response
        :param bool exclude_business_object_data_storage_files: specifies to exclude storage files in the response
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'partition_key', 'partition_value', 'sub_partition_values', 'business_object_format_version', 'business_object_data_version', 'business_object_data_status', 'include_business_object_data_status_history', 'include_storage_unit_status_history', 'exclude_business_object_data_storage_files']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_get_business_object_data" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_get_business_object_data`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_get_business_object_data`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_get_business_object_data`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_get_business_object_data`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501

        query_params = []
        if 'partition_key' in local_var_params:
            query_params.append(('partitionKey', local_var_params['partition_key']))  # noqa: E501
        if 'partition_value' in local_var_params:
            query_params.append(('partitionValue', local_var_params['partition_value']))  # noqa: E501
        if 'sub_partition_values' in local_var_params:
            query_params.append(('subPartitionValues', local_var_params['sub_partition_values']))  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            query_params.append(('businessObjectFormatVersion', local_var_params['business_object_format_version']))  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            query_params.append(('businessObjectDataVersion', local_var_params['business_object_data_version']))  # noqa: E501
        if 'business_object_data_status' in local_var_params:
            query_params.append(('businessObjectDataStatus', local_var_params['business_object_data_status']))  # noqa: E501
        if 'include_business_object_data_status_history' in local_var_params:
            query_params.append(('includeBusinessObjectDataStatusHistory', local_var_params['include_business_object_data_status_history']))  # noqa: E501
        if 'include_storage_unit_status_history' in local_var_params:
            query_params.append(('includeStorageUnitStatusHistory', local_var_params['include_storage_unit_status_history']))  # noqa: E501
        if 'exclude_business_object_data_storage_files' in local_var_params:
            query_params.append(('excludeBusinessObjectDataStorageFiles', local_var_params['exclude_business_object_data_storage_files']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectData',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_get_business_object_data_versions(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, **kwargs):  # noqa: E501
        """getBusinessObjectDataVersions  # noqa: E501

        Retrieves a list of existing business object data versions. <p> Requires READ permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_get_business_object_data_versions(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param str partition_value: the partition value
        :param str sub_partition_values: the list of sub-partition values
        :param int business_object_format_version: the business object format version
        :param int business_object_data_version: the business object data version
        :return: BusinessObjectDataVersions
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_get_business_object_data_versions_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_get_business_object_data_versions_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, **kwargs)  # noqa: E501
            return data

    def business_object_data_get_business_object_data_versions_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, **kwargs):  # noqa: E501
        """getBusinessObjectDataVersions  # noqa: E501

        Retrieves a list of existing business object data versions. <p> Requires READ permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_get_business_object_data_versions_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param str partition_value: the partition value
        :param str sub_partition_values: the list of sub-partition values
        :param int business_object_format_version: the business object format version
        :param int business_object_data_version: the business object data version
        :return: BusinessObjectDataVersions
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'partition_value', 'sub_partition_values', 'business_object_format_version', 'business_object_data_version']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_get_business_object_data_versions" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_get_business_object_data_versions`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_get_business_object_data_versions`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_get_business_object_data_versions`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_get_business_object_data_versions`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501

        query_params = []
        if 'partition_value' in local_var_params:
            query_params.append(('partitionValue', local_var_params['partition_value']))  # noqa: E501
        if 'sub_partition_values' in local_var_params:
            query_params.append(('subPartitionValues', local_var_params['sub_partition_values']))  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            query_params.append(('businessObjectFormatVersion', local_var_params['business_object_format_version']))  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            query_params.append(('businessObjectDataVersion', local_var_params['business_object_data_version']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/versions', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectDataVersions',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_get_s3_key_prefix(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, **kwargs):  # noqa: E501
        """Gets the S3 key prefix information for a specified namespace  # noqa: E501

        <p> Gets the S3 key prefix for writing or accessing business object data. </p> <p> This endpoint requires a namespace. </p> <p> Requires READ permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_get_s3_key_prefix(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_key: the partition key
        :param str partition_value: the partition value
        :param str sub_partition_values: the list of sub-partition values
        :param int business_object_data_version: the business object data version
        :param str storage_name: the storage name
        :param bool create_new_version: Whether a new business object data can be created
        :return: S3KeyPrefixInformation
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_get_s3_key_prefix_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_get_s3_key_prefix_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, **kwargs)  # noqa: E501
            return data

    def business_object_data_get_s3_key_prefix_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, **kwargs):  # noqa: E501
        """Gets the S3 key prefix information for a specified namespace  # noqa: E501

        <p> Gets the S3 key prefix for writing or accessing business object data. </p> <p> This endpoint requires a namespace. </p> <p> Requires READ permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_get_s3_key_prefix_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_key: the partition key
        :param str partition_value: the partition value
        :param str sub_partition_values: the list of sub-partition values
        :param int business_object_data_version: the business object data version
        :param str storage_name: the storage name
        :param bool create_new_version: Whether a new business object data can be created
        :return: S3KeyPrefixInformation
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'business_object_format_version', 'partition_key', 'partition_value', 'sub_partition_values', 'business_object_data_version', 'storage_name', 'create_new_version']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_get_s3_key_prefix" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_get_s3_key_prefix`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_get_s3_key_prefix`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_get_s3_key_prefix`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_get_s3_key_prefix`")  # noqa: E501
        # verify the required parameter 'business_object_format_version' is set
        if ('business_object_format_version' not in local_var_params or
                local_var_params['business_object_format_version'] is None):
            raise ValueError("Missing the required parameter `business_object_format_version` when calling `business_object_data_get_s3_key_prefix`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            path_params['businessObjectFormatVersion'] = local_var_params['business_object_format_version']  # noqa: E501

        query_params = []
        if 'partition_key' in local_var_params:
            query_params.append(('partitionKey', local_var_params['partition_key']))  # noqa: E501
        if 'partition_value' in local_var_params:
            query_params.append(('partitionValue', local_var_params['partition_value']))  # noqa: E501
        if 'sub_partition_values' in local_var_params:
            query_params.append(('subPartitionValues', local_var_params['sub_partition_values']))  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            query_params.append(('businessObjectDataVersion', local_var_params['business_object_data_version']))  # noqa: E501
        if 'storage_name' in local_var_params:
            query_params.append(('storageName', local_var_params['storage_name']))  # noqa: E501
        if 'create_new_version' in local_var_params:
            query_params.append(('createNewVersion', local_var_params['create_new_version']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/businessObjectFormatVersions/{businessObjectFormatVersion}/s3KeyPrefix', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='S3KeyPrefixInformation',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_invalidate_unregistered_business_object_data(self, business_object_data_invalidate_unregistered_request, **kwargs):  # noqa: E501
        """invalidateUnregisteredBusinessObjectData  # noqa: E501

        Registers data as INVALID for objects which exist in S3 but are not registered in herd. <p> Requires WRITE permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_invalidate_unregistered_business_object_data(business_object_data_invalidate_unregistered_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param BusinessObjectDataInvalidateUnregisteredRequest business_object_data_invalidate_unregistered_request: the business object data invalidate un-register request (required)
        :return: BusinessObjectDataInvalidateUnregisteredResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_invalidate_unregistered_business_object_data_with_http_info(business_object_data_invalidate_unregistered_request, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_invalidate_unregistered_business_object_data_with_http_info(business_object_data_invalidate_unregistered_request, **kwargs)  # noqa: E501
            return data

    def business_object_data_invalidate_unregistered_business_object_data_with_http_info(self, business_object_data_invalidate_unregistered_request, **kwargs):  # noqa: E501
        """invalidateUnregisteredBusinessObjectData  # noqa: E501

        Registers data as INVALID for objects which exist in S3 but are not registered in herd. <p> Requires WRITE permission on namespace </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_invalidate_unregistered_business_object_data_with_http_info(business_object_data_invalidate_unregistered_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param BusinessObjectDataInvalidateUnregisteredRequest business_object_data_invalidate_unregistered_request: the business object data invalidate un-register request (required)
        :return: BusinessObjectDataInvalidateUnregisteredResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['business_object_data_invalidate_unregistered_request']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_invalidate_unregistered_business_object_data" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'business_object_data_invalidate_unregistered_request' is set
        if ('business_object_data_invalidate_unregistered_request' not in local_var_params or
                local_var_params['business_object_data_invalidate_unregistered_request'] is None):
            raise ValueError("Missing the required parameter `business_object_data_invalidate_unregistered_request` when calling `business_object_data_invalidate_unregistered_business_object_data`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'business_object_data_invalidate_unregistered_request' in local_var_params:
            body_params = local_var_params['business_object_data_invalidate_unregistered_request']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # HTTP header `Content-Type`
        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/unregistered/invalidation', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectDataInvalidateUnregisteredResponse',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_restore_business_object_data(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, **kwargs):  # noqa: E501
        """restoreBusinessObjectData  # noqa: E501

        Initiates a restore request for a currently archived business object data.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_restore_business_object_data(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the version of the business object format (required)
        :param str partition_value: the primary partition value of the business object data (required)
        :param int business_object_data_version: the version of the business object data (required)
        :param str sub_partition_values: the list of sub-partition values delimited by \"|\" (delimiter can be escaped by \"\\\")
        :param int expiration_in_days: the time, in days, between when the business object data is restored to the S3 bucket and when it expires
        :param str archive_retrieval_option: the archive retrieval option when restoring an archived object. Currently three options are supported: Expedited, Standard, and Bulk
        :param bool batch_mode: the flag used to indicate that S3 Batch processing should be used to restore the business object
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_restore_business_object_data_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_restore_business_object_data_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, **kwargs)  # noqa: E501
            return data

    def business_object_data_restore_business_object_data_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, **kwargs):  # noqa: E501
        """restoreBusinessObjectData  # noqa: E501

        Initiates a restore request for a currently archived business object data.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_restore_business_object_data_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the version of the business object format (required)
        :param str partition_value: the primary partition value of the business object data (required)
        :param int business_object_data_version: the version of the business object data (required)
        :param str sub_partition_values: the list of sub-partition values delimited by \"|\" (delimiter can be escaped by \"\\\")
        :param int expiration_in_days: the time, in days, between when the business object data is restored to the S3 bucket and when it expires
        :param str archive_retrieval_option: the archive retrieval option when restoring an archived object. Currently three options are supported: Expedited, Standard, and Bulk
        :param bool batch_mode: the flag used to indicate that S3 Batch processing should be used to restore the business object
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'business_object_format_version', 'partition_value', 'business_object_data_version', 'sub_partition_values', 'expiration_in_days', 'archive_retrieval_option', 'batch_mode']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_restore_business_object_data" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_restore_business_object_data`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_restore_business_object_data`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_restore_business_object_data`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_restore_business_object_data`")  # noqa: E501
        # verify the required parameter 'business_object_format_version' is set
        if ('business_object_format_version' not in local_var_params or
                local_var_params['business_object_format_version'] is None):
            raise ValueError("Missing the required parameter `business_object_format_version` when calling `business_object_data_restore_business_object_data`")  # noqa: E501
        # verify the required parameter 'partition_value' is set
        if ('partition_value' not in local_var_params or
                local_var_params['partition_value'] is None):
            raise ValueError("Missing the required parameter `partition_value` when calling `business_object_data_restore_business_object_data`")  # noqa: E501
        # verify the required parameter 'business_object_data_version' is set
        if ('business_object_data_version' not in local_var_params or
                local_var_params['business_object_data_version'] is None):
            raise ValueError("Missing the required parameter `business_object_data_version` when calling `business_object_data_restore_business_object_data`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            path_params['businessObjectFormatVersion'] = local_var_params['business_object_format_version']  # noqa: E501
        if 'partition_value' in local_var_params:
            path_params['partitionValue'] = local_var_params['partition_value']  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            path_params['businessObjectDataVersion'] = local_var_params['business_object_data_version']  # noqa: E501

        query_params = []
        if 'sub_partition_values' in local_var_params:
            query_params.append(('subPartitionValues', local_var_params['sub_partition_values']))  # noqa: E501
        if 'expiration_in_days' in local_var_params:
            query_params.append(('expirationInDays', local_var_params['expiration_in_days']))  # noqa: E501
        if 'archive_retrieval_option' in local_var_params:
            query_params.append(('archiveRetrievalOption', local_var_params['archive_retrieval_option']))  # noqa: E501
        if 'batch_mode' in local_var_params:
            query_params.append(('batchMode', local_var_params['batch_mode']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/restore/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/businessObjectFormatVersions/{businessObjectFormatVersion}/partitionValues/{partitionValue}/businessObjectDataVersions/{businessObjectDataVersion}', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectData',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_retry_storage_policy_transition(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_retry_storage_policy_transition_request, **kwargs):  # noqa: E501
        """retryStoragePolicyTransition  # noqa: E501

        Retries a storage policy transition by forcing re-initiation of the archiving process for the specified business object data that is still in progress of a valid archiving operation. This endpoint is designed to be run only after confirmation that the business object data is stuck due to an error during archiving.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_retry_storage_policy_transition(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_retry_storage_policy_transition_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace of the business object definition (required)
        :param str business_object_definition_name: the name of the business object definition (required)
        :param str business_object_format_usage: the usage of the business object format (required)
        :param str business_object_format_file_type: the file type of the business object format (required)
        :param int business_object_format_version: the version of the business object format (required)
        :param str partition_value: the primary partition value of the business object data (required)
        :param int business_object_data_version: the version of the business object data (required)
        :param BusinessObjectDataRetryStoragePolicyTransitionRequest business_object_data_retry_storage_policy_transition_request: the information needed to retry a storage policy transition (required)
        :param str sub_partition_values: the optional list of sub-partition values delimited by \"|\" (delimiter can be escaped by \"\\\")
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_retry_storage_policy_transition_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_retry_storage_policy_transition_request, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_retry_storage_policy_transition_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_retry_storage_policy_transition_request, **kwargs)  # noqa: E501
            return data

    def business_object_data_retry_storage_policy_transition_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_retry_storage_policy_transition_request, **kwargs):  # noqa: E501
        """retryStoragePolicyTransition  # noqa: E501

        Retries a storage policy transition by forcing re-initiation of the archiving process for the specified business object data that is still in progress of a valid archiving operation. This endpoint is designed to be run only after confirmation that the business object data is stuck due to an error during archiving.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_retry_storage_policy_transition_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_retry_storage_policy_transition_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace of the business object definition (required)
        :param str business_object_definition_name: the name of the business object definition (required)
        :param str business_object_format_usage: the usage of the business object format (required)
        :param str business_object_format_file_type: the file type of the business object format (required)
        :param int business_object_format_version: the version of the business object format (required)
        :param str partition_value: the primary partition value of the business object data (required)
        :param int business_object_data_version: the version of the business object data (required)
        :param BusinessObjectDataRetryStoragePolicyTransitionRequest business_object_data_retry_storage_policy_transition_request: the information needed to retry a storage policy transition (required)
        :param str sub_partition_values: the optional list of sub-partition values delimited by \"|\" (delimiter can be escaped by \"\\\")
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'business_object_format_version', 'partition_value', 'business_object_data_version', 'business_object_data_retry_storage_policy_transition_request', 'sub_partition_values']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_retry_storage_policy_transition" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_retry_storage_policy_transition`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_retry_storage_policy_transition`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_retry_storage_policy_transition`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_retry_storage_policy_transition`")  # noqa: E501
        # verify the required parameter 'business_object_format_version' is set
        if ('business_object_format_version' not in local_var_params or
                local_var_params['business_object_format_version'] is None):
            raise ValueError("Missing the required parameter `business_object_format_version` when calling `business_object_data_retry_storage_policy_transition`")  # noqa: E501
        # verify the required parameter 'partition_value' is set
        if ('partition_value' not in local_var_params or
                local_var_params['partition_value'] is None):
            raise ValueError("Missing the required parameter `partition_value` when calling `business_object_data_retry_storage_policy_transition`")  # noqa: E501
        # verify the required parameter 'business_object_data_version' is set
        if ('business_object_data_version' not in local_var_params or
                local_var_params['business_object_data_version'] is None):
            raise ValueError("Missing the required parameter `business_object_data_version` when calling `business_object_data_retry_storage_policy_transition`")  # noqa: E501
        # verify the required parameter 'business_object_data_retry_storage_policy_transition_request' is set
        if ('business_object_data_retry_storage_policy_transition_request' not in local_var_params or
                local_var_params['business_object_data_retry_storage_policy_transition_request'] is None):
            raise ValueError("Missing the required parameter `business_object_data_retry_storage_policy_transition_request` when calling `business_object_data_retry_storage_policy_transition`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            path_params['businessObjectFormatVersion'] = local_var_params['business_object_format_version']  # noqa: E501
        if 'partition_value' in local_var_params:
            path_params['partitionValue'] = local_var_params['partition_value']  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            path_params['businessObjectDataVersion'] = local_var_params['business_object_data_version']  # noqa: E501

        query_params = []
        if 'sub_partition_values' in local_var_params:
            query_params.append(('subPartitionValues', local_var_params['sub_partition_values']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'business_object_data_retry_storage_policy_transition_request' in local_var_params:
            body_params = local_var_params['business_object_data_retry_storage_policy_transition_request']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # HTTP header `Content-Type`
        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/retryStoragePolicyTransition/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/businessObjectFormatVersions/{businessObjectFormatVersion}/partitionValues/{partitionValue}/businessObjectDataVersions/{businessObjectDataVersion}', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectData',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_search_business_object_data(self, business_object_data_search_request, **kwargs):  # noqa: E501
        """searchBusinessObjectData  # noqa: E501

        Searches business object data based on namespace, definition name, format usage, file type, and format version. <p> Namespace and definition name are required. </p> <p> Requires READ permission on namespace </p> <p> The response contains the following HTTP headers: <ul> <li>Paging-MaxResultsPerPage - the HTTP header for the maximum number of results that will be returned on any page of data. The \"pageSize\" query parameter should not be greater than this value or an HTTP status of 400 (Bad Request) error would be returned</li> <li>Paging-PageCount - the HTTP header for the total number of pages that exist assuming a page size limit and the total records returned in the query</li> <li>Paging-PageNum - the HTTP header for the current page number being returned. For the first page, this value would be \"1\"</li> <li>Paging-PageSize - the HTTP header for the current page size limit. This is based on what is specified in the request \"pageSize\" query parameter</li> <li>Paging-TotalRecordsOnPage - the HTTP header for the total number of records returned on the current page. This could be less than the \"pageSize\" query parameter on the last page of data</li> <li>Paging-TotalRecordCount - the HTTP header for the total number of records that would be returned across all pages. This is basically a \"select count\" query</li> </ul> </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_search_business_object_data(business_object_data_search_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param BusinessObjectDataSearchRequest business_object_data_search_request: the business object data search request (required)
        :param int page_num: the page number. If this parameter is specified, results contain the appropriate page that is specified. Page numbers are one-based - that is the first page number is one. Default value is 1
        :param int page_size: the page size. If pageSize parameter is specified, results contain that number of business object data (unless it is the end of the result set). Default value is 1000
        :return: BusinessObjectDataSearchResult
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_search_business_object_data_with_http_info(business_object_data_search_request, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_search_business_object_data_with_http_info(business_object_data_search_request, **kwargs)  # noqa: E501
            return data

    def business_object_data_search_business_object_data_with_http_info(self, business_object_data_search_request, **kwargs):  # noqa: E501
        """searchBusinessObjectData  # noqa: E501

        Searches business object data based on namespace, definition name, format usage, file type, and format version. <p> Namespace and definition name are required. </p> <p> Requires READ permission on namespace </p> <p> The response contains the following HTTP headers: <ul> <li>Paging-MaxResultsPerPage - the HTTP header for the maximum number of results that will be returned on any page of data. The \"pageSize\" query parameter should not be greater than this value or an HTTP status of 400 (Bad Request) error would be returned</li> <li>Paging-PageCount - the HTTP header for the total number of pages that exist assuming a page size limit and the total records returned in the query</li> <li>Paging-PageNum - the HTTP header for the current page number being returned. For the first page, this value would be \"1\"</li> <li>Paging-PageSize - the HTTP header for the current page size limit. This is based on what is specified in the request \"pageSize\" query parameter</li> <li>Paging-TotalRecordsOnPage - the HTTP header for the total number of records returned on the current page. This could be less than the \"pageSize\" query parameter on the last page of data</li> <li>Paging-TotalRecordCount - the HTTP header for the total number of records that would be returned across all pages. This is basically a \"select count\" query</li> </ul> </p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_search_business_object_data_with_http_info(business_object_data_search_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param BusinessObjectDataSearchRequest business_object_data_search_request: the business object data search request (required)
        :param int page_num: the page number. If this parameter is specified, results contain the appropriate page that is specified. Page numbers are one-based - that is the first page number is one. Default value is 1
        :param int page_size: the page size. If pageSize parameter is specified, results contain that number of business object data (unless it is the end of the result set). Default value is 1000
        :return: BusinessObjectDataSearchResult
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['business_object_data_search_request', 'page_num', 'page_size']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_search_business_object_data" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'business_object_data_search_request' is set
        if ('business_object_data_search_request' not in local_var_params or
                local_var_params['business_object_data_search_request'] is None):
            raise ValueError("Missing the required parameter `business_object_data_search_request` when calling `business_object_data_search_business_object_data`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []
        if 'page_num' in local_var_params:
            query_params.append(('pageNum', local_var_params['page_num']))  # noqa: E501
        if 'page_size' in local_var_params:
            query_params.append(('pageSize', local_var_params['page_size']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'business_object_data_search_request' in local_var_params:
            body_params = local_var_params['business_object_data_search_request']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # HTTP header `Content-Type`
        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectData/search', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectDataSearchResult',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_update_business_object_data_attributes(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs):  # noqa: E501
        """updateBusinessObjectDataAttributes  # noqa: E501

        Updates attributes for the business object data without subpartition values. <p>Requires WRITE or WRITE_ATTRIBUTE permission on namespace</p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_update_business_object_data_attributes(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_attributes_update_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the partition value of the business object data (required)
        :param int business_object_data_version: the business object data version (required)
        :param BusinessObjectDataAttributesUpdateRequest business_object_data_attributes_update_request: the information needed to update the business object data attributes (required)
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_update_business_object_data_attributes_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_update_business_object_data_attributes_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs)  # noqa: E501
            return data

    def business_object_data_update_business_object_data_attributes_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs):  # noqa: E501
        """updateBusinessObjectDataAttributes  # noqa: E501

        Updates attributes for the business object data without subpartition values. <p>Requires WRITE or WRITE_ATTRIBUTE permission on namespace</p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_update_business_object_data_attributes_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_attributes_update_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the partition value of the business object data (required)
        :param int business_object_data_version: the business object data version (required)
        :param BusinessObjectDataAttributesUpdateRequest business_object_data_attributes_update_request: the information needed to update the business object data attributes (required)
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'business_object_format_version', 'partition_value', 'business_object_data_version', 'business_object_data_attributes_update_request']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_update_business_object_data_attributes" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_update_business_object_data_attributes`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_update_business_object_data_attributes`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_update_business_object_data_attributes`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_update_business_object_data_attributes`")  # noqa: E501
        # verify the required parameter 'business_object_format_version' is set
        if ('business_object_format_version' not in local_var_params or
                local_var_params['business_object_format_version'] is None):
            raise ValueError("Missing the required parameter `business_object_format_version` when calling `business_object_data_update_business_object_data_attributes`")  # noqa: E501
        # verify the required parameter 'partition_value' is set
        if ('partition_value' not in local_var_params or
                local_var_params['partition_value'] is None):
            raise ValueError("Missing the required parameter `partition_value` when calling `business_object_data_update_business_object_data_attributes`")  # noqa: E501
        # verify the required parameter 'business_object_data_version' is set
        if ('business_object_data_version' not in local_var_params or
                local_var_params['business_object_data_version'] is None):
            raise ValueError("Missing the required parameter `business_object_data_version` when calling `business_object_data_update_business_object_data_attributes`")  # noqa: E501
        # verify the required parameter 'business_object_data_attributes_update_request' is set
        if ('business_object_data_attributes_update_request' not in local_var_params or
                local_var_params['business_object_data_attributes_update_request'] is None):
            raise ValueError("Missing the required parameter `business_object_data_attributes_update_request` when calling `business_object_data_update_business_object_data_attributes`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            path_params['businessObjectFormatVersion'] = local_var_params['business_object_format_version']  # noqa: E501
        if 'partition_value' in local_var_params:
            path_params['partitionValue'] = local_var_params['partition_value']  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            path_params['businessObjectDataVersion'] = local_var_params['business_object_data_version']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'business_object_data_attributes_update_request' in local_var_params:
            body_params = local_var_params['business_object_data_attributes_update_request']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # HTTP header `Content-Type`
        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectDataAttributes/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/businessObjectFormatVersions/{businessObjectFormatVersion}/partitionValues/{partitionValue}/businessObjectDataVersions/{businessObjectDataVersion}', 'PUT',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectData',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_update_business_object_data_attributes1(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs):  # noqa: E501
        """updateBusinessObjectDataAttributes  # noqa: E501

        Updates attributes for the business object data with 1 subpartition value. <p>Requires WRITE or WRITE_ATTRIBUTE permission on namespace</p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_update_business_object_data_attributes1(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, business_object_data_version, business_object_data_attributes_update_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the primary partition value of the business object data (required)
        :param str sub_partition1_value: the 1st subpartition value of the business object data (required)
        :param int business_object_data_version: the business object data version (required)
        :param BusinessObjectDataAttributesUpdateRequest business_object_data_attributes_update_request: the information needed to update the business object data attributes (required)
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_update_business_object_data_attributes1_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_update_business_object_data_attributes1_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs)  # noqa: E501
            return data

    def business_object_data_update_business_object_data_attributes1_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs):  # noqa: E501
        """updateBusinessObjectDataAttributes  # noqa: E501

        Updates attributes for the business object data with 1 subpartition value. <p>Requires WRITE or WRITE_ATTRIBUTE permission on namespace</p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_update_business_object_data_attributes1_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, business_object_data_version, business_object_data_attributes_update_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the primary partition value of the business object data (required)
        :param str sub_partition1_value: the 1st subpartition value of the business object data (required)
        :param int business_object_data_version: the business object data version (required)
        :param BusinessObjectDataAttributesUpdateRequest business_object_data_attributes_update_request: the information needed to update the business object data attributes (required)
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'business_object_format_version', 'partition_value', 'sub_partition1_value', 'business_object_data_version', 'business_object_data_attributes_update_request']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_update_business_object_data_attributes1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_update_business_object_data_attributes1`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_update_business_object_data_attributes1`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_update_business_object_data_attributes1`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_update_business_object_data_attributes1`")  # noqa: E501
        # verify the required parameter 'business_object_format_version' is set
        if ('business_object_format_version' not in local_var_params or
                local_var_params['business_object_format_version'] is None):
            raise ValueError("Missing the required parameter `business_object_format_version` when calling `business_object_data_update_business_object_data_attributes1`")  # noqa: E501
        # verify the required parameter 'partition_value' is set
        if ('partition_value' not in local_var_params or
                local_var_params['partition_value'] is None):
            raise ValueError("Missing the required parameter `partition_value` when calling `business_object_data_update_business_object_data_attributes1`")  # noqa: E501
        # verify the required parameter 'sub_partition1_value' is set
        if ('sub_partition1_value' not in local_var_params or
                local_var_params['sub_partition1_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition1_value` when calling `business_object_data_update_business_object_data_attributes1`")  # noqa: E501
        # verify the required parameter 'business_object_data_version' is set
        if ('business_object_data_version' not in local_var_params or
                local_var_params['business_object_data_version'] is None):
            raise ValueError("Missing the required parameter `business_object_data_version` when calling `business_object_data_update_business_object_data_attributes1`")  # noqa: E501
        # verify the required parameter 'business_object_data_attributes_update_request' is set
        if ('business_object_data_attributes_update_request' not in local_var_params or
                local_var_params['business_object_data_attributes_update_request'] is None):
            raise ValueError("Missing the required parameter `business_object_data_attributes_update_request` when calling `business_object_data_update_business_object_data_attributes1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            path_params['businessObjectFormatVersion'] = local_var_params['business_object_format_version']  # noqa: E501
        if 'partition_value' in local_var_params:
            path_params['partitionValue'] = local_var_params['partition_value']  # noqa: E501
        if 'sub_partition1_value' in local_var_params:
            path_params['subPartition1Value'] = local_var_params['sub_partition1_value']  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            path_params['businessObjectDataVersion'] = local_var_params['business_object_data_version']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'business_object_data_attributes_update_request' in local_var_params:
            body_params = local_var_params['business_object_data_attributes_update_request']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # HTTP header `Content-Type`
        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectDataAttributes/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/businessObjectFormatVersions/{businessObjectFormatVersion}/partitionValues/{partitionValue}/subPartition1Values/{subPartition1Value}/businessObjectDataVersions/{businessObjectDataVersion}', 'PUT',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectData',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_update_business_object_data_attributes2(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs):  # noqa: E501
        """updateBusinessObjectDataAttributes  # noqa: E501

        Updates attributes for the business object data with 2 subpartition values. <p>Requires WRITE or WRITE_ATTRIBUTE permission on namespace</p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_update_business_object_data_attributes2(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, business_object_data_version, business_object_data_attributes_update_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the primary partition value of the business object data (required)
        :param str sub_partition1_value: the 1st subpartition value of the business object data (required)
        :param str sub_partition2_value: the 2nd subpartition value of the business object data (required)
        :param int business_object_data_version: the business object data version (required)
        :param BusinessObjectDataAttributesUpdateRequest business_object_data_attributes_update_request: the information needed to update the business object data attributes (required)
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_update_business_object_data_attributes2_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_update_business_object_data_attributes2_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs)  # noqa: E501
            return data

    def business_object_data_update_business_object_data_attributes2_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs):  # noqa: E501
        """updateBusinessObjectDataAttributes  # noqa: E501

        Updates attributes for the business object data with 2 subpartition values. <p>Requires WRITE or WRITE_ATTRIBUTE permission on namespace</p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_update_business_object_data_attributes2_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, business_object_data_version, business_object_data_attributes_update_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the primary partition value of the business object data (required)
        :param str sub_partition1_value: the 1st subpartition value of the business object data (required)
        :param str sub_partition2_value: the 2nd subpartition value of the business object data (required)
        :param int business_object_data_version: the business object data version (required)
        :param BusinessObjectDataAttributesUpdateRequest business_object_data_attributes_update_request: the information needed to update the business object data attributes (required)
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'business_object_format_version', 'partition_value', 'sub_partition1_value', 'sub_partition2_value', 'business_object_data_version', 'business_object_data_attributes_update_request']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_update_business_object_data_attributes2" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_update_business_object_data_attributes2`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_update_business_object_data_attributes2`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_update_business_object_data_attributes2`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_update_business_object_data_attributes2`")  # noqa: E501
        # verify the required parameter 'business_object_format_version' is set
        if ('business_object_format_version' not in local_var_params or
                local_var_params['business_object_format_version'] is None):
            raise ValueError("Missing the required parameter `business_object_format_version` when calling `business_object_data_update_business_object_data_attributes2`")  # noqa: E501
        # verify the required parameter 'partition_value' is set
        if ('partition_value' not in local_var_params or
                local_var_params['partition_value'] is None):
            raise ValueError("Missing the required parameter `partition_value` when calling `business_object_data_update_business_object_data_attributes2`")  # noqa: E501
        # verify the required parameter 'sub_partition1_value' is set
        if ('sub_partition1_value' not in local_var_params or
                local_var_params['sub_partition1_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition1_value` when calling `business_object_data_update_business_object_data_attributes2`")  # noqa: E501
        # verify the required parameter 'sub_partition2_value' is set
        if ('sub_partition2_value' not in local_var_params or
                local_var_params['sub_partition2_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition2_value` when calling `business_object_data_update_business_object_data_attributes2`")  # noqa: E501
        # verify the required parameter 'business_object_data_version' is set
        if ('business_object_data_version' not in local_var_params or
                local_var_params['business_object_data_version'] is None):
            raise ValueError("Missing the required parameter `business_object_data_version` when calling `business_object_data_update_business_object_data_attributes2`")  # noqa: E501
        # verify the required parameter 'business_object_data_attributes_update_request' is set
        if ('business_object_data_attributes_update_request' not in local_var_params or
                local_var_params['business_object_data_attributes_update_request'] is None):
            raise ValueError("Missing the required parameter `business_object_data_attributes_update_request` when calling `business_object_data_update_business_object_data_attributes2`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            path_params['businessObjectFormatVersion'] = local_var_params['business_object_format_version']  # noqa: E501
        if 'partition_value' in local_var_params:
            path_params['partitionValue'] = local_var_params['partition_value']  # noqa: E501
        if 'sub_partition1_value' in local_var_params:
            path_params['subPartition1Value'] = local_var_params['sub_partition1_value']  # noqa: E501
        if 'sub_partition2_value' in local_var_params:
            path_params['subPartition2Value'] = local_var_params['sub_partition2_value']  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            path_params['businessObjectDataVersion'] = local_var_params['business_object_data_version']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'business_object_data_attributes_update_request' in local_var_params:
            body_params = local_var_params['business_object_data_attributes_update_request']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # HTTP header `Content-Type`
        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectDataAttributes/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/businessObjectFormatVersions/{businessObjectFormatVersion}/partitionValues/{partitionValue}/subPartition1Values/{subPartition1Value}/subPartition2Values/{subPartition2Value}/businessObjectDataVersions/{businessObjectDataVersion}', 'PUT',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectData',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_update_business_object_data_attributes3(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs):  # noqa: E501
        """updateBusinessObjectDataAttributes  # noqa: E501

        Updates attributes for the business object data with 3 subpartition values. <p>Requires WRITE or WRITE_ATTRIBUTE permission on namespace</p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_update_business_object_data_attributes3(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, business_object_data_version, business_object_data_attributes_update_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the primary partition value of the business object data (required)
        :param str sub_partition1_value: the 1st subpartition value of the business object data (required)
        :param str sub_partition2_value: the 2nd subpartition value of the business object data (required)
        :param str sub_partition3_value: the 3rd subpartition value of the business object data (required)
        :param int business_object_data_version: the business object data version (required)
        :param BusinessObjectDataAttributesUpdateRequest business_object_data_attributes_update_request: the information needed to update the business object data attributes (required)
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_update_business_object_data_attributes3_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_update_business_object_data_attributes3_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs)  # noqa: E501
            return data

    def business_object_data_update_business_object_data_attributes3_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs):  # noqa: E501
        """updateBusinessObjectDataAttributes  # noqa: E501

        Updates attributes for the business object data with 3 subpartition values. <p>Requires WRITE or WRITE_ATTRIBUTE permission on namespace</p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_update_business_object_data_attributes3_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, business_object_data_version, business_object_data_attributes_update_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the primary partition value of the business object data (required)
        :param str sub_partition1_value: the 1st subpartition value of the business object data (required)
        :param str sub_partition2_value: the 2nd subpartition value of the business object data (required)
        :param str sub_partition3_value: the 3rd subpartition value of the business object data (required)
        :param int business_object_data_version: the business object data version (required)
        :param BusinessObjectDataAttributesUpdateRequest business_object_data_attributes_update_request: the information needed to update the business object data attributes (required)
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'business_object_format_version', 'partition_value', 'sub_partition1_value', 'sub_partition2_value', 'sub_partition3_value', 'business_object_data_version', 'business_object_data_attributes_update_request']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_update_business_object_data_attributes3" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_update_business_object_data_attributes3`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_update_business_object_data_attributes3`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_update_business_object_data_attributes3`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_update_business_object_data_attributes3`")  # noqa: E501
        # verify the required parameter 'business_object_format_version' is set
        if ('business_object_format_version' not in local_var_params or
                local_var_params['business_object_format_version'] is None):
            raise ValueError("Missing the required parameter `business_object_format_version` when calling `business_object_data_update_business_object_data_attributes3`")  # noqa: E501
        # verify the required parameter 'partition_value' is set
        if ('partition_value' not in local_var_params or
                local_var_params['partition_value'] is None):
            raise ValueError("Missing the required parameter `partition_value` when calling `business_object_data_update_business_object_data_attributes3`")  # noqa: E501
        # verify the required parameter 'sub_partition1_value' is set
        if ('sub_partition1_value' not in local_var_params or
                local_var_params['sub_partition1_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition1_value` when calling `business_object_data_update_business_object_data_attributes3`")  # noqa: E501
        # verify the required parameter 'sub_partition2_value' is set
        if ('sub_partition2_value' not in local_var_params or
                local_var_params['sub_partition2_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition2_value` when calling `business_object_data_update_business_object_data_attributes3`")  # noqa: E501
        # verify the required parameter 'sub_partition3_value' is set
        if ('sub_partition3_value' not in local_var_params or
                local_var_params['sub_partition3_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition3_value` when calling `business_object_data_update_business_object_data_attributes3`")  # noqa: E501
        # verify the required parameter 'business_object_data_version' is set
        if ('business_object_data_version' not in local_var_params or
                local_var_params['business_object_data_version'] is None):
            raise ValueError("Missing the required parameter `business_object_data_version` when calling `business_object_data_update_business_object_data_attributes3`")  # noqa: E501
        # verify the required parameter 'business_object_data_attributes_update_request' is set
        if ('business_object_data_attributes_update_request' not in local_var_params or
                local_var_params['business_object_data_attributes_update_request'] is None):
            raise ValueError("Missing the required parameter `business_object_data_attributes_update_request` when calling `business_object_data_update_business_object_data_attributes3`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            path_params['businessObjectFormatVersion'] = local_var_params['business_object_format_version']  # noqa: E501
        if 'partition_value' in local_var_params:
            path_params['partitionValue'] = local_var_params['partition_value']  # noqa: E501
        if 'sub_partition1_value' in local_var_params:
            path_params['subPartition1Value'] = local_var_params['sub_partition1_value']  # noqa: E501
        if 'sub_partition2_value' in local_var_params:
            path_params['subPartition2Value'] = local_var_params['sub_partition2_value']  # noqa: E501
        if 'sub_partition3_value' in local_var_params:
            path_params['subPartition3Value'] = local_var_params['sub_partition3_value']  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            path_params['businessObjectDataVersion'] = local_var_params['business_object_data_version']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'business_object_data_attributes_update_request' in local_var_params:
            body_params = local_var_params['business_object_data_attributes_update_request']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # HTTP header `Content-Type`
        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectDataAttributes/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/businessObjectFormatVersions/{businessObjectFormatVersion}/partitionValues/{partitionValue}/subPartition1Values/{subPartition1Value}/subPartition2Values/{subPartition2Value}/subPartition3Values/{subPartition3Value}/businessObjectDataVersions/{businessObjectDataVersion}', 'PUT',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectData',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_update_business_object_data_attributes4(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, sub_partition4_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs):  # noqa: E501
        """updateBusinessObjectDataAttributes  # noqa: E501

        Updates attributes for the business object data with 4 subpartition values. <p>Requires WRITE or WRITE_ATTRIBUTE permission on namespace</p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_update_business_object_data_attributes4(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, sub_partition4_value, business_object_data_version, business_object_data_attributes_update_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the primary partition value of the business object data (required)
        :param str sub_partition1_value: the 1st subpartition value of the business object data (required)
        :param str sub_partition2_value: the 2nd subpartition value of the business object data (required)
        :param str sub_partition3_value: the 3rd subpartition value of the business object data (required)
        :param str sub_partition4_value: the 4th subpartition value of the business object data (required)
        :param int business_object_data_version: the business object data version (required)
        :param BusinessObjectDataAttributesUpdateRequest business_object_data_attributes_update_request: the information needed to update the business object data attributes (required)
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_update_business_object_data_attributes4_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, sub_partition4_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_update_business_object_data_attributes4_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, sub_partition4_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs)  # noqa: E501
            return data

    def business_object_data_update_business_object_data_attributes4_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, sub_partition4_value, business_object_data_version, business_object_data_attributes_update_request, **kwargs):  # noqa: E501
        """updateBusinessObjectDataAttributes  # noqa: E501

        Updates attributes for the business object data with 4 subpartition values. <p>Requires WRITE or WRITE_ATTRIBUTE permission on namespace</p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_update_business_object_data_attributes4_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, sub_partition1_value, sub_partition2_value, sub_partition3_value, sub_partition4_value, business_object_data_version, business_object_data_attributes_update_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the business object definition name (required)
        :param str business_object_format_usage: the business object format usage (required)
        :param str business_object_format_file_type: the business object format file type (required)
        :param int business_object_format_version: the business object format version (required)
        :param str partition_value: the primary partition value of the business object data (required)
        :param str sub_partition1_value: the 1st subpartition value of the business object data (required)
        :param str sub_partition2_value: the 2nd subpartition value of the business object data (required)
        :param str sub_partition3_value: the 3rd subpartition value of the business object data (required)
        :param str sub_partition4_value: the 4th subpartition value of the business object data (required)
        :param int business_object_data_version: the business object data version (required)
        :param BusinessObjectDataAttributesUpdateRequest business_object_data_attributes_update_request: the information needed to update the business object data attributes (required)
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'business_object_format_version', 'partition_value', 'sub_partition1_value', 'sub_partition2_value', 'sub_partition3_value', 'sub_partition4_value', 'business_object_data_version', 'business_object_data_attributes_update_request']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_update_business_object_data_attributes4" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_update_business_object_data_attributes4`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_update_business_object_data_attributes4`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_update_business_object_data_attributes4`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_update_business_object_data_attributes4`")  # noqa: E501
        # verify the required parameter 'business_object_format_version' is set
        if ('business_object_format_version' not in local_var_params or
                local_var_params['business_object_format_version'] is None):
            raise ValueError("Missing the required parameter `business_object_format_version` when calling `business_object_data_update_business_object_data_attributes4`")  # noqa: E501
        # verify the required parameter 'partition_value' is set
        if ('partition_value' not in local_var_params or
                local_var_params['partition_value'] is None):
            raise ValueError("Missing the required parameter `partition_value` when calling `business_object_data_update_business_object_data_attributes4`")  # noqa: E501
        # verify the required parameter 'sub_partition1_value' is set
        if ('sub_partition1_value' not in local_var_params or
                local_var_params['sub_partition1_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition1_value` when calling `business_object_data_update_business_object_data_attributes4`")  # noqa: E501
        # verify the required parameter 'sub_partition2_value' is set
        if ('sub_partition2_value' not in local_var_params or
                local_var_params['sub_partition2_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition2_value` when calling `business_object_data_update_business_object_data_attributes4`")  # noqa: E501
        # verify the required parameter 'sub_partition3_value' is set
        if ('sub_partition3_value' not in local_var_params or
                local_var_params['sub_partition3_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition3_value` when calling `business_object_data_update_business_object_data_attributes4`")  # noqa: E501
        # verify the required parameter 'sub_partition4_value' is set
        if ('sub_partition4_value' not in local_var_params or
                local_var_params['sub_partition4_value'] is None):
            raise ValueError("Missing the required parameter `sub_partition4_value` when calling `business_object_data_update_business_object_data_attributes4`")  # noqa: E501
        # verify the required parameter 'business_object_data_version' is set
        if ('business_object_data_version' not in local_var_params or
                local_var_params['business_object_data_version'] is None):
            raise ValueError("Missing the required parameter `business_object_data_version` when calling `business_object_data_update_business_object_data_attributes4`")  # noqa: E501
        # verify the required parameter 'business_object_data_attributes_update_request' is set
        if ('business_object_data_attributes_update_request' not in local_var_params or
                local_var_params['business_object_data_attributes_update_request'] is None):
            raise ValueError("Missing the required parameter `business_object_data_attributes_update_request` when calling `business_object_data_update_business_object_data_attributes4`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            path_params['businessObjectFormatVersion'] = local_var_params['business_object_format_version']  # noqa: E501
        if 'partition_value' in local_var_params:
            path_params['partitionValue'] = local_var_params['partition_value']  # noqa: E501
        if 'sub_partition1_value' in local_var_params:
            path_params['subPartition1Value'] = local_var_params['sub_partition1_value']  # noqa: E501
        if 'sub_partition2_value' in local_var_params:
            path_params['subPartition2Value'] = local_var_params['sub_partition2_value']  # noqa: E501
        if 'sub_partition3_value' in local_var_params:
            path_params['subPartition3Value'] = local_var_params['sub_partition3_value']  # noqa: E501
        if 'sub_partition4_value' in local_var_params:
            path_params['subPartition4Value'] = local_var_params['sub_partition4_value']  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            path_params['businessObjectDataVersion'] = local_var_params['business_object_data_version']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'business_object_data_attributes_update_request' in local_var_params:
            body_params = local_var_params['business_object_data_attributes_update_request']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # HTTP header `Content-Type`
        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectDataAttributes/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/businessObjectFormatVersions/{businessObjectFormatVersion}/partitionValues/{partitionValue}/subPartition1Values/{subPartition1Value}/subPartition2Values/{subPartition2Value}/subPartition3Values/{subPartition3Value}/subPartition4Values/{subPartition4Value}/businessObjectDataVersions/{businessObjectDataVersion}', 'PUT',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectData',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_update_business_object_data_legal_hold(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_legal_hold_update_request, **kwargs):  # noqa: E501
        """updateBusinessObjectDataLegalHold  # noqa: E501

        Updates legal hold status for an existing business object data by alternate key. <p>Requires WRITE permission on namespace</p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_update_business_object_data_legal_hold(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_legal_hold_update_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the name of the business object definition (required)
        :param str business_object_format_usage: the usage of the business object format (required)
        :param str business_object_format_file_type: the file type of the business object format (required)
        :param int business_object_format_version: the version of the business object format (required)
        :param str partition_value: the primary partition value (required)
        :param int business_object_data_version: the version of the business object data (required)
        :param BusinessObjectDataLegalHoldUpdateRequest business_object_data_legal_hold_update_request: the information needed to update parents of the business object data (required)
        :param str sub_partition_values: the list of sub-partition values delimited by \"|\" (delimiter can be escaped by \"\\\")
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_update_business_object_data_legal_hold_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_legal_hold_update_request, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_update_business_object_data_legal_hold_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_legal_hold_update_request, **kwargs)  # noqa: E501
            return data

    def business_object_data_update_business_object_data_legal_hold_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_legal_hold_update_request, **kwargs):  # noqa: E501
        """updateBusinessObjectDataLegalHold  # noqa: E501

        Updates legal hold status for an existing business object data by alternate key. <p>Requires WRITE permission on namespace</p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_update_business_object_data_legal_hold_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_legal_hold_update_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the name of the business object definition (required)
        :param str business_object_format_usage: the usage of the business object format (required)
        :param str business_object_format_file_type: the file type of the business object format (required)
        :param int business_object_format_version: the version of the business object format (required)
        :param str partition_value: the primary partition value (required)
        :param int business_object_data_version: the version of the business object data (required)
        :param BusinessObjectDataLegalHoldUpdateRequest business_object_data_legal_hold_update_request: the information needed to update parents of the business object data (required)
        :param str sub_partition_values: the list of sub-partition values delimited by \"|\" (delimiter can be escaped by \"\\\")
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'business_object_format_version', 'partition_value', 'business_object_data_version', 'business_object_data_legal_hold_update_request', 'sub_partition_values']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_update_business_object_data_legal_hold" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_update_business_object_data_legal_hold`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_update_business_object_data_legal_hold`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_update_business_object_data_legal_hold`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_update_business_object_data_legal_hold`")  # noqa: E501
        # verify the required parameter 'business_object_format_version' is set
        if ('business_object_format_version' not in local_var_params or
                local_var_params['business_object_format_version'] is None):
            raise ValueError("Missing the required parameter `business_object_format_version` when calling `business_object_data_update_business_object_data_legal_hold`")  # noqa: E501
        # verify the required parameter 'partition_value' is set
        if ('partition_value' not in local_var_params or
                local_var_params['partition_value'] is None):
            raise ValueError("Missing the required parameter `partition_value` when calling `business_object_data_update_business_object_data_legal_hold`")  # noqa: E501
        # verify the required parameter 'business_object_data_version' is set
        if ('business_object_data_version' not in local_var_params or
                local_var_params['business_object_data_version'] is None):
            raise ValueError("Missing the required parameter `business_object_data_version` when calling `business_object_data_update_business_object_data_legal_hold`")  # noqa: E501
        # verify the required parameter 'business_object_data_legal_hold_update_request' is set
        if ('business_object_data_legal_hold_update_request' not in local_var_params or
                local_var_params['business_object_data_legal_hold_update_request'] is None):
            raise ValueError("Missing the required parameter `business_object_data_legal_hold_update_request` when calling `business_object_data_update_business_object_data_legal_hold`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            path_params['businessObjectFormatVersion'] = local_var_params['business_object_format_version']  # noqa: E501
        if 'partition_value' in local_var_params:
            path_params['partitionValue'] = local_var_params['partition_value']  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            path_params['businessObjectDataVersion'] = local_var_params['business_object_data_version']  # noqa: E501

        query_params = []
        if 'sub_partition_values' in local_var_params:
            query_params.append(('subPartitionValues', local_var_params['sub_partition_values']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'business_object_data_legal_hold_update_request' in local_var_params:
            body_params = local_var_params['business_object_data_legal_hold_update_request']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # HTTP header `Content-Type`
        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectDataLegalHold/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/businessObjectFormatVersions/{businessObjectFormatVersion}/partitionValues/{partitionValue}/businessObjectDataVersions/{businessObjectDataVersion}', 'PUT',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectData',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_update_business_object_data_parents(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_parents_update_request, **kwargs):  # noqa: E501
        """updateBusinessObjectDataParents  # noqa: E501

        Updates parents information for an existing business object data by alternate key. <p>Requires WRITE permission on namespace</p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_update_business_object_data_parents(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_parents_update_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the name of the business object definition (required)
        :param str business_object_format_usage: the usage of the business object format (required)
        :param str business_object_format_file_type: the file type of the business object format (required)
        :param int business_object_format_version: the version of the business object format (required)
        :param str partition_value: the primary partition value (required)
        :param int business_object_data_version: the version of the business object data (required)
        :param BusinessObjectDataParentsUpdateRequest business_object_data_parents_update_request: the information needed to update parents of the business object data (required)
        :param str sub_partition_values: the list of sub-partition values delimited by \"|\" (delimiter can be escaped by \"\\\")
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_update_business_object_data_parents_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_parents_update_request, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_update_business_object_data_parents_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_parents_update_request, **kwargs)  # noqa: E501
            return data

    def business_object_data_update_business_object_data_parents_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_parents_update_request, **kwargs):  # noqa: E501
        """updateBusinessObjectDataParents  # noqa: E501

        Updates parents information for an existing business object data by alternate key. <p>Requires WRITE permission on namespace</p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_update_business_object_data_parents_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_parents_update_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace (required)
        :param str business_object_definition_name: the name of the business object definition (required)
        :param str business_object_format_usage: the usage of the business object format (required)
        :param str business_object_format_file_type: the file type of the business object format (required)
        :param int business_object_format_version: the version of the business object format (required)
        :param str partition_value: the primary partition value (required)
        :param int business_object_data_version: the version of the business object data (required)
        :param BusinessObjectDataParentsUpdateRequest business_object_data_parents_update_request: the information needed to update parents of the business object data (required)
        :param str sub_partition_values: the list of sub-partition values delimited by \"|\" (delimiter can be escaped by \"\\\")
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'business_object_format_version', 'partition_value', 'business_object_data_version', 'business_object_data_parents_update_request', 'sub_partition_values']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_update_business_object_data_parents" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_update_business_object_data_parents`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_update_business_object_data_parents`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_update_business_object_data_parents`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_update_business_object_data_parents`")  # noqa: E501
        # verify the required parameter 'business_object_format_version' is set
        if ('business_object_format_version' not in local_var_params or
                local_var_params['business_object_format_version'] is None):
            raise ValueError("Missing the required parameter `business_object_format_version` when calling `business_object_data_update_business_object_data_parents`")  # noqa: E501
        # verify the required parameter 'partition_value' is set
        if ('partition_value' not in local_var_params or
                local_var_params['partition_value'] is None):
            raise ValueError("Missing the required parameter `partition_value` when calling `business_object_data_update_business_object_data_parents`")  # noqa: E501
        # verify the required parameter 'business_object_data_version' is set
        if ('business_object_data_version' not in local_var_params or
                local_var_params['business_object_data_version'] is None):
            raise ValueError("Missing the required parameter `business_object_data_version` when calling `business_object_data_update_business_object_data_parents`")  # noqa: E501
        # verify the required parameter 'business_object_data_parents_update_request' is set
        if ('business_object_data_parents_update_request' not in local_var_params or
                local_var_params['business_object_data_parents_update_request'] is None):
            raise ValueError("Missing the required parameter `business_object_data_parents_update_request` when calling `business_object_data_update_business_object_data_parents`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            path_params['businessObjectFormatVersion'] = local_var_params['business_object_format_version']  # noqa: E501
        if 'partition_value' in local_var_params:
            path_params['partitionValue'] = local_var_params['partition_value']  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            path_params['businessObjectDataVersion'] = local_var_params['business_object_data_version']  # noqa: E501

        query_params = []
        if 'sub_partition_values' in local_var_params:
            query_params.append(('subPartitionValues', local_var_params['sub_partition_values']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'business_object_data_parents_update_request' in local_var_params:
            body_params = local_var_params['business_object_data_parents_update_request']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # HTTP header `Content-Type`
        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectDataParents/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/businessObjectFormatVersions/{businessObjectFormatVersion}/partitionValues/{partitionValue}/businessObjectDataVersions/{businessObjectDataVersion}', 'PUT',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectData',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)

    def business_object_data_update_business_object_data_retention_information(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_retention_information_update_request, **kwargs):  # noqa: E501
        """updateBusinessObjectDataRetentionInformation  # noqa: E501

        Updates retention information for an existing business object data. <p>Requires WRITE permission on namespace</p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_update_business_object_data_retention_information(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_retention_information_update_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace of the business object definition (required)
        :param str business_object_definition_name: the name of the business object definition (required)
        :param str business_object_format_usage: the usage of the business object format (required)
        :param str business_object_format_file_type: the file type of the business object format (required)
        :param int business_object_format_version: the version of the business object format (required)
        :param str partition_value: the primary partition value (required)
        :param int business_object_data_version: the version of the business object data (required)
        :param BusinessObjectDataRetentionInformationUpdateRequest business_object_data_retention_information_update_request: the business object data retention information update request (required)
        :param str sub_partition_values: the list of sub-partition values delimited by \"|\" (delimiter can be escaped by \"\\\")
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.business_object_data_update_business_object_data_retention_information_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_retention_information_update_request, **kwargs)  # noqa: E501
        else:
            (data) = self.business_object_data_update_business_object_data_retention_information_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_retention_information_update_request, **kwargs)  # noqa: E501
            return data

    def business_object_data_update_business_object_data_retention_information_with_http_info(self, namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_retention_information_update_request, **kwargs):  # noqa: E501
        """updateBusinessObjectDataRetentionInformation  # noqa: E501

        Updates retention information for an existing business object data. <p>Requires WRITE permission on namespace</p>  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.business_object_data_update_business_object_data_retention_information_with_http_info(namespace, business_object_definition_name, business_object_format_usage, business_object_format_file_type, business_object_format_version, partition_value, business_object_data_version, business_object_data_retention_information_update_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param str namespace: the namespace of the business object definition (required)
        :param str business_object_definition_name: the name of the business object definition (required)
        :param str business_object_format_usage: the usage of the business object format (required)
        :param str business_object_format_file_type: the file type of the business object format (required)
        :param int business_object_format_version: the version of the business object format (required)
        :param str partition_value: the primary partition value (required)
        :param int business_object_data_version: the version of the business object data (required)
        :param BusinessObjectDataRetentionInformationUpdateRequest business_object_data_retention_information_update_request: the business object data retention information update request (required)
        :param str sub_partition_values: the list of sub-partition values delimited by \"|\" (delimiter can be escaped by \"\\\")
        :return: BusinessObjectData
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['namespace', 'business_object_definition_name', 'business_object_format_usage', 'business_object_format_file_type', 'business_object_format_version', 'partition_value', 'business_object_data_version', 'business_object_data_retention_information_update_request', 'sub_partition_values']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        for key, val in six.iteritems(local_var_params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_data_update_business_object_data_retention_information" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'namespace' is set
        if ('namespace' not in local_var_params or
                local_var_params['namespace'] is None):
            raise ValueError("Missing the required parameter `namespace` when calling `business_object_data_update_business_object_data_retention_information`")  # noqa: E501
        # verify the required parameter 'business_object_definition_name' is set
        if ('business_object_definition_name' not in local_var_params or
                local_var_params['business_object_definition_name'] is None):
            raise ValueError("Missing the required parameter `business_object_definition_name` when calling `business_object_data_update_business_object_data_retention_information`")  # noqa: E501
        # verify the required parameter 'business_object_format_usage' is set
        if ('business_object_format_usage' not in local_var_params or
                local_var_params['business_object_format_usage'] is None):
            raise ValueError("Missing the required parameter `business_object_format_usage` when calling `business_object_data_update_business_object_data_retention_information`")  # noqa: E501
        # verify the required parameter 'business_object_format_file_type' is set
        if ('business_object_format_file_type' not in local_var_params or
                local_var_params['business_object_format_file_type'] is None):
            raise ValueError("Missing the required parameter `business_object_format_file_type` when calling `business_object_data_update_business_object_data_retention_information`")  # noqa: E501
        # verify the required parameter 'business_object_format_version' is set
        if ('business_object_format_version' not in local_var_params or
                local_var_params['business_object_format_version'] is None):
            raise ValueError("Missing the required parameter `business_object_format_version` when calling `business_object_data_update_business_object_data_retention_information`")  # noqa: E501
        # verify the required parameter 'partition_value' is set
        if ('partition_value' not in local_var_params or
                local_var_params['partition_value'] is None):
            raise ValueError("Missing the required parameter `partition_value` when calling `business_object_data_update_business_object_data_retention_information`")  # noqa: E501
        # verify the required parameter 'business_object_data_version' is set
        if ('business_object_data_version' not in local_var_params or
                local_var_params['business_object_data_version'] is None):
            raise ValueError("Missing the required parameter `business_object_data_version` when calling `business_object_data_update_business_object_data_retention_information`")  # noqa: E501
        # verify the required parameter 'business_object_data_retention_information_update_request' is set
        if ('business_object_data_retention_information_update_request' not in local_var_params or
                local_var_params['business_object_data_retention_information_update_request'] is None):
            raise ValueError("Missing the required parameter `business_object_data_retention_information_update_request` when calling `business_object_data_update_business_object_data_retention_information`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'namespace' in local_var_params:
            path_params['namespace'] = local_var_params['namespace']  # noqa: E501
        if 'business_object_definition_name' in local_var_params:
            path_params['businessObjectDefinitionName'] = local_var_params['business_object_definition_name']  # noqa: E501
        if 'business_object_format_usage' in local_var_params:
            path_params['businessObjectFormatUsage'] = local_var_params['business_object_format_usage']  # noqa: E501
        if 'business_object_format_file_type' in local_var_params:
            path_params['businessObjectFormatFileType'] = local_var_params['business_object_format_file_type']  # noqa: E501
        if 'business_object_format_version' in local_var_params:
            path_params['businessObjectFormatVersion'] = local_var_params['business_object_format_version']  # noqa: E501
        if 'partition_value' in local_var_params:
            path_params['partitionValue'] = local_var_params['partition_value']  # noqa: E501
        if 'business_object_data_version' in local_var_params:
            path_params['businessObjectDataVersion'] = local_var_params['business_object_data_version']  # noqa: E501

        query_params = []
        if 'sub_partition_values' in local_var_params:
            query_params.append(('subPartitionValues', local_var_params['sub_partition_values']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        if 'business_object_data_retention_information_update_request' in local_var_params:
            body_params = local_var_params['business_object_data_retention_information_update_request']
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.select_header_accept(
            ['application/json', 'application/xml'])  # noqa: E501

        # HTTP header `Content-Type`
        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
            ['application/json', 'application/xml'])  # noqa: E501

        # Authentication setting
        auth_settings = ['basicAuth', 'oauthAuth']  # noqa: E501

        return self.api_client.call_api(
            '/businessObjectDataRetentionInformation/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}/businessObjectFormatVersions/{businessObjectFormatVersion}/partitionValues/{partitionValue}/businessObjectDataVersions/{businessObjectDataVersion}', 'PUT',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BusinessObjectData',  # noqa: E501
            auth_settings=auth_settings,
            async_req=local_var_params.get('async_req'),
            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
            _preload_content=local_var_params.get('_preload_content', True),
            _request_timeout=local_var_params.get('_request_timeout'),
            collection_formats=collection_formats)
