docs: def CreateJob(self, cron_args=None, job_id=None, enabled=True, token=None):
      """Creates a cron job that runs given flow with a given frequency.
  
      Args:
        cron_args: A protobuf of type rdf_cronjobs.CreateCronJobArgs.
        job_id: Use this job_id instead of an autogenerated unique name (used for
          system cron jobs - we want them to have well-defined persistent name).
        enabled: If False, the job object will be created, but will be disabled.
        token: Security token used for data store access. Unused.
  
      Returns:
        URN of the cron job created.
  
      Raises:
        ValueError: This function expects an arg protobuf that starts a
                    CreateAndRunGenericHuntFlow flow. If the args specify
                    something else, ValueError is raised.
      """
      # TODO(amoser): Remove the token from this method once the aff4
      # cronjobs are gone.
      del token
      if not job_id:
        uid = random.UInt16()
        job_id = "%s_%s" % (cron_args.flow_name, uid)
  
      args = rdf_cronjobs.CronJobAction(
          action_type=rdf_cronjobs.CronJobAction.ActionType.HUNT_CRON_ACTION,
          hunt_cron_action=rdf_cronjobs.HuntCronAction(
              flow_name=cron_args.flow_name,
              flow_args=cron_args.flow_args,
              hunt_runner_args=cron_args.hunt_runner_args))
  
      job = rdf_cronjobs.CronJob(
          cron_job_id=job_id,
          description=cron_args.description,
          frequency=cron_args.frequency,
          lifetime=cron_args.lifetime,
          allow_overruns=cron_args.allow_overruns,
          args=args,
          enabled=enabled)
      data_store.REL_DB.WriteCronJob(job)
  
      return job_id