// Path: src/main/com/sailthru/client/ApiAction.java
// public enum ApiAction {
//     event,
//     settings,
//     email,
//     send,
//     blast,
//     blast_repeat,
//     preview,
//     template,
//     list,
//     content,
//     alert,
//     stats,
//     purchase,
//     horizon,
//     job,
//     trigger,
//     inbox,
//     user,
//     RETURN, // the case is inconsistent, but "return" is a reserved keyword
//     content_watch { public String toString() { return "content/watch"; } },
//     content_watch_profile { public String toString() { return "content/watch/profile"; } },
// }
// 
// Path: src/main/com/sailthru/client/params/AbstractApiParams.java
// public abstract class AbstractApiParams {
//     public Map<String, Object> toHashMap() {
//         Gson gson = SailthruUtil.createGson();
//         String json = gson.toJson(this);
//         JsonHandler handler = new JsonHandler();
//         return (Map<String, Object>)handler.parseResponse(json);
//     }
//     
// }
// 
// Path: src/main/com/sailthru/client/params/ApiParams.java
// public interface ApiParams {
//     public Type getType();
// 
//     public ApiAction getApiCall();
// }


import com.google.gson.reflect.TypeToken;
import com.sailthru.client.ApiAction;
import com.sailthru.client.params.AbstractApiParams;
import com.sailthru.client.params.ApiParams;
import java.lang.reflect.Type;
package com.sailthru.client.params.job;


/**
 *
 * @author Prajwal Tuladhar <praj@sailthru.com>
 */
abstract public class Job extends AbstractApiParams implements ApiParams {
    
    protected String job_id;
    protected String job;
    protected String report_email;
    protected String postback_url;
    
    public static final String JOB_ID = "job_id";

    public Type getType() {
        return new TypeToken<Job>() {}.getType();
    }
    
    public Job setReportEmail(String reportEmail) {
        this.report_email = reportEmail;
        return this;
    }
    
    public Job setPostbackUrl(String postbackUrl) {
        this.postback_url = postbackUrl;
        return this;
    }
    
    public Job setJob(String job) {
        this.job = job;
        return this;
    }

// Path: src/main/com/sailthru/client/ApiAction.java
// public enum ApiAction {
//     event,
//     settings,
//     email,
//     send,
//     blast,
//     blast_repeat,
//     preview,
//     template,
//     list,
//     content,
//     alert,
//     stats,
//     purchase,
//     horizon,
//     job,
//     trigger,
//     inbox,
//     user,
//     RETURN, // the case is inconsistent, but "return" is a reserved keyword
//     content_watch { public String toString() { return "content/watch"; } },
//     content_watch_profile { public String toString() { return "content/watch/profile"; } },
// }
// 
// Path: src/main/com/sailthru/client/params/AbstractApiParams.java
// public abstract class AbstractApiParams {
//     public Map<String, Object> toHashMap() {
//         Gson gson = SailthruUtil.createGson();
//         String json = gson.toJson(this);
//         JsonHandler handler = new JsonHandler();
//         return (Map<String, Object>)handler.parseResponse(json);
//     }
//     
// }
// 
// Path: src/main/com/sailthru/client/params/ApiParams.java
// public interface ApiParams {
//     public Type getType();
// 
//     public ApiAction getApiCall();
// }


// Path: src/main/com/sailthru/client/params/job/Job.java
import com.google.gson.reflect.TypeToken;
import com.sailthru.client.ApiAction;
import com.sailthru.client.params.AbstractApiParams;
import com.sailthru.client.params.ApiParams;
import java.lang.reflect.Type;

package com.sailthru.client.params.job;


/**
 *
 * @author Prajwal Tuladhar <praj@sailthru.com>
 */
abstract public class Job extends AbstractApiParams implements ApiParams {
    
    protected String job_id;
    protected String job;
    protected String report_email;
    protected String postback_url;
    
    public static final String JOB_ID = "job_id";

    public Type getType() {
        return new TypeToken<Job>() {}.getType();
    }
    
    public Job setReportEmail(String reportEmail) {
        this.report_email = reportEmail;
        return this;
    }
    
    public Job setPostbackUrl(String postbackUrl) {
        this.postback_url = postbackUrl;
        return this;
    }
    
    public Job setJob(String job) {
        this.job = job;
        return this;
    }

    public ApiAction getApiCall() {