code: def create_bird_config_files(bird_configuration):
      
      for ip_version in bird_configuration:
          # This creates the file if it doesn't exist.
          config_file = bird_configuration[ip_version]['config_file']
          try:
              touch(config_file)
          except OSError as exc:
              raise ValueError("failed to create {f}:{e}"
                               .format(f=config_file, e=exc))
          if bird_configuration[ip_version]['keep_changes']:
              history_dir = os.path.join(os.path.dirname(config_file), 'history')
              try:
                  os.mkdir(history_dir)
              except FileExistsError:
                  pass
              except OSError as exc:
                  raise ValueError("failed to make directory {d} for keeping a "
                                   "history of changes for {b}:{e}"
                                   .format(d=history_dir, b=config_file, e=exc))
              else:
                  print("{d} is created".format(d=history_dir))
docs: Create bird configuration files per IP version.
  
      Creates bird configuration files if they don't exist. It also creates the
      directories where we store the history of changes, if this functionality is
      enabled.
  
      Arguments:
          bird_configuration (dict): A dictionary with settings for bird.
  
      Returns:
         None
  
      Raises:
          ValueError if we can't create bird configuration files and the
          directory to store the history of changes in bird configuration file.