code: def get_installed_extension_by_name(self, publisher_name, extension_name, asset_types=None):
          
          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)
docs: 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>`