/// <summary>
    /// Modifies the job identified by the id, allows to start a created job. 
    /// </summary>
    /// <param name="Body">Content of the job.</param>/// <param name="XOcToken">Token for authentication for the current job</param>/// <param name="XOcApiKey">Api key for the user to filter.</param>/// <param name="JobId">ID of job that needs to be fetched</param>
    /// <returns>Job</returns>
    public async Task<Job> JobsJobIdPatchAsync (Job Body, string XOcToken, string XOcApiKey, string JobId) {

      
          // verify the required parameter 'Body' is set
          if (Body == null) throw new ApiException(400, "Missing required parameter 'Body' when calling JobsJobIdPatch");
      
          // verify the required parameter 'JobId' is set
          if (JobId == null) throw new ApiException(400, "Missing required parameter 'JobId' when calling JobsJobIdPatch");
      

      var path = "/jobs/{job_id}";
      path = path.Replace("{format}", "json");
      path = path.Replace("{" + "job_id" + "}", apiClient.ParameterToString(JobId));
      

      var queryParams = new Dictionary<String, String>();
      var headerParams = new Dictionary<String, String>();
      var formParams = new Dictionary<String, String>();
      var fileParams = new Dictionary<String, String>();
      String postBody = null;

      
       if (XOcToken != null) headerParams.Add("X-Oc-Token", apiClient.ParameterToString(XOcToken)); // header parameter
       if (XOcApiKey != null) headerParams.Add("X-Oc-Api-Key", apiClient.ParameterToString(XOcApiKey)); // header parameter
      
      
      postBody = apiClient.Serialize(Body); // http body (model) parameter
      

      // authentication setting, if any
      String[] authSettings = new String[] {  };

      // make the HTTP request
      IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.PATCH, queryParams, postBody, headerParams, formParams, fileParams, authSettings);
      if (((int)response.StatusCode) >= 400) {
        throw new ApiException ((int)response.StatusCode, "Error calling JobsJobIdPatch: " + response.Content, response.Content);
      }
      return (Job) apiClient.Deserialize(response.Content, typeof(Job));
    }
    /// <summary>
    /// Creates a new Job with the user key. 
    /// </summary>
    /// <param name="XOcApiKey">Api key for the user to filter.</param>/// <param name="Body">Content of the job.</param>
    /// <returns>Job</returns>
    public Job JobsPost (string XOcApiKey, Job Body) {

      
      // verify the required parameter 'XOcApiKey' is set
      if (XOcApiKey == null) throw new ApiException(400, "Missing required parameter 'XOcApiKey' when calling JobsPost");
      
      // verify the required parameter 'Body' is set
      if (Body == null) throw new ApiException(400, "Missing required parameter 'Body' when calling JobsPost");
      

      var path = "/jobs";
      path = path.Replace("{format}", "json");
      

      var queryParams = new Dictionary<String, String>();
      var headerParams = new Dictionary<String, String>();
      var formParams = new Dictionary<String, String>();
      var fileParams = new Dictionary<String, String>();
      String postBody = null;

      
       if (XOcApiKey != null) headerParams.Add("X-Oc-Api-Key", apiClient.ParameterToString(XOcApiKey)); // header parameter
      
      
      postBody = apiClient.Serialize(Body); // http body (model) parameter
      

      // authentication setting, if any
      String[] authSettings = new String[] {  };

      // make the HTTP request
      IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings);

      if (((int)response.StatusCode) >= 400) {
        throw new ApiException ((int)response.StatusCode, "Error calling JobsPost: " + response.Content, response.Content);
      }
      return (Job) apiClient.Deserialize(response.Content, typeof(Job));
    }