docs: def add_file(self, kitchen, recipe, message, api_file_key, file_contents):
          """
          returns True for success or False for failure
          '/v2/recipe/create/<string:kitchenname>/<string:recipename>', methods=['PUT']
          :param self: DKCloudAPI
          :param kitchen: basestring
          :param recipe: basestring  -- kitchen name, basestring
          :param message: basestring message -- commit message, basestring
          :param api_file_key:  -- file name and path to the file name, relative to the recipe root
          :param file_contents: -- character string of the recipe file to update
  
          :rtype: boolean
          """
          rc = DKReturnCode()
          if kitchen is None or isinstance(kitchen, basestring) is False:
              rc.set(rc.DK_FAIL, 'issue with kitchen parameter')
              return rc
          if recipe is None or isinstance(recipe, basestring) is False:
              rc.set(rc.DK_FAIL, 'issue with recipe parameter')
              return rc
          if api_file_key is None or isinstance(api_file_key, basestring) is False:
              rc.set(rc.DK_FAIL, 'issue with api_file_key parameter')
              return rc
          if file_contents is None or isinstance(file_contents, basestring) is False:
              rc.set(rc.DK_FAIL, 'issue with file_contents parameter')
              return rc
          pdict = dict()
          pdict[self.MESSAGE] = message
          pdict[self.FILEPATH] = api_file_key
          pdict[self.FILE] = file_contents
          url = '%s/v2/recipe/create/%s/%s' % (self.get_url_for_direct_rest_call(), kitchen, recipe)
          try:
              response = requests.put(url, data=json.dumps(pdict), headers=self._get_common_headers())
              rdict = self._get_json(response)
              pass
          except (RequestException, ValueError, TypeError), c:
              s = "add_file: exception: %s" % str(c)
              rc.set(rc.DK_FAIL, s)
              return rc
          if DKCloudAPI._valid_response(response):
              rc.set(rc.DK_SUCCESS, None)
          else:
              arc = DKAPIReturnCode(rdict, response)
              rc.set(rc.DK_FAIL, arc.get_message())
          return rc