# Source code for azure.cognitiveservices.search.visualsearch.visual_search_client

    # coding=utf-8
    # --------------------------------------------------------------------------
    # Copyright (c) Microsoft Corporation. All rights reserved.
    # Licensed under the MIT License. See License.txt in the project root for
    # license information.
    #
    # Code generated by Microsoft (R) AutoRest Code Generator.
    # Changes may cause incorrect behavior and will be lost if the code is
    # regenerated.
    # --------------------------------------------------------------------------

    from msrest.service_client import SDKClient
    from msrest import Configuration, Serializer, Deserializer
    from .version import VERSION
    from .operations.images_operations import ImagesOperations
    from . import models

    class VisualSearchClientConfiguration(Configuration):
        """Configuration for VisualSearchClient
        Note that all parameters used to create this instance are saved as instance
        attributes.

        :param endpoint: Supported Cognitive Services endpoints (protocol and
         hostname, for example: "https://westus.api.cognitive.microsoft.com",
         "https://api.cognitive.microsoft.com").
        :type endpoint: str
        :param credentials: Subscription credentials which uniquely identify
         client subscription.
        :type credentials: None
        """

        def __init__(
                self, endpoint, credentials):

            if endpoint is None:
                raise ValueError("Parameter 'endpoint' must not be None.")
            if credentials is None:
                raise ValueError("Parameter 'credentials' must not be None.")
            base_url = '{Endpoint}/bing/v7.0'

            super(VisualSearchClientConfiguration, self).__init__(base_url)

            self.add_user_agent('azure-cognitiveservices-search-visualsearch/{}'.format(VERSION))

            self.endpoint = endpoint
            self.credentials = credentials

    class VisualSearchClient(SDKClient):
        """Visual Search API lets you discover insights about an image such as visually similar images, shopping sources, and related searches. The API can also perform text recognition, identify entities (people, places, things), return other topical content for the user to explore, and more. For more information, see [Visual Search Overview](https://docs.microsoft.com/azure/cognitive-services/bing-visual-search/overview).

        :ivar config: Configuration for client.
        :vartype config: VisualSearchClientConfiguration

        :ivar images: Images operations
        :vartype images: azure.cognitiveservices.search.visualsearch.operations.ImagesOperations

        :param endpoint: Supported Cognitive Services endpoints (protocol and
         hostname, for example: "https://westus.api.cognitive.microsoft.com",
         "https://api.cognitive.microsoft.com").
        :type endpoint: str
        :param credentials: Subscription credentials which uniquely identify
         client subscription.
        :type credentials: None
        """

        def __init__(
                self, endpoint, credentials):

            self.config = VisualSearchClientConfiguration(endpoint, credentials)
            super(VisualSearchClient, self).__init__(self.config.credentials, self.config)

            client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)}
            self.api_version = '1.0'
            self._serialize = Serializer(client_models)
            self._deserialize = Deserializer(client_models)

            self.images = ImagesOperations(
                self._client, self.config, self._serialize, self._deserialize)