<reponame>balazsgaspar/whoville
# coding: utf-8

"""
    Cloudbreak API

    Cloudbreak is a powerful left surf that breaks over a coral reef, a mile off southwest the island of Tavarua, Fiji. Cloudbreak is a cloud agnostic Hadoop as a Service API. Abstracts the provisioning and ease management and monitoring of on-demand clusters. SequenceIQ's Cloudbreak is a RESTful application development platform with the goal of helping developers to build solutions for deploying Hadoop YARN clusters in different environments. Once it is deployed in your favourite servlet container it exposes a REST API allowing to span up Hadoop clusters of arbitary sizes and cloud providers. Provisioning Hadoop has never been easier. Cloudbreak is built on the foundation of cloud providers API (Amazon AWS, Microsoft Azure, Google Cloud Platform, Openstack), Apache Ambari, Docker lightweight containers, Swarm and Consul. For further product documentation follow the link: <a href=\"http://hortonworks.com/apache/cloudbreak/\">http://hortonworks.com/apache/cloudbreak/</a>

    OpenAPI spec version: 2.9.0
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


from __future__ import absolute_import

import sys
import os
import re

# python 2 and python 3 compatibility library
from six import iteritems

from ..configuration import Configuration
from ..api_client import ApiClient


class V3workspaceIdimagecatalogsApi(object):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    Ref: https://github.com/swagger-api/swagger-codegen
    """

    def __init__(self, api_client=None):
        config = Configuration()
        if api_client:
            self.api_client = api_client
        else:
            if not config.api_client:
                config.api_client = ApiClient()
            self.api_client = config.api_client

    def create_image_catalog_in_workspace(self, workspace_id, **kwargs):
        """
        create image catalog in workspace
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.create_image_catalog_in_workspace(workspace_id, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param ImageCatalogRequest body:
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.create_image_catalog_in_workspace_with_http_info(workspace_id, **kwargs)
        else:
            (data) = self.create_image_catalog_in_workspace_with_http_info(workspace_id, **kwargs)
            return data

    def create_image_catalog_in_workspace_with_http_info(self, workspace_id, **kwargs):
        """
        create image catalog in workspace
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.create_image_catalog_in_workspace_with_http_info(workspace_id, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param ImageCatalogRequest body:
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'body']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

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


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs', 'POST',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImageCatalogResponse',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def delete_image_catalog_in_workspace(self, workspace_id, name, **kwargs):
        """
        delete image catalog by name in workspace
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.delete_image_catalog_in_workspace(workspace_id, name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.delete_image_catalog_in_workspace_with_http_info(workspace_id, name, **kwargs)
        else:
            (data) = self.delete_image_catalog_in_workspace_with_http_info(workspace_id, name, **kwargs)
            return data

    def delete_image_catalog_in_workspace_with_http_info(self, workspace_id, name, **kwargs):
        """
        delete image catalog by name in workspace
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.delete_image_catalog_in_workspace_with_http_info(workspace_id, name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'name']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method delete_image_catalog_in_workspace" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'workspace_id' is set
        if ('workspace_id' not in params) or (params['workspace_id'] is None):
            raise ValueError("Missing the required parameter `workspace_id` when calling `delete_image_catalog_in_workspace`")
        # verify the required parameter 'name' is set
        if ('name' not in params) or (params['name'] is None):
            raise ValueError("Missing the required parameter `name` when calling `delete_image_catalog_in_workspace`")


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']
        if 'name' in params:
            path_params['name'] = params['name']

        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'])

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs/{name}', 'DELETE',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImageCatalogResponse',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def get_image_catalog_in_workspace(self, workspace_id, name, **kwargs):
        """
        get image catalog by name in workspace
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_image_catalog_in_workspace(workspace_id, name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :param bool with_images:
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.get_image_catalog_in_workspace_with_http_info(workspace_id, name, **kwargs)
        else:
            (data) = self.get_image_catalog_in_workspace_with_http_info(workspace_id, name, **kwargs)
            return data

    def get_image_catalog_in_workspace_with_http_info(self, workspace_id, name, **kwargs):
        """
        get image catalog by name in workspace
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_image_catalog_in_workspace_with_http_info(workspace_id, name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :param bool with_images:
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'name', 'with_images']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method get_image_catalog_in_workspace" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'workspace_id' is set
        if ('workspace_id' not in params) or (params['workspace_id'] is None):
            raise ValueError("Missing the required parameter `workspace_id` when calling `get_image_catalog_in_workspace`")
        # verify the required parameter 'name' is set
        if ('name' not in params) or (params['name'] is None):
            raise ValueError("Missing the required parameter `name` when calling `get_image_catalog_in_workspace`")


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']
        if 'name' in params:
            path_params['name'] = params['name']

        query_params = []
        if 'with_images' in params:
            query_params.append(('withImages', params['with_images']))

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.\
            select_header_accept(['application/json'])

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs/{name}', 'GET',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImageCatalogResponse',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def get_image_catalog_request_from_name_in_workspace(self, workspace_id, name, **kwargs):
        """
        retrieve imagecatalog request by imagecatalog name
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_image_catalog_request_from_name_in_workspace(workspace_id, name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :return: ImageCatalogRequest
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.get_image_catalog_request_from_name_in_workspace_with_http_info(workspace_id, name, **kwargs)
        else:
            (data) = self.get_image_catalog_request_from_name_in_workspace_with_http_info(workspace_id, name, **kwargs)
            return data

    def get_image_catalog_request_from_name_in_workspace_with_http_info(self, workspace_id, name, **kwargs):
        """
        retrieve imagecatalog request by imagecatalog name
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_image_catalog_request_from_name_in_workspace_with_http_info(workspace_id, name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :return: ImageCatalogRequest
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'name']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method get_image_catalog_request_from_name_in_workspace" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'workspace_id' is set
        if ('workspace_id' not in params) or (params['workspace_id'] is None):
            raise ValueError("Missing the required parameter `workspace_id` when calling `get_image_catalog_request_from_name_in_workspace`")
        # verify the required parameter 'name' is set
        if ('name' not in params) or (params['name'] is None):
            raise ValueError("Missing the required parameter `name` when calling `get_image_catalog_request_from_name_in_workspace`")


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']
        if 'name' in params:
            path_params['name'] = params['name']

        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'])

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs/{name}/request', 'GET',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImageCatalogRequest',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def get_images_by_provider_and_custom_image_catalog_in_workspace(self, workspace_id, name, platform, **kwargs):
        """
        determines available images for the Cloudbreak version by the given provider and given image catalog url
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_images_by_provider_and_custom_image_catalog_in_workspace(workspace_id, name, platform, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :param str platform: (required)
        :return: ImagesResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.get_images_by_provider_and_custom_image_catalog_in_workspace_with_http_info(workspace_id, name, platform, **kwargs)
        else:
            (data) = self.get_images_by_provider_and_custom_image_catalog_in_workspace_with_http_info(workspace_id, name, platform, **kwargs)
            return data

    def get_images_by_provider_and_custom_image_catalog_in_workspace_with_http_info(self, workspace_id, name, platform, **kwargs):
        """
        determines available images for the Cloudbreak version by the given provider and given image catalog url
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_images_by_provider_and_custom_image_catalog_in_workspace_with_http_info(workspace_id, name, platform, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :param str platform: (required)
        :return: ImagesResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'name', 'platform']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method get_images_by_provider_and_custom_image_catalog_in_workspace" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'workspace_id' is set
        if ('workspace_id' not in params) or (params['workspace_id'] is None):
            raise ValueError("Missing the required parameter `workspace_id` when calling `get_images_by_provider_and_custom_image_catalog_in_workspace`")
        # verify the required parameter 'name' is set
        if ('name' not in params) or (params['name'] is None):
            raise ValueError("Missing the required parameter `name` when calling `get_images_by_provider_and_custom_image_catalog_in_workspace`")
        # verify the required parameter 'platform' is set
        if ('platform' not in params) or (params['platform'] is None):
            raise ValueError("Missing the required parameter `platform` when calling `get_images_by_provider_and_custom_image_catalog_in_workspace`")


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']
        if 'name' in params:
            path_params['name'] = params['name']
        if 'platform' in params:
            path_params['platform'] = params['platform']

        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'])

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs/{name}/platform/{platform}', 'GET',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImagesResponse',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def get_images_by_provider_in_workspace(self, workspace_id, platform, **kwargs):
        """
        determines available images for the Cloudbreak version by the given provider and default image catalog url
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_images_by_provider_in_workspace(workspace_id, platform, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str platform: (required)
        :return: ImagesResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.get_images_by_provider_in_workspace_with_http_info(workspace_id, platform, **kwargs)
        else:
            (data) = self.get_images_by_provider_in_workspace_with_http_info(workspace_id, platform, **kwargs)
            return data

    def get_images_by_provider_in_workspace_with_http_info(self, workspace_id, platform, **kwargs):
        """
        determines available images for the Cloudbreak version by the given provider and default image catalog url
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_images_by_provider_in_workspace_with_http_info(workspace_id, platform, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str platform: (required)
        :return: ImagesResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'platform']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method get_images_by_provider_in_workspace" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'workspace_id' is set
        if ('workspace_id' not in params) or (params['workspace_id'] is None):
            raise ValueError("Missing the required parameter `workspace_id` when calling `get_images_by_provider_in_workspace`")
        # verify the required parameter 'platform' is set
        if ('platform' not in params) or (params['platform'] is None):
            raise ValueError("Missing the required parameter `platform` when calling `get_images_by_provider_in_workspace`")


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']
        if 'platform' in params:
            path_params['platform'] = params['platform']

        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'])

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs/platform/{platform}', 'GET',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImagesResponse',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def get_images_by_stack_name_and_custom_image_catalog_in_workspace(self, workspace_id, name, stack_name, **kwargs):
        """
        determines available images for the given stackfrom the given imagecatalog name
        Provides an interface to determine available Virtual Machine images for the given stack.Please consider running sync beforehand
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_images_by_stack_name_and_custom_image_catalog_in_workspace(workspace_id, name, stack_name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :param str stack_name: (required)
        :return: ImagesResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.get_images_by_stack_name_and_custom_image_catalog_in_workspace_with_http_info(workspace_id, name, stack_name, **kwargs)
        else:
            (data) = self.get_images_by_stack_name_and_custom_image_catalog_in_workspace_with_http_info(workspace_id, name, stack_name, **kwargs)
            return data

    def get_images_by_stack_name_and_custom_image_catalog_in_workspace_with_http_info(self, workspace_id, name, stack_name, **kwargs):
        """
        determines available images for the given stackfrom the given imagecatalog name
        Provides an interface to determine available Virtual Machine images for the given stack.Please consider running sync beforehand
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_images_by_stack_name_and_custom_image_catalog_in_workspace_with_http_info(workspace_id, name, stack_name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :param str stack_name: (required)
        :return: ImagesResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'name', 'stack_name']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method get_images_by_stack_name_and_custom_image_catalog_in_workspace" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'workspace_id' is set
        if ('workspace_id' not in params) or (params['workspace_id'] is None):
            raise ValueError("Missing the required parameter `workspace_id` when calling `get_images_by_stack_name_and_custom_image_catalog_in_workspace`")
        # verify the required parameter 'name' is set
        if ('name' not in params) or (params['name'] is None):
            raise ValueError("Missing the required parameter `name` when calling `get_images_by_stack_name_and_custom_image_catalog_in_workspace`")
        # verify the required parameter 'stack_name' is set
        if ('stack_name' not in params) or (params['stack_name'] is None):
            raise ValueError("Missing the required parameter `stack_name` when calling `get_images_by_stack_name_and_custom_image_catalog_in_workspace`")


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']
        if 'name' in params:
            path_params['name'] = params['name']
        if 'stack_name' in params:
            path_params['stackName'] = params['stack_name']

        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'])

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs/upgrade/{stackName}/{name}', 'GET',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImagesResponse',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def get_images_by_stack_name_and_default_image_catalog_in_workspace(self, workspace_id, stack_name, **kwargs):
        """
        determines available images for the given stackfrom the default image catalog
        Provides an interface to determine available Virtual Machine images for the given stack.Please consider running sync beforehand
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_images_by_stack_name_and_default_image_catalog_in_workspace(workspace_id, stack_name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str stack_name: (required)
        :return: ImagesResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.get_images_by_stack_name_and_default_image_catalog_in_workspace_with_http_info(workspace_id, stack_name, **kwargs)
        else:
            (data) = self.get_images_by_stack_name_and_default_image_catalog_in_workspace_with_http_info(workspace_id, stack_name, **kwargs)
            return data

    def get_images_by_stack_name_and_default_image_catalog_in_workspace_with_http_info(self, workspace_id, stack_name, **kwargs):
        """
        determines available images for the given stackfrom the default image catalog
        Provides an interface to determine available Virtual Machine images for the given stack.Please consider running sync beforehand
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_images_by_stack_name_and_default_image_catalog_in_workspace_with_http_info(workspace_id, stack_name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str stack_name: (required)
        :return: ImagesResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'stack_name']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method get_images_by_stack_name_and_default_image_catalog_in_workspace" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'workspace_id' is set
        if ('workspace_id' not in params) or (params['workspace_id'] is None):
            raise ValueError("Missing the required parameter `workspace_id` when calling `get_images_by_stack_name_and_default_image_catalog_in_workspace`")
        # verify the required parameter 'stack_name' is set
        if ('stack_name' not in params) or (params['stack_name'] is None):
            raise ValueError("Missing the required parameter `stack_name` when calling `get_images_by_stack_name_and_default_image_catalog_in_workspace`")


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']
        if 'stack_name' in params:
            path_params['stackName'] = params['stack_name']

        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'])

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs/upgrade/{stackName}', 'GET',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImagesResponse',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def list_image_catalogs_by_workspace(self, workspace_id, **kwargs):
        """
        list image catalogs for the given workspace
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.list_image_catalogs_by_workspace(workspace_id, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :return: list[ImageCatalogResponse]
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.list_image_catalogs_by_workspace_with_http_info(workspace_id, **kwargs)
        else:
            (data) = self.list_image_catalogs_by_workspace_with_http_info(workspace_id, **kwargs)
            return data

    def list_image_catalogs_by_workspace_with_http_info(self, workspace_id, **kwargs):
        """
        list image catalogs for the given workspace
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.list_image_catalogs_by_workspace_with_http_info(workspace_id, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :return: list[ImageCatalogResponse]
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

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


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']

        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'])

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs', 'GET',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='list[ImageCatalogResponse]',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def put_public_image_catalog_in_workspace(self, workspace_id, **kwargs):
        """
        update public (owned) or private Image Catalog by id
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.put_public_image_catalog_in_workspace(workspace_id, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param UpdateImageCatalogRequest body:
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.put_public_image_catalog_in_workspace_with_http_info(workspace_id, **kwargs)
        else:
            (data) = self.put_public_image_catalog_in_workspace_with_http_info(workspace_id, **kwargs)
            return data

    def put_public_image_catalog_in_workspace_with_http_info(self, workspace_id, **kwargs):
        """
        update public (owned) or private Image Catalog by id
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.put_public_image_catalog_in_workspace_with_http_info(workspace_id, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param UpdateImageCatalogRequest body:
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'body']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

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


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs', 'PUT',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImageCatalogResponse',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def put_set_default_image_catalog_by_name_in_workspace(self, workspace_id, name, **kwargs):
        """
        update public (owned) or private Image Catalog by id
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.put_set_default_image_catalog_by_name_in_workspace(workspace_id, name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.put_set_default_image_catalog_by_name_in_workspace_with_http_info(workspace_id, name, **kwargs)
        else:
            (data) = self.put_set_default_image_catalog_by_name_in_workspace_with_http_info(workspace_id, name, **kwargs)
            return data

    def put_set_default_image_catalog_by_name_in_workspace_with_http_info(self, workspace_id, name, **kwargs):
        """
        update public (owned) or private Image Catalog by id
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.put_set_default_image_catalog_by_name_in_workspace_with_http_info(workspace_id, name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'name']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method put_set_default_image_catalog_by_name_in_workspace" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'workspace_id' is set
        if ('workspace_id' not in params) or (params['workspace_id'] is None):
            raise ValueError("Missing the required parameter `workspace_id` when calling `put_set_default_image_catalog_by_name_in_workspace`")
        # verify the required parameter 'name' is set
        if ('name' not in params) or (params['name'] is None):
            raise ValueError("Missing the required parameter `name` when calling `put_set_default_image_catalog_by_name_in_workspace`")


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']
        if 'name' in params:
            path_params['name'] = params['name']

        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'])

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs/setdefault/{name}', 'PUT',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImageCatalogResponse',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

# coding: utf-8

"""
    Cloudbreak API

    Cloudbreak is a powerful left surf that breaks over a coral reef, a mile off southwest the island of Tavarua, Fiji. Cloudbreak is a cloud agnostic Hadoop as a Service API. Abstracts the provisioning and ease management and monitoring of on-demand clusters. SequenceIQ's Cloudbreak is a RESTful application development platform with the goal of helping developers to build solutions for deploying Hadoop YARN clusters in different environments. Once it is deployed in your favourite servlet container it exposes a REST API allowing to span up Hadoop clusters of arbitary sizes and cloud providers. Provisioning Hadoop has never been easier. Cloudbreak is built on the foundation of cloud providers API (Amazon AWS, Microsoft Azure, Google Cloud Platform, Openstack), Apache Ambari, Docker lightweight containers, Swarm and Consul. For further product documentation follow the link: <a href=\"http://hortonworks.com/apache/cloudbreak/\">http://hortonworks.com/apache/cloudbreak/</a>

    OpenAPI spec version: 2.9.0
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


from __future__ import absolute_import

import sys
import os
import re

# python 2 and python 3 compatibility library
from six import iteritems

from ..configuration import Configuration
from ..api_client import ApiClient


class V3workspaceIdimagecatalogsApi(object):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    Ref: https://github.com/swagger-api/swagger-codegen
    """

    def __init__(self, api_client=None):
        config = Configuration()
        if api_client:
            self.api_client = api_client
        else:
            if not config.api_client:
                config.api_client = ApiClient()
            self.api_client = config.api_client

    def create_image_catalog_in_workspace(self, workspace_id, **kwargs):
        """
        create image catalog in workspace
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.create_image_catalog_in_workspace(workspace_id, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param ImageCatalogRequest body:
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.create_image_catalog_in_workspace_with_http_info(workspace_id, **kwargs)
        else:
            (data) = self.create_image_catalog_in_workspace_with_http_info(workspace_id, **kwargs)
            return data

    def create_image_catalog_in_workspace_with_http_info(self, workspace_id, **kwargs):
        """
        create image catalog in workspace
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.create_image_catalog_in_workspace_with_http_info(workspace_id, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param ImageCatalogRequest body:
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'body']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

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


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs', 'POST',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImageCatalogResponse',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def delete_image_catalog_in_workspace(self, workspace_id, name, **kwargs):
        """
        delete image catalog by name in workspace
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.delete_image_catalog_in_workspace(workspace_id, name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.delete_image_catalog_in_workspace_with_http_info(workspace_id, name, **kwargs)
        else:
            (data) = self.delete_image_catalog_in_workspace_with_http_info(workspace_id, name, **kwargs)
            return data

    def delete_image_catalog_in_workspace_with_http_info(self, workspace_id, name, **kwargs):
        """
        delete image catalog by name in workspace
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.delete_image_catalog_in_workspace_with_http_info(workspace_id, name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'name']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method delete_image_catalog_in_workspace" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'workspace_id' is set
        if ('workspace_id' not in params) or (params['workspace_id'] is None):
            raise ValueError("Missing the required parameter `workspace_id` when calling `delete_image_catalog_in_workspace`")
        # verify the required parameter 'name' is set
        if ('name' not in params) or (params['name'] is None):
            raise ValueError("Missing the required parameter `name` when calling `delete_image_catalog_in_workspace`")


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']
        if 'name' in params:
            path_params['name'] = params['name']

        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'])

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs/{name}', 'DELETE',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImageCatalogResponse',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def get_image_catalog_in_workspace(self, workspace_id, name, **kwargs):
        """
        get image catalog by name in workspace
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_image_catalog_in_workspace(workspace_id, name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :param bool with_images:
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.get_image_catalog_in_workspace_with_http_info(workspace_id, name, **kwargs)
        else:
            (data) = self.get_image_catalog_in_workspace_with_http_info(workspace_id, name, **kwargs)
            return data

    def get_image_catalog_in_workspace_with_http_info(self, workspace_id, name, **kwargs):
        """
        get image catalog by name in workspace
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_image_catalog_in_workspace_with_http_info(workspace_id, name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :param bool with_images:
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'name', 'with_images']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method get_image_catalog_in_workspace" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'workspace_id' is set
        if ('workspace_id' not in params) or (params['workspace_id'] is None):
            raise ValueError("Missing the required parameter `workspace_id` when calling `get_image_catalog_in_workspace`")
        # verify the required parameter 'name' is set
        if ('name' not in params) or (params['name'] is None):
            raise ValueError("Missing the required parameter `name` when calling `get_image_catalog_in_workspace`")


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']
        if 'name' in params:
            path_params['name'] = params['name']

        query_params = []
        if 'with_images' in params:
            query_params.append(('withImages', params['with_images']))

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # HTTP header `Accept`
        header_params['Accept'] = self.api_client.\
            select_header_accept(['application/json'])

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs/{name}', 'GET',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImageCatalogResponse',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def get_image_catalog_request_from_name_in_workspace(self, workspace_id, name, **kwargs):
        """
        retrieve imagecatalog request by imagecatalog name
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_image_catalog_request_from_name_in_workspace(workspace_id, name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :return: ImageCatalogRequest
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.get_image_catalog_request_from_name_in_workspace_with_http_info(workspace_id, name, **kwargs)
        else:
            (data) = self.get_image_catalog_request_from_name_in_workspace_with_http_info(workspace_id, name, **kwargs)
            return data

    def get_image_catalog_request_from_name_in_workspace_with_http_info(self, workspace_id, name, **kwargs):
        """
        retrieve imagecatalog request by imagecatalog name
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_image_catalog_request_from_name_in_workspace_with_http_info(workspace_id, name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :return: ImageCatalogRequest
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'name']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method get_image_catalog_request_from_name_in_workspace" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'workspace_id' is set
        if ('workspace_id' not in params) or (params['workspace_id'] is None):
            raise ValueError("Missing the required parameter `workspace_id` when calling `get_image_catalog_request_from_name_in_workspace`")
        # verify the required parameter 'name' is set
        if ('name' not in params) or (params['name'] is None):
            raise ValueError("Missing the required parameter `name` when calling `get_image_catalog_request_from_name_in_workspace`")


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']
        if 'name' in params:
            path_params['name'] = params['name']

        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'])

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs/{name}/request', 'GET',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImageCatalogRequest',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def get_images_by_provider_and_custom_image_catalog_in_workspace(self, workspace_id, name, platform, **kwargs):
        """
        determines available images for the Cloudbreak version by the given provider and given image catalog url
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_images_by_provider_and_custom_image_catalog_in_workspace(workspace_id, name, platform, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :param str platform: (required)
        :return: ImagesResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.get_images_by_provider_and_custom_image_catalog_in_workspace_with_http_info(workspace_id, name, platform, **kwargs)
        else:
            (data) = self.get_images_by_provider_and_custom_image_catalog_in_workspace_with_http_info(workspace_id, name, platform, **kwargs)
            return data

    def get_images_by_provider_and_custom_image_catalog_in_workspace_with_http_info(self, workspace_id, name, platform, **kwargs):
        """
        determines available images for the Cloudbreak version by the given provider and given image catalog url
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_images_by_provider_and_custom_image_catalog_in_workspace_with_http_info(workspace_id, name, platform, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :param str platform: (required)
        :return: ImagesResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'name', 'platform']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method get_images_by_provider_and_custom_image_catalog_in_workspace" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'workspace_id' is set
        if ('workspace_id' not in params) or (params['workspace_id'] is None):
            raise ValueError("Missing the required parameter `workspace_id` when calling `get_images_by_provider_and_custom_image_catalog_in_workspace`")
        # verify the required parameter 'name' is set
        if ('name' not in params) or (params['name'] is None):
            raise ValueError("Missing the required parameter `name` when calling `get_images_by_provider_and_custom_image_catalog_in_workspace`")
        # verify the required parameter 'platform' is set
        if ('platform' not in params) or (params['platform'] is None):
            raise ValueError("Missing the required parameter `platform` when calling `get_images_by_provider_and_custom_image_catalog_in_workspace`")


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']
        if 'name' in params:
            path_params['name'] = params['name']
        if 'platform' in params:
            path_params['platform'] = params['platform']

        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'])

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs/{name}/platform/{platform}', 'GET',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImagesResponse',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def get_images_by_provider_in_workspace(self, workspace_id, platform, **kwargs):
        """
        determines available images for the Cloudbreak version by the given provider and default image catalog url
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_images_by_provider_in_workspace(workspace_id, platform, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str platform: (required)
        :return: ImagesResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.get_images_by_provider_in_workspace_with_http_info(workspace_id, platform, **kwargs)
        else:
            (data) = self.get_images_by_provider_in_workspace_with_http_info(workspace_id, platform, **kwargs)
            return data

    def get_images_by_provider_in_workspace_with_http_info(self, workspace_id, platform, **kwargs):
        """
        determines available images for the Cloudbreak version by the given provider and default image catalog url
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_images_by_provider_in_workspace_with_http_info(workspace_id, platform, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str platform: (required)
        :return: ImagesResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'platform']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method get_images_by_provider_in_workspace" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'workspace_id' is set
        if ('workspace_id' not in params) or (params['workspace_id'] is None):
            raise ValueError("Missing the required parameter `workspace_id` when calling `get_images_by_provider_in_workspace`")
        # verify the required parameter 'platform' is set
        if ('platform' not in params) or (params['platform'] is None):
            raise ValueError("Missing the required parameter `platform` when calling `get_images_by_provider_in_workspace`")


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']
        if 'platform' in params:
            path_params['platform'] = params['platform']

        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'])

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs/platform/{platform}', 'GET',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImagesResponse',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def get_images_by_stack_name_and_custom_image_catalog_in_workspace(self, workspace_id, name, stack_name, **kwargs):
        """
        determines available images for the given stackfrom the given imagecatalog name
        Provides an interface to determine available Virtual Machine images for the given stack.Please consider running sync beforehand
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_images_by_stack_name_and_custom_image_catalog_in_workspace(workspace_id, name, stack_name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :param str stack_name: (required)
        :return: ImagesResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.get_images_by_stack_name_and_custom_image_catalog_in_workspace_with_http_info(workspace_id, name, stack_name, **kwargs)
        else:
            (data) = self.get_images_by_stack_name_and_custom_image_catalog_in_workspace_with_http_info(workspace_id, name, stack_name, **kwargs)
            return data

    def get_images_by_stack_name_and_custom_image_catalog_in_workspace_with_http_info(self, workspace_id, name, stack_name, **kwargs):
        """
        determines available images for the given stackfrom the given imagecatalog name
        Provides an interface to determine available Virtual Machine images for the given stack.Please consider running sync beforehand
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_images_by_stack_name_and_custom_image_catalog_in_workspace_with_http_info(workspace_id, name, stack_name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :param str stack_name: (required)
        :return: ImagesResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'name', 'stack_name']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method get_images_by_stack_name_and_custom_image_catalog_in_workspace" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'workspace_id' is set
        if ('workspace_id' not in params) or (params['workspace_id'] is None):
            raise ValueError("Missing the required parameter `workspace_id` when calling `get_images_by_stack_name_and_custom_image_catalog_in_workspace`")
        # verify the required parameter 'name' is set
        if ('name' not in params) or (params['name'] is None):
            raise ValueError("Missing the required parameter `name` when calling `get_images_by_stack_name_and_custom_image_catalog_in_workspace`")
        # verify the required parameter 'stack_name' is set
        if ('stack_name' not in params) or (params['stack_name'] is None):
            raise ValueError("Missing the required parameter `stack_name` when calling `get_images_by_stack_name_and_custom_image_catalog_in_workspace`")


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']
        if 'name' in params:
            path_params['name'] = params['name']
        if 'stack_name' in params:
            path_params['stackName'] = params['stack_name']

        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'])

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs/upgrade/{stackName}/{name}', 'GET',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImagesResponse',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def get_images_by_stack_name_and_default_image_catalog_in_workspace(self, workspace_id, stack_name, **kwargs):
        """
        determines available images for the given stackfrom the default image catalog
        Provides an interface to determine available Virtual Machine images for the given stack.Please consider running sync beforehand
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_images_by_stack_name_and_default_image_catalog_in_workspace(workspace_id, stack_name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str stack_name: (required)
        :return: ImagesResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.get_images_by_stack_name_and_default_image_catalog_in_workspace_with_http_info(workspace_id, stack_name, **kwargs)
        else:
            (data) = self.get_images_by_stack_name_and_default_image_catalog_in_workspace_with_http_info(workspace_id, stack_name, **kwargs)
            return data

    def get_images_by_stack_name_and_default_image_catalog_in_workspace_with_http_info(self, workspace_id, stack_name, **kwargs):
        """
        determines available images for the given stackfrom the default image catalog
        Provides an interface to determine available Virtual Machine images for the given stack.Please consider running sync beforehand
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.get_images_by_stack_name_and_default_image_catalog_in_workspace_with_http_info(workspace_id, stack_name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str stack_name: (required)
        :return: ImagesResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'stack_name']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method get_images_by_stack_name_and_default_image_catalog_in_workspace" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'workspace_id' is set
        if ('workspace_id' not in params) or (params['workspace_id'] is None):
            raise ValueError("Missing the required parameter `workspace_id` when calling `get_images_by_stack_name_and_default_image_catalog_in_workspace`")
        # verify the required parameter 'stack_name' is set
        if ('stack_name' not in params) or (params['stack_name'] is None):
            raise ValueError("Missing the required parameter `stack_name` when calling `get_images_by_stack_name_and_default_image_catalog_in_workspace`")


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']
        if 'stack_name' in params:
            path_params['stackName'] = params['stack_name']

        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'])

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs/upgrade/{stackName}', 'GET',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImagesResponse',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def list_image_catalogs_by_workspace(self, workspace_id, **kwargs):
        """
        list image catalogs for the given workspace
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.list_image_catalogs_by_workspace(workspace_id, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :return: list[ImageCatalogResponse]
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.list_image_catalogs_by_workspace_with_http_info(workspace_id, **kwargs)
        else:
            (data) = self.list_image_catalogs_by_workspace_with_http_info(workspace_id, **kwargs)
            return data

    def list_image_catalogs_by_workspace_with_http_info(self, workspace_id, **kwargs):
        """
        list image catalogs for the given workspace
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.list_image_catalogs_by_workspace_with_http_info(workspace_id, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :return: list[ImageCatalogResponse]
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

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


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']

        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'])

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs', 'GET',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='list[ImageCatalogResponse]',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def put_public_image_catalog_in_workspace(self, workspace_id, **kwargs):
        """
        update public (owned) or private Image Catalog by id
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.put_public_image_catalog_in_workspace(workspace_id, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param UpdateImageCatalogRequest body:
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.put_public_image_catalog_in_workspace_with_http_info(workspace_id, **kwargs)
        else:
            (data) = self.put_public_image_catalog_in_workspace_with_http_info(workspace_id, **kwargs)
            return data

    def put_public_image_catalog_in_workspace_with_http_info(self, workspace_id, **kwargs):
        """
        update public (owned) or private Image Catalog by id
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.put_public_image_catalog_in_workspace_with_http_info(workspace_id, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param UpdateImageCatalogRequest body:
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'body']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

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


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

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

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs', 'PUT',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImageCatalogResponse',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)

    def put_set_default_image_catalog_by_name_in_workspace(self, workspace_id, name, **kwargs):
        """
        update public (owned) or private Image Catalog by id
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.put_set_default_image_catalog_by_name_in_workspace(workspace_id, name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('callback'):
            return self.put_set_default_image_catalog_by_name_in_workspace_with_http_info(workspace_id, name, **kwargs)
        else:
            (data) = self.put_set_default_image_catalog_by_name_in_workspace_with_http_info(workspace_id, name, **kwargs)
            return data

    def put_set_default_image_catalog_by_name_in_workspace_with_http_info(self, workspace_id, name, **kwargs):
        """
        update public (owned) or private Image Catalog by id
        Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please define a `callback` function
        to be invoked when receiving the response.
        >>> def callback_function(response):
        >>>     pprint(response)
        >>>
        >>> thread = api.put_set_default_image_catalog_by_name_in_workspace_with_http_info(workspace_id, name, callback=callback_function)

        :param callback function: The callback function
            for asynchronous request. (optional)
        :param int workspace_id: (required)
        :param str name: (required)
        :return: ImageCatalogResponse
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['workspace_id', 'name']
        all_params.append('callback')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method put_set_default_image_catalog_by_name_in_workspace" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'workspace_id' is set
        if ('workspace_id' not in params) or (params['workspace_id'] is None):
            raise ValueError("Missing the required parameter `workspace_id` when calling `put_set_default_image_catalog_by_name_in_workspace`")
        # verify the required parameter 'name' is set
        if ('name' not in params) or (params['name'] is None):
            raise ValueError("Missing the required parameter `name` when calling `put_set_default_image_catalog_by_name_in_workspace`")


        collection_formats = {}

        path_params = {}
        if 'workspace_id' in params:
            path_params['workspaceId'] = params['workspace_id']
        if 'name' in params:
            path_params['name'] = params['name']

        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'])

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

        # Authentication setting
        auth_settings = ['tokenAuth']

        return self.api_client.call_api('/v3/{workspaceId}/imagecatalogs/setdefault/{name}', 'PUT',
                                        path_params,
                                        query_params,
                                        header_params,
                                        body=body_params,
                                        post_params=form_params,
                                        files=local_var_files,
                                        response_type='ImageCatalogResponse',
                                        auth_settings=auth_settings,
                                        callback=params.get('callback'),
                                        _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)
# coding: utf-8 Cloudbreak API      Cloudbreak is a powerful left surf that breaks over a coral reef, a mile off southwest the island of Tavarua, Fiji. Cloudbreak is a cloud agnostic Hadoop as a Service API. Abstracts the provisioning and ease management and monitoring of on-demand clusters. SequenceIQ's Cloudbreak is a RESTful application development platform with the goal of helping developers to build solutions for deploying Hadoop YARN clusters in different environments. Once it is deployed in your favourite servlet container it exposes a REST API allowing to span up Hadoop clusters of arbitary sizes and cloud providers. Provisioning Hadoop has never been easier. Cloudbreak is built on the foundation of cloud providers API (Amazon AWS, Microsoft Azure, Google Cloud Platform, Openstack), Apache Ambari, Docker lightweight containers, Swarm and Consul. For further product documentation follow the link: <a href=\"http://hortonworks.com/apache/cloudbreak/\">http://hortonworks.com/apache/cloudbreak/</a>      OpenAPI spec version: 2.9.0          Generated by: https://github.com/swagger-api/swagger-codegen.git # python 2 and python 3 compatibility library NOTE: This class is auto generated by the swagger code generator program.     Do not edit the class manually.     Ref: https://github.com/swagger-api/swagger-codegen create image catalog in workspace         Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.create_image_catalog_in_workspace(workspace_id, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param ImageCatalogRequest body:         :return: ImageCatalogResponse                  If the method is called asynchronously,                  returns the request thread. create image catalog in workspace         Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.create_image_catalog_in_workspace_with_http_info(workspace_id, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param ImageCatalogRequest body:         :return: ImageCatalogResponse                  If the method is called asynchronously,                  returns the request thread. # verify the required parameter 'workspace_id' is set # HTTP header `Accept` # HTTP header `Content-Type` # Authentication setting delete image catalog by name in workspace         Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.delete_image_catalog_in_workspace(workspace_id, name, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param str name: (required)         :return: ImageCatalogResponse                  If the method is called asynchronously,                  returns the request thread. delete image catalog by name in workspace         Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.delete_image_catalog_in_workspace_with_http_info(workspace_id, name, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param str name: (required)         :return: ImageCatalogResponse                  If the method is called asynchronously,                  returns the request thread. # verify the required parameter 'workspace_id' is set # verify the required parameter 'name' is set # HTTP header `Accept` # HTTP header `Content-Type` # Authentication setting get image catalog by name in workspace         Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.get_image_catalog_in_workspace(workspace_id, name, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param str name: (required)         :param bool with_images:         :return: ImageCatalogResponse                  If the method is called asynchronously,                  returns the request thread. get image catalog by name in workspace         Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.get_image_catalog_in_workspace_with_http_info(workspace_id, name, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param str name: (required)         :param bool with_images:         :return: ImageCatalogResponse                  If the method is called asynchronously,                  returns the request thread. # verify the required parameter 'workspace_id' is set # verify the required parameter 'name' is set # HTTP header `Accept` # HTTP header `Content-Type` # Authentication setting retrieve imagecatalog request by imagecatalog name         Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.get_image_catalog_request_from_name_in_workspace(workspace_id, name, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param str name: (required)         :return: ImageCatalogRequest                  If the method is called asynchronously,                  returns the request thread. retrieve imagecatalog request by imagecatalog name         Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.get_image_catalog_request_from_name_in_workspace_with_http_info(workspace_id, name, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param str name: (required)         :return: ImageCatalogRequest                  If the method is called asynchronously,                  returns the request thread. # verify the required parameter 'workspace_id' is set # verify the required parameter 'name' is set # HTTP header `Accept` # HTTP header `Content-Type` # Authentication setting determines available images for the Cloudbreak version by the given provider and given image catalog url         Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.get_images_by_provider_and_custom_image_catalog_in_workspace(workspace_id, name, platform, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param str name: (required)         :param str platform: (required)         :return: ImagesResponse                  If the method is called asynchronously,                  returns the request thread. determines available images for the Cloudbreak version by the given provider and given image catalog url         Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.get_images_by_provider_and_custom_image_catalog_in_workspace_with_http_info(workspace_id, name, platform, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param str name: (required)         :param str platform: (required)         :return: ImagesResponse                  If the method is called asynchronously,                  returns the request thread. # verify the required parameter 'workspace_id' is set # verify the required parameter 'name' is set # verify the required parameter 'platform' is set # HTTP header `Accept` # HTTP header `Content-Type` # Authentication setting determines available images for the Cloudbreak version by the given provider and default image catalog url         Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.get_images_by_provider_in_workspace(workspace_id, platform, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param str platform: (required)         :return: ImagesResponse                  If the method is called asynchronously,                  returns the request thread. determines available images for the Cloudbreak version by the given provider and default image catalog url         Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.get_images_by_provider_in_workspace_with_http_info(workspace_id, platform, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param str platform: (required)         :return: ImagesResponse                  If the method is called asynchronously,                  returns the request thread. # verify the required parameter 'workspace_id' is set # verify the required parameter 'platform' is set # HTTP header `Accept` # HTTP header `Content-Type` # Authentication setting determines available images for the given stackfrom the given imagecatalog name         Provides an interface to determine available Virtual Machine images for the given stack.Please consider running sync beforehand         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.get_images_by_stack_name_and_custom_image_catalog_in_workspace(workspace_id, name, stack_name, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param str name: (required)         :param str stack_name: (required)         :return: ImagesResponse                  If the method is called asynchronously,                  returns the request thread. determines available images for the given stackfrom the given imagecatalog name         Provides an interface to determine available Virtual Machine images for the given stack.Please consider running sync beforehand         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.get_images_by_stack_name_and_custom_image_catalog_in_workspace_with_http_info(workspace_id, name, stack_name, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param str name: (required)         :param str stack_name: (required)         :return: ImagesResponse                  If the method is called asynchronously,                  returns the request thread. # verify the required parameter 'workspace_id' is set # verify the required parameter 'name' is set # verify the required parameter 'stack_name' is set # HTTP header `Accept` # HTTP header `Content-Type` # Authentication setting determines available images for the given stackfrom the default image catalog         Provides an interface to determine available Virtual Machine images for the given stack.Please consider running sync beforehand         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.get_images_by_stack_name_and_default_image_catalog_in_workspace(workspace_id, stack_name, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param str stack_name: (required)         :return: ImagesResponse                  If the method is called asynchronously,                  returns the request thread. determines available images for the given stackfrom the default image catalog         Provides an interface to determine available Virtual Machine images for the given stack.Please consider running sync beforehand         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.get_images_by_stack_name_and_default_image_catalog_in_workspace_with_http_info(workspace_id, stack_name, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param str stack_name: (required)         :return: ImagesResponse                  If the method is called asynchronously,                  returns the request thread. # verify the required parameter 'workspace_id' is set # verify the required parameter 'stack_name' is set # HTTP header `Accept` # HTTP header `Content-Type` # Authentication setting list image catalogs for the given workspace         Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.list_image_catalogs_by_workspace(workspace_id, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :return: list[ImageCatalogResponse]                  If the method is called asynchronously,                  returns the request thread. list image catalogs for the given workspace         Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.list_image_catalogs_by_workspace_with_http_info(workspace_id, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :return: list[ImageCatalogResponse]                  If the method is called asynchronously,                  returns the request thread. # verify the required parameter 'workspace_id' is set # HTTP header `Accept` # HTTP header `Content-Type` # Authentication setting update public (owned) or private Image Catalog by id         Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.put_public_image_catalog_in_workspace(workspace_id, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param UpdateImageCatalogRequest body:         :return: ImageCatalogResponse                  If the method is called asynchronously,                  returns the request thread. update public (owned) or private Image Catalog by id         Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.put_public_image_catalog_in_workspace_with_http_info(workspace_id, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param UpdateImageCatalogRequest body:         :return: ImageCatalogResponse                  If the method is called asynchronously,                  returns the request thread. # verify the required parameter 'workspace_id' is set # HTTP header `Accept` # HTTP header `Content-Type` # Authentication setting update public (owned) or private Image Catalog by id         Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.put_set_default_image_catalog_by_name_in_workspace(workspace_id, name, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param str name: (required)         :return: ImageCatalogResponse                  If the method is called asynchronously,                  returns the request thread. update public (owned) or private Image Catalog by id         Provides an interface to determine available Virtual Machine images for the given version of Cloudbreak.         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please define a `callback` function         to be invoked when receiving the response.         >>> def callback_function(response):         >>>     pprint(response)         >>>         >>> thread = api.put_set_default_image_catalog_by_name_in_workspace_with_http_info(workspace_id, name, callback=callback_function)          :param callback function: The callback function             for asynchronous request. (optional)         :param int workspace_id: (required)         :param str name: (required)         :return: ImageCatalogResponse                  If the method is called asynchronously,                  returns the request thread. # verify the required parameter 'workspace_id' is set # verify the required parameter 'name' is set # HTTP header `Accept` # HTTP header `Content-Type` # Authentication setting