/// <summary>
        /// List jobs
        /// </summary>
        /// <returns>List of RJob objects</returns>
        /// <remarks></remarks>
        public List <RJob> listJobs()
        {
            List <RJob> returnValue = default(List <RJob>);

            returnValue = RUserJobImpl.listJobs(m_client, Constants.RJOBLIST);

            return(returnValue);
        }
        /// <summary>
        /// Submit a single repository-managed script or a chain of repository-managed scripts
        /// to execute as a job.
        ///
        /// To submit a chain of repository-managed scripts on this call provide a comma-separated
        /// list of values on the scriptName, scriptAuthor and optionally scriptVersion parameters.
        /// Chained execution executes each of the scripts identified on the call in a sequential
        /// fashion on the R session, with execution occuring in the order specified on the parameter list.
        ///
        /// </summary>
        /// <param name="name">Name of the job to schedule</param>
        /// <param name="descr">Description of the job</param>
        /// <param name="scriptName">name of valid R Script</param>
        /// <param name="scriptDirectory">directory containing R Script.</param>
        /// <param name="scriptAuthor">author of the R Script</param>
        /// <param name="scriptVersion">version of the R Script to execute</param>
        /// <param name="options">options associated with job</param>
        /// <returns>RJob object</returns>
        /// <remarks></remarks>
        public RJob submitJobScript(String name, String descr, String scriptName, String scriptDirectory, String scriptAuthor, String scriptVersion, JobExecutionOptions options)
        {
            String uri = Constants.RJOBSUBMIT;

            if (!(options == null))
            {
                if (!(options.schedulingOptions == null))
                {
                    uri = Constants.RJOBSCHEDULE;
                }
            }
            RJob returnValue = RUserJobImpl.callJob(name, descr, "", scriptName, scriptDirectory, scriptAuthor, scriptVersion, null, options, m_client, uri);

            return(returnValue);
        }
        /// <summary>
        /// Submit a single script found on a URL/path or a chain of scripts found on a set of URLs/paths
        /// on the current project.
        ///
        /// To submit a chain of repository-managed scripts on this call provide a comma-separated
        /// list of values on the externalSource parameter.
        ///
        /// POWER_USER privileges are required for this call.
        ///
        /// </summary>
        /// <param name="name">Name of the job to schedule</param>
        /// <param name="descr">Description of the job</param>
        /// <param name="externalSource">RScript represented as a URL or DeployR file path</param>
        /// <param name="options">options associated with job</param>
        /// <returns>RJob object</returns>
        /// <remarks></remarks>
        public RJob submitJobExternal(String name, String descr, String externalSource, JobExecutionOptions options)
        {
            String uri = Constants.RJOBSUBMIT;

            if (!(options == null))
            {
                if (!(options.schedulingOptions == null))
                {
                    uri = Constants.RJOBSCHEDULE;
                }
            }
            RJob returnValue = RUserJobImpl.callJob(name, descr, "", null, null, null, null, externalSource, options, m_client, uri);

            return(returnValue);
        }
        /// <summary>
        /// Submit a job based on block of R code
        /// </summary>
        /// <param name="name">Name of the job to schedule</param>
        /// <param name="descr">Description of the job</param>
        /// <param name="code">R code associated with the job</param>
        /// <returns>RJob object</returns>
        /// <remarks></remarks>
        public RJob submitJobCode(String name, String descr, String code)
        {
            RJob returnValue = RUserJobImpl.callJob(name, descr, code, "", "", "", "", null, null, m_client, Constants.RJOBSUBMIT);

            return(returnValue);
        }
        /// <summary>
        /// Submit a single repository-managed script or a chain of repository-managed scripts
        /// to execute as a job.
        ///
        /// To submit a chain of repository-managed scripts on this call provide a comma-separated
        /// list of values on the scriptName, scriptAuthor and optionally scriptVersion parameters.
        /// Chained execution executes each of the scripts identified on the call in a sequential
        /// fashion on the R session, with execution occuring in the order specified on the parameter list.
        ///
        /// </summary>
        /// <param name="name">Name of the job to schedule</param>
        /// <param name="descr">Description of the job</param>
        /// <param name="scriptName">name of valid R Script</param>
        /// <param name="scriptDirectory">directory containing R Script.</param>
        /// <param name="scriptAuthor">author of the R Script</param>
        /// <param name="scriptVersion">version of the R Script to execute</param>
        /// <returns>RJob object</returns>
        /// <remarks></remarks>
        public RJob submitJobScript(String name, String descr, String scriptName, String scriptDirectory, String scriptAuthor, String scriptVersion)
        {
            RJob returnValue = RUserJobImpl.callJob(name, descr, "", scriptName, scriptDirectory, scriptAuthor, scriptVersion, null, null, m_client, Constants.RJOBSUBMIT);

            return(returnValue);
        }