# coding: utf-8

"""
    Cherwell REST API

    Unofficial Python Cherwell REST API library.  # noqa: E501

    The version of the OpenAPI document: 9.3.2
    Contact: See AUTHORS.
    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 pycherwell.api_client import ApiClient
from pycherwell.exceptions import (
    ApiTypeError,
    ApiValueError
)


class BusinessObjectApi(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_delete_business_object_batch_v1(self, batch_delete_request, **kwargs):  # noqa: E501
        """Delete Business Objects in a batch  # noqa: E501

        Operation to delete a batch of Business Objects.  # 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_delete_business_object_batch_v1(batch_delete_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param BatchDeleteRequest batch_delete_request: Specify an array of Business Object IDs and record IDs or public IDs. Use a flag to stop on error or continue on error. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: BatchDeleteResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_delete_business_object_batch_v1_with_http_info(batch_delete_request, **kwargs)  # noqa: E501

    def business_object_delete_business_object_batch_v1_with_http_info(self, batch_delete_request, **kwargs):  # noqa: E501
        """Delete Business Objects in a batch  # noqa: E501

        Operation to delete a batch of Business Objects.  # 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_delete_business_object_batch_v1_with_http_info(batch_delete_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param BatchDeleteRequest batch_delete_request: Specify an array of Business Object IDs and record IDs or public IDs. Use a flag to stop on error or continue on error. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(BatchDeleteResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['batch_delete_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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_delete_business_object_batch_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'batch_delete_request' is set
        if self.api_client.client_side_validation and ('batch_delete_request' not in local_var_params or  # noqa: E501
                                                        local_var_params['batch_delete_request'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `batch_delete_request` when calling `business_object_delete_business_object_batch_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/deletebusinessobjectbatch', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BatchDeleteResponse',  # 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_delete_business_object_by_public_id_v1(self, busobid, publicid, **kwargs):  # noqa: E501
        """Delete a Business Object by public ID  # noqa: E501

        Operation to delete a Business Object by Business Object ID.  # 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_delete_business_object_by_public_id_v1(busobid, publicid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobid: Specify the Business Object ID. (required)
        :param str publicid: Specify the Business Object public ID. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: DeleteResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_delete_business_object_by_public_id_v1_with_http_info(busobid, publicid, **kwargs)  # noqa: E501

    def business_object_delete_business_object_by_public_id_v1_with_http_info(self, busobid, publicid, **kwargs):  # noqa: E501
        """Delete a Business Object by public ID  # noqa: E501

        Operation to delete a Business Object by Business Object ID.  # 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_delete_business_object_by_public_id_v1_with_http_info(busobid, publicid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobid: Specify the Business Object ID. (required)
        :param str publicid: Specify the Business Object public ID. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(DeleteResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['busobid', 'publicid']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_delete_business_object_by_public_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'busobid' is set
        if self.api_client.client_side_validation and ('busobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobid` when calling `business_object_delete_business_object_by_public_id_v1`")  # noqa: E501
        # verify the required parameter 'publicid' is set
        if self.api_client.client_side_validation and ('publicid' not in local_var_params or  # noqa: E501
                                                        local_var_params['publicid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `publicid` when calling `business_object_delete_business_object_by_public_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'busobid' in local_var_params:
            path_params['busobid'] = local_var_params['busobid']  # noqa: E501
        if 'publicid' in local_var_params:
            path_params['publicid'] = local_var_params['publicid']  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/deletebusinessobject/busobid/{busobid}/publicid/{publicid}', 'DELETE',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='DeleteResponse',  # 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_delete_business_object_by_rec_id_v1(self, busobid, busobrecid, **kwargs):  # noqa: E501
        """Delete a Business Object by record ID  # noqa: E501

        Operation to delete a single Business Object.  # 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_delete_business_object_by_rec_id_v1(busobid, busobrecid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobid: Specify the Business Object ID. (required)
        :param str busobrecid:  Specify the Business Object record ID. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: DeleteResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_delete_business_object_by_rec_id_v1_with_http_info(busobid, busobrecid, **kwargs)  # noqa: E501

    def business_object_delete_business_object_by_rec_id_v1_with_http_info(self, busobid, busobrecid, **kwargs):  # noqa: E501
        """Delete a Business Object by record ID  # noqa: E501

        Operation to delete a single Business Object.  # 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_delete_business_object_by_rec_id_v1_with_http_info(busobid, busobrecid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobid: Specify the Business Object ID. (required)
        :param str busobrecid:  Specify the Business Object record ID. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(DeleteResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['busobid', 'busobrecid']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_delete_business_object_by_rec_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'busobid' is set
        if self.api_client.client_side_validation and ('busobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobid` when calling `business_object_delete_business_object_by_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'busobrecid' is set
        if self.api_client.client_side_validation and ('busobrecid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobrecid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobrecid` when calling `business_object_delete_business_object_by_rec_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'busobid' in local_var_params:
            path_params['busobid'] = local_var_params['busobid']  # noqa: E501
        if 'busobrecid' in local_var_params:
            path_params['busobrecid'] = local_var_params['busobrecid']  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/deletebusinessobject/busobid/{busobid}/busobrecid/{busobrecid}', 'DELETE',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='DeleteResponse',  # 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_delete_related_business_object_by_public_id_v1(self, parentbusobid, parentbusobrecid, relationshipid, publicid, **kwargs):  # noqa: E501
        """Delete a related Business Object by public ID  # noqa: E501

        Operation to delete a related Business Object. (Use \"Unlink Related Business Object\" to unlink two Business Objects rather that deleting the related Business Object.)  # 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_delete_related_business_object_by_public_id_v1(parentbusobid, parentbusobrecid, relationshipid, publicid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str parentbusobid: Specify the Business Object ID for the parent Business Object. (required)
        :param str parentbusobrecid: Specify the record ID for the parent Business Object (required)
        :param str relationshipid: Specify the Relationship ID for the related Business Object you want to delete. (required)
        :param str publicid: Specify the public ID for the related Business Object you want to delete. Use only for Business Objects with unique public IDs. Use \"Delete a related Business Object by record ID\" when public IDs are not unique. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: RelatedBusinessObjectResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_delete_related_business_object_by_public_id_v1_with_http_info(parentbusobid, parentbusobrecid, relationshipid, publicid, **kwargs)  # noqa: E501

    def business_object_delete_related_business_object_by_public_id_v1_with_http_info(self, parentbusobid, parentbusobrecid, relationshipid, publicid, **kwargs):  # noqa: E501
        """Delete a related Business Object by public ID  # noqa: E501

        Operation to delete a related Business Object. (Use \"Unlink Related Business Object\" to unlink two Business Objects rather that deleting the related Business Object.)  # 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_delete_related_business_object_by_public_id_v1_with_http_info(parentbusobid, parentbusobrecid, relationshipid, publicid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str parentbusobid: Specify the Business Object ID for the parent Business Object. (required)
        :param str parentbusobrecid: Specify the record ID for the parent Business Object (required)
        :param str relationshipid: Specify the Relationship ID for the related Business Object you want to delete. (required)
        :param str publicid: Specify the public ID for the related Business Object you want to delete. Use only for Business Objects with unique public IDs. Use \"Delete a related Business Object by record ID\" when public IDs are not unique. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(RelatedBusinessObjectResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['parentbusobid', 'parentbusobrecid', 'relationshipid', 'publicid']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_delete_related_business_object_by_public_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'parentbusobid' is set
        if self.api_client.client_side_validation and ('parentbusobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['parentbusobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `parentbusobid` when calling `business_object_delete_related_business_object_by_public_id_v1`")  # noqa: E501
        # verify the required parameter 'parentbusobrecid' is set
        if self.api_client.client_side_validation and ('parentbusobrecid' not in local_var_params or  # noqa: E501
                                                        local_var_params['parentbusobrecid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `parentbusobrecid` when calling `business_object_delete_related_business_object_by_public_id_v1`")  # noqa: E501
        # verify the required parameter 'relationshipid' is set
        if self.api_client.client_side_validation and ('relationshipid' not in local_var_params or  # noqa: E501
                                                        local_var_params['relationshipid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `relationshipid` when calling `business_object_delete_related_business_object_by_public_id_v1`")  # noqa: E501
        # verify the required parameter 'publicid' is set
        if self.api_client.client_side_validation and ('publicid' not in local_var_params or  # noqa: E501
                                                        local_var_params['publicid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `publicid` when calling `business_object_delete_related_business_object_by_public_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'parentbusobid' in local_var_params:
            path_params['parentbusobid'] = local_var_params['parentbusobid']  # noqa: E501
        if 'parentbusobrecid' in local_var_params:
            path_params['parentbusobrecid'] = local_var_params['parentbusobrecid']  # noqa: E501
        if 'relationshipid' in local_var_params:
            path_params['relationshipid'] = local_var_params['relationshipid']  # noqa: E501
        if 'publicid' in local_var_params:
            path_params['publicid'] = local_var_params['publicid']  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/deleterelatedbusinessobject/parentbusobid/{parentbusobid}/parentbusobrecid/{parentbusobrecid}/relationshipid/{relationshipid}/publicid/{publicid}', 'DELETE',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='RelatedBusinessObjectResponse',  # 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_delete_related_business_object_by_rec_id_v1(self, parentbusobid, parentbusobrecid, relationshipid, busobrecid, **kwargs):  # noqa: E501
        """Delete a related Business Object by record ID  # noqa: E501

        Operation to delete a related Business Object. (Use \"Unlink Related Business Object\" to unlink two Business Objects rather that deleting the related Business Object.)  # 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_delete_related_business_object_by_rec_id_v1(parentbusobid, parentbusobrecid, relationshipid, busobrecid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str parentbusobid: Specify the Business Object ID for the parent Business Object. (required)
        :param str parentbusobrecid: Specify the record ID for the parent Business Object (required)
        :param str relationshipid: Specify the Relationship ID for the related Business Object you want to delete. (required)
        :param str busobrecid: Specify the record ID for the related Business Object you want to delete. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: RelatedBusinessObjectResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_delete_related_business_object_by_rec_id_v1_with_http_info(parentbusobid, parentbusobrecid, relationshipid, busobrecid, **kwargs)  # noqa: E501

    def business_object_delete_related_business_object_by_rec_id_v1_with_http_info(self, parentbusobid, parentbusobrecid, relationshipid, busobrecid, **kwargs):  # noqa: E501
        """Delete a related Business Object by record ID  # noqa: E501

        Operation to delete a related Business Object. (Use \"Unlink Related Business Object\" to unlink two Business Objects rather that deleting the related Business Object.)  # 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_delete_related_business_object_by_rec_id_v1_with_http_info(parentbusobid, parentbusobrecid, relationshipid, busobrecid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str parentbusobid: Specify the Business Object ID for the parent Business Object. (required)
        :param str parentbusobrecid: Specify the record ID for the parent Business Object (required)
        :param str relationshipid: Specify the Relationship ID for the related Business Object you want to delete. (required)
        :param str busobrecid: Specify the record ID for the related Business Object you want to delete. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(RelatedBusinessObjectResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['parentbusobid', 'parentbusobrecid', 'relationshipid', 'busobrecid']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_delete_related_business_object_by_rec_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'parentbusobid' is set
        if self.api_client.client_side_validation and ('parentbusobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['parentbusobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `parentbusobid` when calling `business_object_delete_related_business_object_by_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'parentbusobrecid' is set
        if self.api_client.client_side_validation and ('parentbusobrecid' not in local_var_params or  # noqa: E501
                                                        local_var_params['parentbusobrecid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `parentbusobrecid` when calling `business_object_delete_related_business_object_by_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'relationshipid' is set
        if self.api_client.client_side_validation and ('relationshipid' not in local_var_params or  # noqa: E501
                                                        local_var_params['relationshipid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `relationshipid` when calling `business_object_delete_related_business_object_by_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'busobrecid' is set
        if self.api_client.client_side_validation and ('busobrecid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobrecid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobrecid` when calling `business_object_delete_related_business_object_by_rec_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'parentbusobid' in local_var_params:
            path_params['parentbusobid'] = local_var_params['parentbusobid']  # noqa: E501
        if 'parentbusobrecid' in local_var_params:
            path_params['parentbusobrecid'] = local_var_params['parentbusobrecid']  # noqa: E501
        if 'relationshipid' in local_var_params:
            path_params['relationshipid'] = local_var_params['relationshipid']  # noqa: E501
        if 'busobrecid' in local_var_params:
            path_params['busobrecid'] = local_var_params['busobrecid']  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/deleterelatedbusinessobject/parentbusobid/{parentbusobid}/parentbusobrecid/{parentbusobrecid}/relationshipid/{relationshipid}/busobrecid/{busobrecid}', 'DELETE',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='RelatedBusinessObjectResponse',  # 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_field_values_lookup_v1(self, field_values_lookup_request, **kwargs):  # noqa: E501
        """Get lookup values for fields  # noqa: E501

        Operation to get potentially valid values for Business Object fields.  # 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_field_values_lookup_v1(field_values_lookup_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param FieldValuesLookupRequest field_values_lookup_request: Request object that specifies the Business Object and fields for which values are to be returned. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: FieldValuesLookupResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_field_values_lookup_v1_with_http_info(field_values_lookup_request, **kwargs)  # noqa: E501

    def business_object_field_values_lookup_v1_with_http_info(self, field_values_lookup_request, **kwargs):  # noqa: E501
        """Get lookup values for fields  # noqa: E501

        Operation to get potentially valid values for Business Object fields.  # 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_field_values_lookup_v1_with_http_info(field_values_lookup_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param FieldValuesLookupRequest field_values_lookup_request: Request object that specifies the Business Object and fields for which values are to be returned. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(FieldValuesLookupResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['field_values_lookup_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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_field_values_lookup_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'field_values_lookup_request' is set
        if self.api_client.client_side_validation and ('field_values_lookup_request' not in local_var_params or  # noqa: E501
                                                        local_var_params['field_values_lookup_request'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `field_values_lookup_request` when calling `business_object_field_values_lookup_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/fieldvalueslookup', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='FieldValuesLookupResponse',  # 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_get_business_object_attachment_by_attachment_id_v1(self, attachmentid, busobid, busobrecid, **kwargs):  # noqa: E501
        """Get an imported Business Object attachment  # noqa: E501

        Operation to get a Business Object attachment that has been imported into the system.  HTTP Range Header can be used but is optional.  # 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_get_business_object_attachment_by_attachment_id_v1(attachmentid, busobid, busobrecid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str attachmentid: Specify the internal ID of the attachment record that contains information about the imported file. (required)
        :param str busobid: Specify the Business Object ID. (required)
        :param str busobrecid: Specify the Business Object record ID. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: file
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_business_object_attachment_by_attachment_id_v1_with_http_info(attachmentid, busobid, busobrecid, **kwargs)  # noqa: E501

    def business_object_get_business_object_attachment_by_attachment_id_v1_with_http_info(self, attachmentid, busobid, busobrecid, **kwargs):  # noqa: E501
        """Get an imported Business Object attachment  # noqa: E501

        Operation to get a Business Object attachment that has been imported into the system.  HTTP Range Header can be used but is optional.  # 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_get_business_object_attachment_by_attachment_id_v1_with_http_info(attachmentid, busobid, busobrecid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str attachmentid: Specify the internal ID of the attachment record that contains information about the imported file. (required)
        :param str busobid: Specify the Business Object ID. (required)
        :param str busobrecid: Specify the Business Object record ID. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(file, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['attachmentid', 'busobid', 'busobrecid']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_business_object_attachment_by_attachment_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'attachmentid' is set
        if self.api_client.client_side_validation and ('attachmentid' not in local_var_params or  # noqa: E501
                                                        local_var_params['attachmentid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `attachmentid` when calling `business_object_get_business_object_attachment_by_attachment_id_v1`")  # noqa: E501
        # verify the required parameter 'busobid' is set
        if self.api_client.client_side_validation and ('busobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobid` when calling `business_object_get_business_object_attachment_by_attachment_id_v1`")  # noqa: E501
        # verify the required parameter 'busobrecid' is set
        if self.api_client.client_side_validation and ('busobrecid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobrecid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobrecid` when calling `business_object_get_business_object_attachment_by_attachment_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'attachmentid' in local_var_params:
            path_params['attachmentid'] = local_var_params['attachmentid']  # noqa: E501
        if 'busobid' in local_var_params:
            path_params['busobid'] = local_var_params['busobid']  # noqa: E501
        if 'busobrecid' in local_var_params:
            path_params['busobrecid'] = local_var_params['busobrecid']  # 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/octet-stream'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getbusinessobjectattachment/attachmentid/{attachmentid}/busobid/{busobid}/busobrecid/{busobrecid}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='file',  # 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_get_business_object_attachments_by_id_and_public_id_v1(self, busobid, publicid, type, attachmenttype, **kwargs):  # noqa: E501
        """Get attachments by Business Object public ID  # noqa: E501

        Operation to get attachments for a Business Object by Business Object ID and public ID.  # 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_get_business_object_attachments_by_id_and_public_id_v1(busobid, publicid, type, attachmenttype, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobid: Specify the Business Object ID. (required)
        :param str publicid: Specify the Business Object public ID for the record that contains the attachments. (required)
        :param str type: Record attachment type: </br></br>None - Not applicable to the REST API. </br></br>File - Linked files. </br></br>FileManagerFile - Imported files.</br></br>BusOb - Attached Business Objects. </br></br>History - Information about the attachment, if any is available. For example, an e-mail message may store the name of an attachment sent.</br></br>Other - Not applicable to the REST API. </br> (required)
        :param str attachmenttype: For file types, select the type of attachment: </br></br>Imported - Attachment was imported into database. </br></br>Linked - Attachment is linked to an external file. </br></br>URL - Attachment is a URL. (required)
        :param bool includelinks: Flag to include hyperlinks in results. Default is false. 
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: AttachmentsResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_business_object_attachments_by_id_and_public_id_v1_with_http_info(busobid, publicid, type, attachmenttype, **kwargs)  # noqa: E501

    def business_object_get_business_object_attachments_by_id_and_public_id_v1_with_http_info(self, busobid, publicid, type, attachmenttype, **kwargs):  # noqa: E501
        """Get attachments by Business Object public ID  # noqa: E501

        Operation to get attachments for a Business Object by Business Object ID and public ID.  # 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_get_business_object_attachments_by_id_and_public_id_v1_with_http_info(busobid, publicid, type, attachmenttype, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobid: Specify the Business Object ID. (required)
        :param str publicid: Specify the Business Object public ID for the record that contains the attachments. (required)
        :param str type: Record attachment type: </br></br>None - Not applicable to the REST API. </br></br>File - Linked files. </br></br>FileManagerFile - Imported files.</br></br>BusOb - Attached Business Objects. </br></br>History - Information about the attachment, if any is available. For example, an e-mail message may store the name of an attachment sent.</br></br>Other - Not applicable to the REST API. </br> (required)
        :param str attachmenttype: For file types, select the type of attachment: </br></br>Imported - Attachment was imported into database. </br></br>Linked - Attachment is linked to an external file. </br></br>URL - Attachment is a URL. (required)
        :param bool includelinks: Flag to include hyperlinks in results. Default is false. 
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(AttachmentsResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['busobid', 'publicid', 'type', 'attachmenttype', 'includelinks']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_business_object_attachments_by_id_and_public_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'busobid' is set
        if self.api_client.client_side_validation and ('busobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobid` when calling `business_object_get_business_object_attachments_by_id_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'publicid' is set
        if self.api_client.client_side_validation and ('publicid' not in local_var_params or  # noqa: E501
                                                        local_var_params['publicid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `publicid` when calling `business_object_get_business_object_attachments_by_id_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'type' is set
        if self.api_client.client_side_validation and ('type' not in local_var_params or  # noqa: E501
                                                        local_var_params['type'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `type` when calling `business_object_get_business_object_attachments_by_id_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'attachmenttype' is set
        if self.api_client.client_side_validation and ('attachmenttype' not in local_var_params or  # noqa: E501
                                                        local_var_params['attachmenttype'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `attachmenttype` when calling `business_object_get_business_object_attachments_by_id_and_public_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'busobid' in local_var_params:
            path_params['busobid'] = local_var_params['busobid']  # noqa: E501
        if 'publicid' in local_var_params:
            path_params['publicid'] = local_var_params['publicid']  # noqa: E501
        if 'type' in local_var_params:
            path_params['type'] = local_var_params['type']  # noqa: E501
        if 'attachmenttype' in local_var_params:
            path_params['attachmenttype'] = local_var_params['attachmenttype']  # noqa: E501

        query_params = []
        if 'includelinks' in local_var_params and local_var_params['includelinks'] is not None:  # noqa: E501
            query_params.append(('includelinks', local_var_params['includelinks']))  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getbusinessobjectattachments/busobid/{busobid}/publicid/{publicid}/type/{type}/attachmenttype/{attachmenttype}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='AttachmentsResponse',  # 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_get_business_object_attachments_by_id_and_rec_id_v1(self, busobid, busobrecid, type, attachmenttype, **kwargs):  # noqa: E501
        """Get attachments by Business Object record ID  # noqa: E501

        Operation to get attachments for a Business Object by Business Object ID and record ID.  # 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_get_business_object_attachments_by_id_and_rec_id_v1(busobid, busobrecid, type, attachmenttype, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobid: Specify the Business Object ID. (required)
        :param str busobrecid: Specify the Business Object record ID. (required)
        :param str type: Record attachment type: </br></br>None - Not applicable to the REST API. </br></br>File - Linked files. </br></br>FileManagerFile - Imported files.</br></br>BusOb - Attached Business Objects. </br></br>History - Information about the attachment, if any is available. For example, an e-mail message may store the name of an attachment sent.</br></br>Other - Not applicable to the REST API. </br> (required)
        :param str attachmenttype: For file types, select the type of attachment: </br></br>Imported - Attachment was imported into database. </br></br>Linked - Attachment is linked to an external file. </br></br>URL - Attachment is a URL. (required)
        :param bool includelinks: Flag to include hyperlinks in results. Default is false. 
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: AttachmentsResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_business_object_attachments_by_id_and_rec_id_v1_with_http_info(busobid, busobrecid, type, attachmenttype, **kwargs)  # noqa: E501

    def business_object_get_business_object_attachments_by_id_and_rec_id_v1_with_http_info(self, busobid, busobrecid, type, attachmenttype, **kwargs):  # noqa: E501
        """Get attachments by Business Object record ID  # noqa: E501

        Operation to get attachments for a Business Object by Business Object ID and record ID.  # 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_get_business_object_attachments_by_id_and_rec_id_v1_with_http_info(busobid, busobrecid, type, attachmenttype, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobid: Specify the Business Object ID. (required)
        :param str busobrecid: Specify the Business Object record ID. (required)
        :param str type: Record attachment type: </br></br>None - Not applicable to the REST API. </br></br>File - Linked files. </br></br>FileManagerFile - Imported files.</br></br>BusOb - Attached Business Objects. </br></br>History - Information about the attachment, if any is available. For example, an e-mail message may store the name of an attachment sent.</br></br>Other - Not applicable to the REST API. </br> (required)
        :param str attachmenttype: For file types, select the type of attachment: </br></br>Imported - Attachment was imported into database. </br></br>Linked - Attachment is linked to an external file. </br></br>URL - Attachment is a URL. (required)
        :param bool includelinks: Flag to include hyperlinks in results. Default is false. 
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(AttachmentsResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['busobid', 'busobrecid', 'type', 'attachmenttype', 'includelinks']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_business_object_attachments_by_id_and_rec_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'busobid' is set
        if self.api_client.client_side_validation and ('busobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobid` when calling `business_object_get_business_object_attachments_by_id_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'busobrecid' is set
        if self.api_client.client_side_validation and ('busobrecid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobrecid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobrecid` when calling `business_object_get_business_object_attachments_by_id_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'type' is set
        if self.api_client.client_side_validation and ('type' not in local_var_params or  # noqa: E501
                                                        local_var_params['type'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `type` when calling `business_object_get_business_object_attachments_by_id_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'attachmenttype' is set
        if self.api_client.client_side_validation and ('attachmenttype' not in local_var_params or  # noqa: E501
                                                        local_var_params['attachmenttype'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `attachmenttype` when calling `business_object_get_business_object_attachments_by_id_and_rec_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'busobid' in local_var_params:
            path_params['busobid'] = local_var_params['busobid']  # noqa: E501
        if 'busobrecid' in local_var_params:
            path_params['busobrecid'] = local_var_params['busobrecid']  # noqa: E501
        if 'type' in local_var_params:
            path_params['type'] = local_var_params['type']  # noqa: E501
        if 'attachmenttype' in local_var_params:
            path_params['attachmenttype'] = local_var_params['attachmenttype']  # noqa: E501

        query_params = []
        if 'includelinks' in local_var_params and local_var_params['includelinks'] is not None:  # noqa: E501
            query_params.append(('includelinks', local_var_params['includelinks']))  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getbusinessobjectattachments/busobid/{busobid}/busobrecid/{busobrecid}/type/{type}/attachmenttype/{attachmenttype}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='AttachmentsResponse',  # 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_get_business_object_attachments_by_name_and_public_id_v1(self, busobname, publicid, type, attachmenttype, **kwargs):  # noqa: E501
        """Get attachments by Business Object name and public ID  # noqa: E501

        Operation to get attachments for a Business Object by Business Object Name and public ID.  # 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_get_business_object_attachments_by_name_and_public_id_v1(busobname, publicid, type, attachmenttype, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobname: Specify the Business Object name. (required)
        :param str publicid: Specify the Business Object public ID for the record that contains the attachments. (required)
        :param str type: Record attachment type: </br></br>None - Not applicable to the REST API. </br></br>File - Linked files. </br></br>FileManagerFile - Imported files.</br></br>BusOb - Attached Business Objects. </br></br>History - Information about the attachment, if any is available. For example, an e-mail message may store the name of an attachment sent.</br></br>Other - Not applicable to the REST API. </br> (required)
        :param str attachmenttype: For file types, select the type of attachment: </br></br>Imported - Attachment was imported into database. </br></br>Linked - Attachment is linked to an external file. </br></br>URL - Attachment is a URL. (required)
        :param bool includelinks: Flag to include hyperlinks in results. Default is false. 
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: AttachmentsResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_business_object_attachments_by_name_and_public_id_v1_with_http_info(busobname, publicid, type, attachmenttype, **kwargs)  # noqa: E501

    def business_object_get_business_object_attachments_by_name_and_public_id_v1_with_http_info(self, busobname, publicid, type, attachmenttype, **kwargs):  # noqa: E501
        """Get attachments by Business Object name and public ID  # noqa: E501

        Operation to get attachments for a Business Object by Business Object Name and public ID.  # 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_get_business_object_attachments_by_name_and_public_id_v1_with_http_info(busobname, publicid, type, attachmenttype, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobname: Specify the Business Object name. (required)
        :param str publicid: Specify the Business Object public ID for the record that contains the attachments. (required)
        :param str type: Record attachment type: </br></br>None - Not applicable to the REST API. </br></br>File - Linked files. </br></br>FileManagerFile - Imported files.</br></br>BusOb - Attached Business Objects. </br></br>History - Information about the attachment, if any is available. For example, an e-mail message may store the name of an attachment sent.</br></br>Other - Not applicable to the REST API. </br> (required)
        :param str attachmenttype: For file types, select the type of attachment: </br></br>Imported - Attachment was imported into database. </br></br>Linked - Attachment is linked to an external file. </br></br>URL - Attachment is a URL. (required)
        :param bool includelinks: Flag to include hyperlinks in results. Default is false. 
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(AttachmentsResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['busobname', 'publicid', 'type', 'attachmenttype', 'includelinks']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_business_object_attachments_by_name_and_public_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'busobname' is set
        if self.api_client.client_side_validation and ('busobname' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobname'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobname` when calling `business_object_get_business_object_attachments_by_name_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'publicid' is set
        if self.api_client.client_side_validation and ('publicid' not in local_var_params or  # noqa: E501
                                                        local_var_params['publicid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `publicid` when calling `business_object_get_business_object_attachments_by_name_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'type' is set
        if self.api_client.client_side_validation and ('type' not in local_var_params or  # noqa: E501
                                                        local_var_params['type'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `type` when calling `business_object_get_business_object_attachments_by_name_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'attachmenttype' is set
        if self.api_client.client_side_validation and ('attachmenttype' not in local_var_params or  # noqa: E501
                                                        local_var_params['attachmenttype'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `attachmenttype` when calling `business_object_get_business_object_attachments_by_name_and_public_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'busobname' in local_var_params:
            path_params['busobname'] = local_var_params['busobname']  # noqa: E501
        if 'publicid' in local_var_params:
            path_params['publicid'] = local_var_params['publicid']  # noqa: E501
        if 'type' in local_var_params:
            path_params['type'] = local_var_params['type']  # noqa: E501
        if 'attachmenttype' in local_var_params:
            path_params['attachmenttype'] = local_var_params['attachmenttype']  # noqa: E501

        query_params = []
        if 'includelinks' in local_var_params and local_var_params['includelinks'] is not None:  # noqa: E501
            query_params.append(('includelinks', local_var_params['includelinks']))  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getbusinessobjectattachments/busobname/{busobname}/publicid/{publicid}/type/{type}/attachmenttype/{attachmenttype}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='AttachmentsResponse',  # 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_get_business_object_attachments_by_name_and_rec_id_v1(self, busobname, busobrecid, type, attachmenttype, **kwargs):  # noqa: E501
        """Get attachments by Business Object name and record ID  # noqa: E501

        Operation to get attachments for a Business Object by name and record ID.  # 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_get_business_object_attachments_by_name_and_rec_id_v1(busobname, busobrecid, type, attachmenttype, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobname: Specify the Business Object name. (required)
        :param str busobrecid: Specify the Business Object record ID. (required)
        :param str type: Record attachment type: </br></br>None - Not applicable to the REST API. </br></br>File - Linked files. </br></br>FileManagerFile - Imported files.</br></br>BusOb - Attached Business Objects. </br></br>History - Information about the attachment, if any is available. For example, an e-mail message may store the name of an attachment sent.</br></br>Other - Not applicable to the REST API. </br> (required)
        :param str attachmenttype: For file types, select the type of attachment: </br></br>Imported - Attachment was imported into database. </br></br>Linked - Attachment is linked to an external file. </br></br>URL - Attachment is a URL. (required)
        :param bool includelinks: Flag to include hyperlinks in results. Default is false. 
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: AttachmentsResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_business_object_attachments_by_name_and_rec_id_v1_with_http_info(busobname, busobrecid, type, attachmenttype, **kwargs)  # noqa: E501

    def business_object_get_business_object_attachments_by_name_and_rec_id_v1_with_http_info(self, busobname, busobrecid, type, attachmenttype, **kwargs):  # noqa: E501
        """Get attachments by Business Object name and record ID  # noqa: E501

        Operation to get attachments for a Business Object by name and record ID.  # 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_get_business_object_attachments_by_name_and_rec_id_v1_with_http_info(busobname, busobrecid, type, attachmenttype, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobname: Specify the Business Object name. (required)
        :param str busobrecid: Specify the Business Object record ID. (required)
        :param str type: Record attachment type: </br></br>None - Not applicable to the REST API. </br></br>File - Linked files. </br></br>FileManagerFile - Imported files.</br></br>BusOb - Attached Business Objects. </br></br>History - Information about the attachment, if any is available. For example, an e-mail message may store the name of an attachment sent.</br></br>Other - Not applicable to the REST API. </br> (required)
        :param str attachmenttype: For file types, select the type of attachment: </br></br>Imported - Attachment was imported into database. </br></br>Linked - Attachment is linked to an external file. </br></br>URL - Attachment is a URL. (required)
        :param bool includelinks: Flag to include hyperlinks in results. Default is false. 
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(AttachmentsResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['busobname', 'busobrecid', 'type', 'attachmenttype', 'includelinks']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_business_object_attachments_by_name_and_rec_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'busobname' is set
        if self.api_client.client_side_validation and ('busobname' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobname'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobname` when calling `business_object_get_business_object_attachments_by_name_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'busobrecid' is set
        if self.api_client.client_side_validation and ('busobrecid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobrecid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobrecid` when calling `business_object_get_business_object_attachments_by_name_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'type' is set
        if self.api_client.client_side_validation and ('type' not in local_var_params or  # noqa: E501
                                                        local_var_params['type'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `type` when calling `business_object_get_business_object_attachments_by_name_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'attachmenttype' is set
        if self.api_client.client_side_validation and ('attachmenttype' not in local_var_params or  # noqa: E501
                                                        local_var_params['attachmenttype'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `attachmenttype` when calling `business_object_get_business_object_attachments_by_name_and_rec_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'busobname' in local_var_params:
            path_params['busobname'] = local_var_params['busobname']  # noqa: E501
        if 'busobrecid' in local_var_params:
            path_params['busobrecid'] = local_var_params['busobrecid']  # noqa: E501
        if 'type' in local_var_params:
            path_params['type'] = local_var_params['type']  # noqa: E501
        if 'attachmenttype' in local_var_params:
            path_params['attachmenttype'] = local_var_params['attachmenttype']  # noqa: E501

        query_params = []
        if 'includelinks' in local_var_params and local_var_params['includelinks'] is not None:  # noqa: E501
            query_params.append(('includelinks', local_var_params['includelinks']))  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getbusinessobjectattachments/busobname/{busobname}/busobrecid/{busobrecid}/type/{type}/attachmenttype/{attachmenttype}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='AttachmentsResponse',  # 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_get_business_object_attachments_v1(self, attachments_request, **kwargs):  # noqa: E501
        """Get Business Object attachments by request object  # noqa: E501

        Operation to get attachments for a Business Object by attachments request object.  # 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_get_business_object_attachments_v1(attachments_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param AttachmentsRequest attachments_request: Object with all the parameters to request an attachments list. You can also request a list of types to get more than just one type at a time. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: AttachmentsResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_business_object_attachments_v1_with_http_info(attachments_request, **kwargs)  # noqa: E501

    def business_object_get_business_object_attachments_v1_with_http_info(self, attachments_request, **kwargs):  # noqa: E501
        """Get Business Object attachments by request object  # noqa: E501

        Operation to get attachments for a Business Object by attachments request object.  # 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_get_business_object_attachments_v1_with_http_info(attachments_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param AttachmentsRequest attachments_request: Object with all the parameters to request an attachments list. You can also request a list of types to get more than just one type at a time. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(AttachmentsResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['attachments_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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_business_object_attachments_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'attachments_request' is set
        if self.api_client.client_side_validation and ('attachments_request' not in local_var_params or  # noqa: E501
                                                        local_var_params['attachments_request'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `attachments_request` when calling `business_object_get_business_object_attachments_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getbusinessobjectattachments', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='AttachmentsResponse',  # 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_get_business_object_batch_v1(self, batch_read_request, **kwargs):  # noqa: E501
        """Get a batch of Business Object records  # noqa: E501

        Operation that returns a batch of Business Object records that includes a list of field record IDs, display names, and values for each record.  # 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_get_business_object_batch_v1(batch_read_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param BatchReadRequest batch_read_request: Specify an array of Business Object IDs, record IDs, or public IDs. Use a flag to stop on error or continue on error. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: BatchReadResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_business_object_batch_v1_with_http_info(batch_read_request, **kwargs)  # noqa: E501

    def business_object_get_business_object_batch_v1_with_http_info(self, batch_read_request, **kwargs):  # noqa: E501
        """Get a batch of Business Object records  # noqa: E501

        Operation that returns a batch of Business Object records that includes a list of field record IDs, display names, and values for each record.  # 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_get_business_object_batch_v1_with_http_info(batch_read_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param BatchReadRequest batch_read_request: Specify an array of Business Object IDs, record IDs, or public IDs. Use a flag to stop on error or continue on error. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(BatchReadResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['batch_read_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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_business_object_batch_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'batch_read_request' is set
        if self.api_client.client_side_validation and ('batch_read_request' not in local_var_params or  # noqa: E501
                                                        local_var_params['batch_read_request'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `batch_read_request` when calling `business_object_get_business_object_batch_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getbusinessobjectbatch', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BatchReadResponse',  # 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_get_business_object_by_public_id_v1(self, busobid, publicid, **kwargs):  # noqa: E501
        """Get a Business Object record  # noqa: E501

        Operation that returns a Business Object record that includes a list of fields and their record IDs, names, and set values.  # 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_get_business_object_by_public_id_v1(busobid, publicid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobid: Specify the Business Object ID. (required)
        :param str publicid: Specify the Business Object public ID. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: ReadResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_business_object_by_public_id_v1_with_http_info(busobid, publicid, **kwargs)  # noqa: E501

    def business_object_get_business_object_by_public_id_v1_with_http_info(self, busobid, publicid, **kwargs):  # noqa: E501
        """Get a Business Object record  # noqa: E501

        Operation that returns a Business Object record that includes a list of fields and their record IDs, names, and set values.  # 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_get_business_object_by_public_id_v1_with_http_info(busobid, publicid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobid: Specify the Business Object ID. (required)
        :param str publicid: Specify the Business Object public ID. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(ReadResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['busobid', 'publicid']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_business_object_by_public_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'busobid' is set
        if self.api_client.client_side_validation and ('busobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobid` when calling `business_object_get_business_object_by_public_id_v1`")  # noqa: E501
        # verify the required parameter 'publicid' is set
        if self.api_client.client_side_validation and ('publicid' not in local_var_params or  # noqa: E501
                                                        local_var_params['publicid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `publicid` when calling `business_object_get_business_object_by_public_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'busobid' in local_var_params:
            path_params['busobid'] = local_var_params['busobid']  # noqa: E501
        if 'publicid' in local_var_params:
            path_params['publicid'] = local_var_params['publicid']  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getbusinessobject/busobid/{busobid}/publicid/{publicid}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ReadResponse',  # 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_get_business_object_by_rec_id_v1(self, busobid, busobrecid, **kwargs):  # noqa: E501
        """Get a Business Object record  # noqa: E501

        Operation that returns a Business Object record that includes a list of fields and their record IDs, names, and set values.  # 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_get_business_object_by_rec_id_v1(busobid, busobrecid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobid: Specify the Business Object ID. (required)
        :param str busobrecid: Specify the Business Object record ID. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: ReadResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_business_object_by_rec_id_v1_with_http_info(busobid, busobrecid, **kwargs)  # noqa: E501

    def business_object_get_business_object_by_rec_id_v1_with_http_info(self, busobid, busobrecid, **kwargs):  # noqa: E501
        """Get a Business Object record  # noqa: E501

        Operation that returns a Business Object record that includes a list of fields and their record IDs, names, and set values.  # 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_get_business_object_by_rec_id_v1_with_http_info(busobid, busobrecid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobid: Specify the Business Object ID. (required)
        :param str busobrecid: Specify the Business Object record ID. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(ReadResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['busobid', 'busobrecid']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_business_object_by_rec_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'busobid' is set
        if self.api_client.client_side_validation and ('busobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobid` when calling `business_object_get_business_object_by_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'busobrecid' is set
        if self.api_client.client_side_validation and ('busobrecid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobrecid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobrecid` when calling `business_object_get_business_object_by_rec_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'busobid' in local_var_params:
            path_params['busobid'] = local_var_params['busobid']  # noqa: E501
        if 'busobrecid' in local_var_params:
            path_params['busobrecid'] = local_var_params['busobrecid']  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getbusinessobject/busobid/{busobid}/busobrecid/{busobrecid}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='ReadResponse',  # 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_get_business_object_by_scan_code_bus_ob_id_v1(self, scan_code, busobid, **kwargs):  # noqa: E501
        """Get a Business Object by its scan code and Business Object ID  # noqa: E501

        Operation to get a Business Object based on its associated scan code and Business Object ID.  # 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_get_business_object_by_scan_code_bus_ob_id_v1(scan_code, busobid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str scan_code: The scan code for a Business Object record. (required)
        :param str busobid: The Business Object ID. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: BarcodeLookupResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_business_object_by_scan_code_bus_ob_id_v1_with_http_info(scan_code, busobid, **kwargs)  # noqa: E501

    def business_object_get_business_object_by_scan_code_bus_ob_id_v1_with_http_info(self, scan_code, busobid, **kwargs):  # noqa: E501
        """Get a Business Object by its scan code and Business Object ID  # noqa: E501

        Operation to get a Business Object based on its associated scan code and Business Object ID.  # 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_get_business_object_by_scan_code_bus_ob_id_v1_with_http_info(scan_code, busobid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str scan_code: The scan code for a Business Object record. (required)
        :param str busobid: The Business Object ID. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(BarcodeLookupResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['scan_code', 'busobid']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_business_object_by_scan_code_bus_ob_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'scan_code' is set
        if self.api_client.client_side_validation and ('scan_code' not in local_var_params or  # noqa: E501
                                                        local_var_params['scan_code'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `scan_code` when calling `business_object_get_business_object_by_scan_code_bus_ob_id_v1`")  # noqa: E501
        # verify the required parameter 'busobid' is set
        if self.api_client.client_side_validation and ('busobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobid` when calling `business_object_get_business_object_by_scan_code_bus_ob_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'scan_code' in local_var_params:
            path_params['scanCode'] = local_var_params['scan_code']  # noqa: E501
        if 'busobid' in local_var_params:
            path_params['busobid'] = local_var_params['busobid']  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getbusinessobject/scancode/{scanCode}/busobid/{busobid}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BarcodeLookupResponse',  # 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_get_business_object_by_scan_code_bus_ob_name_v1(self, scan_code, busobname, **kwargs):  # noqa: E501
        """Get a Business Object by its scan code and Business Object name  # noqa: E501

        Operation to get a Business Object based on its associated scan code and Business Object name.  # 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_get_business_object_by_scan_code_bus_ob_name_v1(scan_code, busobname, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str scan_code: The scan code for a Business Object record. (required)
        :param str busobname: The Business Bbject name. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: BarcodeLookupResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_business_object_by_scan_code_bus_ob_name_v1_with_http_info(scan_code, busobname, **kwargs)  # noqa: E501

    def business_object_get_business_object_by_scan_code_bus_ob_name_v1_with_http_info(self, scan_code, busobname, **kwargs):  # noqa: E501
        """Get a Business Object by its scan code and Business Object name  # noqa: E501

        Operation to get a Business Object based on its associated scan code and Business Object name.  # 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_get_business_object_by_scan_code_bus_ob_name_v1_with_http_info(scan_code, busobname, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str scan_code: The scan code for a Business Object record. (required)
        :param str busobname: The Business Bbject name. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(BarcodeLookupResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['scan_code', 'busobname']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_business_object_by_scan_code_bus_ob_name_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'scan_code' is set
        if self.api_client.client_side_validation and ('scan_code' not in local_var_params or  # noqa: E501
                                                        local_var_params['scan_code'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `scan_code` when calling `business_object_get_business_object_by_scan_code_bus_ob_name_v1`")  # noqa: E501
        # verify the required parameter 'busobname' is set
        if self.api_client.client_side_validation and ('busobname' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobname'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobname` when calling `business_object_get_business_object_by_scan_code_bus_ob_name_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'scan_code' in local_var_params:
            path_params['scanCode'] = local_var_params['scan_code']  # noqa: E501
        if 'busobname' in local_var_params:
            path_params['busobname'] = local_var_params['busobname']  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getbusinessobject/scancode/{scanCode}/busobname/{busobname}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BarcodeLookupResponse',  # 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_get_business_object_schema_v1(self, busob_id, **kwargs):  # noqa: E501
        """Get a Business Object schema  # noqa: E501

        Operation that returns the schema for a Business Object and, optionally, its related Business Objects.  # 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_get_business_object_schema_v1(busob_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busob_id: Specify the Business Object ID. (required)
        :param bool includerelationships: Flag to include schemas for related Business Object. Default is false.
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: SchemaResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_business_object_schema_v1_with_http_info(busob_id, **kwargs)  # noqa: E501

    def business_object_get_business_object_schema_v1_with_http_info(self, busob_id, **kwargs):  # noqa: E501
        """Get a Business Object schema  # noqa: E501

        Operation that returns the schema for a Business Object and, optionally, its related Business Objects.  # 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_get_business_object_schema_v1_with_http_info(busob_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busob_id: Specify the Business Object ID. (required)
        :param bool includerelationships: Flag to include schemas for related Business Object. Default is false.
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(SchemaResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['busob_id', 'includerelationships']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_business_object_schema_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'busob_id' is set
        if self.api_client.client_side_validation and ('busob_id' not in local_var_params or  # noqa: E501
                                                        local_var_params['busob_id'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busob_id` when calling `business_object_get_business_object_schema_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'busob_id' in local_var_params:
            path_params['busobId'] = local_var_params['busob_id']  # noqa: E501

        query_params = []
        if 'includerelationships' in local_var_params and local_var_params['includerelationships'] is not None:  # noqa: E501
            query_params.append(('includerelationships', local_var_params['includerelationships']))  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getbusinessobjectschema/busobid/{busobId}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='SchemaResponse',  # 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_get_business_object_summaries_v1(self, type, **kwargs):  # noqa: E501
        """Get Business Object summaries by type  # noqa: E501

        Operation that returns a list of Business Object summaries by type (Major, Supporting, Lookup, Groups, and All).   # 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_get_business_object_summaries_v1(type, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str type: Use to show:<br />All - All objects<br />Major - Major objects only<br />Supporting - Supporting objects only<br />Lookup - Lookup objects only<br />Groups - Groups only (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: list[Summary]
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_business_object_summaries_v1_with_http_info(type, **kwargs)  # noqa: E501

    def business_object_get_business_object_summaries_v1_with_http_info(self, type, **kwargs):  # noqa: E501
        """Get Business Object summaries by type  # noqa: E501

        Operation that returns a list of Business Object summaries by type (Major, Supporting, Lookup, Groups, and All).   # 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_get_business_object_summaries_v1_with_http_info(type, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str type: Use to show:<br />All - All objects<br />Major - Major objects only<br />Supporting - Supporting objects only<br />Lookup - Lookup objects only<br />Groups - Groups only (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(list[Summary], status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['type']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_business_object_summaries_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'type' is set
        if self.api_client.client_side_validation and ('type' not in local_var_params or  # noqa: E501
                                                        local_var_params['type'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `type` when calling `business_object_get_business_object_summaries_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'type' in local_var_params:
            path_params['type'] = local_var_params['type']  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getbusinessobjectsummaries/type/{type}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='list[Summary]',  # 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_get_business_object_summary_by_id_v1(self, busobid, **kwargs):  # noqa: E501
        """Get a Business Object summary by ID  # noqa: E501

        Operation that returns a single Business Object summary by ID.  # 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_get_business_object_summary_by_id_v1(busobid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobid: Specify a Business Object ID to get its summary. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: list[Summary]
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_business_object_summary_by_id_v1_with_http_info(busobid, **kwargs)  # noqa: E501

    def business_object_get_business_object_summary_by_id_v1_with_http_info(self, busobid, **kwargs):  # noqa: E501
        """Get a Business Object summary by ID  # noqa: E501

        Operation that returns a single Business Object summary by ID.  # 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_get_business_object_summary_by_id_v1_with_http_info(busobid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobid: Specify a Business Object ID to get its summary. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(list[Summary], status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['busobid']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_business_object_summary_by_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'busobid' is set
        if self.api_client.client_side_validation and ('busobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobid` when calling `business_object_get_business_object_summary_by_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'busobid' in local_var_params:
            path_params['busobid'] = local_var_params['busobid']  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getbusinessobjectsummary/busobid/{busobid}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='list[Summary]',  # 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_get_business_object_summary_by_name_v1(self, busobname, **kwargs):  # noqa: E501
        """Get a Business Object summary by name  # noqa: E501

        Operation that returns a single Business Object summary by name.  # 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_get_business_object_summary_by_name_v1(busobname, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobname: Specify a Business Object name to get its summary. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: list[Summary]
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_business_object_summary_by_name_v1_with_http_info(busobname, **kwargs)  # noqa: E501

    def business_object_get_business_object_summary_by_name_v1_with_http_info(self, busobname, **kwargs):  # noqa: E501
        """Get a Business Object summary by name  # noqa: E501

        Operation that returns a single Business Object summary by name.  # 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_get_business_object_summary_by_name_v1_with_http_info(busobname, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str busobname: Specify a Business Object name to get its summary. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(list[Summary], status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['busobname']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_business_object_summary_by_name_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'busobname' is set
        if self.api_client.client_side_validation and ('busobname' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobname'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobname` when calling `business_object_get_business_object_summary_by_name_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'busobname' in local_var_params:
            path_params['busobname'] = local_var_params['busobname']  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getbusinessobjectsummary/busobname/{busobname}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='list[Summary]',  # 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_get_business_object_template_v1(self, template_request, **kwargs):  # noqa: E501
        """Get Business Object templates for create  # noqa: E501

        Operation that returns a template to create Business Objects.  The template includes placeholders for field values. You can then send the template with these values to the Business Object Save operation.  # 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_get_business_object_template_v1(template_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param TemplateRequest template_request: Specify the Business Object ID. Use true to include all required fields or all fields. Specify an optional fields list by adding field names in a comma-delimited list [\"field1\", \"field2\"].  (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: TemplateResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_business_object_template_v1_with_http_info(template_request, **kwargs)  # noqa: E501

    def business_object_get_business_object_template_v1_with_http_info(self, template_request, **kwargs):  # noqa: E501
        """Get Business Object templates for create  # noqa: E501

        Operation that returns a template to create Business Objects.  The template includes placeholders for field values. You can then send the template with these values to the Business Object Save operation.  # 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_get_business_object_template_v1_with_http_info(template_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param TemplateRequest template_request: Specify the Business Object ID. Use true to include all required fields or all fields. Specify an optional fields list by adding field names in a comma-delimited list [\"field1\", \"field2\"].  (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(TemplateResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['template_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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_business_object_template_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'template_request' is set
        if self.api_client.client_side_validation and ('template_request' not in local_var_params or  # noqa: E501
                                                        local_var_params['template_request'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `template_request` when calling `business_object_get_business_object_template_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getbusinessobjecttemplate', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='TemplateResponse',  # 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_get_related_business_object_by_request_v1(self, related_business_object_request, **kwargs):  # noqa: E501
        """Get related Business Objects using a request object  # noqa: E501

        Operation to get related Business Objects for a specific relationship. Specify a list of fields to include in the response. The order of parameter usage and overrides is: all fields set to true overrides default overrides;  custom grid overrides field list settings.  # 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_get_related_business_object_by_request_v1(related_business_object_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param RelatedBusinessObjectRequest related_business_object_request: Request object containing all the possible parameters to get related Business Objects. (required)
        :param bool includelinks: Flag to include hyperlinks in results. Default is false. 
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: RelatedBusinessObjectResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_related_business_object_by_request_v1_with_http_info(related_business_object_request, **kwargs)  # noqa: E501

    def business_object_get_related_business_object_by_request_v1_with_http_info(self, related_business_object_request, **kwargs):  # noqa: E501
        """Get related Business Objects using a request object  # noqa: E501

        Operation to get related Business Objects for a specific relationship. Specify a list of fields to include in the response. The order of parameter usage and overrides is: all fields set to true overrides default overrides;  custom grid overrides field list settings.  # 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_get_related_business_object_by_request_v1_with_http_info(related_business_object_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param RelatedBusinessObjectRequest related_business_object_request: Request object containing all the possible parameters to get related Business Objects. (required)
        :param bool includelinks: Flag to include hyperlinks in results. Default is false. 
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(RelatedBusinessObjectResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['related_business_object_request', 'includelinks']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_related_business_object_by_request_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'related_business_object_request' is set
        if self.api_client.client_side_validation and ('related_business_object_request' not in local_var_params or  # noqa: E501
                                                        local_var_params['related_business_object_request'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `related_business_object_request` when calling `business_object_get_related_business_object_by_request_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []
        if 'includelinks' in local_var_params and local_var_params['includelinks'] is not None:  # noqa: E501
            query_params.append(('includelinks', local_var_params['includelinks']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getrelatedbusinessobject', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='RelatedBusinessObjectResponse',  # 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_get_related_business_object_v1(self, parentbusobid, parentbusobrecid, relationshipid, **kwargs):  # noqa: E501
        """Get related Business Objects by ID  # noqa: E501

        Operation to get the related objects for a Business Object relationship specifying all fields or default grid as the field to return.  # 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_get_related_business_object_v1(parentbusobid, parentbusobrecid, relationshipid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str parentbusobid: Specify the Business Object ID for the parent Business Object. (required)
        :param str parentbusobrecid: Specify the record ID for the parent Business Object. (required)
        :param str relationshipid: Specify the Relationship ID for the related Business Object you want to return. (required)
        :param int page_number: Specify the page number of the result set to return.
        :param int page_size: Specify the number of rows to return per page.
        :param bool allfields: Flag to include all related Business Object fields.  Default is true if not supplied.  If true, then UseDefaultGrid is not used.
        :param bool usedefaultgrid: Flag to trigger the use of the related Business Objects default grid for the list of fields to return.
        :param bool includelinks: Flag to include hyperlinks in results. Default is false. 
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: RelatedBusinessObjectResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_related_business_object_v1_with_http_info(parentbusobid, parentbusobrecid, relationshipid, **kwargs)  # noqa: E501

    def business_object_get_related_business_object_v1_with_http_info(self, parentbusobid, parentbusobrecid, relationshipid, **kwargs):  # noqa: E501
        """Get related Business Objects by ID  # noqa: E501

        Operation to get the related objects for a Business Object relationship specifying all fields or default grid as the field to return.  # 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_get_related_business_object_v1_with_http_info(parentbusobid, parentbusobrecid, relationshipid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str parentbusobid: Specify the Business Object ID for the parent Business Object. (required)
        :param str parentbusobrecid: Specify the record ID for the parent Business Object. (required)
        :param str relationshipid: Specify the Relationship ID for the related Business Object you want to return. (required)
        :param int page_number: Specify the page number of the result set to return.
        :param int page_size: Specify the number of rows to return per page.
        :param bool allfields: Flag to include all related Business Object fields.  Default is true if not supplied.  If true, then UseDefaultGrid is not used.
        :param bool usedefaultgrid: Flag to trigger the use of the related Business Objects default grid for the list of fields to return.
        :param bool includelinks: Flag to include hyperlinks in results. Default is false. 
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(RelatedBusinessObjectResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['parentbusobid', 'parentbusobrecid', 'relationshipid', 'page_number', 'page_size', 'allfields', 'usedefaultgrid', 'includelinks']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_related_business_object_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'parentbusobid' is set
        if self.api_client.client_side_validation and ('parentbusobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['parentbusobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `parentbusobid` when calling `business_object_get_related_business_object_v1`")  # noqa: E501
        # verify the required parameter 'parentbusobrecid' is set
        if self.api_client.client_side_validation and ('parentbusobrecid' not in local_var_params or  # noqa: E501
                                                        local_var_params['parentbusobrecid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `parentbusobrecid` when calling `business_object_get_related_business_object_v1`")  # noqa: E501
        # verify the required parameter 'relationshipid' is set
        if self.api_client.client_side_validation and ('relationshipid' not in local_var_params or  # noqa: E501
                                                        local_var_params['relationshipid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `relationshipid` when calling `business_object_get_related_business_object_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'parentbusobid' in local_var_params:
            path_params['parentbusobid'] = local_var_params['parentbusobid']  # noqa: E501
        if 'parentbusobrecid' in local_var_params:
            path_params['parentbusobrecid'] = local_var_params['parentbusobrecid']  # noqa: E501
        if 'relationshipid' in local_var_params:
            path_params['relationshipid'] = local_var_params['relationshipid']  # noqa: E501

        query_params = []
        if 'page_number' in local_var_params and local_var_params['page_number'] is not None:  # noqa: E501
            query_params.append(('pageNumber', local_var_params['page_number']))  # noqa: E501
        if 'page_size' in local_var_params and local_var_params['page_size'] is not None:  # noqa: E501
            query_params.append(('pageSize', local_var_params['page_size']))  # noqa: E501
        if 'allfields' in local_var_params and local_var_params['allfields'] is not None:  # noqa: E501
            query_params.append(('allfields', local_var_params['allfields']))  # noqa: E501
        if 'usedefaultgrid' in local_var_params and local_var_params['usedefaultgrid'] is not None:  # noqa: E501
            query_params.append(('usedefaultgrid', local_var_params['usedefaultgrid']))  # noqa: E501
        if 'includelinks' in local_var_params and local_var_params['includelinks'] is not None:  # noqa: E501
            query_params.append(('includelinks', local_var_params['includelinks']))  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getrelatedbusinessobject/parentbusobid/{parentbusobid}/parentbusobrecid/{parentbusobrecid}/relationshipid/{relationshipid}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='RelatedBusinessObjectResponse',  # 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_get_related_business_object_with_custom_grid_v1(self, parentbusobid, parentbusobrecid, relationshipid, gridid, **kwargs):  # noqa: E501
        """Get related Business Objects custom grid  # noqa: E501

        Operation to get related Business Objects for a specific relationship. Specify a custom grid ID as the fields to return.  # 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_get_related_business_object_with_custom_grid_v1(parentbusobid, parentbusobrecid, relationshipid, gridid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str parentbusobid: Specify the Business Object ID for the parent Business Object. (required)
        :param str parentbusobrecid: Specify the record ID for the parent Business Object. (required)
        :param str relationshipid: Specify the Relationship ID for the related Business Object you want to return. (required)
        :param str gridid: Specify the ID for the custom grid that contains the field list. (required)
        :param int page_number: Specify the page number of the result set to return.
        :param int page_size: Specify the number of rows to return per page.
        :param bool includelinks: Flag to include hyperlinks in results. Default is false. 
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: RelatedBusinessObjectResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_get_related_business_object_with_custom_grid_v1_with_http_info(parentbusobid, parentbusobrecid, relationshipid, gridid, **kwargs)  # noqa: E501

    def business_object_get_related_business_object_with_custom_grid_v1_with_http_info(self, parentbusobid, parentbusobrecid, relationshipid, gridid, **kwargs):  # noqa: E501
        """Get related Business Objects custom grid  # noqa: E501

        Operation to get related Business Objects for a specific relationship. Specify a custom grid ID as the fields to return.  # 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_get_related_business_object_with_custom_grid_v1_with_http_info(parentbusobid, parentbusobrecid, relationshipid, gridid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str parentbusobid: Specify the Business Object ID for the parent Business Object. (required)
        :param str parentbusobrecid: Specify the record ID for the parent Business Object. (required)
        :param str relationshipid: Specify the Relationship ID for the related Business Object you want to return. (required)
        :param str gridid: Specify the ID for the custom grid that contains the field list. (required)
        :param int page_number: Specify the page number of the result set to return.
        :param int page_size: Specify the number of rows to return per page.
        :param bool includelinks: Flag to include hyperlinks in results. Default is false. 
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(RelatedBusinessObjectResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['parentbusobid', 'parentbusobrecid', 'relationshipid', 'gridid', 'page_number', 'page_size', 'includelinks']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_get_related_business_object_with_custom_grid_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'parentbusobid' is set
        if self.api_client.client_side_validation and ('parentbusobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['parentbusobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `parentbusobid` when calling `business_object_get_related_business_object_with_custom_grid_v1`")  # noqa: E501
        # verify the required parameter 'parentbusobrecid' is set
        if self.api_client.client_side_validation and ('parentbusobrecid' not in local_var_params or  # noqa: E501
                                                        local_var_params['parentbusobrecid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `parentbusobrecid` when calling `business_object_get_related_business_object_with_custom_grid_v1`")  # noqa: E501
        # verify the required parameter 'relationshipid' is set
        if self.api_client.client_side_validation and ('relationshipid' not in local_var_params or  # noqa: E501
                                                        local_var_params['relationshipid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `relationshipid` when calling `business_object_get_related_business_object_with_custom_grid_v1`")  # noqa: E501
        # verify the required parameter 'gridid' is set
        if self.api_client.client_side_validation and ('gridid' not in local_var_params or  # noqa: E501
                                                        local_var_params['gridid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `gridid` when calling `business_object_get_related_business_object_with_custom_grid_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'parentbusobid' in local_var_params:
            path_params['parentbusobid'] = local_var_params['parentbusobid']  # noqa: E501
        if 'parentbusobrecid' in local_var_params:
            path_params['parentbusobrecid'] = local_var_params['parentbusobrecid']  # noqa: E501
        if 'relationshipid' in local_var_params:
            path_params['relationshipid'] = local_var_params['relationshipid']  # noqa: E501
        if 'gridid' in local_var_params:
            path_params['gridid'] = local_var_params['gridid']  # noqa: E501

        query_params = []
        if 'page_number' in local_var_params and local_var_params['page_number'] is not None:  # noqa: E501
            query_params.append(('pageNumber', local_var_params['page_number']))  # noqa: E501
        if 'page_size' in local_var_params and local_var_params['page_size'] is not None:  # noqa: E501
            query_params.append(('pageSize', local_var_params['page_size']))  # noqa: E501
        if 'includelinks' in local_var_params and local_var_params['includelinks'] is not None:  # noqa: E501
            query_params.append(('includelinks', local_var_params['includelinks']))  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/getrelatedbusinessobject/parentbusobid/{parentbusobid}/parentbusobrecid/{parentbusobrecid}/relationshipid/{relationshipid}/gridid/{gridid}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='RelatedBusinessObjectResponse',  # 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_link_related_business_object_by_rec_id_v1(self, parentbusobid, parentbusobrecid, relationshipid, busobid, busobrecid, **kwargs):  # noqa: E501
        """Link related Business Objects  # noqa: E501

        Operation to link related Business Objects.   # 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_link_related_business_object_by_rec_id_v1(parentbusobid, parentbusobrecid, relationshipid, busobid, busobrecid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str parentbusobid: Specify the Business Object ID for the parent Business Object. (required)
        :param str parentbusobrecid: Specify the record ID for the parent Business Object. (required)
        :param str relationshipid: Specify the Relationship ID for the related Business Object you want to link. (required)
        :param str busobid: Specify the Business Object ID of the Business Object to be linked. (required)
        :param str busobrecid: Specify the Business Object record ID of the Business Object to be linked. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: RelatedBusinessObjectResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_link_related_business_object_by_rec_id_v1_with_http_info(parentbusobid, parentbusobrecid, relationshipid, busobid, busobrecid, **kwargs)  # noqa: E501

    def business_object_link_related_business_object_by_rec_id_v1_with_http_info(self, parentbusobid, parentbusobrecid, relationshipid, busobid, busobrecid, **kwargs):  # noqa: E501
        """Link related Business Objects  # noqa: E501

        Operation to link related Business Objects.   # 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_link_related_business_object_by_rec_id_v1_with_http_info(parentbusobid, parentbusobrecid, relationshipid, busobid, busobrecid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str parentbusobid: Specify the Business Object ID for the parent Business Object. (required)
        :param str parentbusobrecid: Specify the record ID for the parent Business Object. (required)
        :param str relationshipid: Specify the Relationship ID for the related Business Object you want to link. (required)
        :param str busobid: Specify the Business Object ID of the Business Object to be linked. (required)
        :param str busobrecid: Specify the Business Object record ID of the Business Object to be linked. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(RelatedBusinessObjectResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['parentbusobid', 'parentbusobrecid', 'relationshipid', 'busobid', 'busobrecid']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_link_related_business_object_by_rec_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'parentbusobid' is set
        if self.api_client.client_side_validation and ('parentbusobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['parentbusobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `parentbusobid` when calling `business_object_link_related_business_object_by_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'parentbusobrecid' is set
        if self.api_client.client_side_validation and ('parentbusobrecid' not in local_var_params or  # noqa: E501
                                                        local_var_params['parentbusobrecid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `parentbusobrecid` when calling `business_object_link_related_business_object_by_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'relationshipid' is set
        if self.api_client.client_side_validation and ('relationshipid' not in local_var_params or  # noqa: E501
                                                        local_var_params['relationshipid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `relationshipid` when calling `business_object_link_related_business_object_by_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'busobid' is set
        if self.api_client.client_side_validation and ('busobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobid` when calling `business_object_link_related_business_object_by_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'busobrecid' is set
        if self.api_client.client_side_validation and ('busobrecid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobrecid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobrecid` when calling `business_object_link_related_business_object_by_rec_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'parentbusobid' in local_var_params:
            path_params['parentbusobid'] = local_var_params['parentbusobid']  # noqa: E501
        if 'parentbusobrecid' in local_var_params:
            path_params['parentbusobrecid'] = local_var_params['parentbusobrecid']  # noqa: E501
        if 'relationshipid' in local_var_params:
            path_params['relationshipid'] = local_var_params['relationshipid']  # noqa: E501
        if 'busobid' in local_var_params:
            path_params['busobid'] = local_var_params['busobid']  # noqa: E501
        if 'busobrecid' in local_var_params:
            path_params['busobrecid'] = local_var_params['busobrecid']  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/linkrelatedbusinessobject/parentbusobid/{parentbusobid}/parentbusobrecid/{parentbusobrecid}/relationshipid/{relationshipid}/busobid/{busobid}/busobrecid/{busobrecid}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='RelatedBusinessObjectResponse',  # 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_remove_business_object_attachment_by_id_and_public_id_v1(self, attachmentid, busobid, publicid, **kwargs):  # noqa: E501
        """Remove an attachment by Business Object ID and public ID  # noqa: E501

        Operation to remove an attachment from a Business Object using the attachment record ID, Business Object ID, and Business Object public ID.  # 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_remove_business_object_attachment_by_id_and_public_id_v1(attachmentid, busobid, publicid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str attachmentid: Specify the internal ID of the attachment record. (required)
        :param str busobid: Specify the Business Object ID. (required)
        :param str publicid: Specify the Business Object public ID. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: None
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_remove_business_object_attachment_by_id_and_public_id_v1_with_http_info(attachmentid, busobid, publicid, **kwargs)  # noqa: E501

    def business_object_remove_business_object_attachment_by_id_and_public_id_v1_with_http_info(self, attachmentid, busobid, publicid, **kwargs):  # noqa: E501
        """Remove an attachment by Business Object ID and public ID  # noqa: E501

        Operation to remove an attachment from a Business Object using the attachment record ID, Business Object ID, and Business Object public ID.  # 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_remove_business_object_attachment_by_id_and_public_id_v1_with_http_info(attachmentid, busobid, publicid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str attachmentid: Specify the internal ID of the attachment record. (required)
        :param str busobid: Specify the Business Object ID. (required)
        :param str publicid: Specify the Business Object public ID. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: None
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['attachmentid', 'busobid', 'publicid']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_remove_business_object_attachment_by_id_and_public_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'attachmentid' is set
        if self.api_client.client_side_validation and ('attachmentid' not in local_var_params or  # noqa: E501
                                                        local_var_params['attachmentid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `attachmentid` when calling `business_object_remove_business_object_attachment_by_id_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'busobid' is set
        if self.api_client.client_side_validation and ('busobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobid` when calling `business_object_remove_business_object_attachment_by_id_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'publicid' is set
        if self.api_client.client_side_validation and ('publicid' not in local_var_params or  # noqa: E501
                                                        local_var_params['publicid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `publicid` when calling `business_object_remove_business_object_attachment_by_id_and_public_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'attachmentid' in local_var_params:
            path_params['attachmentid'] = local_var_params['attachmentid']  # noqa: E501
        if 'busobid' in local_var_params:
            path_params['busobid'] = local_var_params['busobid']  # noqa: E501
        if 'publicid' in local_var_params:
            path_params['publicid'] = local_var_params['publicid']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/removebusinessobjectattachment/attachmentid/{attachmentid}/busobid/{busobid}/publicid/{publicid}', 'DELETE',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type=None,  # 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_remove_business_object_attachment_by_id_and_rec_id_v1(self, attachmentid, busobid, busobrecid, **kwargs):  # noqa: E501
        """Remove an attachment by Business Object ID and record ID  # noqa: E501

        Operation to remove an attachment from a Business Object using the attachment record ID, Business Object ID, and Business Object record ID.  # 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_remove_business_object_attachment_by_id_and_rec_id_v1(attachmentid, busobid, busobrecid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str attachmentid: Specify the internal ID of the attachment record. (required)
        :param str busobid: Specify the Business Object ID. (required)
        :param str busobrecid: Specify the Business Object record ID. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: None
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_remove_business_object_attachment_by_id_and_rec_id_v1_with_http_info(attachmentid, busobid, busobrecid, **kwargs)  # noqa: E501

    def business_object_remove_business_object_attachment_by_id_and_rec_id_v1_with_http_info(self, attachmentid, busobid, busobrecid, **kwargs):  # noqa: E501
        """Remove an attachment by Business Object ID and record ID  # noqa: E501

        Operation to remove an attachment from a Business Object using the attachment record ID, Business Object ID, and Business Object record ID.  # 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_remove_business_object_attachment_by_id_and_rec_id_v1_with_http_info(attachmentid, busobid, busobrecid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str attachmentid: Specify the internal ID of the attachment record. (required)
        :param str busobid: Specify the Business Object ID. (required)
        :param str busobrecid: Specify the Business Object record ID. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: None
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['attachmentid', 'busobid', 'busobrecid']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_remove_business_object_attachment_by_id_and_rec_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'attachmentid' is set
        if self.api_client.client_side_validation and ('attachmentid' not in local_var_params or  # noqa: E501
                                                        local_var_params['attachmentid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `attachmentid` when calling `business_object_remove_business_object_attachment_by_id_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'busobid' is set
        if self.api_client.client_side_validation and ('busobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobid` when calling `business_object_remove_business_object_attachment_by_id_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'busobrecid' is set
        if self.api_client.client_side_validation and ('busobrecid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobrecid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobrecid` when calling `business_object_remove_business_object_attachment_by_id_and_rec_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'attachmentid' in local_var_params:
            path_params['attachmentid'] = local_var_params['attachmentid']  # noqa: E501
        if 'busobid' in local_var_params:
            path_params['busobid'] = local_var_params['busobid']  # noqa: E501
        if 'busobrecid' in local_var_params:
            path_params['busobrecid'] = local_var_params['busobrecid']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/removebusinessobjectattachment/attachmentid/{attachmentid}/busobid/{busobid}/busobrecid/{busobrecid}', 'DELETE',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type=None,  # 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_remove_business_object_attachment_by_name_and_public_id_v1(self, attachmentid, busobname, publicid, **kwargs):  # noqa: E501
        """Remove an attachment by Business Object name and public ID  # noqa: E501

        Operation to remove an attachment from a Business Object using the attachment record ID, Business Object name, and Business Object record ID.  # 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_remove_business_object_attachment_by_name_and_public_id_v1(attachmentid, busobname, publicid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str attachmentid: Specify the internal ID of the attachment record. (required)
        :param str busobname: Specify the Business Object name. (required)
        :param str publicid: Specify the Business Object public ID. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: None
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_remove_business_object_attachment_by_name_and_public_id_v1_with_http_info(attachmentid, busobname, publicid, **kwargs)  # noqa: E501

    def business_object_remove_business_object_attachment_by_name_and_public_id_v1_with_http_info(self, attachmentid, busobname, publicid, **kwargs):  # noqa: E501
        """Remove an attachment by Business Object name and public ID  # noqa: E501

        Operation to remove an attachment from a Business Object using the attachment record ID, Business Object name, and Business Object record ID.  # 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_remove_business_object_attachment_by_name_and_public_id_v1_with_http_info(attachmentid, busobname, publicid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str attachmentid: Specify the internal ID of the attachment record. (required)
        :param str busobname: Specify the Business Object name. (required)
        :param str publicid: Specify the Business Object public ID. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: None
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['attachmentid', 'busobname', 'publicid']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_remove_business_object_attachment_by_name_and_public_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'attachmentid' is set
        if self.api_client.client_side_validation and ('attachmentid' not in local_var_params or  # noqa: E501
                                                        local_var_params['attachmentid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `attachmentid` when calling `business_object_remove_business_object_attachment_by_name_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'busobname' is set
        if self.api_client.client_side_validation and ('busobname' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobname'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobname` when calling `business_object_remove_business_object_attachment_by_name_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'publicid' is set
        if self.api_client.client_side_validation and ('publicid' not in local_var_params or  # noqa: E501
                                                        local_var_params['publicid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `publicid` when calling `business_object_remove_business_object_attachment_by_name_and_public_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'attachmentid' in local_var_params:
            path_params['attachmentid'] = local_var_params['attachmentid']  # noqa: E501
        if 'busobname' in local_var_params:
            path_params['busobname'] = local_var_params['busobname']  # noqa: E501
        if 'publicid' in local_var_params:
            path_params['publicid'] = local_var_params['publicid']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/removebusinessobjectattachment/attachmentid/{attachmentid}/busobname/{busobname}/publicid/{publicid}', 'DELETE',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type=None,  # 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_remove_business_object_attachment_by_name_and_rec_id_v1(self, attachmentid, busobname, busobrecid, **kwargs):  # noqa: E501
        """Remove an attachment by Business Object name and record ID  # noqa: E501

        Operation to remove an attachment from a Business Object using the attachment record ID, Business Object name, and Business Object public ID.  # 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_remove_business_object_attachment_by_name_and_rec_id_v1(attachmentid, busobname, busobrecid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str attachmentid: Specify the internal ID of the attachment record. (required)
        :param str busobname: Specify the Business Object name. (required)
        :param str busobrecid: Specify the Business Object record ID. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: None
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_remove_business_object_attachment_by_name_and_rec_id_v1_with_http_info(attachmentid, busobname, busobrecid, **kwargs)  # noqa: E501

    def business_object_remove_business_object_attachment_by_name_and_rec_id_v1_with_http_info(self, attachmentid, busobname, busobrecid, **kwargs):  # noqa: E501
        """Remove an attachment by Business Object name and record ID  # noqa: E501

        Operation to remove an attachment from a Business Object using the attachment record ID, Business Object name, and Business Object public ID.  # 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_remove_business_object_attachment_by_name_and_rec_id_v1_with_http_info(attachmentid, busobname, busobrecid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str attachmentid: Specify the internal ID of the attachment record. (required)
        :param str busobname: Specify the Business Object name. (required)
        :param str busobrecid: Specify the Business Object record ID. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: None
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['attachmentid', 'busobname', 'busobrecid']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_remove_business_object_attachment_by_name_and_rec_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'attachmentid' is set
        if self.api_client.client_side_validation and ('attachmentid' not in local_var_params or  # noqa: E501
                                                        local_var_params['attachmentid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `attachmentid` when calling `business_object_remove_business_object_attachment_by_name_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'busobname' is set
        if self.api_client.client_side_validation and ('busobname' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobname'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobname` when calling `business_object_remove_business_object_attachment_by_name_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'busobrecid' is set
        if self.api_client.client_side_validation and ('busobrecid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobrecid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobrecid` when calling `business_object_remove_business_object_attachment_by_name_and_rec_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'attachmentid' in local_var_params:
            path_params['attachmentid'] = local_var_params['attachmentid']  # noqa: E501
        if 'busobname' in local_var_params:
            path_params['busobname'] = local_var_params['busobname']  # noqa: E501
        if 'busobrecid' in local_var_params:
            path_params['busobrecid'] = local_var_params['busobrecid']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/removebusinessobjectattachment/attachmentid/{attachmentid}/busobname/{busobname}/busobrecid/{busobrecid}', 'DELETE',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type=None,  # 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_save_business_object_attachment_bus_ob_v1(self, save_bus_ob_attachment_request, **kwargs):  # noqa: E501
        """Attach a Business Object to a Business Object  # noqa: E501

        Operation to attach a Business Object to a Business Object. This links the Business Object but does not create a relationship between the two. (Use \"Link Related Business Objects\" to create a relationship.)  # 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_save_business_object_attachment_bus_ob_v1(save_bus_ob_attachment_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param SaveBusObAttachmentRequest save_bus_ob_attachment_request: Request object used to specify the Business Objects to attach. You can use Business Object name or ID and Business Object record ID or public ID. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: AttachmentsResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_save_business_object_attachment_bus_ob_v1_with_http_info(save_bus_ob_attachment_request, **kwargs)  # noqa: E501

    def business_object_save_business_object_attachment_bus_ob_v1_with_http_info(self, save_bus_ob_attachment_request, **kwargs):  # noqa: E501
        """Attach a Business Object to a Business Object  # noqa: E501

        Operation to attach a Business Object to a Business Object. This links the Business Object but does not create a relationship between the two. (Use \"Link Related Business Objects\" to create a relationship.)  # 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_save_business_object_attachment_bus_ob_v1_with_http_info(save_bus_ob_attachment_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param SaveBusObAttachmentRequest save_bus_ob_attachment_request: Request object used to specify the Business Objects to attach. You can use Business Object name or ID and Business Object record ID or public ID. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(AttachmentsResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['save_bus_ob_attachment_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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_save_business_object_attachment_bus_ob_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'save_bus_ob_attachment_request' is set
        if self.api_client.client_side_validation and ('save_bus_ob_attachment_request' not in local_var_params or  # noqa: E501
                                                        local_var_params['save_bus_ob_attachment_request'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `save_bus_ob_attachment_request` when calling `business_object_save_business_object_attachment_bus_ob_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/savebusinessobjectattachmentbusob', 'PUT',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='AttachmentsResponse',  # 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_save_business_object_attachment_link_v1(self, save_link_attachment_request, **kwargs):  # noqa: E501
        """Attach a file via UNC  # noqa: E501

        Operation to attach a file to a Business Object via a path (UNC recommended).  # 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_save_business_object_attachment_link_v1(save_link_attachment_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param SaveLinkAttachmentRequest save_link_attachment_request: Request object used to specify the file path (UNC recommended) and the Business Object. You can use Business Object name or ID and Business Object record ID or public ID. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: AttachmentsResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_save_business_object_attachment_link_v1_with_http_info(save_link_attachment_request, **kwargs)  # noqa: E501

    def business_object_save_business_object_attachment_link_v1_with_http_info(self, save_link_attachment_request, **kwargs):  # noqa: E501
        """Attach a file via UNC  # noqa: E501

        Operation to attach a file to a Business Object via a path (UNC recommended).  # 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_save_business_object_attachment_link_v1_with_http_info(save_link_attachment_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param SaveLinkAttachmentRequest save_link_attachment_request: Request object used to specify the file path (UNC recommended) and the Business Object. You can use Business Object name or ID and Business Object record ID or public ID. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(AttachmentsResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['save_link_attachment_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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_save_business_object_attachment_link_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'save_link_attachment_request' is set
        if self.api_client.client_side_validation and ('save_link_attachment_request' not in local_var_params or  # noqa: E501
                                                        local_var_params['save_link_attachment_request'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `save_link_attachment_request` when calling `business_object_save_business_object_attachment_link_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/savebusinessobjectattachmentlink', 'PUT',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='AttachmentsResponse',  # 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_save_business_object_attachment_url_v1(self, save_url_attachment_request, **kwargs):  # noqa: E501
        """Attach a URL path  # noqa: E501

        Operation to attach a URL path to a Business Object.  # 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_save_business_object_attachment_url_v1(save_url_attachment_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param SaveUrlAttachmentRequest save_url_attachment_request: Request object used to specify the URL path and Business Object. You can use Business Object name or ID and Business Object record ID or public ID. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: AttachmentsResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_save_business_object_attachment_url_v1_with_http_info(save_url_attachment_request, **kwargs)  # noqa: E501

    def business_object_save_business_object_attachment_url_v1_with_http_info(self, save_url_attachment_request, **kwargs):  # noqa: E501
        """Attach a URL path  # noqa: E501

        Operation to attach a URL path to a Business Object.  # 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_save_business_object_attachment_url_v1_with_http_info(save_url_attachment_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param SaveUrlAttachmentRequest save_url_attachment_request: Request object used to specify the URL path and Business Object. You can use Business Object name or ID and Business Object record ID or public ID. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(AttachmentsResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['save_url_attachment_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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_save_business_object_attachment_url_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'save_url_attachment_request' is set
        if self.api_client.client_side_validation and ('save_url_attachment_request' not in local_var_params or  # noqa: E501
                                                        local_var_params['save_url_attachment_request'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `save_url_attachment_request` when calling `business_object_save_business_object_attachment_url_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/savebusinessobjectattachmenturl', 'PUT',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='AttachmentsResponse',  # 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_save_business_object_batch_v1(self, batch_save_request, **kwargs):  # noqa: E501
        """Create or update a batch of Business Objects  # noqa: E501

        Operation that creates or updates an array of Business Objects in a batch. To update, specify record ID or public ID. To create, leave record ID and public ID empty.  # 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_save_business_object_batch_v1(batch_save_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param BatchSaveRequest batch_save_request: Specify the array of Business Object templates.  (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: BatchSaveResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_save_business_object_batch_v1_with_http_info(batch_save_request, **kwargs)  # noqa: E501

    def business_object_save_business_object_batch_v1_with_http_info(self, batch_save_request, **kwargs):  # noqa: E501
        """Create or update a batch of Business Objects  # noqa: E501

        Operation that creates or updates an array of Business Objects in a batch. To update, specify record ID or public ID. To create, leave record ID and public ID empty.  # 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_save_business_object_batch_v1_with_http_info(batch_save_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param BatchSaveRequest batch_save_request: Specify the array of Business Object templates.  (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(BatchSaveResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['batch_save_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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_save_business_object_batch_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'batch_save_request' is set
        if self.api_client.client_side_validation and ('batch_save_request' not in local_var_params or  # noqa: E501
                                                        local_var_params['batch_save_request'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `batch_save_request` when calling `business_object_save_business_object_batch_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/savebusinessobjectbatch', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='BatchSaveResponse',  # 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_save_business_object_v1(self, save_request, **kwargs):  # noqa: E501
        """Create or Update a Business Object  # noqa: E501

        Operation that creates a new Business Object or updates an existing Business Object. To create, leave record ID and public ID empty. Upon creating or saving, a cache key is returned to use for subsequent requests. If the object is not found in the cache with said cache key, specify record ID or public ID to save and return a new cache key. Set persist = true, to actually save the Business Object to disk, persist = false will just cache it.  # 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_save_business_object_v1(save_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param SaveRequest save_request: Specify a list of fields from a Business Object template.  (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: SaveResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_save_business_object_v1_with_http_info(save_request, **kwargs)  # noqa: E501

    def business_object_save_business_object_v1_with_http_info(self, save_request, **kwargs):  # noqa: E501
        """Create or Update a Business Object  # noqa: E501

        Operation that creates a new Business Object or updates an existing Business Object. To create, leave record ID and public ID empty. Upon creating or saving, a cache key is returned to use for subsequent requests. If the object is not found in the cache with said cache key, specify record ID or public ID to save and return a new cache key. Set persist = true, to actually save the Business Object to disk, persist = false will just cache it.  # 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_save_business_object_v1_with_http_info(save_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param SaveRequest save_request: Specify a list of fields from a Business Object template.  (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(SaveResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['save_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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_save_business_object_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'save_request' is set
        if self.api_client.client_side_validation and ('save_request' not in local_var_params or  # noqa: E501
                                                        local_var_params['save_request'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `save_request` when calling `business_object_save_business_object_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/savebusinessobject', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='SaveResponse',  # 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_save_related_business_object_v1(self, related_save_request, **kwargs):  # noqa: E501
        """Create or update a related Business Object  # noqa: E501

        Operation that creates or updates a related Business Object. To update, specify record ID or public ID. To create, leave record ID and public ID empty.  # 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_save_related_business_object_v1(related_save_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param RelatedSaveRequest related_save_request: Request object specifying the parent the Business Object, the Relationship, and field values for the Business Object to create or update.  (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: RelatedSaveResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_save_related_business_object_v1_with_http_info(related_save_request, **kwargs)  # noqa: E501

    def business_object_save_related_business_object_v1_with_http_info(self, related_save_request, **kwargs):  # noqa: E501
        """Create or update a related Business Object  # noqa: E501

        Operation that creates or updates a related Business Object. To update, specify record ID or public ID. To create, leave record ID and public ID empty.  # 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_save_related_business_object_v1_with_http_info(related_save_request, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param RelatedSaveRequest related_save_request: Request object specifying the parent the Business Object, the Relationship, and field values for the Business Object to create or update.  (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(RelatedSaveResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['related_save_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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_save_related_business_object_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'related_save_request' is set
        if self.api_client.client_side_validation and ('related_save_request' not in local_var_params or  # noqa: E501
                                                        local_var_params['related_save_request'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `related_save_request` when calling `business_object_save_related_business_object_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/saverelatedbusinessobject', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='RelatedSaveResponse',  # 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_un_link_related_business_object_by_rec_id_v1(self, parentbusobid, parentbusobrecid, relationshipid, busobid, busobrecid, **kwargs):  # noqa: E501
        """UnLink related Business Objects  # noqa: E501

        Operation to unlink related Business Objects.  # 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_un_link_related_business_object_by_rec_id_v1(parentbusobid, parentbusobrecid, relationshipid, busobid, busobrecid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str parentbusobid: Specify the Business Object ID for the parent Business Object. (required)
        :param str parentbusobrecid: Specify the record ID for the parent Business Object. (required)
        :param str relationshipid: Specify the Relationship ID for the related Business Object you want to unlink. (required)
        :param str busobid: Specify the Business Object ID of the Business Object to be unlinked. (required)
        :param str busobrecid: Specify the Business Object record ID of the Business Object to be unlinked. (required)
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: RelatedBusinessObjectResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_un_link_related_business_object_by_rec_id_v1_with_http_info(parentbusobid, parentbusobrecid, relationshipid, busobid, busobrecid, **kwargs)  # noqa: E501

    def business_object_un_link_related_business_object_by_rec_id_v1_with_http_info(self, parentbusobid, parentbusobrecid, relationshipid, busobid, busobrecid, **kwargs):  # noqa: E501
        """UnLink related Business Objects  # noqa: E501

        Operation to unlink related Business Objects.  # 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_un_link_related_business_object_by_rec_id_v1_with_http_info(parentbusobid, parentbusobrecid, relationshipid, busobid, busobrecid, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str parentbusobid: Specify the Business Object ID for the parent Business Object. (required)
        :param str parentbusobrecid: Specify the record ID for the parent Business Object. (required)
        :param str relationshipid: Specify the Relationship ID for the related Business Object you want to unlink. (required)
        :param str busobid: Specify the Business Object ID of the Business Object to be unlinked. (required)
        :param str busobrecid: Specify the Business Object record ID of the Business Object to be unlinked. (required)
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(RelatedBusinessObjectResponse, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['parentbusobid', 'parentbusobrecid', 'relationshipid', 'busobid', 'busobrecid']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_un_link_related_business_object_by_rec_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'parentbusobid' is set
        if self.api_client.client_side_validation and ('parentbusobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['parentbusobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `parentbusobid` when calling `business_object_un_link_related_business_object_by_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'parentbusobrecid' is set
        if self.api_client.client_side_validation and ('parentbusobrecid' not in local_var_params or  # noqa: E501
                                                        local_var_params['parentbusobrecid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `parentbusobrecid` when calling `business_object_un_link_related_business_object_by_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'relationshipid' is set
        if self.api_client.client_side_validation and ('relationshipid' not in local_var_params or  # noqa: E501
                                                        local_var_params['relationshipid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `relationshipid` when calling `business_object_un_link_related_business_object_by_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'busobid' is set
        if self.api_client.client_side_validation and ('busobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobid` when calling `business_object_un_link_related_business_object_by_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'busobrecid' is set
        if self.api_client.client_side_validation and ('busobrecid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobrecid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobrecid` when calling `business_object_un_link_related_business_object_by_rec_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'parentbusobid' in local_var_params:
            path_params['parentbusobid'] = local_var_params['parentbusobid']  # noqa: E501
        if 'parentbusobrecid' in local_var_params:
            path_params['parentbusobrecid'] = local_var_params['parentbusobrecid']  # noqa: E501
        if 'relationshipid' in local_var_params:
            path_params['relationshipid'] = local_var_params['relationshipid']  # noqa: E501
        if 'busobid' in local_var_params:
            path_params['busobid'] = local_var_params['busobid']  # noqa: E501
        if 'busobrecid' in local_var_params:
            path_params['busobrecid'] = local_var_params['busobrecid']  # 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'])  # noqa: E501

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/unlinkrelatedbusinessobject/parentbusobid/{parentbusobid}/parentbusobrecid/{parentbusobrecid}/relationshipid/{relationshipid}/busobid/{busobid}/busobrecid/{busobrecid}', 'DELETE',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='RelatedBusinessObjectResponse',  # 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_upload_business_object_attachment_by_id_and_public_id_v1(self, filename, busobid, publicid, offset, totalsize, body, **kwargs):  # noqa: E501
        """Upload an attachment by Business Object ID and public ID  # noqa: E501

        Operation to upload an attachment to a Business Object record using a Business Object ID and public ID. The body of the request is the byte array of the file part being uploaded.  # 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_upload_business_object_attachment_by_id_and_public_id_v1(filename, busobid, publicid, offset, totalsize, body, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str filename: Specify the name of the file being uploaded. If no attachment name is provided, the file name is used. (required)
        :param str busobid: Specify the Business Object ID. (required)
        :param str publicid: Specify the Business Object public ID  to attach the file to. (required)
        :param int offset: The offset is the starting index of the file part being uploaded.  If this is the first part then the offset will be zero. (required)
        :param int totalsize: The entire file size in bytes. (required)
        :param file body: (required)
        :param str attachmentid: Specify the attachment ID of an uploaded file to upload subsequent parts and ensure each part gets appended to the parts that have already been uploaded.
        :param str displaytext: Specify the attachment name, which is the display text for the attachment record.
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: str
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_upload_business_object_attachment_by_id_and_public_id_v1_with_http_info(filename, busobid, publicid, offset, totalsize, body, **kwargs)  # noqa: E501

    def business_object_upload_business_object_attachment_by_id_and_public_id_v1_with_http_info(self, filename, busobid, publicid, offset, totalsize, body, **kwargs):  # noqa: E501
        """Upload an attachment by Business Object ID and public ID  # noqa: E501

        Operation to upload an attachment to a Business Object record using a Business Object ID and public ID. The body of the request is the byte array of the file part being uploaded.  # 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_upload_business_object_attachment_by_id_and_public_id_v1_with_http_info(filename, busobid, publicid, offset, totalsize, body, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str filename: Specify the name of the file being uploaded. If no attachment name is provided, the file name is used. (required)
        :param str busobid: Specify the Business Object ID. (required)
        :param str publicid: Specify the Business Object public ID  to attach the file to. (required)
        :param int offset: The offset is the starting index of the file part being uploaded.  If this is the first part then the offset will be zero. (required)
        :param int totalsize: The entire file size in bytes. (required)
        :param file body: (required)
        :param str attachmentid: Specify the attachment ID of an uploaded file to upload subsequent parts and ensure each part gets appended to the parts that have already been uploaded.
        :param str displaytext: Specify the attachment name, which is the display text for the attachment record.
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(str, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['filename', 'busobid', 'publicid', 'offset', 'totalsize', 'body', 'attachmentid', 'displaytext']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_upload_business_object_attachment_by_id_and_public_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'filename' is set
        if self.api_client.client_side_validation and ('filename' not in local_var_params or  # noqa: E501
                                                        local_var_params['filename'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `filename` when calling `business_object_upload_business_object_attachment_by_id_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'busobid' is set
        if self.api_client.client_side_validation and ('busobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobid` when calling `business_object_upload_business_object_attachment_by_id_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'publicid' is set
        if self.api_client.client_side_validation and ('publicid' not in local_var_params or  # noqa: E501
                                                        local_var_params['publicid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `publicid` when calling `business_object_upload_business_object_attachment_by_id_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'offset' is set
        if self.api_client.client_side_validation and ('offset' not in local_var_params or  # noqa: E501
                                                        local_var_params['offset'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `offset` when calling `business_object_upload_business_object_attachment_by_id_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'totalsize' is set
        if self.api_client.client_side_validation and ('totalsize' not in local_var_params or  # noqa: E501
                                                        local_var_params['totalsize'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `totalsize` when calling `business_object_upload_business_object_attachment_by_id_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'body' is set
        if self.api_client.client_side_validation and ('body' not in local_var_params or  # noqa: E501
                                                        local_var_params['body'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `body` when calling `business_object_upload_business_object_attachment_by_id_and_public_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'filename' in local_var_params:
            path_params['filename'] = local_var_params['filename']  # noqa: E501
        if 'busobid' in local_var_params:
            path_params['busobid'] = local_var_params['busobid']  # noqa: E501
        if 'publicid' in local_var_params:
            path_params['publicid'] = local_var_params['publicid']  # noqa: E501
        if 'offset' in local_var_params:
            path_params['offset'] = local_var_params['offset']  # noqa: E501
        if 'totalsize' in local_var_params:
            path_params['totalsize'] = local_var_params['totalsize']  # noqa: E501

        query_params = []
        if 'attachmentid' in local_var_params and local_var_params['attachmentid'] is not None:  # noqa: E501
            query_params.append(('attachmentid', local_var_params['attachmentid']))  # noqa: E501
        if 'displaytext' in local_var_params and local_var_params['displaytext'] is not None:  # noqa: E501
            query_params.append(('displaytext', local_var_params['displaytext']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/uploadbusinessobjectattachment/filename/{filename}/busobid/{busobid}/publicid/{publicid}/offset/{offset}/totalsize/{totalsize}', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='str',  # 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_upload_business_object_attachment_by_id_and_rec_id_v1(self, filename, busobid, busobrecid, offset, totalsize, body, **kwargs):  # noqa: E501
        """Upload an attachment by Business Object ID and record ID  # noqa: E501

        Operation to upload an attachment to a Business Object record using a Business Object ID and record ID. The body of the request is the byte array of the file part being uploaded.  # 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_upload_business_object_attachment_by_id_and_rec_id_v1(filename, busobid, busobrecid, offset, totalsize, body, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str filename: Specify the name of the file being uploaded. If no attachment name is provided, the file name is used. (required)
        :param str busobid: Specify the Business Object ID. (required)
        :param str busobrecid: Specify the Business Object record ID to attach the file to. (required)
        :param int offset: The offset is the starting index of the file part being uploaded.  If this is the first part then the offset will be zero. (required)
        :param int totalsize: The entire file size in bytes. (required)
        :param file body: (required)
        :param str attachmentid: Specify the attachment ID of an uploaded file to upload subsequent parts and ensure each part gets appended to the parts that have already been uploaded.
        :param str displaytext: Specify the attachment name, which is the display text for the attachment record.
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: str
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_upload_business_object_attachment_by_id_and_rec_id_v1_with_http_info(filename, busobid, busobrecid, offset, totalsize, body, **kwargs)  # noqa: E501

    def business_object_upload_business_object_attachment_by_id_and_rec_id_v1_with_http_info(self, filename, busobid, busobrecid, offset, totalsize, body, **kwargs):  # noqa: E501
        """Upload an attachment by Business Object ID and record ID  # noqa: E501

        Operation to upload an attachment to a Business Object record using a Business Object ID and record ID. The body of the request is the byte array of the file part being uploaded.  # 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_upload_business_object_attachment_by_id_and_rec_id_v1_with_http_info(filename, busobid, busobrecid, offset, totalsize, body, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str filename: Specify the name of the file being uploaded. If no attachment name is provided, the file name is used. (required)
        :param str busobid: Specify the Business Object ID. (required)
        :param str busobrecid: Specify the Business Object record ID to attach the file to. (required)
        :param int offset: The offset is the starting index of the file part being uploaded.  If this is the first part then the offset will be zero. (required)
        :param int totalsize: The entire file size in bytes. (required)
        :param file body: (required)
        :param str attachmentid: Specify the attachment ID of an uploaded file to upload subsequent parts and ensure each part gets appended to the parts that have already been uploaded.
        :param str displaytext: Specify the attachment name, which is the display text for the attachment record.
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(str, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['filename', 'busobid', 'busobrecid', 'offset', 'totalsize', 'body', 'attachmentid', 'displaytext']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_upload_business_object_attachment_by_id_and_rec_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'filename' is set
        if self.api_client.client_side_validation and ('filename' not in local_var_params or  # noqa: E501
                                                        local_var_params['filename'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `filename` when calling `business_object_upload_business_object_attachment_by_id_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'busobid' is set
        if self.api_client.client_side_validation and ('busobid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobid` when calling `business_object_upload_business_object_attachment_by_id_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'busobrecid' is set
        if self.api_client.client_side_validation and ('busobrecid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobrecid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobrecid` when calling `business_object_upload_business_object_attachment_by_id_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'offset' is set
        if self.api_client.client_side_validation and ('offset' not in local_var_params or  # noqa: E501
                                                        local_var_params['offset'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `offset` when calling `business_object_upload_business_object_attachment_by_id_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'totalsize' is set
        if self.api_client.client_side_validation and ('totalsize' not in local_var_params or  # noqa: E501
                                                        local_var_params['totalsize'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `totalsize` when calling `business_object_upload_business_object_attachment_by_id_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'body' is set
        if self.api_client.client_side_validation and ('body' not in local_var_params or  # noqa: E501
                                                        local_var_params['body'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `body` when calling `business_object_upload_business_object_attachment_by_id_and_rec_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'filename' in local_var_params:
            path_params['filename'] = local_var_params['filename']  # noqa: E501
        if 'busobid' in local_var_params:
            path_params['busobid'] = local_var_params['busobid']  # noqa: E501
        if 'busobrecid' in local_var_params:
            path_params['busobrecid'] = local_var_params['busobrecid']  # noqa: E501
        if 'offset' in local_var_params:
            path_params['offset'] = local_var_params['offset']  # noqa: E501
        if 'totalsize' in local_var_params:
            path_params['totalsize'] = local_var_params['totalsize']  # noqa: E501

        query_params = []
        if 'attachmentid' in local_var_params and local_var_params['attachmentid'] is not None:  # noqa: E501
            query_params.append(('attachmentid', local_var_params['attachmentid']))  # noqa: E501
        if 'displaytext' in local_var_params and local_var_params['displaytext'] is not None:  # noqa: E501
            query_params.append(('displaytext', local_var_params['displaytext']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/uploadbusinessobjectattachment/filename/{filename}/busobid/{busobid}/busobrecid/{busobrecid}/offset/{offset}/totalsize/{totalsize}', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='str',  # 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_upload_business_object_attachment_by_name_and_public_id_v1(self, filename, busobname, publicid, offset, totalsize, body, **kwargs):  # noqa: E501
        """Upload an attachment by Business Object name and public ID  # noqa: E501

        Operation to upload an attachment to a Business Object record using a Business Object name and public ID. The body of the request is the byte array of the file part being uploaded.  # 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_upload_business_object_attachment_by_name_and_public_id_v1(filename, busobname, publicid, offset, totalsize, body, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str filename: Specify the name of the file being uploaded. If no attachment name is provided, the file name is used. (required)
        :param str busobname: Specify the Business Object name. (required)
        :param str publicid: Specify the Business Object public ID  to attach the file to. (required)
        :param int offset: The offset is the starting index of the file part being uploaded.  If this is the first part then the offset will be zero. (required)
        :param int totalsize: The entire file size in bytes. (required)
        :param file body: (required)
        :param str attachmentid: Specify the attachment ID of an uploaded file to upload subsequent parts and ensure each part gets appended to the parts that have already been uploaded.
        :param str displaytext: Specify the attachment name, which is the display text for the attachment record.
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: str
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_upload_business_object_attachment_by_name_and_public_id_v1_with_http_info(filename, busobname, publicid, offset, totalsize, body, **kwargs)  # noqa: E501

    def business_object_upload_business_object_attachment_by_name_and_public_id_v1_with_http_info(self, filename, busobname, publicid, offset, totalsize, body, **kwargs):  # noqa: E501
        """Upload an attachment by Business Object name and public ID  # noqa: E501

        Operation to upload an attachment to a Business Object record using a Business Object name and public ID. The body of the request is the byte array of the file part being uploaded.  # 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_upload_business_object_attachment_by_name_and_public_id_v1_with_http_info(filename, busobname, publicid, offset, totalsize, body, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str filename: Specify the name of the file being uploaded. If no attachment name is provided, the file name is used. (required)
        :param str busobname: Specify the Business Object name. (required)
        :param str publicid: Specify the Business Object public ID  to attach the file to. (required)
        :param int offset: The offset is the starting index of the file part being uploaded.  If this is the first part then the offset will be zero. (required)
        :param int totalsize: The entire file size in bytes. (required)
        :param file body: (required)
        :param str attachmentid: Specify the attachment ID of an uploaded file to upload subsequent parts and ensure each part gets appended to the parts that have already been uploaded.
        :param str displaytext: Specify the attachment name, which is the display text for the attachment record.
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(str, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['filename', 'busobname', 'publicid', 'offset', 'totalsize', 'body', 'attachmentid', 'displaytext']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_upload_business_object_attachment_by_name_and_public_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'filename' is set
        if self.api_client.client_side_validation and ('filename' not in local_var_params or  # noqa: E501
                                                        local_var_params['filename'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `filename` when calling `business_object_upload_business_object_attachment_by_name_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'busobname' is set
        if self.api_client.client_side_validation and ('busobname' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobname'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobname` when calling `business_object_upload_business_object_attachment_by_name_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'publicid' is set
        if self.api_client.client_side_validation and ('publicid' not in local_var_params or  # noqa: E501
                                                        local_var_params['publicid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `publicid` when calling `business_object_upload_business_object_attachment_by_name_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'offset' is set
        if self.api_client.client_side_validation and ('offset' not in local_var_params or  # noqa: E501
                                                        local_var_params['offset'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `offset` when calling `business_object_upload_business_object_attachment_by_name_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'totalsize' is set
        if self.api_client.client_side_validation and ('totalsize' not in local_var_params or  # noqa: E501
                                                        local_var_params['totalsize'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `totalsize` when calling `business_object_upload_business_object_attachment_by_name_and_public_id_v1`")  # noqa: E501
        # verify the required parameter 'body' is set
        if self.api_client.client_side_validation and ('body' not in local_var_params or  # noqa: E501
                                                        local_var_params['body'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `body` when calling `business_object_upload_business_object_attachment_by_name_and_public_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'filename' in local_var_params:
            path_params['filename'] = local_var_params['filename']  # noqa: E501
        if 'busobname' in local_var_params:
            path_params['busobname'] = local_var_params['busobname']  # noqa: E501
        if 'publicid' in local_var_params:
            path_params['publicid'] = local_var_params['publicid']  # noqa: E501
        if 'offset' in local_var_params:
            path_params['offset'] = local_var_params['offset']  # noqa: E501
        if 'totalsize' in local_var_params:
            path_params['totalsize'] = local_var_params['totalsize']  # noqa: E501

        query_params = []
        if 'attachmentid' in local_var_params and local_var_params['attachmentid'] is not None:  # noqa: E501
            query_params.append(('attachmentid', local_var_params['attachmentid']))  # noqa: E501
        if 'displaytext' in local_var_params and local_var_params['displaytext'] is not None:  # noqa: E501
            query_params.append(('displaytext', local_var_params['displaytext']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/uploadbusinessobjectattachment/filename/{filename}/busobname/{busobname}/publicid/{publicid}/offset/{offset}/totalsize/{totalsize}', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='str',  # 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_upload_business_object_attachment_by_name_and_rec_id_v1(self, filename, busobname, busobrecid, offset, totalsize, body, **kwargs):  # noqa: E501
        """Upload an attachment by Business Object name and record ID  # noqa: E501

        Operation to upload an attachment to a Business Object record using a Business Object name and record ID. The body of the request is the byte array of the file part being uploaded.  # 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_upload_business_object_attachment_by_name_and_rec_id_v1(filename, busobname, busobrecid, offset, totalsize, body, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str filename: Specify the name of the file being uploaded. If no attachment name is provided, the file name is used. (required)
        :param str busobname: Specify the Business Object name. (required)
        :param str busobrecid: Specify the Business Object record ID to attach the file to. (required)
        :param int offset: The offset is the starting index of the file part being uploaded.  If this is the first part then the offset will be zero. (required)
        :param int totalsize: The entire file size in bytes. (required)
        :param file body: (required)
        :param str attachmentid: Specify the attachment ID of an uploaded file to upload subsequent parts and ensure each part gets appended to the parts that have already been uploaded.
        :param str displaytext: Specify the attachment name, which is the display text for the attachment record.
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: str
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        return self.business_object_upload_business_object_attachment_by_name_and_rec_id_v1_with_http_info(filename, busobname, busobrecid, offset, totalsize, body, **kwargs)  # noqa: E501

    def business_object_upload_business_object_attachment_by_name_and_rec_id_v1_with_http_info(self, filename, busobname, busobrecid, offset, totalsize, body, **kwargs):  # noqa: E501
        """Upload an attachment by Business Object name and record ID  # noqa: E501

        Operation to upload an attachment to a Business Object record using a Business Object name and record ID. The body of the request is the byte array of the file part being uploaded.  # 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_upload_business_object_attachment_by_name_and_rec_id_v1_with_http_info(filename, busobname, busobrecid, offset, totalsize, body, async_req=True)
        >>> result = thread.get()

        :param async_req bool: execute request asynchronously
        :param str filename: Specify the name of the file being uploaded. If no attachment name is provided, the file name is used. (required)
        :param str busobname: Specify the Business Object name. (required)
        :param str busobrecid: Specify the Business Object record ID to attach the file to. (required)
        :param int offset: The offset is the starting index of the file part being uploaded.  If this is the first part then the offset will be zero. (required)
        :param int totalsize: The entire file size in bytes. (required)
        :param file body: (required)
        :param str attachmentid: Specify the attachment ID of an uploaded file to upload subsequent parts and ensure each part gets appended to the parts that have already been uploaded.
        :param str displaytext: Specify the attachment name, which is the display text for the attachment record.
        :param _return_http_data_only: response data without head status code
                                       and headers
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        :return: tuple(str, status_code(int), headers(HTTPHeaderDict))
                 If the method is called asynchronously,
                 returns the request thread.
        """

        local_var_params = locals()

        all_params = ['filename', 'busobname', 'busobrecid', 'offset', 'totalsize', 'body', 'attachmentid', 'displaytext']  # 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 ApiTypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method business_object_upload_business_object_attachment_by_name_and_rec_id_v1" % key
                )
            local_var_params[key] = val
        del local_var_params['kwargs']
        # verify the required parameter 'filename' is set
        if self.api_client.client_side_validation and ('filename' not in local_var_params or  # noqa: E501
                                                        local_var_params['filename'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `filename` when calling `business_object_upload_business_object_attachment_by_name_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'busobname' is set
        if self.api_client.client_side_validation and ('busobname' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobname'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobname` when calling `business_object_upload_business_object_attachment_by_name_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'busobrecid' is set
        if self.api_client.client_side_validation and ('busobrecid' not in local_var_params or  # noqa: E501
                                                        local_var_params['busobrecid'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `busobrecid` when calling `business_object_upload_business_object_attachment_by_name_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'offset' is set
        if self.api_client.client_side_validation and ('offset' not in local_var_params or  # noqa: E501
                                                        local_var_params['offset'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `offset` when calling `business_object_upload_business_object_attachment_by_name_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'totalsize' is set
        if self.api_client.client_side_validation and ('totalsize' not in local_var_params or  # noqa: E501
                                                        local_var_params['totalsize'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `totalsize` when calling `business_object_upload_business_object_attachment_by_name_and_rec_id_v1`")  # noqa: E501
        # verify the required parameter 'body' is set
        if self.api_client.client_side_validation and ('body' not in local_var_params or  # noqa: E501
                                                        local_var_params['body'] is None):  # noqa: E501
            raise ApiValueError("Missing the required parameter `body` when calling `business_object_upload_business_object_attachment_by_name_and_rec_id_v1`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'filename' in local_var_params:
            path_params['filename'] = local_var_params['filename']  # noqa: E501
        if 'busobname' in local_var_params:
            path_params['busobname'] = local_var_params['busobname']  # noqa: E501
        if 'busobrecid' in local_var_params:
            path_params['busobrecid'] = local_var_params['busobrecid']  # noqa: E501
        if 'offset' in local_var_params:
            path_params['offset'] = local_var_params['offset']  # noqa: E501
        if 'totalsize' in local_var_params:
            path_params['totalsize'] = local_var_params['totalsize']  # noqa: E501

        query_params = []
        if 'attachmentid' in local_var_params and local_var_params['attachmentid'] is not None:  # noqa: E501
            query_params.append(('attachmentid', local_var_params['attachmentid']))  # noqa: E501
        if 'displaytext' in local_var_params and local_var_params['displaytext'] is not None:  # noqa: E501
            query_params.append(('displaytext', local_var_params['displaytext']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = []  # noqa: E501

        return self.api_client.call_api(
            '/api/V1/uploadbusinessobjectattachment/filename/{filename}/busobname/{busobname}/busobrecid/{busobrecid}/offset/{offset}/totalsize/{totalsize}', 'POST',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='str',  # 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)
