def get_installed_extension_by_name(self, publisher_name, extension_name, asset_types=None):
        """GetInstalledExtensionByName.
        [Preview API] Get an installed extension by its publisher and extension name.
        :param str publisher_name: Name of the publisher. Example: "fabrikam".
        :param str extension_name: Name of the extension. Example: "ops-tools".
        :param [str] asset_types:
        :rtype: :class:`<InstalledExtension> <azure.devops.v5_0.extension_management.models.InstalledExtension>`
        """
        route_values = {}
        if publisher_name is not None:
            route_values['publisherName'] = self._serialize.url('publisher_name', publisher_name, 'str')
        if extension_name is not None:
            route_values['extensionName'] = self._serialize.url('extension_name', extension_name, 'str')
        query_parameters = {}
        if asset_types is not None:
            asset_types = ":".join(asset_types)
            query_parameters['assetTypes'] = self._serialize.query('asset_types', asset_types, 'str')
        response = self._send(http_method='GET',
                              location_id='fb0da285-f23e-4b56-8b53-3ef5f9f6de66',
                              version='5.0-preview.1',
                              route_values=route_values,
                              query_parameters=query_parameters)
        return self._deserialize('InstalledExtension', response)
GetInstalledExtensionByName.
        [Preview API] Get an installed extension by its publisher and extension name.
        :param str publisher_name: Name of the publisher. Example: "fabrikam".
        :param str extension_name: Name of the extension. Example: "ops-tools".
        :param [str] asset_types:
        :rtype: :class:`<InstalledExtension> <azure.devops.v5_0.extension_management.models.InstalledExtension>`