def save_widgets_bundle_using_post_with_http_info(self, **kwargs):
    "Create Or Update Widget Bundle (saveWidgetsBundle)  # noqa: E501\n\n        Create or update the Widget Bundle. Widget Bundle represents a group(bundle) of widgets. Widgets are grouped into bundle by type or use case.  When creating the bundle, platform generates Widget Bundle Id as [time-based UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address)). The newly created Widget Bundle Id will be present in the response. Specify existing Widget Bundle id to update the Widget Bundle. Referencing non-existing Widget Bundle Id will cause 'Not Found' error.  Widget Bundle alias is unique in the scope of tenant. Special Tenant Id '13814000-1dd2-11b2-8080-808080808080' is automatically used if the create bundle request is sent by user with 'SYS_ADMIN' authority.  Available for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority.  # noqa: E501\n        This method makes a synchronous HTTP request by default. To make an\n        asynchronous HTTP request, please pass async_req=True\n        >>> thread = api.save_widgets_bundle_using_post_with_http_info(async_req=True)\n        >>> result = thread.get()\n\n        :param async_req bool\n        :param WidgetsBundle body:\n        :return: WidgetsBundle\n                 If the method is called asynchronously,\n                 returns the request thread.\n        "
    all_params = ['body']
    all_params.append('async_req')
    all_params.append('_return_http_data_only')
    all_params.append('_preload_content')
    all_params.append('_request_timeout')
    params = locals()
    for (key, val) in six.iteritems(params['kwargs']):
        if (key not in all_params):
            raise TypeError(("Got an unexpected keyword argument '%s' to method save_widgets_bundle_using_post" % key))
        params[key] = val
    del params['kwargs']
    collection_formats = {}
    path_params = {}
    query_params = []
    header_params = {}
    form_params = []
    local_var_files = {}
    body_params = None
    if ('body' in params):
        body_params = params['body']
    header_params['Accept'] = self.api_client.select_header_accept(['application/json'])
    header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json'])
    auth_settings = ['X-Authorization']
    return self.api_client.call_api('/api/widgetsBundle', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, response_type='WidgetsBundle', auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats)
Create Or Update Widget Bundle (saveWidgetsBundle)  # noqa: E501

Create or update the Widget Bundle. Widget Bundle represents a group(bundle) of widgets. Widgets are grouped into bundle by type or use case.  When creating the bundle, platform generates Widget Bundle Id as [time-based UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address)). The newly created Widget Bundle Id will be present in the response. Specify existing Widget Bundle id to update the Widget Bundle. Referencing non-existing Widget Bundle Id will cause 'Not Found' error.  Widget Bundle alias is unique in the scope of tenant. Special Tenant Id '13814000-1dd2-11b2-8080-808080808080' is automatically used if the create bundle request is sent by user with 'SYS_ADMIN' authority.  Available for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority.  # noqa: E501
This method makes a synchronous HTTP request by default. To make an
asynchronous HTTP request, please pass async_req=True
>>> thread = api.save_widgets_bundle_using_post_with_http_info(async_req=True)
>>> result = thread.get()

:param async_req bool
:param WidgetsBundle body:
:return: WidgetsBundle
         If the method is called asynchronously,
         returns the request thread.
def save_widgets_bundle_using_post_with_http_info(self, **kwargs):
    "Create Or Update Widget Bundle (saveWidgetsBundle)  # noqa: E501\n\n        Create or update the Widget Bundle. Widget Bundle represents a group(bundle) of widgets. Widgets are grouped into bundle by type or use case.  When creating the bundle, platform generates Widget Bundle Id as [time-based UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address)). The newly created Widget Bundle Id will be present in the response. Specify existing Widget Bundle id to update the Widget Bundle. Referencing non-existing Widget Bundle Id will cause 'Not Found' error.  Widget Bundle alias is unique in the scope of tenant. Special Tenant Id '13814000-1dd2-11b2-8080-808080808080' is automatically used if the create bundle request is sent by user with 'SYS_ADMIN' authority.  Available for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority.  # noqa: E501\n        This method makes a synchronous HTTP request by default. To make an\n        asynchronous HTTP request, please pass async_req=True\n        >>> thread = api.save_widgets_bundle_using_post_with_http_info(async_req=True)\n        >>> result = thread.get()\n\n        :param async_req bool\n        :param WidgetsBundle body:\n        :return: WidgetsBundle\n                 If the method is called asynchronously,\n                 returns the request thread.\n        "
    all_params = ['body']
    all_params.append('async_req')
    all_params.append('_return_http_data_only')
    all_params.append('_preload_content')
    all_params.append('_request_timeout')
    params = locals()
    for (key, val) in six.iteritems(params['kwargs']):
        if (key not in all_params):
            raise TypeError(("Got an unexpected keyword argument '%s' to method save_widgets_bundle_using_post" % key))
        params[key] = val
    del params['kwargs']
    collection_formats = {}
    path_params = {}
    query_params = []
    header_params = {}
    form_params = []
    local_var_files = {}
    body_params = None
    if ('body' in params):
        body_params = params['body']
    header_params['Accept'] = self.api_client.select_header_accept(['application/json'])
    header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json'])
    auth_settings = ['X-Authorization']
    return self.api_client.call_api('/api/widgetsBundle', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, response_type='WidgetsBundle', auth_settings=auth_settings, async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats)