code: def get_category_tree(self, product, category_id, lcid=None, source=None, product_version=None, skus=None, sub_skus=None):
          
          route_values = {}
          if product is not None:
              route_values['product'] = self._serialize.url('product', product, 'str')
          if category_id is not None:
              route_values['categoryId'] = self._serialize.url('category_id', category_id, 'str')
          query_parameters = {}
          if lcid is not None:
              query_parameters['lcid'] = self._serialize.query('lcid', lcid, 'int')
          if source is not None:
              query_parameters['source'] = self._serialize.query('source', source, 'str')
          if product_version is not None:
              query_parameters['productVersion'] = self._serialize.query('product_version', product_version, 'str')
          if skus is not None:
              query_parameters['skus'] = self._serialize.query('skus', skus, 'str')
          if sub_skus is not None:
              query_parameters['subSkus'] = self._serialize.query('sub_skus', sub_skus, 'str')
          response = self._send(http_method='GET',
                                location_id='1102bb42-82b0-4955-8d8a-435d6b4cedd3',
                                version='5.1-preview.1',
                                route_values=route_values,
                                query_parameters=query_parameters)
          return self._deserialize('ProductCategory', response)
docs: GetCategoryTree.
          [Preview API]
          :param str product:
          :param str category_id:
          :param int lcid:
          :param str source:
          :param str product_version:
          :param str skus:
          :param str sub_skus:
          :rtype: :class:`<ProductCategory> <azure.devops.v5_1.gallery.models.ProductCategory>`