docs: def _create_clone(self, parent, part, **kwargs):
          """Create a new `Part` clone under the `Parent`.
  
          .. versionadded:: 2.3
  
          :param parent: parent part
          :type parent: :class:`models.Part`
          :param part: part to be cloned
          :type part: :class:`models.Part`
          :param kwargs: (optional) additional keyword=value arguments
          :type kwargs: dict
          :return: cloned :class:`models.Part`
          :raises APIError: if the `Part` could not be cloned
          """
          if part.category == Category.MODEL:
              select_action = 'clone_model'
          else:
              select_action = 'clone_instance'
  
          data = {
              "part": part.id,
              "parent": parent.id,
              "suppress_kevents": kwargs.pop('suppress_kevents', None)
          }
  
          # prepare url query parameters
          query_params = kwargs
          query_params['select_action'] = select_action
  
          response = self._request('POST', self._build_url('parts'),
                                   params=query_params,
                                   data=data)
  
          if response.status_code != requests.codes.created:
              raise APIError("Could not clone part, {}: {}".format(str(response), response.content))
  
          return Part(response.json()['results'][0], client=self)