// 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"; } },
// }


import com.sailthru.client.ApiAction;
import com.google.gson.reflect.TypeToken;
import com.sailthru.client.params.query.Query;
import java.lang.reflect.Type;
import java.util.ArrayList;
package com.sailthru.client.params;



/**
 *
 * @author Prajwal Tuladhar <praj@sailthru.com>
 */
public class List extends AbstractApiParams implements ApiParams {
    protected String list;
    protected Integer primary;
    protected ListType type;
    protected Query query;
    
    public List setQuery(Query query) {
        this.query = query;
        return this;
    }

    public List setList(String list) {
        this.list = list;
        return this;
    }

    public List setPrimary() {
        this.primary = 1;
        return this;
    }
    
    public List setListType(ListType listType) {
        this.type = listType;
        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/List.java
import com.sailthru.client.ApiAction;
import com.google.gson.reflect.TypeToken;
import com.sailthru.client.params.query.Query;
import java.lang.reflect.Type;
import java.util.ArrayList;

package com.sailthru.client.params;



/**
 *
 * @author Prajwal Tuladhar <praj@sailthru.com>
 */
public class List extends AbstractApiParams implements ApiParams {
    protected String list;
    protected Integer primary;
    protected ListType type;
    protected Query query;
    
    public List setQuery(Query query) {
        this.query = query;
        return this;
    }

    public List setList(String list) {
        this.list = list;
        return this;
    }

    public List setPrimary() {
        this.primary = 1;
        return this;
    }
    
    public List setListType(ListType listType) {
        this.type = listType;
        return this;
    }

    public ApiAction getApiCall() {