Subversion Repositories SmartDukaan

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

/**
 * Autogenerated by Thrift Compiler (0.7.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 */
package in.shop2020.googleadwords;

import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.EnumMap;
import java.util.Set;
import java.util.HashSet;
import java.util.EnumSet;
import java.util.Collections;
import java.util.BitSet;
import java.nio.ByteBuffer;
import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class GoogleAdwordsService {

  public interface Iface extends in.shop2020.generic.GenericService.Iface {

    public void addAdwordsCampaign(AdwordsCampaign campaign) throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public void addAdwordsAdGroup(AdwordsAdGroup adgroup) throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public void addAdwordsAdGroupAd(AdwordsAdGroupAd adgroupad) throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public void addAdwordsAdKeyword(AdwordsAdKeyword adkeyword) throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public void updateAdwordsCampaign(AdwordsCampaign campaign) throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public void updateAdwordsAdGroup(AdwordsAdGroup adgroup) throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public void updateAdwordsAdKeyword(AdwordsAdKeyword adkeyword) throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public void deleteAdwordsCampaign(long campaignId) throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public void deleteAdwordsAdGroup(long adgroupId) throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public void deleteAdwordsAdGroupAd(long adgroupadId) throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public void deleteAdwordsAdKeyword(long criterionId) throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public AdwordsCampaign getAdwordsCampaignByCampaignId(long campaignId) throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public AdwordsAdGroup getAdwordsAdGroupByAdGroupId(long adgroupId) throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public AdwordsAdGroupAd getAdwordsAdgroupAdByAdId(long adgroupadId) throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public AdwordsAdKeyword getAdwordsAdKeywordByCriterionId(long criterionId) throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public List<AdwordsAdKeyword> getAdwordsAdKeywordsByAdgroupId(long adgroupId) throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public List<AdwordsAdGroupAd> getAdwordsAdGroupAdsByAdgroupId(long adgroupId) throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public List<AdwordsAdGroup> getAdwordsAdGroupsByCampaignId(long campaignId) throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public List<AdwordsCampaign> getAllAdwordsCampaigns() throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public List<AdwordsAdGroup> getAllAdwordsAdGroups() throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public List<AdwordsAdGroupAd> getAllAdwordsAdGroupAds() throws GoogleAdwordsServiceException, org.apache.thrift.TException;

    public List<AdwordsAdKeyword> getAllAdwordsAdKeywords() throws GoogleAdwordsServiceException, org.apache.thrift.TException;

  }

  public interface AsyncIface extends in.shop2020.generic.GenericService .AsyncIface {

    public void addAdwordsCampaign(AdwordsCampaign campaign, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.addAdwordsCampaign_call> resultHandler) throws org.apache.thrift.TException;

    public void addAdwordsAdGroup(AdwordsAdGroup adgroup, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.addAdwordsAdGroup_call> resultHandler) throws org.apache.thrift.TException;

    public void addAdwordsAdGroupAd(AdwordsAdGroupAd adgroupad, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.addAdwordsAdGroupAd_call> resultHandler) throws org.apache.thrift.TException;

    public void addAdwordsAdKeyword(AdwordsAdKeyword adkeyword, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.addAdwordsAdKeyword_call> resultHandler) throws org.apache.thrift.TException;

    public void updateAdwordsCampaign(AdwordsCampaign campaign, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.updateAdwordsCampaign_call> resultHandler) throws org.apache.thrift.TException;

    public void updateAdwordsAdGroup(AdwordsAdGroup adgroup, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.updateAdwordsAdGroup_call> resultHandler) throws org.apache.thrift.TException;

    public void updateAdwordsAdKeyword(AdwordsAdKeyword adkeyword, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.updateAdwordsAdKeyword_call> resultHandler) throws org.apache.thrift.TException;

    public void deleteAdwordsCampaign(long campaignId, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.deleteAdwordsCampaign_call> resultHandler) throws org.apache.thrift.TException;

    public void deleteAdwordsAdGroup(long adgroupId, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.deleteAdwordsAdGroup_call> resultHandler) throws org.apache.thrift.TException;

    public void deleteAdwordsAdGroupAd(long adgroupadId, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.deleteAdwordsAdGroupAd_call> resultHandler) throws org.apache.thrift.TException;

    public void deleteAdwordsAdKeyword(long criterionId, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.deleteAdwordsAdKeyword_call> resultHandler) throws org.apache.thrift.TException;

    public void getAdwordsCampaignByCampaignId(long campaignId, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getAdwordsCampaignByCampaignId_call> resultHandler) throws org.apache.thrift.TException;

    public void getAdwordsAdGroupByAdGroupId(long adgroupId, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getAdwordsAdGroupByAdGroupId_call> resultHandler) throws org.apache.thrift.TException;

    public void getAdwordsAdgroupAdByAdId(long adgroupadId, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getAdwordsAdgroupAdByAdId_call> resultHandler) throws org.apache.thrift.TException;

    public void getAdwordsAdKeywordByCriterionId(long criterionId, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getAdwordsAdKeywordByCriterionId_call> resultHandler) throws org.apache.thrift.TException;

    public void getAdwordsAdKeywordsByAdgroupId(long adgroupId, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getAdwordsAdKeywordsByAdgroupId_call> resultHandler) throws org.apache.thrift.TException;

    public void getAdwordsAdGroupAdsByAdgroupId(long adgroupId, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getAdwordsAdGroupAdsByAdgroupId_call> resultHandler) throws org.apache.thrift.TException;

    public void getAdwordsAdGroupsByCampaignId(long campaignId, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getAdwordsAdGroupsByCampaignId_call> resultHandler) throws org.apache.thrift.TException;

    public void getAllAdwordsCampaigns(org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getAllAdwordsCampaigns_call> resultHandler) throws org.apache.thrift.TException;

    public void getAllAdwordsAdGroups(org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getAllAdwordsAdGroups_call> resultHandler) throws org.apache.thrift.TException;

    public void getAllAdwordsAdGroupAds(org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getAllAdwordsAdGroupAds_call> resultHandler) throws org.apache.thrift.TException;

    public void getAllAdwordsAdKeywords(org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getAllAdwordsAdKeywords_call> resultHandler) throws org.apache.thrift.TException;

  }

  public static class Client extends in.shop2020.generic.GenericService.Client implements Iface {
    public static class Factory implements org.apache.thrift.TServiceClientFactory<Client> {
      public Factory() {}
      public Client getClient(org.apache.thrift.protocol.TProtocol prot) {
        return new Client(prot);
      }
      public Client getClient(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) {
        return new Client(iprot, oprot);
      }
    }

    public Client(org.apache.thrift.protocol.TProtocol prot)
    {
      super(prot, prot);
    }

    public Client(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) {
      super(iprot, oprot);
    }

    public void addAdwordsCampaign(AdwordsCampaign campaign) throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_addAdwordsCampaign(campaign);
      recv_addAdwordsCampaign();
    }

    public void send_addAdwordsCampaign(AdwordsCampaign campaign) throws org.apache.thrift.TException
    {
      addAdwordsCampaign_args args = new addAdwordsCampaign_args();
      args.setCampaign(campaign);
      sendBase("addAdwordsCampaign", args);
    }

    public void recv_addAdwordsCampaign() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      addAdwordsCampaign_result result = new addAdwordsCampaign_result();
      receiveBase(result, "addAdwordsCampaign");
      if (result.gasex != null) {
        throw result.gasex;
      }
      return;
    }

    public void addAdwordsAdGroup(AdwordsAdGroup adgroup) throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_addAdwordsAdGroup(adgroup);
      recv_addAdwordsAdGroup();
    }

    public void send_addAdwordsAdGroup(AdwordsAdGroup adgroup) throws org.apache.thrift.TException
    {
      addAdwordsAdGroup_args args = new addAdwordsAdGroup_args();
      args.setAdgroup(adgroup);
      sendBase("addAdwordsAdGroup", args);
    }

    public void recv_addAdwordsAdGroup() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      addAdwordsAdGroup_result result = new addAdwordsAdGroup_result();
      receiveBase(result, "addAdwordsAdGroup");
      if (result.gasex != null) {
        throw result.gasex;
      }
      return;
    }

    public void addAdwordsAdGroupAd(AdwordsAdGroupAd adgroupad) throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_addAdwordsAdGroupAd(adgroupad);
      recv_addAdwordsAdGroupAd();
    }

    public void send_addAdwordsAdGroupAd(AdwordsAdGroupAd adgroupad) throws org.apache.thrift.TException
    {
      addAdwordsAdGroupAd_args args = new addAdwordsAdGroupAd_args();
      args.setAdgroupad(adgroupad);
      sendBase("addAdwordsAdGroupAd", args);
    }

    public void recv_addAdwordsAdGroupAd() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      addAdwordsAdGroupAd_result result = new addAdwordsAdGroupAd_result();
      receiveBase(result, "addAdwordsAdGroupAd");
      if (result.gasex != null) {
        throw result.gasex;
      }
      return;
    }

    public void addAdwordsAdKeyword(AdwordsAdKeyword adkeyword) throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_addAdwordsAdKeyword(adkeyword);
      recv_addAdwordsAdKeyword();
    }

    public void send_addAdwordsAdKeyword(AdwordsAdKeyword adkeyword) throws org.apache.thrift.TException
    {
      addAdwordsAdKeyword_args args = new addAdwordsAdKeyword_args();
      args.setAdkeyword(adkeyword);
      sendBase("addAdwordsAdKeyword", args);
    }

    public void recv_addAdwordsAdKeyword() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      addAdwordsAdKeyword_result result = new addAdwordsAdKeyword_result();
      receiveBase(result, "addAdwordsAdKeyword");
      if (result.gasex != null) {
        throw result.gasex;
      }
      return;
    }

    public void updateAdwordsCampaign(AdwordsCampaign campaign) throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_updateAdwordsCampaign(campaign);
      recv_updateAdwordsCampaign();
    }

    public void send_updateAdwordsCampaign(AdwordsCampaign campaign) throws org.apache.thrift.TException
    {
      updateAdwordsCampaign_args args = new updateAdwordsCampaign_args();
      args.setCampaign(campaign);
      sendBase("updateAdwordsCampaign", args);
    }

    public void recv_updateAdwordsCampaign() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      updateAdwordsCampaign_result result = new updateAdwordsCampaign_result();
      receiveBase(result, "updateAdwordsCampaign");
      if (result.gasex != null) {
        throw result.gasex;
      }
      return;
    }

    public void updateAdwordsAdGroup(AdwordsAdGroup adgroup) throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_updateAdwordsAdGroup(adgroup);
      recv_updateAdwordsAdGroup();
    }

    public void send_updateAdwordsAdGroup(AdwordsAdGroup adgroup) throws org.apache.thrift.TException
    {
      updateAdwordsAdGroup_args args = new updateAdwordsAdGroup_args();
      args.setAdgroup(adgroup);
      sendBase("updateAdwordsAdGroup", args);
    }

    public void recv_updateAdwordsAdGroup() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      updateAdwordsAdGroup_result result = new updateAdwordsAdGroup_result();
      receiveBase(result, "updateAdwordsAdGroup");
      if (result.gasex != null) {
        throw result.gasex;
      }
      return;
    }

    public void updateAdwordsAdKeyword(AdwordsAdKeyword adkeyword) throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_updateAdwordsAdKeyword(adkeyword);
      recv_updateAdwordsAdKeyword();
    }

    public void send_updateAdwordsAdKeyword(AdwordsAdKeyword adkeyword) throws org.apache.thrift.TException
    {
      updateAdwordsAdKeyword_args args = new updateAdwordsAdKeyword_args();
      args.setAdkeyword(adkeyword);
      sendBase("updateAdwordsAdKeyword", args);
    }

    public void recv_updateAdwordsAdKeyword() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      updateAdwordsAdKeyword_result result = new updateAdwordsAdKeyword_result();
      receiveBase(result, "updateAdwordsAdKeyword");
      if (result.gasex != null) {
        throw result.gasex;
      }
      return;
    }

    public void deleteAdwordsCampaign(long campaignId) throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_deleteAdwordsCampaign(campaignId);
      recv_deleteAdwordsCampaign();
    }

    public void send_deleteAdwordsCampaign(long campaignId) throws org.apache.thrift.TException
    {
      deleteAdwordsCampaign_args args = new deleteAdwordsCampaign_args();
      args.setCampaignId(campaignId);
      sendBase("deleteAdwordsCampaign", args);
    }

    public void recv_deleteAdwordsCampaign() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      deleteAdwordsCampaign_result result = new deleteAdwordsCampaign_result();
      receiveBase(result, "deleteAdwordsCampaign");
      if (result.gasex != null) {
        throw result.gasex;
      }
      return;
    }

    public void deleteAdwordsAdGroup(long adgroupId) throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_deleteAdwordsAdGroup(adgroupId);
      recv_deleteAdwordsAdGroup();
    }

    public void send_deleteAdwordsAdGroup(long adgroupId) throws org.apache.thrift.TException
    {
      deleteAdwordsAdGroup_args args = new deleteAdwordsAdGroup_args();
      args.setAdgroupId(adgroupId);
      sendBase("deleteAdwordsAdGroup", args);
    }

    public void recv_deleteAdwordsAdGroup() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      deleteAdwordsAdGroup_result result = new deleteAdwordsAdGroup_result();
      receiveBase(result, "deleteAdwordsAdGroup");
      if (result.gasex != null) {
        throw result.gasex;
      }
      return;
    }

    public void deleteAdwordsAdGroupAd(long adgroupadId) throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_deleteAdwordsAdGroupAd(adgroupadId);
      recv_deleteAdwordsAdGroupAd();
    }

    public void send_deleteAdwordsAdGroupAd(long adgroupadId) throws org.apache.thrift.TException
    {
      deleteAdwordsAdGroupAd_args args = new deleteAdwordsAdGroupAd_args();
      args.setAdgroupadId(adgroupadId);
      sendBase("deleteAdwordsAdGroupAd", args);
    }

    public void recv_deleteAdwordsAdGroupAd() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      deleteAdwordsAdGroupAd_result result = new deleteAdwordsAdGroupAd_result();
      receiveBase(result, "deleteAdwordsAdGroupAd");
      if (result.gasex != null) {
        throw result.gasex;
      }
      return;
    }

    public void deleteAdwordsAdKeyword(long criterionId) throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_deleteAdwordsAdKeyword(criterionId);
      recv_deleteAdwordsAdKeyword();
    }

    public void send_deleteAdwordsAdKeyword(long criterionId) throws org.apache.thrift.TException
    {
      deleteAdwordsAdKeyword_args args = new deleteAdwordsAdKeyword_args();
      args.setCriterionId(criterionId);
      sendBase("deleteAdwordsAdKeyword", args);
    }

    public void recv_deleteAdwordsAdKeyword() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      deleteAdwordsAdKeyword_result result = new deleteAdwordsAdKeyword_result();
      receiveBase(result, "deleteAdwordsAdKeyword");
      if (result.gasex != null) {
        throw result.gasex;
      }
      return;
    }

    public AdwordsCampaign getAdwordsCampaignByCampaignId(long campaignId) throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_getAdwordsCampaignByCampaignId(campaignId);
      return recv_getAdwordsCampaignByCampaignId();
    }

    public void send_getAdwordsCampaignByCampaignId(long campaignId) throws org.apache.thrift.TException
    {
      getAdwordsCampaignByCampaignId_args args = new getAdwordsCampaignByCampaignId_args();
      args.setCampaignId(campaignId);
      sendBase("getAdwordsCampaignByCampaignId", args);
    }

    public AdwordsCampaign recv_getAdwordsCampaignByCampaignId() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      getAdwordsCampaignByCampaignId_result result = new getAdwordsCampaignByCampaignId_result();
      receiveBase(result, "getAdwordsCampaignByCampaignId");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.gasex != null) {
        throw result.gasex;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAdwordsCampaignByCampaignId failed: unknown result");
    }

    public AdwordsAdGroup getAdwordsAdGroupByAdGroupId(long adgroupId) throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_getAdwordsAdGroupByAdGroupId(adgroupId);
      return recv_getAdwordsAdGroupByAdGroupId();
    }

    public void send_getAdwordsAdGroupByAdGroupId(long adgroupId) throws org.apache.thrift.TException
    {
      getAdwordsAdGroupByAdGroupId_args args = new getAdwordsAdGroupByAdGroupId_args();
      args.setAdgroupId(adgroupId);
      sendBase("getAdwordsAdGroupByAdGroupId", args);
    }

    public AdwordsAdGroup recv_getAdwordsAdGroupByAdGroupId() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      getAdwordsAdGroupByAdGroupId_result result = new getAdwordsAdGroupByAdGroupId_result();
      receiveBase(result, "getAdwordsAdGroupByAdGroupId");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.gasex != null) {
        throw result.gasex;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAdwordsAdGroupByAdGroupId failed: unknown result");
    }

    public AdwordsAdGroupAd getAdwordsAdgroupAdByAdId(long adgroupadId) throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_getAdwordsAdgroupAdByAdId(adgroupadId);
      return recv_getAdwordsAdgroupAdByAdId();
    }

    public void send_getAdwordsAdgroupAdByAdId(long adgroupadId) throws org.apache.thrift.TException
    {
      getAdwordsAdgroupAdByAdId_args args = new getAdwordsAdgroupAdByAdId_args();
      args.setAdgroupadId(adgroupadId);
      sendBase("getAdwordsAdgroupAdByAdId", args);
    }

    public AdwordsAdGroupAd recv_getAdwordsAdgroupAdByAdId() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      getAdwordsAdgroupAdByAdId_result result = new getAdwordsAdgroupAdByAdId_result();
      receiveBase(result, "getAdwordsAdgroupAdByAdId");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.gasex != null) {
        throw result.gasex;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAdwordsAdgroupAdByAdId failed: unknown result");
    }

    public AdwordsAdKeyword getAdwordsAdKeywordByCriterionId(long criterionId) throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_getAdwordsAdKeywordByCriterionId(criterionId);
      return recv_getAdwordsAdKeywordByCriterionId();
    }

    public void send_getAdwordsAdKeywordByCriterionId(long criterionId) throws org.apache.thrift.TException
    {
      getAdwordsAdKeywordByCriterionId_args args = new getAdwordsAdKeywordByCriterionId_args();
      args.setCriterionId(criterionId);
      sendBase("getAdwordsAdKeywordByCriterionId", args);
    }

    public AdwordsAdKeyword recv_getAdwordsAdKeywordByCriterionId() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      getAdwordsAdKeywordByCriterionId_result result = new getAdwordsAdKeywordByCriterionId_result();
      receiveBase(result, "getAdwordsAdKeywordByCriterionId");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.gasex != null) {
        throw result.gasex;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAdwordsAdKeywordByCriterionId failed: unknown result");
    }

    public List<AdwordsAdKeyword> getAdwordsAdKeywordsByAdgroupId(long adgroupId) throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_getAdwordsAdKeywordsByAdgroupId(adgroupId);
      return recv_getAdwordsAdKeywordsByAdgroupId();
    }

    public void send_getAdwordsAdKeywordsByAdgroupId(long adgroupId) throws org.apache.thrift.TException
    {
      getAdwordsAdKeywordsByAdgroupId_args args = new getAdwordsAdKeywordsByAdgroupId_args();
      args.setAdgroupId(adgroupId);
      sendBase("getAdwordsAdKeywordsByAdgroupId", args);
    }

    public List<AdwordsAdKeyword> recv_getAdwordsAdKeywordsByAdgroupId() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      getAdwordsAdKeywordsByAdgroupId_result result = new getAdwordsAdKeywordsByAdgroupId_result();
      receiveBase(result, "getAdwordsAdKeywordsByAdgroupId");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.gasex != null) {
        throw result.gasex;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAdwordsAdKeywordsByAdgroupId failed: unknown result");
    }

    public List<AdwordsAdGroupAd> getAdwordsAdGroupAdsByAdgroupId(long adgroupId) throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_getAdwordsAdGroupAdsByAdgroupId(adgroupId);
      return recv_getAdwordsAdGroupAdsByAdgroupId();
    }

    public void send_getAdwordsAdGroupAdsByAdgroupId(long adgroupId) throws org.apache.thrift.TException
    {
      getAdwordsAdGroupAdsByAdgroupId_args args = new getAdwordsAdGroupAdsByAdgroupId_args();
      args.setAdgroupId(adgroupId);
      sendBase("getAdwordsAdGroupAdsByAdgroupId", args);
    }

    public List<AdwordsAdGroupAd> recv_getAdwordsAdGroupAdsByAdgroupId() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      getAdwordsAdGroupAdsByAdgroupId_result result = new getAdwordsAdGroupAdsByAdgroupId_result();
      receiveBase(result, "getAdwordsAdGroupAdsByAdgroupId");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.gasex != null) {
        throw result.gasex;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAdwordsAdGroupAdsByAdgroupId failed: unknown result");
    }

    public List<AdwordsAdGroup> getAdwordsAdGroupsByCampaignId(long campaignId) throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_getAdwordsAdGroupsByCampaignId(campaignId);
      return recv_getAdwordsAdGroupsByCampaignId();
    }

    public void send_getAdwordsAdGroupsByCampaignId(long campaignId) throws org.apache.thrift.TException
    {
      getAdwordsAdGroupsByCampaignId_args args = new getAdwordsAdGroupsByCampaignId_args();
      args.setCampaignId(campaignId);
      sendBase("getAdwordsAdGroupsByCampaignId", args);
    }

    public List<AdwordsAdGroup> recv_getAdwordsAdGroupsByCampaignId() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      getAdwordsAdGroupsByCampaignId_result result = new getAdwordsAdGroupsByCampaignId_result();
      receiveBase(result, "getAdwordsAdGroupsByCampaignId");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.gasex != null) {
        throw result.gasex;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAdwordsAdGroupsByCampaignId failed: unknown result");
    }

    public List<AdwordsCampaign> getAllAdwordsCampaigns() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_getAllAdwordsCampaigns();
      return recv_getAllAdwordsCampaigns();
    }

    public void send_getAllAdwordsCampaigns() throws org.apache.thrift.TException
    {
      getAllAdwordsCampaigns_args args = new getAllAdwordsCampaigns_args();
      sendBase("getAllAdwordsCampaigns", args);
    }

    public List<AdwordsCampaign> recv_getAllAdwordsCampaigns() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      getAllAdwordsCampaigns_result result = new getAllAdwordsCampaigns_result();
      receiveBase(result, "getAllAdwordsCampaigns");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.gasex != null) {
        throw result.gasex;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllAdwordsCampaigns failed: unknown result");
    }

    public List<AdwordsAdGroup> getAllAdwordsAdGroups() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_getAllAdwordsAdGroups();
      return recv_getAllAdwordsAdGroups();
    }

    public void send_getAllAdwordsAdGroups() throws org.apache.thrift.TException
    {
      getAllAdwordsAdGroups_args args = new getAllAdwordsAdGroups_args();
      sendBase("getAllAdwordsAdGroups", args);
    }

    public List<AdwordsAdGroup> recv_getAllAdwordsAdGroups() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      getAllAdwordsAdGroups_result result = new getAllAdwordsAdGroups_result();
      receiveBase(result, "getAllAdwordsAdGroups");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.gasex != null) {
        throw result.gasex;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllAdwordsAdGroups failed: unknown result");
    }

    public List<AdwordsAdGroupAd> getAllAdwordsAdGroupAds() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_getAllAdwordsAdGroupAds();
      return recv_getAllAdwordsAdGroupAds();
    }

    public void send_getAllAdwordsAdGroupAds() throws org.apache.thrift.TException
    {
      getAllAdwordsAdGroupAds_args args = new getAllAdwordsAdGroupAds_args();
      sendBase("getAllAdwordsAdGroupAds", args);
    }

    public List<AdwordsAdGroupAd> recv_getAllAdwordsAdGroupAds() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      getAllAdwordsAdGroupAds_result result = new getAllAdwordsAdGroupAds_result();
      receiveBase(result, "getAllAdwordsAdGroupAds");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.gasex != null) {
        throw result.gasex;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllAdwordsAdGroupAds failed: unknown result");
    }

    public List<AdwordsAdKeyword> getAllAdwordsAdKeywords() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      send_getAllAdwordsAdKeywords();
      return recv_getAllAdwordsAdKeywords();
    }

    public void send_getAllAdwordsAdKeywords() throws org.apache.thrift.TException
    {
      getAllAdwordsAdKeywords_args args = new getAllAdwordsAdKeywords_args();
      sendBase("getAllAdwordsAdKeywords", args);
    }

    public List<AdwordsAdKeyword> recv_getAllAdwordsAdKeywords() throws GoogleAdwordsServiceException, org.apache.thrift.TException
    {
      getAllAdwordsAdKeywords_result result = new getAllAdwordsAdKeywords_result();
      receiveBase(result, "getAllAdwordsAdKeywords");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.gasex != null) {
        throw result.gasex;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllAdwordsAdKeywords failed: unknown result");
    }

  }
  public static class AsyncClient extends in.shop2020.generic.GenericService.AsyncClient implements AsyncIface {
    public static class Factory implements org.apache.thrift.async.TAsyncClientFactory<AsyncClient> {
      private org.apache.thrift.async.TAsyncClientManager clientManager;
      private org.apache.thrift.protocol.TProtocolFactory protocolFactory;
      public Factory(org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.protocol.TProtocolFactory protocolFactory) {
        this.clientManager = clientManager;
        this.protocolFactory = protocolFactory;
      }
      public AsyncClient getAsyncClient(org.apache.thrift.transport.TNonblockingTransport transport) {
        return new AsyncClient(protocolFactory, clientManager, transport);
      }
    }

    public AsyncClient(org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.transport.TNonblockingTransport transport) {
      super(protocolFactory, clientManager, transport);
    }

    public void addAdwordsCampaign(AdwordsCampaign campaign, org.apache.thrift.async.AsyncMethodCallback<addAdwordsCampaign_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      addAdwordsCampaign_call method_call = new addAdwordsCampaign_call(campaign, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class addAdwordsCampaign_call extends org.apache.thrift.async.TAsyncMethodCall {
      private AdwordsCampaign campaign;
      public addAdwordsCampaign_call(AdwordsCampaign campaign, org.apache.thrift.async.AsyncMethodCallback<addAdwordsCampaign_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.campaign = campaign;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("addAdwordsCampaign", org.apache.thrift.protocol.TMessageType.CALL, 0));
        addAdwordsCampaign_args args = new addAdwordsCampaign_args();
        args.setCampaign(campaign);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        (new Client(prot)).recv_addAdwordsCampaign();
      }
    }

    public void addAdwordsAdGroup(AdwordsAdGroup adgroup, org.apache.thrift.async.AsyncMethodCallback<addAdwordsAdGroup_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      addAdwordsAdGroup_call method_call = new addAdwordsAdGroup_call(adgroup, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class addAdwordsAdGroup_call extends org.apache.thrift.async.TAsyncMethodCall {
      private AdwordsAdGroup adgroup;
      public addAdwordsAdGroup_call(AdwordsAdGroup adgroup, org.apache.thrift.async.AsyncMethodCallback<addAdwordsAdGroup_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.adgroup = adgroup;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("addAdwordsAdGroup", org.apache.thrift.protocol.TMessageType.CALL, 0));
        addAdwordsAdGroup_args args = new addAdwordsAdGroup_args();
        args.setAdgroup(adgroup);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        (new Client(prot)).recv_addAdwordsAdGroup();
      }
    }

    public void addAdwordsAdGroupAd(AdwordsAdGroupAd adgroupad, org.apache.thrift.async.AsyncMethodCallback<addAdwordsAdGroupAd_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      addAdwordsAdGroupAd_call method_call = new addAdwordsAdGroupAd_call(adgroupad, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class addAdwordsAdGroupAd_call extends org.apache.thrift.async.TAsyncMethodCall {
      private AdwordsAdGroupAd adgroupad;
      public addAdwordsAdGroupAd_call(AdwordsAdGroupAd adgroupad, org.apache.thrift.async.AsyncMethodCallback<addAdwordsAdGroupAd_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.adgroupad = adgroupad;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("addAdwordsAdGroupAd", org.apache.thrift.protocol.TMessageType.CALL, 0));
        addAdwordsAdGroupAd_args args = new addAdwordsAdGroupAd_args();
        args.setAdgroupad(adgroupad);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        (new Client(prot)).recv_addAdwordsAdGroupAd();
      }
    }

    public void addAdwordsAdKeyword(AdwordsAdKeyword adkeyword, org.apache.thrift.async.AsyncMethodCallback<addAdwordsAdKeyword_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      addAdwordsAdKeyword_call method_call = new addAdwordsAdKeyword_call(adkeyword, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class addAdwordsAdKeyword_call extends org.apache.thrift.async.TAsyncMethodCall {
      private AdwordsAdKeyword adkeyword;
      public addAdwordsAdKeyword_call(AdwordsAdKeyword adkeyword, org.apache.thrift.async.AsyncMethodCallback<addAdwordsAdKeyword_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.adkeyword = adkeyword;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("addAdwordsAdKeyword", org.apache.thrift.protocol.TMessageType.CALL, 0));
        addAdwordsAdKeyword_args args = new addAdwordsAdKeyword_args();
        args.setAdkeyword(adkeyword);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        (new Client(prot)).recv_addAdwordsAdKeyword();
      }
    }

    public void updateAdwordsCampaign(AdwordsCampaign campaign, org.apache.thrift.async.AsyncMethodCallback<updateAdwordsCampaign_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      updateAdwordsCampaign_call method_call = new updateAdwordsCampaign_call(campaign, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class updateAdwordsCampaign_call extends org.apache.thrift.async.TAsyncMethodCall {
      private AdwordsCampaign campaign;
      public updateAdwordsCampaign_call(AdwordsCampaign campaign, org.apache.thrift.async.AsyncMethodCallback<updateAdwordsCampaign_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.campaign = campaign;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updateAdwordsCampaign", org.apache.thrift.protocol.TMessageType.CALL, 0));
        updateAdwordsCampaign_args args = new updateAdwordsCampaign_args();
        args.setCampaign(campaign);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        (new Client(prot)).recv_updateAdwordsCampaign();
      }
    }

    public void updateAdwordsAdGroup(AdwordsAdGroup adgroup, org.apache.thrift.async.AsyncMethodCallback<updateAdwordsAdGroup_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      updateAdwordsAdGroup_call method_call = new updateAdwordsAdGroup_call(adgroup, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class updateAdwordsAdGroup_call extends org.apache.thrift.async.TAsyncMethodCall {
      private AdwordsAdGroup adgroup;
      public updateAdwordsAdGroup_call(AdwordsAdGroup adgroup, org.apache.thrift.async.AsyncMethodCallback<updateAdwordsAdGroup_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.adgroup = adgroup;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updateAdwordsAdGroup", org.apache.thrift.protocol.TMessageType.CALL, 0));
        updateAdwordsAdGroup_args args = new updateAdwordsAdGroup_args();
        args.setAdgroup(adgroup);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        (new Client(prot)).recv_updateAdwordsAdGroup();
      }
    }

    public void updateAdwordsAdKeyword(AdwordsAdKeyword adkeyword, org.apache.thrift.async.AsyncMethodCallback<updateAdwordsAdKeyword_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      updateAdwordsAdKeyword_call method_call = new updateAdwordsAdKeyword_call(adkeyword, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class updateAdwordsAdKeyword_call extends org.apache.thrift.async.TAsyncMethodCall {
      private AdwordsAdKeyword adkeyword;
      public updateAdwordsAdKeyword_call(AdwordsAdKeyword adkeyword, org.apache.thrift.async.AsyncMethodCallback<updateAdwordsAdKeyword_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.adkeyword = adkeyword;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updateAdwordsAdKeyword", org.apache.thrift.protocol.TMessageType.CALL, 0));
        updateAdwordsAdKeyword_args args = new updateAdwordsAdKeyword_args();
        args.setAdkeyword(adkeyword);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        (new Client(prot)).recv_updateAdwordsAdKeyword();
      }
    }

    public void deleteAdwordsCampaign(long campaignId, org.apache.thrift.async.AsyncMethodCallback<deleteAdwordsCampaign_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      deleteAdwordsCampaign_call method_call = new deleteAdwordsCampaign_call(campaignId, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class deleteAdwordsCampaign_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long campaignId;
      public deleteAdwordsCampaign_call(long campaignId, org.apache.thrift.async.AsyncMethodCallback<deleteAdwordsCampaign_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.campaignId = campaignId;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deleteAdwordsCampaign", org.apache.thrift.protocol.TMessageType.CALL, 0));
        deleteAdwordsCampaign_args args = new deleteAdwordsCampaign_args();
        args.setCampaignId(campaignId);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        (new Client(prot)).recv_deleteAdwordsCampaign();
      }
    }

    public void deleteAdwordsAdGroup(long adgroupId, org.apache.thrift.async.AsyncMethodCallback<deleteAdwordsAdGroup_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      deleteAdwordsAdGroup_call method_call = new deleteAdwordsAdGroup_call(adgroupId, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class deleteAdwordsAdGroup_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long adgroupId;
      public deleteAdwordsAdGroup_call(long adgroupId, org.apache.thrift.async.AsyncMethodCallback<deleteAdwordsAdGroup_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.adgroupId = adgroupId;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deleteAdwordsAdGroup", org.apache.thrift.protocol.TMessageType.CALL, 0));
        deleteAdwordsAdGroup_args args = new deleteAdwordsAdGroup_args();
        args.setAdgroupId(adgroupId);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        (new Client(prot)).recv_deleteAdwordsAdGroup();
      }
    }

    public void deleteAdwordsAdGroupAd(long adgroupadId, org.apache.thrift.async.AsyncMethodCallback<deleteAdwordsAdGroupAd_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      deleteAdwordsAdGroupAd_call method_call = new deleteAdwordsAdGroupAd_call(adgroupadId, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class deleteAdwordsAdGroupAd_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long adgroupadId;
      public deleteAdwordsAdGroupAd_call(long adgroupadId, org.apache.thrift.async.AsyncMethodCallback<deleteAdwordsAdGroupAd_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.adgroupadId = adgroupadId;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deleteAdwordsAdGroupAd", org.apache.thrift.protocol.TMessageType.CALL, 0));
        deleteAdwordsAdGroupAd_args args = new deleteAdwordsAdGroupAd_args();
        args.setAdgroupadId(adgroupadId);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        (new Client(prot)).recv_deleteAdwordsAdGroupAd();
      }
    }

    public void deleteAdwordsAdKeyword(long criterionId, org.apache.thrift.async.AsyncMethodCallback<deleteAdwordsAdKeyword_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      deleteAdwordsAdKeyword_call method_call = new deleteAdwordsAdKeyword_call(criterionId, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class deleteAdwordsAdKeyword_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long criterionId;
      public deleteAdwordsAdKeyword_call(long criterionId, org.apache.thrift.async.AsyncMethodCallback<deleteAdwordsAdKeyword_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.criterionId = criterionId;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deleteAdwordsAdKeyword", org.apache.thrift.protocol.TMessageType.CALL, 0));
        deleteAdwordsAdKeyword_args args = new deleteAdwordsAdKeyword_args();
        args.setCriterionId(criterionId);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public void getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        (new Client(prot)).recv_deleteAdwordsAdKeyword();
      }
    }

    public void getAdwordsCampaignByCampaignId(long campaignId, org.apache.thrift.async.AsyncMethodCallback<getAdwordsCampaignByCampaignId_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getAdwordsCampaignByCampaignId_call method_call = new getAdwordsCampaignByCampaignId_call(campaignId, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getAdwordsCampaignByCampaignId_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long campaignId;
      public getAdwordsCampaignByCampaignId_call(long campaignId, org.apache.thrift.async.AsyncMethodCallback<getAdwordsCampaignByCampaignId_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.campaignId = campaignId;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAdwordsCampaignByCampaignId", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getAdwordsCampaignByCampaignId_args args = new getAdwordsCampaignByCampaignId_args();
        args.setCampaignId(campaignId);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public AdwordsCampaign getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getAdwordsCampaignByCampaignId();
      }
    }

    public void getAdwordsAdGroupByAdGroupId(long adgroupId, org.apache.thrift.async.AsyncMethodCallback<getAdwordsAdGroupByAdGroupId_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getAdwordsAdGroupByAdGroupId_call method_call = new getAdwordsAdGroupByAdGroupId_call(adgroupId, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getAdwordsAdGroupByAdGroupId_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long adgroupId;
      public getAdwordsAdGroupByAdGroupId_call(long adgroupId, org.apache.thrift.async.AsyncMethodCallback<getAdwordsAdGroupByAdGroupId_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.adgroupId = adgroupId;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAdwordsAdGroupByAdGroupId", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getAdwordsAdGroupByAdGroupId_args args = new getAdwordsAdGroupByAdGroupId_args();
        args.setAdgroupId(adgroupId);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public AdwordsAdGroup getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getAdwordsAdGroupByAdGroupId();
      }
    }

    public void getAdwordsAdgroupAdByAdId(long adgroupadId, org.apache.thrift.async.AsyncMethodCallback<getAdwordsAdgroupAdByAdId_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getAdwordsAdgroupAdByAdId_call method_call = new getAdwordsAdgroupAdByAdId_call(adgroupadId, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getAdwordsAdgroupAdByAdId_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long adgroupadId;
      public getAdwordsAdgroupAdByAdId_call(long adgroupadId, org.apache.thrift.async.AsyncMethodCallback<getAdwordsAdgroupAdByAdId_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.adgroupadId = adgroupadId;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAdwordsAdgroupAdByAdId", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getAdwordsAdgroupAdByAdId_args args = new getAdwordsAdgroupAdByAdId_args();
        args.setAdgroupadId(adgroupadId);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public AdwordsAdGroupAd getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getAdwordsAdgroupAdByAdId();
      }
    }

    public void getAdwordsAdKeywordByCriterionId(long criterionId, org.apache.thrift.async.AsyncMethodCallback<getAdwordsAdKeywordByCriterionId_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getAdwordsAdKeywordByCriterionId_call method_call = new getAdwordsAdKeywordByCriterionId_call(criterionId, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getAdwordsAdKeywordByCriterionId_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long criterionId;
      public getAdwordsAdKeywordByCriterionId_call(long criterionId, org.apache.thrift.async.AsyncMethodCallback<getAdwordsAdKeywordByCriterionId_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.criterionId = criterionId;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAdwordsAdKeywordByCriterionId", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getAdwordsAdKeywordByCriterionId_args args = new getAdwordsAdKeywordByCriterionId_args();
        args.setCriterionId(criterionId);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public AdwordsAdKeyword getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getAdwordsAdKeywordByCriterionId();
      }
    }

    public void getAdwordsAdKeywordsByAdgroupId(long adgroupId, org.apache.thrift.async.AsyncMethodCallback<getAdwordsAdKeywordsByAdgroupId_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getAdwordsAdKeywordsByAdgroupId_call method_call = new getAdwordsAdKeywordsByAdgroupId_call(adgroupId, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getAdwordsAdKeywordsByAdgroupId_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long adgroupId;
      public getAdwordsAdKeywordsByAdgroupId_call(long adgroupId, org.apache.thrift.async.AsyncMethodCallback<getAdwordsAdKeywordsByAdgroupId_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.adgroupId = adgroupId;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAdwordsAdKeywordsByAdgroupId", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getAdwordsAdKeywordsByAdgroupId_args args = new getAdwordsAdKeywordsByAdgroupId_args();
        args.setAdgroupId(adgroupId);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public List<AdwordsAdKeyword> getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getAdwordsAdKeywordsByAdgroupId();
      }
    }

    public void getAdwordsAdGroupAdsByAdgroupId(long adgroupId, org.apache.thrift.async.AsyncMethodCallback<getAdwordsAdGroupAdsByAdgroupId_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getAdwordsAdGroupAdsByAdgroupId_call method_call = new getAdwordsAdGroupAdsByAdgroupId_call(adgroupId, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getAdwordsAdGroupAdsByAdgroupId_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long adgroupId;
      public getAdwordsAdGroupAdsByAdgroupId_call(long adgroupId, org.apache.thrift.async.AsyncMethodCallback<getAdwordsAdGroupAdsByAdgroupId_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.adgroupId = adgroupId;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAdwordsAdGroupAdsByAdgroupId", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getAdwordsAdGroupAdsByAdgroupId_args args = new getAdwordsAdGroupAdsByAdgroupId_args();
        args.setAdgroupId(adgroupId);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public List<AdwordsAdGroupAd> getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getAdwordsAdGroupAdsByAdgroupId();
      }
    }

    public void getAdwordsAdGroupsByCampaignId(long campaignId, org.apache.thrift.async.AsyncMethodCallback<getAdwordsAdGroupsByCampaignId_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getAdwordsAdGroupsByCampaignId_call method_call = new getAdwordsAdGroupsByCampaignId_call(campaignId, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getAdwordsAdGroupsByCampaignId_call extends org.apache.thrift.async.TAsyncMethodCall {
      private long campaignId;
      public getAdwordsAdGroupsByCampaignId_call(long campaignId, org.apache.thrift.async.AsyncMethodCallback<getAdwordsAdGroupsByCampaignId_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.campaignId = campaignId;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAdwordsAdGroupsByCampaignId", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getAdwordsAdGroupsByCampaignId_args args = new getAdwordsAdGroupsByCampaignId_args();
        args.setCampaignId(campaignId);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public List<AdwordsAdGroup> getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getAdwordsAdGroupsByCampaignId();
      }
    }

    public void getAllAdwordsCampaigns(org.apache.thrift.async.AsyncMethodCallback<getAllAdwordsCampaigns_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getAllAdwordsCampaigns_call method_call = new getAllAdwordsCampaigns_call(resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getAllAdwordsCampaigns_call extends org.apache.thrift.async.TAsyncMethodCall {
      public getAllAdwordsCampaigns_call(org.apache.thrift.async.AsyncMethodCallback<getAllAdwordsCampaigns_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllAdwordsCampaigns", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getAllAdwordsCampaigns_args args = new getAllAdwordsCampaigns_args();
        args.write(prot);
        prot.writeMessageEnd();
      }

      public List<AdwordsCampaign> getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getAllAdwordsCampaigns();
      }
    }

    public void getAllAdwordsAdGroups(org.apache.thrift.async.AsyncMethodCallback<getAllAdwordsAdGroups_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getAllAdwordsAdGroups_call method_call = new getAllAdwordsAdGroups_call(resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getAllAdwordsAdGroups_call extends org.apache.thrift.async.TAsyncMethodCall {
      public getAllAdwordsAdGroups_call(org.apache.thrift.async.AsyncMethodCallback<getAllAdwordsAdGroups_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllAdwordsAdGroups", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getAllAdwordsAdGroups_args args = new getAllAdwordsAdGroups_args();
        args.write(prot);
        prot.writeMessageEnd();
      }

      public List<AdwordsAdGroup> getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getAllAdwordsAdGroups();
      }
    }

    public void getAllAdwordsAdGroupAds(org.apache.thrift.async.AsyncMethodCallback<getAllAdwordsAdGroupAds_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getAllAdwordsAdGroupAds_call method_call = new getAllAdwordsAdGroupAds_call(resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getAllAdwordsAdGroupAds_call extends org.apache.thrift.async.TAsyncMethodCall {
      public getAllAdwordsAdGroupAds_call(org.apache.thrift.async.AsyncMethodCallback<getAllAdwordsAdGroupAds_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllAdwordsAdGroupAds", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getAllAdwordsAdGroupAds_args args = new getAllAdwordsAdGroupAds_args();
        args.write(prot);
        prot.writeMessageEnd();
      }

      public List<AdwordsAdGroupAd> getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getAllAdwordsAdGroupAds();
      }
    }

    public void getAllAdwordsAdKeywords(org.apache.thrift.async.AsyncMethodCallback<getAllAdwordsAdKeywords_call> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getAllAdwordsAdKeywords_call method_call = new getAllAdwordsAdKeywords_call(resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    public static class getAllAdwordsAdKeywords_call extends org.apache.thrift.async.TAsyncMethodCall {
      public getAllAdwordsAdKeywords_call(org.apache.thrift.async.AsyncMethodCallback<getAllAdwordsAdKeywords_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllAdwordsAdKeywords", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getAllAdwordsAdKeywords_args args = new getAllAdwordsAdKeywords_args();
        args.write(prot);
        prot.writeMessageEnd();
      }

      public List<AdwordsAdKeyword> getResult() throws GoogleAdwordsServiceException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getAllAdwordsAdKeywords();
      }
    }

  }

  public static class Processor<I extends Iface> extends in.shop2020.generic.GenericService.Processor implements org.apache.thrift.TProcessor {
    private static final Logger LOGGER = LoggerFactory.getLogger(Processor.class.getName());
    public Processor(I iface) {
      super(iface, getProcessMap(new HashMap<String, org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>>()));
    }

    protected Processor(I iface, Map<String,  org.apache.thrift.ProcessFunction<I, ? extends  org.apache.thrift.TBase>> processMap) {
      super(iface, getProcessMap(processMap));
    }

    private static <I extends Iface> Map<String,  org.apache.thrift.ProcessFunction<I, ? extends  org.apache.thrift.TBase>> getProcessMap(Map<String,  org.apache.thrift.ProcessFunction<I, ? extends  org.apache.thrift.TBase>> processMap) {
      processMap.put("addAdwordsCampaign", new addAdwordsCampaign());
      processMap.put("addAdwordsAdGroup", new addAdwordsAdGroup());
      processMap.put("addAdwordsAdGroupAd", new addAdwordsAdGroupAd());
      processMap.put("addAdwordsAdKeyword", new addAdwordsAdKeyword());
      processMap.put("updateAdwordsCampaign", new updateAdwordsCampaign());
      processMap.put("updateAdwordsAdGroup", new updateAdwordsAdGroup());
      processMap.put("updateAdwordsAdKeyword", new updateAdwordsAdKeyword());
      processMap.put("deleteAdwordsCampaign", new deleteAdwordsCampaign());
      processMap.put("deleteAdwordsAdGroup", new deleteAdwordsAdGroup());
      processMap.put("deleteAdwordsAdGroupAd", new deleteAdwordsAdGroupAd());
      processMap.put("deleteAdwordsAdKeyword", new deleteAdwordsAdKeyword());
      processMap.put("getAdwordsCampaignByCampaignId", new getAdwordsCampaignByCampaignId());
      processMap.put("getAdwordsAdGroupByAdGroupId", new getAdwordsAdGroupByAdGroupId());
      processMap.put("getAdwordsAdgroupAdByAdId", new getAdwordsAdgroupAdByAdId());
      processMap.put("getAdwordsAdKeywordByCriterionId", new getAdwordsAdKeywordByCriterionId());
      processMap.put("getAdwordsAdKeywordsByAdgroupId", new getAdwordsAdKeywordsByAdgroupId());
      processMap.put("getAdwordsAdGroupAdsByAdgroupId", new getAdwordsAdGroupAdsByAdgroupId());
      processMap.put("getAdwordsAdGroupsByCampaignId", new getAdwordsAdGroupsByCampaignId());
      processMap.put("getAllAdwordsCampaigns", new getAllAdwordsCampaigns());
      processMap.put("getAllAdwordsAdGroups", new getAllAdwordsAdGroups());
      processMap.put("getAllAdwordsAdGroupAds", new getAllAdwordsAdGroupAds());
      processMap.put("getAllAdwordsAdKeywords", new getAllAdwordsAdKeywords());
      return processMap;
    }

    private static class addAdwordsCampaign<I extends Iface> extends org.apache.thrift.ProcessFunction<I, addAdwordsCampaign_args> {
      public addAdwordsCampaign() {
        super("addAdwordsCampaign");
      }

      protected addAdwordsCampaign_args getEmptyArgsInstance() {
        return new addAdwordsCampaign_args();
      }

      protected addAdwordsCampaign_result getResult(I iface, addAdwordsCampaign_args args) throws org.apache.thrift.TException {
        addAdwordsCampaign_result result = new addAdwordsCampaign_result();
        try {
          iface.addAdwordsCampaign(args.campaign);
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class addAdwordsAdGroup<I extends Iface> extends org.apache.thrift.ProcessFunction<I, addAdwordsAdGroup_args> {
      public addAdwordsAdGroup() {
        super("addAdwordsAdGroup");
      }

      protected addAdwordsAdGroup_args getEmptyArgsInstance() {
        return new addAdwordsAdGroup_args();
      }

      protected addAdwordsAdGroup_result getResult(I iface, addAdwordsAdGroup_args args) throws org.apache.thrift.TException {
        addAdwordsAdGroup_result result = new addAdwordsAdGroup_result();
        try {
          iface.addAdwordsAdGroup(args.adgroup);
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class addAdwordsAdGroupAd<I extends Iface> extends org.apache.thrift.ProcessFunction<I, addAdwordsAdGroupAd_args> {
      public addAdwordsAdGroupAd() {
        super("addAdwordsAdGroupAd");
      }

      protected addAdwordsAdGroupAd_args getEmptyArgsInstance() {
        return new addAdwordsAdGroupAd_args();
      }

      protected addAdwordsAdGroupAd_result getResult(I iface, addAdwordsAdGroupAd_args args) throws org.apache.thrift.TException {
        addAdwordsAdGroupAd_result result = new addAdwordsAdGroupAd_result();
        try {
          iface.addAdwordsAdGroupAd(args.adgroupad);
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class addAdwordsAdKeyword<I extends Iface> extends org.apache.thrift.ProcessFunction<I, addAdwordsAdKeyword_args> {
      public addAdwordsAdKeyword() {
        super("addAdwordsAdKeyword");
      }

      protected addAdwordsAdKeyword_args getEmptyArgsInstance() {
        return new addAdwordsAdKeyword_args();
      }

      protected addAdwordsAdKeyword_result getResult(I iface, addAdwordsAdKeyword_args args) throws org.apache.thrift.TException {
        addAdwordsAdKeyword_result result = new addAdwordsAdKeyword_result();
        try {
          iface.addAdwordsAdKeyword(args.adkeyword);
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class updateAdwordsCampaign<I extends Iface> extends org.apache.thrift.ProcessFunction<I, updateAdwordsCampaign_args> {
      public updateAdwordsCampaign() {
        super("updateAdwordsCampaign");
      }

      protected updateAdwordsCampaign_args getEmptyArgsInstance() {
        return new updateAdwordsCampaign_args();
      }

      protected updateAdwordsCampaign_result getResult(I iface, updateAdwordsCampaign_args args) throws org.apache.thrift.TException {
        updateAdwordsCampaign_result result = new updateAdwordsCampaign_result();
        try {
          iface.updateAdwordsCampaign(args.campaign);
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class updateAdwordsAdGroup<I extends Iface> extends org.apache.thrift.ProcessFunction<I, updateAdwordsAdGroup_args> {
      public updateAdwordsAdGroup() {
        super("updateAdwordsAdGroup");
      }

      protected updateAdwordsAdGroup_args getEmptyArgsInstance() {
        return new updateAdwordsAdGroup_args();
      }

      protected updateAdwordsAdGroup_result getResult(I iface, updateAdwordsAdGroup_args args) throws org.apache.thrift.TException {
        updateAdwordsAdGroup_result result = new updateAdwordsAdGroup_result();
        try {
          iface.updateAdwordsAdGroup(args.adgroup);
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class updateAdwordsAdKeyword<I extends Iface> extends org.apache.thrift.ProcessFunction<I, updateAdwordsAdKeyword_args> {
      public updateAdwordsAdKeyword() {
        super("updateAdwordsAdKeyword");
      }

      protected updateAdwordsAdKeyword_args getEmptyArgsInstance() {
        return new updateAdwordsAdKeyword_args();
      }

      protected updateAdwordsAdKeyword_result getResult(I iface, updateAdwordsAdKeyword_args args) throws org.apache.thrift.TException {
        updateAdwordsAdKeyword_result result = new updateAdwordsAdKeyword_result();
        try {
          iface.updateAdwordsAdKeyword(args.adkeyword);
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class deleteAdwordsCampaign<I extends Iface> extends org.apache.thrift.ProcessFunction<I, deleteAdwordsCampaign_args> {
      public deleteAdwordsCampaign() {
        super("deleteAdwordsCampaign");
      }

      protected deleteAdwordsCampaign_args getEmptyArgsInstance() {
        return new deleteAdwordsCampaign_args();
      }

      protected deleteAdwordsCampaign_result getResult(I iface, deleteAdwordsCampaign_args args) throws org.apache.thrift.TException {
        deleteAdwordsCampaign_result result = new deleteAdwordsCampaign_result();
        try {
          iface.deleteAdwordsCampaign(args.campaignId);
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class deleteAdwordsAdGroup<I extends Iface> extends org.apache.thrift.ProcessFunction<I, deleteAdwordsAdGroup_args> {
      public deleteAdwordsAdGroup() {
        super("deleteAdwordsAdGroup");
      }

      protected deleteAdwordsAdGroup_args getEmptyArgsInstance() {
        return new deleteAdwordsAdGroup_args();
      }

      protected deleteAdwordsAdGroup_result getResult(I iface, deleteAdwordsAdGroup_args args) throws org.apache.thrift.TException {
        deleteAdwordsAdGroup_result result = new deleteAdwordsAdGroup_result();
        try {
          iface.deleteAdwordsAdGroup(args.adgroupId);
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class deleteAdwordsAdGroupAd<I extends Iface> extends org.apache.thrift.ProcessFunction<I, deleteAdwordsAdGroupAd_args> {
      public deleteAdwordsAdGroupAd() {
        super("deleteAdwordsAdGroupAd");
      }

      protected deleteAdwordsAdGroupAd_args getEmptyArgsInstance() {
        return new deleteAdwordsAdGroupAd_args();
      }

      protected deleteAdwordsAdGroupAd_result getResult(I iface, deleteAdwordsAdGroupAd_args args) throws org.apache.thrift.TException {
        deleteAdwordsAdGroupAd_result result = new deleteAdwordsAdGroupAd_result();
        try {
          iface.deleteAdwordsAdGroupAd(args.adgroupadId);
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class deleteAdwordsAdKeyword<I extends Iface> extends org.apache.thrift.ProcessFunction<I, deleteAdwordsAdKeyword_args> {
      public deleteAdwordsAdKeyword() {
        super("deleteAdwordsAdKeyword");
      }

      protected deleteAdwordsAdKeyword_args getEmptyArgsInstance() {
        return new deleteAdwordsAdKeyword_args();
      }

      protected deleteAdwordsAdKeyword_result getResult(I iface, deleteAdwordsAdKeyword_args args) throws org.apache.thrift.TException {
        deleteAdwordsAdKeyword_result result = new deleteAdwordsAdKeyword_result();
        try {
          iface.deleteAdwordsAdKeyword(args.criterionId);
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class getAdwordsCampaignByCampaignId<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAdwordsCampaignByCampaignId_args> {
      public getAdwordsCampaignByCampaignId() {
        super("getAdwordsCampaignByCampaignId");
      }

      protected getAdwordsCampaignByCampaignId_args getEmptyArgsInstance() {
        return new getAdwordsCampaignByCampaignId_args();
      }

      protected getAdwordsCampaignByCampaignId_result getResult(I iface, getAdwordsCampaignByCampaignId_args args) throws org.apache.thrift.TException {
        getAdwordsCampaignByCampaignId_result result = new getAdwordsCampaignByCampaignId_result();
        try {
          result.success = iface.getAdwordsCampaignByCampaignId(args.campaignId);
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class getAdwordsAdGroupByAdGroupId<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAdwordsAdGroupByAdGroupId_args> {
      public getAdwordsAdGroupByAdGroupId() {
        super("getAdwordsAdGroupByAdGroupId");
      }

      protected getAdwordsAdGroupByAdGroupId_args getEmptyArgsInstance() {
        return new getAdwordsAdGroupByAdGroupId_args();
      }

      protected getAdwordsAdGroupByAdGroupId_result getResult(I iface, getAdwordsAdGroupByAdGroupId_args args) throws org.apache.thrift.TException {
        getAdwordsAdGroupByAdGroupId_result result = new getAdwordsAdGroupByAdGroupId_result();
        try {
          result.success = iface.getAdwordsAdGroupByAdGroupId(args.adgroupId);
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class getAdwordsAdgroupAdByAdId<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAdwordsAdgroupAdByAdId_args> {
      public getAdwordsAdgroupAdByAdId() {
        super("getAdwordsAdgroupAdByAdId");
      }

      protected getAdwordsAdgroupAdByAdId_args getEmptyArgsInstance() {
        return new getAdwordsAdgroupAdByAdId_args();
      }

      protected getAdwordsAdgroupAdByAdId_result getResult(I iface, getAdwordsAdgroupAdByAdId_args args) throws org.apache.thrift.TException {
        getAdwordsAdgroupAdByAdId_result result = new getAdwordsAdgroupAdByAdId_result();
        try {
          result.success = iface.getAdwordsAdgroupAdByAdId(args.adgroupadId);
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class getAdwordsAdKeywordByCriterionId<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAdwordsAdKeywordByCriterionId_args> {
      public getAdwordsAdKeywordByCriterionId() {
        super("getAdwordsAdKeywordByCriterionId");
      }

      protected getAdwordsAdKeywordByCriterionId_args getEmptyArgsInstance() {
        return new getAdwordsAdKeywordByCriterionId_args();
      }

      protected getAdwordsAdKeywordByCriterionId_result getResult(I iface, getAdwordsAdKeywordByCriterionId_args args) throws org.apache.thrift.TException {
        getAdwordsAdKeywordByCriterionId_result result = new getAdwordsAdKeywordByCriterionId_result();
        try {
          result.success = iface.getAdwordsAdKeywordByCriterionId(args.criterionId);
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class getAdwordsAdKeywordsByAdgroupId<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAdwordsAdKeywordsByAdgroupId_args> {
      public getAdwordsAdKeywordsByAdgroupId() {
        super("getAdwordsAdKeywordsByAdgroupId");
      }

      protected getAdwordsAdKeywordsByAdgroupId_args getEmptyArgsInstance() {
        return new getAdwordsAdKeywordsByAdgroupId_args();
      }

      protected getAdwordsAdKeywordsByAdgroupId_result getResult(I iface, getAdwordsAdKeywordsByAdgroupId_args args) throws org.apache.thrift.TException {
        getAdwordsAdKeywordsByAdgroupId_result result = new getAdwordsAdKeywordsByAdgroupId_result();
        try {
          result.success = iface.getAdwordsAdKeywordsByAdgroupId(args.adgroupId);
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class getAdwordsAdGroupAdsByAdgroupId<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAdwordsAdGroupAdsByAdgroupId_args> {
      public getAdwordsAdGroupAdsByAdgroupId() {
        super("getAdwordsAdGroupAdsByAdgroupId");
      }

      protected getAdwordsAdGroupAdsByAdgroupId_args getEmptyArgsInstance() {
        return new getAdwordsAdGroupAdsByAdgroupId_args();
      }

      protected getAdwordsAdGroupAdsByAdgroupId_result getResult(I iface, getAdwordsAdGroupAdsByAdgroupId_args args) throws org.apache.thrift.TException {
        getAdwordsAdGroupAdsByAdgroupId_result result = new getAdwordsAdGroupAdsByAdgroupId_result();
        try {
          result.success = iface.getAdwordsAdGroupAdsByAdgroupId(args.adgroupId);
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class getAdwordsAdGroupsByCampaignId<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAdwordsAdGroupsByCampaignId_args> {
      public getAdwordsAdGroupsByCampaignId() {
        super("getAdwordsAdGroupsByCampaignId");
      }

      protected getAdwordsAdGroupsByCampaignId_args getEmptyArgsInstance() {
        return new getAdwordsAdGroupsByCampaignId_args();
      }

      protected getAdwordsAdGroupsByCampaignId_result getResult(I iface, getAdwordsAdGroupsByCampaignId_args args) throws org.apache.thrift.TException {
        getAdwordsAdGroupsByCampaignId_result result = new getAdwordsAdGroupsByCampaignId_result();
        try {
          result.success = iface.getAdwordsAdGroupsByCampaignId(args.campaignId);
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class getAllAdwordsCampaigns<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllAdwordsCampaigns_args> {
      public getAllAdwordsCampaigns() {
        super("getAllAdwordsCampaigns");
      }

      protected getAllAdwordsCampaigns_args getEmptyArgsInstance() {
        return new getAllAdwordsCampaigns_args();
      }

      protected getAllAdwordsCampaigns_result getResult(I iface, getAllAdwordsCampaigns_args args) throws org.apache.thrift.TException {
        getAllAdwordsCampaigns_result result = new getAllAdwordsCampaigns_result();
        try {
          result.success = iface.getAllAdwordsCampaigns();
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class getAllAdwordsAdGroups<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllAdwordsAdGroups_args> {
      public getAllAdwordsAdGroups() {
        super("getAllAdwordsAdGroups");
      }

      protected getAllAdwordsAdGroups_args getEmptyArgsInstance() {
        return new getAllAdwordsAdGroups_args();
      }

      protected getAllAdwordsAdGroups_result getResult(I iface, getAllAdwordsAdGroups_args args) throws org.apache.thrift.TException {
        getAllAdwordsAdGroups_result result = new getAllAdwordsAdGroups_result();
        try {
          result.success = iface.getAllAdwordsAdGroups();
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class getAllAdwordsAdGroupAds<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllAdwordsAdGroupAds_args> {
      public getAllAdwordsAdGroupAds() {
        super("getAllAdwordsAdGroupAds");
      }

      protected getAllAdwordsAdGroupAds_args getEmptyArgsInstance() {
        return new getAllAdwordsAdGroupAds_args();
      }

      protected getAllAdwordsAdGroupAds_result getResult(I iface, getAllAdwordsAdGroupAds_args args) throws org.apache.thrift.TException {
        getAllAdwordsAdGroupAds_result result = new getAllAdwordsAdGroupAds_result();
        try {
          result.success = iface.getAllAdwordsAdGroupAds();
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

    private static class getAllAdwordsAdKeywords<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllAdwordsAdKeywords_args> {
      public getAllAdwordsAdKeywords() {
        super("getAllAdwordsAdKeywords");
      }

      protected getAllAdwordsAdKeywords_args getEmptyArgsInstance() {
        return new getAllAdwordsAdKeywords_args();
      }

      protected getAllAdwordsAdKeywords_result getResult(I iface, getAllAdwordsAdKeywords_args args) throws org.apache.thrift.TException {
        getAllAdwordsAdKeywords_result result = new getAllAdwordsAdKeywords_result();
        try {
          result.success = iface.getAllAdwordsAdKeywords();
        } catch (GoogleAdwordsServiceException gasex) {
          result.gasex = gasex;
        }
        return result;
      }
    }

  }

  public static class addAdwordsCampaign_args implements org.apache.thrift.TBase<addAdwordsCampaign_args, addAdwordsCampaign_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addAdwordsCampaign_args");

    private static final org.apache.thrift.protocol.TField CAMPAIGN_FIELD_DESC = new org.apache.thrift.protocol.TField("campaign", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private AdwordsCampaign campaign; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      CAMPAIGN((short)1, "campaign");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // CAMPAIGN
            return CAMPAIGN;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.CAMPAIGN, new org.apache.thrift.meta_data.FieldMetaData("campaign", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdwordsCampaign.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addAdwordsCampaign_args.class, metaDataMap);
    }

    public addAdwordsCampaign_args() {
    }

    public addAdwordsCampaign_args(
      AdwordsCampaign campaign)
    {
      this();
      this.campaign = campaign;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public addAdwordsCampaign_args(addAdwordsCampaign_args other) {
      if (other.isSetCampaign()) {
        this.campaign = new AdwordsCampaign(other.campaign);
      }
    }

    public addAdwordsCampaign_args deepCopy() {
      return new addAdwordsCampaign_args(this);
    }

    @Override
    public void clear() {
      this.campaign = null;
    }

    public AdwordsCampaign getCampaign() {
      return this.campaign;
    }

    public void setCampaign(AdwordsCampaign campaign) {
      this.campaign = campaign;
    }

    public void unsetCampaign() {
      this.campaign = null;
    }

    /** Returns true if field campaign is set (has been assigned a value) and false otherwise */
    public boolean isSetCampaign() {
      return this.campaign != null;
    }

    public void setCampaignIsSet(boolean value) {
      if (!value) {
        this.campaign = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case CAMPAIGN:
        if (value == null) {
          unsetCampaign();
        } else {
          setCampaign((AdwordsCampaign)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case CAMPAIGN:
        return getCampaign();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case CAMPAIGN:
        return isSetCampaign();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof addAdwordsCampaign_args)
        return this.equals((addAdwordsCampaign_args)that);
      return false;
    }

    public boolean equals(addAdwordsCampaign_args that) {
      if (that == null)
        return false;

      boolean this_present_campaign = true && this.isSetCampaign();
      boolean that_present_campaign = true && that.isSetCampaign();
      if (this_present_campaign || that_present_campaign) {
        if (!(this_present_campaign && that_present_campaign))
          return false;
        if (!this.campaign.equals(that.campaign))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(addAdwordsCampaign_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      addAdwordsCampaign_args typedOther = (addAdwordsCampaign_args)other;

      lastComparison = Boolean.valueOf(isSetCampaign()).compareTo(typedOther.isSetCampaign());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCampaign()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.campaign, typedOther.campaign);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // CAMPAIGN
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.campaign = new AdwordsCampaign();
              this.campaign.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.campaign != null) {
        oprot.writeFieldBegin(CAMPAIGN_FIELD_DESC);
        this.campaign.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("addAdwordsCampaign_args(");
      boolean first = true;

      sb.append("campaign:");
      if (this.campaign == null) {
        sb.append("null");
      } else {
        sb.append(this.campaign);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class addAdwordsCampaign_result implements org.apache.thrift.TBase<addAdwordsCampaign_result, addAdwordsCampaign_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addAdwordsCampaign_result");

    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addAdwordsCampaign_result.class, metaDataMap);
    }

    public addAdwordsCampaign_result() {
    }

    public addAdwordsCampaign_result(
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public addAdwordsCampaign_result(addAdwordsCampaign_result other) {
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public addAdwordsCampaign_result deepCopy() {
      return new addAdwordsCampaign_result(this);
    }

    @Override
    public void clear() {
      this.gasex = null;
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof addAdwordsCampaign_result)
        return this.equals((addAdwordsCampaign_result)that);
      return false;
    }

    public boolean equals(addAdwordsCampaign_result that) {
      if (that == null)
        return false;

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(addAdwordsCampaign_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      addAdwordsCampaign_result typedOther = (addAdwordsCampaign_result)other;

      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("addAdwordsCampaign_result(");
      boolean first = true;

      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class addAdwordsAdGroup_args implements org.apache.thrift.TBase<addAdwordsAdGroup_args, addAdwordsAdGroup_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addAdwordsAdGroup_args");

    private static final org.apache.thrift.protocol.TField ADGROUP_FIELD_DESC = new org.apache.thrift.protocol.TField("adgroup", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private AdwordsAdGroup adgroup; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      ADGROUP((short)1, "adgroup");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // ADGROUP
            return ADGROUP;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.ADGROUP, new org.apache.thrift.meta_data.FieldMetaData("adgroup", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdwordsAdGroup.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addAdwordsAdGroup_args.class, metaDataMap);
    }

    public addAdwordsAdGroup_args() {
    }

    public addAdwordsAdGroup_args(
      AdwordsAdGroup adgroup)
    {
      this();
      this.adgroup = adgroup;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public addAdwordsAdGroup_args(addAdwordsAdGroup_args other) {
      if (other.isSetAdgroup()) {
        this.adgroup = new AdwordsAdGroup(other.adgroup);
      }
    }

    public addAdwordsAdGroup_args deepCopy() {
      return new addAdwordsAdGroup_args(this);
    }

    @Override
    public void clear() {
      this.adgroup = null;
    }

    public AdwordsAdGroup getAdgroup() {
      return this.adgroup;
    }

    public void setAdgroup(AdwordsAdGroup adgroup) {
      this.adgroup = adgroup;
    }

    public void unsetAdgroup() {
      this.adgroup = null;
    }

    /** Returns true if field adgroup is set (has been assigned a value) and false otherwise */
    public boolean isSetAdgroup() {
      return this.adgroup != null;
    }

    public void setAdgroupIsSet(boolean value) {
      if (!value) {
        this.adgroup = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case ADGROUP:
        if (value == null) {
          unsetAdgroup();
        } else {
          setAdgroup((AdwordsAdGroup)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case ADGROUP:
        return getAdgroup();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case ADGROUP:
        return isSetAdgroup();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof addAdwordsAdGroup_args)
        return this.equals((addAdwordsAdGroup_args)that);
      return false;
    }

    public boolean equals(addAdwordsAdGroup_args that) {
      if (that == null)
        return false;

      boolean this_present_adgroup = true && this.isSetAdgroup();
      boolean that_present_adgroup = true && that.isSetAdgroup();
      if (this_present_adgroup || that_present_adgroup) {
        if (!(this_present_adgroup && that_present_adgroup))
          return false;
        if (!this.adgroup.equals(that.adgroup))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(addAdwordsAdGroup_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      addAdwordsAdGroup_args typedOther = (addAdwordsAdGroup_args)other;

      lastComparison = Boolean.valueOf(isSetAdgroup()).compareTo(typedOther.isSetAdgroup());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAdgroup()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.adgroup, typedOther.adgroup);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // ADGROUP
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.adgroup = new AdwordsAdGroup();
              this.adgroup.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.adgroup != null) {
        oprot.writeFieldBegin(ADGROUP_FIELD_DESC);
        this.adgroup.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("addAdwordsAdGroup_args(");
      boolean first = true;

      sb.append("adgroup:");
      if (this.adgroup == null) {
        sb.append("null");
      } else {
        sb.append(this.adgroup);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class addAdwordsAdGroup_result implements org.apache.thrift.TBase<addAdwordsAdGroup_result, addAdwordsAdGroup_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addAdwordsAdGroup_result");

    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addAdwordsAdGroup_result.class, metaDataMap);
    }

    public addAdwordsAdGroup_result() {
    }

    public addAdwordsAdGroup_result(
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public addAdwordsAdGroup_result(addAdwordsAdGroup_result other) {
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public addAdwordsAdGroup_result deepCopy() {
      return new addAdwordsAdGroup_result(this);
    }

    @Override
    public void clear() {
      this.gasex = null;
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof addAdwordsAdGroup_result)
        return this.equals((addAdwordsAdGroup_result)that);
      return false;
    }

    public boolean equals(addAdwordsAdGroup_result that) {
      if (that == null)
        return false;

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(addAdwordsAdGroup_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      addAdwordsAdGroup_result typedOther = (addAdwordsAdGroup_result)other;

      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("addAdwordsAdGroup_result(");
      boolean first = true;

      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class addAdwordsAdGroupAd_args implements org.apache.thrift.TBase<addAdwordsAdGroupAd_args, addAdwordsAdGroupAd_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addAdwordsAdGroupAd_args");

    private static final org.apache.thrift.protocol.TField ADGROUPAD_FIELD_DESC = new org.apache.thrift.protocol.TField("adgroupad", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private AdwordsAdGroupAd adgroupad; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      ADGROUPAD((short)1, "adgroupad");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // ADGROUPAD
            return ADGROUPAD;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.ADGROUPAD, new org.apache.thrift.meta_data.FieldMetaData("adgroupad", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdwordsAdGroupAd.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addAdwordsAdGroupAd_args.class, metaDataMap);
    }

    public addAdwordsAdGroupAd_args() {
    }

    public addAdwordsAdGroupAd_args(
      AdwordsAdGroupAd adgroupad)
    {
      this();
      this.adgroupad = adgroupad;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public addAdwordsAdGroupAd_args(addAdwordsAdGroupAd_args other) {
      if (other.isSetAdgroupad()) {
        this.adgroupad = new AdwordsAdGroupAd(other.adgroupad);
      }
    }

    public addAdwordsAdGroupAd_args deepCopy() {
      return new addAdwordsAdGroupAd_args(this);
    }

    @Override
    public void clear() {
      this.adgroupad = null;
    }

    public AdwordsAdGroupAd getAdgroupad() {
      return this.adgroupad;
    }

    public void setAdgroupad(AdwordsAdGroupAd adgroupad) {
      this.adgroupad = adgroupad;
    }

    public void unsetAdgroupad() {
      this.adgroupad = null;
    }

    /** Returns true if field adgroupad is set (has been assigned a value) and false otherwise */
    public boolean isSetAdgroupad() {
      return this.adgroupad != null;
    }

    public void setAdgroupadIsSet(boolean value) {
      if (!value) {
        this.adgroupad = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case ADGROUPAD:
        if (value == null) {
          unsetAdgroupad();
        } else {
          setAdgroupad((AdwordsAdGroupAd)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case ADGROUPAD:
        return getAdgroupad();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case ADGROUPAD:
        return isSetAdgroupad();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof addAdwordsAdGroupAd_args)
        return this.equals((addAdwordsAdGroupAd_args)that);
      return false;
    }

    public boolean equals(addAdwordsAdGroupAd_args that) {
      if (that == null)
        return false;

      boolean this_present_adgroupad = true && this.isSetAdgroupad();
      boolean that_present_adgroupad = true && that.isSetAdgroupad();
      if (this_present_adgroupad || that_present_adgroupad) {
        if (!(this_present_adgroupad && that_present_adgroupad))
          return false;
        if (!this.adgroupad.equals(that.adgroupad))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(addAdwordsAdGroupAd_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      addAdwordsAdGroupAd_args typedOther = (addAdwordsAdGroupAd_args)other;

      lastComparison = Boolean.valueOf(isSetAdgroupad()).compareTo(typedOther.isSetAdgroupad());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAdgroupad()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.adgroupad, typedOther.adgroupad);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // ADGROUPAD
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.adgroupad = new AdwordsAdGroupAd();
              this.adgroupad.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.adgroupad != null) {
        oprot.writeFieldBegin(ADGROUPAD_FIELD_DESC);
        this.adgroupad.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("addAdwordsAdGroupAd_args(");
      boolean first = true;

      sb.append("adgroupad:");
      if (this.adgroupad == null) {
        sb.append("null");
      } else {
        sb.append(this.adgroupad);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class addAdwordsAdGroupAd_result implements org.apache.thrift.TBase<addAdwordsAdGroupAd_result, addAdwordsAdGroupAd_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addAdwordsAdGroupAd_result");

    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addAdwordsAdGroupAd_result.class, metaDataMap);
    }

    public addAdwordsAdGroupAd_result() {
    }

    public addAdwordsAdGroupAd_result(
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public addAdwordsAdGroupAd_result(addAdwordsAdGroupAd_result other) {
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public addAdwordsAdGroupAd_result deepCopy() {
      return new addAdwordsAdGroupAd_result(this);
    }

    @Override
    public void clear() {
      this.gasex = null;
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof addAdwordsAdGroupAd_result)
        return this.equals((addAdwordsAdGroupAd_result)that);
      return false;
    }

    public boolean equals(addAdwordsAdGroupAd_result that) {
      if (that == null)
        return false;

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(addAdwordsAdGroupAd_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      addAdwordsAdGroupAd_result typedOther = (addAdwordsAdGroupAd_result)other;

      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("addAdwordsAdGroupAd_result(");
      boolean first = true;

      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class addAdwordsAdKeyword_args implements org.apache.thrift.TBase<addAdwordsAdKeyword_args, addAdwordsAdKeyword_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addAdwordsAdKeyword_args");

    private static final org.apache.thrift.protocol.TField ADKEYWORD_FIELD_DESC = new org.apache.thrift.protocol.TField("adkeyword", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private AdwordsAdKeyword adkeyword; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      ADKEYWORD((short)1, "adkeyword");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // ADKEYWORD
            return ADKEYWORD;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.ADKEYWORD, new org.apache.thrift.meta_data.FieldMetaData("adkeyword", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdwordsAdKeyword.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addAdwordsAdKeyword_args.class, metaDataMap);
    }

    public addAdwordsAdKeyword_args() {
    }

    public addAdwordsAdKeyword_args(
      AdwordsAdKeyword adkeyword)
    {
      this();
      this.adkeyword = adkeyword;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public addAdwordsAdKeyword_args(addAdwordsAdKeyword_args other) {
      if (other.isSetAdkeyword()) {
        this.adkeyword = new AdwordsAdKeyword(other.adkeyword);
      }
    }

    public addAdwordsAdKeyword_args deepCopy() {
      return new addAdwordsAdKeyword_args(this);
    }

    @Override
    public void clear() {
      this.adkeyword = null;
    }

    public AdwordsAdKeyword getAdkeyword() {
      return this.adkeyword;
    }

    public void setAdkeyword(AdwordsAdKeyword adkeyword) {
      this.adkeyword = adkeyword;
    }

    public void unsetAdkeyword() {
      this.adkeyword = null;
    }

    /** Returns true if field adkeyword is set (has been assigned a value) and false otherwise */
    public boolean isSetAdkeyword() {
      return this.adkeyword != null;
    }

    public void setAdkeywordIsSet(boolean value) {
      if (!value) {
        this.adkeyword = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case ADKEYWORD:
        if (value == null) {
          unsetAdkeyword();
        } else {
          setAdkeyword((AdwordsAdKeyword)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case ADKEYWORD:
        return getAdkeyword();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case ADKEYWORD:
        return isSetAdkeyword();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof addAdwordsAdKeyword_args)
        return this.equals((addAdwordsAdKeyword_args)that);
      return false;
    }

    public boolean equals(addAdwordsAdKeyword_args that) {
      if (that == null)
        return false;

      boolean this_present_adkeyword = true && this.isSetAdkeyword();
      boolean that_present_adkeyword = true && that.isSetAdkeyword();
      if (this_present_adkeyword || that_present_adkeyword) {
        if (!(this_present_adkeyword && that_present_adkeyword))
          return false;
        if (!this.adkeyword.equals(that.adkeyword))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(addAdwordsAdKeyword_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      addAdwordsAdKeyword_args typedOther = (addAdwordsAdKeyword_args)other;

      lastComparison = Boolean.valueOf(isSetAdkeyword()).compareTo(typedOther.isSetAdkeyword());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAdkeyword()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.adkeyword, typedOther.adkeyword);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // ADKEYWORD
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.adkeyword = new AdwordsAdKeyword();
              this.adkeyword.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.adkeyword != null) {
        oprot.writeFieldBegin(ADKEYWORD_FIELD_DESC);
        this.adkeyword.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("addAdwordsAdKeyword_args(");
      boolean first = true;

      sb.append("adkeyword:");
      if (this.adkeyword == null) {
        sb.append("null");
      } else {
        sb.append(this.adkeyword);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class addAdwordsAdKeyword_result implements org.apache.thrift.TBase<addAdwordsAdKeyword_result, addAdwordsAdKeyword_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addAdwordsAdKeyword_result");

    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addAdwordsAdKeyword_result.class, metaDataMap);
    }

    public addAdwordsAdKeyword_result() {
    }

    public addAdwordsAdKeyword_result(
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public addAdwordsAdKeyword_result(addAdwordsAdKeyword_result other) {
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public addAdwordsAdKeyword_result deepCopy() {
      return new addAdwordsAdKeyword_result(this);
    }

    @Override
    public void clear() {
      this.gasex = null;
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof addAdwordsAdKeyword_result)
        return this.equals((addAdwordsAdKeyword_result)that);
      return false;
    }

    public boolean equals(addAdwordsAdKeyword_result that) {
      if (that == null)
        return false;

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(addAdwordsAdKeyword_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      addAdwordsAdKeyword_result typedOther = (addAdwordsAdKeyword_result)other;

      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("addAdwordsAdKeyword_result(");
      boolean first = true;

      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class updateAdwordsCampaign_args implements org.apache.thrift.TBase<updateAdwordsCampaign_args, updateAdwordsCampaign_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateAdwordsCampaign_args");

    private static final org.apache.thrift.protocol.TField CAMPAIGN_FIELD_DESC = new org.apache.thrift.protocol.TField("campaign", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private AdwordsCampaign campaign; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      CAMPAIGN((short)1, "campaign");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // CAMPAIGN
            return CAMPAIGN;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.CAMPAIGN, new org.apache.thrift.meta_data.FieldMetaData("campaign", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdwordsCampaign.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateAdwordsCampaign_args.class, metaDataMap);
    }

    public updateAdwordsCampaign_args() {
    }

    public updateAdwordsCampaign_args(
      AdwordsCampaign campaign)
    {
      this();
      this.campaign = campaign;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public updateAdwordsCampaign_args(updateAdwordsCampaign_args other) {
      if (other.isSetCampaign()) {
        this.campaign = new AdwordsCampaign(other.campaign);
      }
    }

    public updateAdwordsCampaign_args deepCopy() {
      return new updateAdwordsCampaign_args(this);
    }

    @Override
    public void clear() {
      this.campaign = null;
    }

    public AdwordsCampaign getCampaign() {
      return this.campaign;
    }

    public void setCampaign(AdwordsCampaign campaign) {
      this.campaign = campaign;
    }

    public void unsetCampaign() {
      this.campaign = null;
    }

    /** Returns true if field campaign is set (has been assigned a value) and false otherwise */
    public boolean isSetCampaign() {
      return this.campaign != null;
    }

    public void setCampaignIsSet(boolean value) {
      if (!value) {
        this.campaign = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case CAMPAIGN:
        if (value == null) {
          unsetCampaign();
        } else {
          setCampaign((AdwordsCampaign)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case CAMPAIGN:
        return getCampaign();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case CAMPAIGN:
        return isSetCampaign();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof updateAdwordsCampaign_args)
        return this.equals((updateAdwordsCampaign_args)that);
      return false;
    }

    public boolean equals(updateAdwordsCampaign_args that) {
      if (that == null)
        return false;

      boolean this_present_campaign = true && this.isSetCampaign();
      boolean that_present_campaign = true && that.isSetCampaign();
      if (this_present_campaign || that_present_campaign) {
        if (!(this_present_campaign && that_present_campaign))
          return false;
        if (!this.campaign.equals(that.campaign))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(updateAdwordsCampaign_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      updateAdwordsCampaign_args typedOther = (updateAdwordsCampaign_args)other;

      lastComparison = Boolean.valueOf(isSetCampaign()).compareTo(typedOther.isSetCampaign());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCampaign()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.campaign, typedOther.campaign);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // CAMPAIGN
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.campaign = new AdwordsCampaign();
              this.campaign.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.campaign != null) {
        oprot.writeFieldBegin(CAMPAIGN_FIELD_DESC);
        this.campaign.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("updateAdwordsCampaign_args(");
      boolean first = true;

      sb.append("campaign:");
      if (this.campaign == null) {
        sb.append("null");
      } else {
        sb.append(this.campaign);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class updateAdwordsCampaign_result implements org.apache.thrift.TBase<updateAdwordsCampaign_result, updateAdwordsCampaign_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateAdwordsCampaign_result");

    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateAdwordsCampaign_result.class, metaDataMap);
    }

    public updateAdwordsCampaign_result() {
    }

    public updateAdwordsCampaign_result(
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public updateAdwordsCampaign_result(updateAdwordsCampaign_result other) {
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public updateAdwordsCampaign_result deepCopy() {
      return new updateAdwordsCampaign_result(this);
    }

    @Override
    public void clear() {
      this.gasex = null;
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof updateAdwordsCampaign_result)
        return this.equals((updateAdwordsCampaign_result)that);
      return false;
    }

    public boolean equals(updateAdwordsCampaign_result that) {
      if (that == null)
        return false;

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(updateAdwordsCampaign_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      updateAdwordsCampaign_result typedOther = (updateAdwordsCampaign_result)other;

      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("updateAdwordsCampaign_result(");
      boolean first = true;

      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class updateAdwordsAdGroup_args implements org.apache.thrift.TBase<updateAdwordsAdGroup_args, updateAdwordsAdGroup_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateAdwordsAdGroup_args");

    private static final org.apache.thrift.protocol.TField ADGROUP_FIELD_DESC = new org.apache.thrift.protocol.TField("adgroup", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private AdwordsAdGroup adgroup; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      ADGROUP((short)1, "adgroup");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // ADGROUP
            return ADGROUP;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.ADGROUP, new org.apache.thrift.meta_data.FieldMetaData("adgroup", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdwordsAdGroup.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateAdwordsAdGroup_args.class, metaDataMap);
    }

    public updateAdwordsAdGroup_args() {
    }

    public updateAdwordsAdGroup_args(
      AdwordsAdGroup adgroup)
    {
      this();
      this.adgroup = adgroup;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public updateAdwordsAdGroup_args(updateAdwordsAdGroup_args other) {
      if (other.isSetAdgroup()) {
        this.adgroup = new AdwordsAdGroup(other.adgroup);
      }
    }

    public updateAdwordsAdGroup_args deepCopy() {
      return new updateAdwordsAdGroup_args(this);
    }

    @Override
    public void clear() {
      this.adgroup = null;
    }

    public AdwordsAdGroup getAdgroup() {
      return this.adgroup;
    }

    public void setAdgroup(AdwordsAdGroup adgroup) {
      this.adgroup = adgroup;
    }

    public void unsetAdgroup() {
      this.adgroup = null;
    }

    /** Returns true if field adgroup is set (has been assigned a value) and false otherwise */
    public boolean isSetAdgroup() {
      return this.adgroup != null;
    }

    public void setAdgroupIsSet(boolean value) {
      if (!value) {
        this.adgroup = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case ADGROUP:
        if (value == null) {
          unsetAdgroup();
        } else {
          setAdgroup((AdwordsAdGroup)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case ADGROUP:
        return getAdgroup();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case ADGROUP:
        return isSetAdgroup();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof updateAdwordsAdGroup_args)
        return this.equals((updateAdwordsAdGroup_args)that);
      return false;
    }

    public boolean equals(updateAdwordsAdGroup_args that) {
      if (that == null)
        return false;

      boolean this_present_adgroup = true && this.isSetAdgroup();
      boolean that_present_adgroup = true && that.isSetAdgroup();
      if (this_present_adgroup || that_present_adgroup) {
        if (!(this_present_adgroup && that_present_adgroup))
          return false;
        if (!this.adgroup.equals(that.adgroup))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(updateAdwordsAdGroup_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      updateAdwordsAdGroup_args typedOther = (updateAdwordsAdGroup_args)other;

      lastComparison = Boolean.valueOf(isSetAdgroup()).compareTo(typedOther.isSetAdgroup());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAdgroup()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.adgroup, typedOther.adgroup);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // ADGROUP
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.adgroup = new AdwordsAdGroup();
              this.adgroup.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.adgroup != null) {
        oprot.writeFieldBegin(ADGROUP_FIELD_DESC);
        this.adgroup.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("updateAdwordsAdGroup_args(");
      boolean first = true;

      sb.append("adgroup:");
      if (this.adgroup == null) {
        sb.append("null");
      } else {
        sb.append(this.adgroup);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class updateAdwordsAdGroup_result implements org.apache.thrift.TBase<updateAdwordsAdGroup_result, updateAdwordsAdGroup_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateAdwordsAdGroup_result");

    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateAdwordsAdGroup_result.class, metaDataMap);
    }

    public updateAdwordsAdGroup_result() {
    }

    public updateAdwordsAdGroup_result(
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public updateAdwordsAdGroup_result(updateAdwordsAdGroup_result other) {
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public updateAdwordsAdGroup_result deepCopy() {
      return new updateAdwordsAdGroup_result(this);
    }

    @Override
    public void clear() {
      this.gasex = null;
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof updateAdwordsAdGroup_result)
        return this.equals((updateAdwordsAdGroup_result)that);
      return false;
    }

    public boolean equals(updateAdwordsAdGroup_result that) {
      if (that == null)
        return false;

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(updateAdwordsAdGroup_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      updateAdwordsAdGroup_result typedOther = (updateAdwordsAdGroup_result)other;

      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("updateAdwordsAdGroup_result(");
      boolean first = true;

      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class updateAdwordsAdKeyword_args implements org.apache.thrift.TBase<updateAdwordsAdKeyword_args, updateAdwordsAdKeyword_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateAdwordsAdKeyword_args");

    private static final org.apache.thrift.protocol.TField ADKEYWORD_FIELD_DESC = new org.apache.thrift.protocol.TField("adkeyword", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private AdwordsAdKeyword adkeyword; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      ADKEYWORD((short)1, "adkeyword");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // ADKEYWORD
            return ADKEYWORD;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.ADKEYWORD, new org.apache.thrift.meta_data.FieldMetaData("adkeyword", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdwordsAdKeyword.class)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateAdwordsAdKeyword_args.class, metaDataMap);
    }

    public updateAdwordsAdKeyword_args() {
    }

    public updateAdwordsAdKeyword_args(
      AdwordsAdKeyword adkeyword)
    {
      this();
      this.adkeyword = adkeyword;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public updateAdwordsAdKeyword_args(updateAdwordsAdKeyword_args other) {
      if (other.isSetAdkeyword()) {
        this.adkeyword = new AdwordsAdKeyword(other.adkeyword);
      }
    }

    public updateAdwordsAdKeyword_args deepCopy() {
      return new updateAdwordsAdKeyword_args(this);
    }

    @Override
    public void clear() {
      this.adkeyword = null;
    }

    public AdwordsAdKeyword getAdkeyword() {
      return this.adkeyword;
    }

    public void setAdkeyword(AdwordsAdKeyword adkeyword) {
      this.adkeyword = adkeyword;
    }

    public void unsetAdkeyword() {
      this.adkeyword = null;
    }

    /** Returns true if field adkeyword is set (has been assigned a value) and false otherwise */
    public boolean isSetAdkeyword() {
      return this.adkeyword != null;
    }

    public void setAdkeywordIsSet(boolean value) {
      if (!value) {
        this.adkeyword = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case ADKEYWORD:
        if (value == null) {
          unsetAdkeyword();
        } else {
          setAdkeyword((AdwordsAdKeyword)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case ADKEYWORD:
        return getAdkeyword();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case ADKEYWORD:
        return isSetAdkeyword();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof updateAdwordsAdKeyword_args)
        return this.equals((updateAdwordsAdKeyword_args)that);
      return false;
    }

    public boolean equals(updateAdwordsAdKeyword_args that) {
      if (that == null)
        return false;

      boolean this_present_adkeyword = true && this.isSetAdkeyword();
      boolean that_present_adkeyword = true && that.isSetAdkeyword();
      if (this_present_adkeyword || that_present_adkeyword) {
        if (!(this_present_adkeyword && that_present_adkeyword))
          return false;
        if (!this.adkeyword.equals(that.adkeyword))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(updateAdwordsAdKeyword_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      updateAdwordsAdKeyword_args typedOther = (updateAdwordsAdKeyword_args)other;

      lastComparison = Boolean.valueOf(isSetAdkeyword()).compareTo(typedOther.isSetAdkeyword());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAdkeyword()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.adkeyword, typedOther.adkeyword);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // ADKEYWORD
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.adkeyword = new AdwordsAdKeyword();
              this.adkeyword.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (this.adkeyword != null) {
        oprot.writeFieldBegin(ADKEYWORD_FIELD_DESC);
        this.adkeyword.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("updateAdwordsAdKeyword_args(");
      boolean first = true;

      sb.append("adkeyword:");
      if (this.adkeyword == null) {
        sb.append("null");
      } else {
        sb.append(this.adkeyword);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class updateAdwordsAdKeyword_result implements org.apache.thrift.TBase<updateAdwordsAdKeyword_result, updateAdwordsAdKeyword_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateAdwordsAdKeyword_result");

    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateAdwordsAdKeyword_result.class, metaDataMap);
    }

    public updateAdwordsAdKeyword_result() {
    }

    public updateAdwordsAdKeyword_result(
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public updateAdwordsAdKeyword_result(updateAdwordsAdKeyword_result other) {
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public updateAdwordsAdKeyword_result deepCopy() {
      return new updateAdwordsAdKeyword_result(this);
    }

    @Override
    public void clear() {
      this.gasex = null;
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof updateAdwordsAdKeyword_result)
        return this.equals((updateAdwordsAdKeyword_result)that);
      return false;
    }

    public boolean equals(updateAdwordsAdKeyword_result that) {
      if (that == null)
        return false;

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(updateAdwordsAdKeyword_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      updateAdwordsAdKeyword_result typedOther = (updateAdwordsAdKeyword_result)other;

      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("updateAdwordsAdKeyword_result(");
      boolean first = true;

      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class deleteAdwordsCampaign_args implements org.apache.thrift.TBase<deleteAdwordsCampaign_args, deleteAdwordsCampaign_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteAdwordsCampaign_args");

    private static final org.apache.thrift.protocol.TField CAMPAIGN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("campaignId", org.apache.thrift.protocol.TType.I64, (short)1);

    private long campaignId; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      CAMPAIGN_ID((short)1, "campaignId");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // CAMPAIGN_ID
            return CAMPAIGN_ID;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __CAMPAIGNID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.CAMPAIGN_ID, new org.apache.thrift.meta_data.FieldMetaData("campaignId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteAdwordsCampaign_args.class, metaDataMap);
    }

    public deleteAdwordsCampaign_args() {
    }

    public deleteAdwordsCampaign_args(
      long campaignId)
    {
      this();
      this.campaignId = campaignId;
      setCampaignIdIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public deleteAdwordsCampaign_args(deleteAdwordsCampaign_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.campaignId = other.campaignId;
    }

    public deleteAdwordsCampaign_args deepCopy() {
      return new deleteAdwordsCampaign_args(this);
    }

    @Override
    public void clear() {
      setCampaignIdIsSet(false);
      this.campaignId = 0;
    }

    public long getCampaignId() {
      return this.campaignId;
    }

    public void setCampaignId(long campaignId) {
      this.campaignId = campaignId;
      setCampaignIdIsSet(true);
    }

    public void unsetCampaignId() {
      __isset_bit_vector.clear(__CAMPAIGNID_ISSET_ID);
    }

    /** Returns true if field campaignId is set (has been assigned a value) and false otherwise */
    public boolean isSetCampaignId() {
      return __isset_bit_vector.get(__CAMPAIGNID_ISSET_ID);
    }

    public void setCampaignIdIsSet(boolean value) {
      __isset_bit_vector.set(__CAMPAIGNID_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case CAMPAIGN_ID:
        if (value == null) {
          unsetCampaignId();
        } else {
          setCampaignId((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case CAMPAIGN_ID:
        return Long.valueOf(getCampaignId());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case CAMPAIGN_ID:
        return isSetCampaignId();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof deleteAdwordsCampaign_args)
        return this.equals((deleteAdwordsCampaign_args)that);
      return false;
    }

    public boolean equals(deleteAdwordsCampaign_args that) {
      if (that == null)
        return false;

      boolean this_present_campaignId = true;
      boolean that_present_campaignId = true;
      if (this_present_campaignId || that_present_campaignId) {
        if (!(this_present_campaignId && that_present_campaignId))
          return false;
        if (this.campaignId != that.campaignId)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(deleteAdwordsCampaign_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      deleteAdwordsCampaign_args typedOther = (deleteAdwordsCampaign_args)other;

      lastComparison = Boolean.valueOf(isSetCampaignId()).compareTo(typedOther.isSetCampaignId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCampaignId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.campaignId, typedOther.campaignId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // CAMPAIGN_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.campaignId = iprot.readI64();
              setCampaignIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(CAMPAIGN_ID_FIELD_DESC);
      oprot.writeI64(this.campaignId);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("deleteAdwordsCampaign_args(");
      boolean first = true;

      sb.append("campaignId:");
      sb.append(this.campaignId);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class deleteAdwordsCampaign_result implements org.apache.thrift.TBase<deleteAdwordsCampaign_result, deleteAdwordsCampaign_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteAdwordsCampaign_result");

    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteAdwordsCampaign_result.class, metaDataMap);
    }

    public deleteAdwordsCampaign_result() {
    }

    public deleteAdwordsCampaign_result(
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public deleteAdwordsCampaign_result(deleteAdwordsCampaign_result other) {
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public deleteAdwordsCampaign_result deepCopy() {
      return new deleteAdwordsCampaign_result(this);
    }

    @Override
    public void clear() {
      this.gasex = null;
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof deleteAdwordsCampaign_result)
        return this.equals((deleteAdwordsCampaign_result)that);
      return false;
    }

    public boolean equals(deleteAdwordsCampaign_result that) {
      if (that == null)
        return false;

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(deleteAdwordsCampaign_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      deleteAdwordsCampaign_result typedOther = (deleteAdwordsCampaign_result)other;

      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("deleteAdwordsCampaign_result(");
      boolean first = true;

      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class deleteAdwordsAdGroup_args implements org.apache.thrift.TBase<deleteAdwordsAdGroup_args, deleteAdwordsAdGroup_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteAdwordsAdGroup_args");

    private static final org.apache.thrift.protocol.TField ADGROUP_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("adgroupId", org.apache.thrift.protocol.TType.I64, (short)1);

    private long adgroupId; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      ADGROUP_ID((short)1, "adgroupId");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // ADGROUP_ID
            return ADGROUP_ID;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __ADGROUPID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.ADGROUP_ID, new org.apache.thrift.meta_data.FieldMetaData("adgroupId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteAdwordsAdGroup_args.class, metaDataMap);
    }

    public deleteAdwordsAdGroup_args() {
    }

    public deleteAdwordsAdGroup_args(
      long adgroupId)
    {
      this();
      this.adgroupId = adgroupId;
      setAdgroupIdIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public deleteAdwordsAdGroup_args(deleteAdwordsAdGroup_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.adgroupId = other.adgroupId;
    }

    public deleteAdwordsAdGroup_args deepCopy() {
      return new deleteAdwordsAdGroup_args(this);
    }

    @Override
    public void clear() {
      setAdgroupIdIsSet(false);
      this.adgroupId = 0;
    }

    public long getAdgroupId() {
      return this.adgroupId;
    }

    public void setAdgroupId(long adgroupId) {
      this.adgroupId = adgroupId;
      setAdgroupIdIsSet(true);
    }

    public void unsetAdgroupId() {
      __isset_bit_vector.clear(__ADGROUPID_ISSET_ID);
    }

    /** Returns true if field adgroupId is set (has been assigned a value) and false otherwise */
    public boolean isSetAdgroupId() {
      return __isset_bit_vector.get(__ADGROUPID_ISSET_ID);
    }

    public void setAdgroupIdIsSet(boolean value) {
      __isset_bit_vector.set(__ADGROUPID_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case ADGROUP_ID:
        if (value == null) {
          unsetAdgroupId();
        } else {
          setAdgroupId((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case ADGROUP_ID:
        return Long.valueOf(getAdgroupId());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case ADGROUP_ID:
        return isSetAdgroupId();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof deleteAdwordsAdGroup_args)
        return this.equals((deleteAdwordsAdGroup_args)that);
      return false;
    }

    public boolean equals(deleteAdwordsAdGroup_args that) {
      if (that == null)
        return false;

      boolean this_present_adgroupId = true;
      boolean that_present_adgroupId = true;
      if (this_present_adgroupId || that_present_adgroupId) {
        if (!(this_present_adgroupId && that_present_adgroupId))
          return false;
        if (this.adgroupId != that.adgroupId)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(deleteAdwordsAdGroup_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      deleteAdwordsAdGroup_args typedOther = (deleteAdwordsAdGroup_args)other;

      lastComparison = Boolean.valueOf(isSetAdgroupId()).compareTo(typedOther.isSetAdgroupId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAdgroupId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.adgroupId, typedOther.adgroupId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // ADGROUP_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.adgroupId = iprot.readI64();
              setAdgroupIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(ADGROUP_ID_FIELD_DESC);
      oprot.writeI64(this.adgroupId);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("deleteAdwordsAdGroup_args(");
      boolean first = true;

      sb.append("adgroupId:");
      sb.append(this.adgroupId);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class deleteAdwordsAdGroup_result implements org.apache.thrift.TBase<deleteAdwordsAdGroup_result, deleteAdwordsAdGroup_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteAdwordsAdGroup_result");

    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteAdwordsAdGroup_result.class, metaDataMap);
    }

    public deleteAdwordsAdGroup_result() {
    }

    public deleteAdwordsAdGroup_result(
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public deleteAdwordsAdGroup_result(deleteAdwordsAdGroup_result other) {
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public deleteAdwordsAdGroup_result deepCopy() {
      return new deleteAdwordsAdGroup_result(this);
    }

    @Override
    public void clear() {
      this.gasex = null;
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof deleteAdwordsAdGroup_result)
        return this.equals((deleteAdwordsAdGroup_result)that);
      return false;
    }

    public boolean equals(deleteAdwordsAdGroup_result that) {
      if (that == null)
        return false;

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(deleteAdwordsAdGroup_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      deleteAdwordsAdGroup_result typedOther = (deleteAdwordsAdGroup_result)other;

      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("deleteAdwordsAdGroup_result(");
      boolean first = true;

      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class deleteAdwordsAdGroupAd_args implements org.apache.thrift.TBase<deleteAdwordsAdGroupAd_args, deleteAdwordsAdGroupAd_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteAdwordsAdGroupAd_args");

    private static final org.apache.thrift.protocol.TField ADGROUPAD_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("adgroupadId", org.apache.thrift.protocol.TType.I64, (short)1);

    private long adgroupadId; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      ADGROUPAD_ID((short)1, "adgroupadId");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // ADGROUPAD_ID
            return ADGROUPAD_ID;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __ADGROUPADID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.ADGROUPAD_ID, new org.apache.thrift.meta_data.FieldMetaData("adgroupadId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteAdwordsAdGroupAd_args.class, metaDataMap);
    }

    public deleteAdwordsAdGroupAd_args() {
    }

    public deleteAdwordsAdGroupAd_args(
      long adgroupadId)
    {
      this();
      this.adgroupadId = adgroupadId;
      setAdgroupadIdIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public deleteAdwordsAdGroupAd_args(deleteAdwordsAdGroupAd_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.adgroupadId = other.adgroupadId;
    }

    public deleteAdwordsAdGroupAd_args deepCopy() {
      return new deleteAdwordsAdGroupAd_args(this);
    }

    @Override
    public void clear() {
      setAdgroupadIdIsSet(false);
      this.adgroupadId = 0;
    }

    public long getAdgroupadId() {
      return this.adgroupadId;
    }

    public void setAdgroupadId(long adgroupadId) {
      this.adgroupadId = adgroupadId;
      setAdgroupadIdIsSet(true);
    }

    public void unsetAdgroupadId() {
      __isset_bit_vector.clear(__ADGROUPADID_ISSET_ID);
    }

    /** Returns true if field adgroupadId is set (has been assigned a value) and false otherwise */
    public boolean isSetAdgroupadId() {
      return __isset_bit_vector.get(__ADGROUPADID_ISSET_ID);
    }

    public void setAdgroupadIdIsSet(boolean value) {
      __isset_bit_vector.set(__ADGROUPADID_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case ADGROUPAD_ID:
        if (value == null) {
          unsetAdgroupadId();
        } else {
          setAdgroupadId((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case ADGROUPAD_ID:
        return Long.valueOf(getAdgroupadId());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case ADGROUPAD_ID:
        return isSetAdgroupadId();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof deleteAdwordsAdGroupAd_args)
        return this.equals((deleteAdwordsAdGroupAd_args)that);
      return false;
    }

    public boolean equals(deleteAdwordsAdGroupAd_args that) {
      if (that == null)
        return false;

      boolean this_present_adgroupadId = true;
      boolean that_present_adgroupadId = true;
      if (this_present_adgroupadId || that_present_adgroupadId) {
        if (!(this_present_adgroupadId && that_present_adgroupadId))
          return false;
        if (this.adgroupadId != that.adgroupadId)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(deleteAdwordsAdGroupAd_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      deleteAdwordsAdGroupAd_args typedOther = (deleteAdwordsAdGroupAd_args)other;

      lastComparison = Boolean.valueOf(isSetAdgroupadId()).compareTo(typedOther.isSetAdgroupadId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAdgroupadId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.adgroupadId, typedOther.adgroupadId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // ADGROUPAD_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.adgroupadId = iprot.readI64();
              setAdgroupadIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(ADGROUPAD_ID_FIELD_DESC);
      oprot.writeI64(this.adgroupadId);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("deleteAdwordsAdGroupAd_args(");
      boolean first = true;

      sb.append("adgroupadId:");
      sb.append(this.adgroupadId);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class deleteAdwordsAdGroupAd_result implements org.apache.thrift.TBase<deleteAdwordsAdGroupAd_result, deleteAdwordsAdGroupAd_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteAdwordsAdGroupAd_result");

    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteAdwordsAdGroupAd_result.class, metaDataMap);
    }

    public deleteAdwordsAdGroupAd_result() {
    }

    public deleteAdwordsAdGroupAd_result(
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public deleteAdwordsAdGroupAd_result(deleteAdwordsAdGroupAd_result other) {
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public deleteAdwordsAdGroupAd_result deepCopy() {
      return new deleteAdwordsAdGroupAd_result(this);
    }

    @Override
    public void clear() {
      this.gasex = null;
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof deleteAdwordsAdGroupAd_result)
        return this.equals((deleteAdwordsAdGroupAd_result)that);
      return false;
    }

    public boolean equals(deleteAdwordsAdGroupAd_result that) {
      if (that == null)
        return false;

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(deleteAdwordsAdGroupAd_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      deleteAdwordsAdGroupAd_result typedOther = (deleteAdwordsAdGroupAd_result)other;

      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("deleteAdwordsAdGroupAd_result(");
      boolean first = true;

      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class deleteAdwordsAdKeyword_args implements org.apache.thrift.TBase<deleteAdwordsAdKeyword_args, deleteAdwordsAdKeyword_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteAdwordsAdKeyword_args");

    private static final org.apache.thrift.protocol.TField CRITERION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("criterionId", org.apache.thrift.protocol.TType.I64, (short)1);

    private long criterionId; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      CRITERION_ID((short)1, "criterionId");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // CRITERION_ID
            return CRITERION_ID;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __CRITERIONID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.CRITERION_ID, new org.apache.thrift.meta_data.FieldMetaData("criterionId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteAdwordsAdKeyword_args.class, metaDataMap);
    }

    public deleteAdwordsAdKeyword_args() {
    }

    public deleteAdwordsAdKeyword_args(
      long criterionId)
    {
      this();
      this.criterionId = criterionId;
      setCriterionIdIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public deleteAdwordsAdKeyword_args(deleteAdwordsAdKeyword_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.criterionId = other.criterionId;
    }

    public deleteAdwordsAdKeyword_args deepCopy() {
      return new deleteAdwordsAdKeyword_args(this);
    }

    @Override
    public void clear() {
      setCriterionIdIsSet(false);
      this.criterionId = 0;
    }

    public long getCriterionId() {
      return this.criterionId;
    }

    public void setCriterionId(long criterionId) {
      this.criterionId = criterionId;
      setCriterionIdIsSet(true);
    }

    public void unsetCriterionId() {
      __isset_bit_vector.clear(__CRITERIONID_ISSET_ID);
    }

    /** Returns true if field criterionId is set (has been assigned a value) and false otherwise */
    public boolean isSetCriterionId() {
      return __isset_bit_vector.get(__CRITERIONID_ISSET_ID);
    }

    public void setCriterionIdIsSet(boolean value) {
      __isset_bit_vector.set(__CRITERIONID_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case CRITERION_ID:
        if (value == null) {
          unsetCriterionId();
        } else {
          setCriterionId((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case CRITERION_ID:
        return Long.valueOf(getCriterionId());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case CRITERION_ID:
        return isSetCriterionId();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof deleteAdwordsAdKeyword_args)
        return this.equals((deleteAdwordsAdKeyword_args)that);
      return false;
    }

    public boolean equals(deleteAdwordsAdKeyword_args that) {
      if (that == null)
        return false;

      boolean this_present_criterionId = true;
      boolean that_present_criterionId = true;
      if (this_present_criterionId || that_present_criterionId) {
        if (!(this_present_criterionId && that_present_criterionId))
          return false;
        if (this.criterionId != that.criterionId)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(deleteAdwordsAdKeyword_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      deleteAdwordsAdKeyword_args typedOther = (deleteAdwordsAdKeyword_args)other;

      lastComparison = Boolean.valueOf(isSetCriterionId()).compareTo(typedOther.isSetCriterionId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCriterionId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.criterionId, typedOther.criterionId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // CRITERION_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.criterionId = iprot.readI64();
              setCriterionIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(CRITERION_ID_FIELD_DESC);
      oprot.writeI64(this.criterionId);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("deleteAdwordsAdKeyword_args(");
      boolean first = true;

      sb.append("criterionId:");
      sb.append(this.criterionId);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class deleteAdwordsAdKeyword_result implements org.apache.thrift.TBase<deleteAdwordsAdKeyword_result, deleteAdwordsAdKeyword_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteAdwordsAdKeyword_result");

    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteAdwordsAdKeyword_result.class, metaDataMap);
    }

    public deleteAdwordsAdKeyword_result() {
    }

    public deleteAdwordsAdKeyword_result(
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public deleteAdwordsAdKeyword_result(deleteAdwordsAdKeyword_result other) {
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public deleteAdwordsAdKeyword_result deepCopy() {
      return new deleteAdwordsAdKeyword_result(this);
    }

    @Override
    public void clear() {
      this.gasex = null;
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof deleteAdwordsAdKeyword_result)
        return this.equals((deleteAdwordsAdKeyword_result)that);
      return false;
    }

    public boolean equals(deleteAdwordsAdKeyword_result that) {
      if (that == null)
        return false;

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(deleteAdwordsAdKeyword_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      deleteAdwordsAdKeyword_result typedOther = (deleteAdwordsAdKeyword_result)other;

      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("deleteAdwordsAdKeyword_result(");
      boolean first = true;

      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAdwordsCampaignByCampaignId_args implements org.apache.thrift.TBase<getAdwordsCampaignByCampaignId_args, getAdwordsCampaignByCampaignId_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAdwordsCampaignByCampaignId_args");

    private static final org.apache.thrift.protocol.TField CAMPAIGN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("campaignId", org.apache.thrift.protocol.TType.I64, (short)1);

    private long campaignId; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      CAMPAIGN_ID((short)1, "campaignId");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // CAMPAIGN_ID
            return CAMPAIGN_ID;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __CAMPAIGNID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.CAMPAIGN_ID, new org.apache.thrift.meta_data.FieldMetaData("campaignId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAdwordsCampaignByCampaignId_args.class, metaDataMap);
    }

    public getAdwordsCampaignByCampaignId_args() {
    }

    public getAdwordsCampaignByCampaignId_args(
      long campaignId)
    {
      this();
      this.campaignId = campaignId;
      setCampaignIdIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAdwordsCampaignByCampaignId_args(getAdwordsCampaignByCampaignId_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.campaignId = other.campaignId;
    }

    public getAdwordsCampaignByCampaignId_args deepCopy() {
      return new getAdwordsCampaignByCampaignId_args(this);
    }

    @Override
    public void clear() {
      setCampaignIdIsSet(false);
      this.campaignId = 0;
    }

    public long getCampaignId() {
      return this.campaignId;
    }

    public void setCampaignId(long campaignId) {
      this.campaignId = campaignId;
      setCampaignIdIsSet(true);
    }

    public void unsetCampaignId() {
      __isset_bit_vector.clear(__CAMPAIGNID_ISSET_ID);
    }

    /** Returns true if field campaignId is set (has been assigned a value) and false otherwise */
    public boolean isSetCampaignId() {
      return __isset_bit_vector.get(__CAMPAIGNID_ISSET_ID);
    }

    public void setCampaignIdIsSet(boolean value) {
      __isset_bit_vector.set(__CAMPAIGNID_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case CAMPAIGN_ID:
        if (value == null) {
          unsetCampaignId();
        } else {
          setCampaignId((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case CAMPAIGN_ID:
        return Long.valueOf(getCampaignId());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case CAMPAIGN_ID:
        return isSetCampaignId();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAdwordsCampaignByCampaignId_args)
        return this.equals((getAdwordsCampaignByCampaignId_args)that);
      return false;
    }

    public boolean equals(getAdwordsCampaignByCampaignId_args that) {
      if (that == null)
        return false;

      boolean this_present_campaignId = true;
      boolean that_present_campaignId = true;
      if (this_present_campaignId || that_present_campaignId) {
        if (!(this_present_campaignId && that_present_campaignId))
          return false;
        if (this.campaignId != that.campaignId)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAdwordsCampaignByCampaignId_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAdwordsCampaignByCampaignId_args typedOther = (getAdwordsCampaignByCampaignId_args)other;

      lastComparison = Boolean.valueOf(isSetCampaignId()).compareTo(typedOther.isSetCampaignId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCampaignId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.campaignId, typedOther.campaignId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // CAMPAIGN_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.campaignId = iprot.readI64();
              setCampaignIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(CAMPAIGN_ID_FIELD_DESC);
      oprot.writeI64(this.campaignId);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAdwordsCampaignByCampaignId_args(");
      boolean first = true;

      sb.append("campaignId:");
      sb.append(this.campaignId);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAdwordsCampaignByCampaignId_result implements org.apache.thrift.TBase<getAdwordsCampaignByCampaignId_result, getAdwordsCampaignByCampaignId_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAdwordsCampaignByCampaignId_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private AdwordsCampaign success; // required
    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdwordsCampaign.class)));
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAdwordsCampaignByCampaignId_result.class, metaDataMap);
    }

    public getAdwordsCampaignByCampaignId_result() {
    }

    public getAdwordsCampaignByCampaignId_result(
      AdwordsCampaign success,
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.success = success;
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAdwordsCampaignByCampaignId_result(getAdwordsCampaignByCampaignId_result other) {
      if (other.isSetSuccess()) {
        this.success = new AdwordsCampaign(other.success);
      }
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public getAdwordsCampaignByCampaignId_result deepCopy() {
      return new getAdwordsCampaignByCampaignId_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.gasex = null;
    }

    public AdwordsCampaign getSuccess() {
      return this.success;
    }

    public void setSuccess(AdwordsCampaign success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((AdwordsCampaign)value);
        }
        break;

      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAdwordsCampaignByCampaignId_result)
        return this.equals((getAdwordsCampaignByCampaignId_result)that);
      return false;
    }

    public boolean equals(getAdwordsCampaignByCampaignId_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAdwordsCampaignByCampaignId_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAdwordsCampaignByCampaignId_result typedOther = (getAdwordsCampaignByCampaignId_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.success = new AdwordsCampaign();
              this.success.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        this.success.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAdwordsCampaignByCampaignId_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAdwordsAdGroupByAdGroupId_args implements org.apache.thrift.TBase<getAdwordsAdGroupByAdGroupId_args, getAdwordsAdGroupByAdGroupId_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAdwordsAdGroupByAdGroupId_args");

    private static final org.apache.thrift.protocol.TField ADGROUP_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("adgroupId", org.apache.thrift.protocol.TType.I64, (short)1);

    private long adgroupId; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      ADGROUP_ID((short)1, "adgroupId");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // ADGROUP_ID
            return ADGROUP_ID;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __ADGROUPID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.ADGROUP_ID, new org.apache.thrift.meta_data.FieldMetaData("adgroupId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAdwordsAdGroupByAdGroupId_args.class, metaDataMap);
    }

    public getAdwordsAdGroupByAdGroupId_args() {
    }

    public getAdwordsAdGroupByAdGroupId_args(
      long adgroupId)
    {
      this();
      this.adgroupId = adgroupId;
      setAdgroupIdIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAdwordsAdGroupByAdGroupId_args(getAdwordsAdGroupByAdGroupId_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.adgroupId = other.adgroupId;
    }

    public getAdwordsAdGroupByAdGroupId_args deepCopy() {
      return new getAdwordsAdGroupByAdGroupId_args(this);
    }

    @Override
    public void clear() {
      setAdgroupIdIsSet(false);
      this.adgroupId = 0;
    }

    public long getAdgroupId() {
      return this.adgroupId;
    }

    public void setAdgroupId(long adgroupId) {
      this.adgroupId = adgroupId;
      setAdgroupIdIsSet(true);
    }

    public void unsetAdgroupId() {
      __isset_bit_vector.clear(__ADGROUPID_ISSET_ID);
    }

    /** Returns true if field adgroupId is set (has been assigned a value) and false otherwise */
    public boolean isSetAdgroupId() {
      return __isset_bit_vector.get(__ADGROUPID_ISSET_ID);
    }

    public void setAdgroupIdIsSet(boolean value) {
      __isset_bit_vector.set(__ADGROUPID_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case ADGROUP_ID:
        if (value == null) {
          unsetAdgroupId();
        } else {
          setAdgroupId((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case ADGROUP_ID:
        return Long.valueOf(getAdgroupId());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case ADGROUP_ID:
        return isSetAdgroupId();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAdwordsAdGroupByAdGroupId_args)
        return this.equals((getAdwordsAdGroupByAdGroupId_args)that);
      return false;
    }

    public boolean equals(getAdwordsAdGroupByAdGroupId_args that) {
      if (that == null)
        return false;

      boolean this_present_adgroupId = true;
      boolean that_present_adgroupId = true;
      if (this_present_adgroupId || that_present_adgroupId) {
        if (!(this_present_adgroupId && that_present_adgroupId))
          return false;
        if (this.adgroupId != that.adgroupId)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAdwordsAdGroupByAdGroupId_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAdwordsAdGroupByAdGroupId_args typedOther = (getAdwordsAdGroupByAdGroupId_args)other;

      lastComparison = Boolean.valueOf(isSetAdgroupId()).compareTo(typedOther.isSetAdgroupId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAdgroupId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.adgroupId, typedOther.adgroupId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // ADGROUP_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.adgroupId = iprot.readI64();
              setAdgroupIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(ADGROUP_ID_FIELD_DESC);
      oprot.writeI64(this.adgroupId);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAdwordsAdGroupByAdGroupId_args(");
      boolean first = true;

      sb.append("adgroupId:");
      sb.append(this.adgroupId);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAdwordsAdGroupByAdGroupId_result implements org.apache.thrift.TBase<getAdwordsAdGroupByAdGroupId_result, getAdwordsAdGroupByAdGroupId_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAdwordsAdGroupByAdGroupId_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private AdwordsAdGroup success; // required
    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdwordsAdGroup.class)));
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAdwordsAdGroupByAdGroupId_result.class, metaDataMap);
    }

    public getAdwordsAdGroupByAdGroupId_result() {
    }

    public getAdwordsAdGroupByAdGroupId_result(
      AdwordsAdGroup success,
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.success = success;
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAdwordsAdGroupByAdGroupId_result(getAdwordsAdGroupByAdGroupId_result other) {
      if (other.isSetSuccess()) {
        this.success = new AdwordsAdGroup(other.success);
      }
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public getAdwordsAdGroupByAdGroupId_result deepCopy() {
      return new getAdwordsAdGroupByAdGroupId_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.gasex = null;
    }

    public AdwordsAdGroup getSuccess() {
      return this.success;
    }

    public void setSuccess(AdwordsAdGroup success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((AdwordsAdGroup)value);
        }
        break;

      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAdwordsAdGroupByAdGroupId_result)
        return this.equals((getAdwordsAdGroupByAdGroupId_result)that);
      return false;
    }

    public boolean equals(getAdwordsAdGroupByAdGroupId_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAdwordsAdGroupByAdGroupId_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAdwordsAdGroupByAdGroupId_result typedOther = (getAdwordsAdGroupByAdGroupId_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.success = new AdwordsAdGroup();
              this.success.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        this.success.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAdwordsAdGroupByAdGroupId_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAdwordsAdgroupAdByAdId_args implements org.apache.thrift.TBase<getAdwordsAdgroupAdByAdId_args, getAdwordsAdgroupAdByAdId_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAdwordsAdgroupAdByAdId_args");

    private static final org.apache.thrift.protocol.TField ADGROUPAD_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("adgroupadId", org.apache.thrift.protocol.TType.I64, (short)1);

    private long adgroupadId; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      ADGROUPAD_ID((short)1, "adgroupadId");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // ADGROUPAD_ID
            return ADGROUPAD_ID;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __ADGROUPADID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.ADGROUPAD_ID, new org.apache.thrift.meta_data.FieldMetaData("adgroupadId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAdwordsAdgroupAdByAdId_args.class, metaDataMap);
    }

    public getAdwordsAdgroupAdByAdId_args() {
    }

    public getAdwordsAdgroupAdByAdId_args(
      long adgroupadId)
    {
      this();
      this.adgroupadId = adgroupadId;
      setAdgroupadIdIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAdwordsAdgroupAdByAdId_args(getAdwordsAdgroupAdByAdId_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.adgroupadId = other.adgroupadId;
    }

    public getAdwordsAdgroupAdByAdId_args deepCopy() {
      return new getAdwordsAdgroupAdByAdId_args(this);
    }

    @Override
    public void clear() {
      setAdgroupadIdIsSet(false);
      this.adgroupadId = 0;
    }

    public long getAdgroupadId() {
      return this.adgroupadId;
    }

    public void setAdgroupadId(long adgroupadId) {
      this.adgroupadId = adgroupadId;
      setAdgroupadIdIsSet(true);
    }

    public void unsetAdgroupadId() {
      __isset_bit_vector.clear(__ADGROUPADID_ISSET_ID);
    }

    /** Returns true if field adgroupadId is set (has been assigned a value) and false otherwise */
    public boolean isSetAdgroupadId() {
      return __isset_bit_vector.get(__ADGROUPADID_ISSET_ID);
    }

    public void setAdgroupadIdIsSet(boolean value) {
      __isset_bit_vector.set(__ADGROUPADID_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case ADGROUPAD_ID:
        if (value == null) {
          unsetAdgroupadId();
        } else {
          setAdgroupadId((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case ADGROUPAD_ID:
        return Long.valueOf(getAdgroupadId());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case ADGROUPAD_ID:
        return isSetAdgroupadId();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAdwordsAdgroupAdByAdId_args)
        return this.equals((getAdwordsAdgroupAdByAdId_args)that);
      return false;
    }

    public boolean equals(getAdwordsAdgroupAdByAdId_args that) {
      if (that == null)
        return false;

      boolean this_present_adgroupadId = true;
      boolean that_present_adgroupadId = true;
      if (this_present_adgroupadId || that_present_adgroupadId) {
        if (!(this_present_adgroupadId && that_present_adgroupadId))
          return false;
        if (this.adgroupadId != that.adgroupadId)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAdwordsAdgroupAdByAdId_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAdwordsAdgroupAdByAdId_args typedOther = (getAdwordsAdgroupAdByAdId_args)other;

      lastComparison = Boolean.valueOf(isSetAdgroupadId()).compareTo(typedOther.isSetAdgroupadId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAdgroupadId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.adgroupadId, typedOther.adgroupadId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // ADGROUPAD_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.adgroupadId = iprot.readI64();
              setAdgroupadIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(ADGROUPAD_ID_FIELD_DESC);
      oprot.writeI64(this.adgroupadId);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAdwordsAdgroupAdByAdId_args(");
      boolean first = true;

      sb.append("adgroupadId:");
      sb.append(this.adgroupadId);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAdwordsAdgroupAdByAdId_result implements org.apache.thrift.TBase<getAdwordsAdgroupAdByAdId_result, getAdwordsAdgroupAdByAdId_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAdwordsAdgroupAdByAdId_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private AdwordsAdGroupAd success; // required
    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdwordsAdGroupAd.class)));
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAdwordsAdgroupAdByAdId_result.class, metaDataMap);
    }

    public getAdwordsAdgroupAdByAdId_result() {
    }

    public getAdwordsAdgroupAdByAdId_result(
      AdwordsAdGroupAd success,
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.success = success;
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAdwordsAdgroupAdByAdId_result(getAdwordsAdgroupAdByAdId_result other) {
      if (other.isSetSuccess()) {
        this.success = new AdwordsAdGroupAd(other.success);
      }
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public getAdwordsAdgroupAdByAdId_result deepCopy() {
      return new getAdwordsAdgroupAdByAdId_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.gasex = null;
    }

    public AdwordsAdGroupAd getSuccess() {
      return this.success;
    }

    public void setSuccess(AdwordsAdGroupAd success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((AdwordsAdGroupAd)value);
        }
        break;

      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAdwordsAdgroupAdByAdId_result)
        return this.equals((getAdwordsAdgroupAdByAdId_result)that);
      return false;
    }

    public boolean equals(getAdwordsAdgroupAdByAdId_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAdwordsAdgroupAdByAdId_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAdwordsAdgroupAdByAdId_result typedOther = (getAdwordsAdgroupAdByAdId_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.success = new AdwordsAdGroupAd();
              this.success.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        this.success.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAdwordsAdgroupAdByAdId_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAdwordsAdKeywordByCriterionId_args implements org.apache.thrift.TBase<getAdwordsAdKeywordByCriterionId_args, getAdwordsAdKeywordByCriterionId_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAdwordsAdKeywordByCriterionId_args");

    private static final org.apache.thrift.protocol.TField CRITERION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("criterionId", org.apache.thrift.protocol.TType.I64, (short)1);

    private long criterionId; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      CRITERION_ID((short)1, "criterionId");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // CRITERION_ID
            return CRITERION_ID;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __CRITERIONID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.CRITERION_ID, new org.apache.thrift.meta_data.FieldMetaData("criterionId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAdwordsAdKeywordByCriterionId_args.class, metaDataMap);
    }

    public getAdwordsAdKeywordByCriterionId_args() {
    }

    public getAdwordsAdKeywordByCriterionId_args(
      long criterionId)
    {
      this();
      this.criterionId = criterionId;
      setCriterionIdIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAdwordsAdKeywordByCriterionId_args(getAdwordsAdKeywordByCriterionId_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.criterionId = other.criterionId;
    }

    public getAdwordsAdKeywordByCriterionId_args deepCopy() {
      return new getAdwordsAdKeywordByCriterionId_args(this);
    }

    @Override
    public void clear() {
      setCriterionIdIsSet(false);
      this.criterionId = 0;
    }

    public long getCriterionId() {
      return this.criterionId;
    }

    public void setCriterionId(long criterionId) {
      this.criterionId = criterionId;
      setCriterionIdIsSet(true);
    }

    public void unsetCriterionId() {
      __isset_bit_vector.clear(__CRITERIONID_ISSET_ID);
    }

    /** Returns true if field criterionId is set (has been assigned a value) and false otherwise */
    public boolean isSetCriterionId() {
      return __isset_bit_vector.get(__CRITERIONID_ISSET_ID);
    }

    public void setCriterionIdIsSet(boolean value) {
      __isset_bit_vector.set(__CRITERIONID_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case CRITERION_ID:
        if (value == null) {
          unsetCriterionId();
        } else {
          setCriterionId((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case CRITERION_ID:
        return Long.valueOf(getCriterionId());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case CRITERION_ID:
        return isSetCriterionId();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAdwordsAdKeywordByCriterionId_args)
        return this.equals((getAdwordsAdKeywordByCriterionId_args)that);
      return false;
    }

    public boolean equals(getAdwordsAdKeywordByCriterionId_args that) {
      if (that == null)
        return false;

      boolean this_present_criterionId = true;
      boolean that_present_criterionId = true;
      if (this_present_criterionId || that_present_criterionId) {
        if (!(this_present_criterionId && that_present_criterionId))
          return false;
        if (this.criterionId != that.criterionId)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAdwordsAdKeywordByCriterionId_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAdwordsAdKeywordByCriterionId_args typedOther = (getAdwordsAdKeywordByCriterionId_args)other;

      lastComparison = Boolean.valueOf(isSetCriterionId()).compareTo(typedOther.isSetCriterionId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCriterionId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.criterionId, typedOther.criterionId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // CRITERION_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.criterionId = iprot.readI64();
              setCriterionIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(CRITERION_ID_FIELD_DESC);
      oprot.writeI64(this.criterionId);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAdwordsAdKeywordByCriterionId_args(");
      boolean first = true;

      sb.append("criterionId:");
      sb.append(this.criterionId);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAdwordsAdKeywordByCriterionId_result implements org.apache.thrift.TBase<getAdwordsAdKeywordByCriterionId_result, getAdwordsAdKeywordByCriterionId_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAdwordsAdKeywordByCriterionId_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private AdwordsAdKeyword success; // required
    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdwordsAdKeyword.class)));
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAdwordsAdKeywordByCriterionId_result.class, metaDataMap);
    }

    public getAdwordsAdKeywordByCriterionId_result() {
    }

    public getAdwordsAdKeywordByCriterionId_result(
      AdwordsAdKeyword success,
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.success = success;
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAdwordsAdKeywordByCriterionId_result(getAdwordsAdKeywordByCriterionId_result other) {
      if (other.isSetSuccess()) {
        this.success = new AdwordsAdKeyword(other.success);
      }
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public getAdwordsAdKeywordByCriterionId_result deepCopy() {
      return new getAdwordsAdKeywordByCriterionId_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.gasex = null;
    }

    public AdwordsAdKeyword getSuccess() {
      return this.success;
    }

    public void setSuccess(AdwordsAdKeyword success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((AdwordsAdKeyword)value);
        }
        break;

      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAdwordsAdKeywordByCriterionId_result)
        return this.equals((getAdwordsAdKeywordByCriterionId_result)that);
      return false;
    }

    public boolean equals(getAdwordsAdKeywordByCriterionId_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAdwordsAdKeywordByCriterionId_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAdwordsAdKeywordByCriterionId_result typedOther = (getAdwordsAdKeywordByCriterionId_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.success = new AdwordsAdKeyword();
              this.success.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        this.success.write(oprot);
        oprot.writeFieldEnd();
      } else if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAdwordsAdKeywordByCriterionId_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAdwordsAdKeywordsByAdgroupId_args implements org.apache.thrift.TBase<getAdwordsAdKeywordsByAdgroupId_args, getAdwordsAdKeywordsByAdgroupId_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAdwordsAdKeywordsByAdgroupId_args");

    private static final org.apache.thrift.protocol.TField ADGROUP_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("adgroupId", org.apache.thrift.protocol.TType.I64, (short)1);

    private long adgroupId; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      ADGROUP_ID((short)1, "adgroupId");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // ADGROUP_ID
            return ADGROUP_ID;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __ADGROUPID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.ADGROUP_ID, new org.apache.thrift.meta_data.FieldMetaData("adgroupId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAdwordsAdKeywordsByAdgroupId_args.class, metaDataMap);
    }

    public getAdwordsAdKeywordsByAdgroupId_args() {
    }

    public getAdwordsAdKeywordsByAdgroupId_args(
      long adgroupId)
    {
      this();
      this.adgroupId = adgroupId;
      setAdgroupIdIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAdwordsAdKeywordsByAdgroupId_args(getAdwordsAdKeywordsByAdgroupId_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.adgroupId = other.adgroupId;
    }

    public getAdwordsAdKeywordsByAdgroupId_args deepCopy() {
      return new getAdwordsAdKeywordsByAdgroupId_args(this);
    }

    @Override
    public void clear() {
      setAdgroupIdIsSet(false);
      this.adgroupId = 0;
    }

    public long getAdgroupId() {
      return this.adgroupId;
    }

    public void setAdgroupId(long adgroupId) {
      this.adgroupId = adgroupId;
      setAdgroupIdIsSet(true);
    }

    public void unsetAdgroupId() {
      __isset_bit_vector.clear(__ADGROUPID_ISSET_ID);
    }

    /** Returns true if field adgroupId is set (has been assigned a value) and false otherwise */
    public boolean isSetAdgroupId() {
      return __isset_bit_vector.get(__ADGROUPID_ISSET_ID);
    }

    public void setAdgroupIdIsSet(boolean value) {
      __isset_bit_vector.set(__ADGROUPID_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case ADGROUP_ID:
        if (value == null) {
          unsetAdgroupId();
        } else {
          setAdgroupId((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case ADGROUP_ID:
        return Long.valueOf(getAdgroupId());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case ADGROUP_ID:
        return isSetAdgroupId();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAdwordsAdKeywordsByAdgroupId_args)
        return this.equals((getAdwordsAdKeywordsByAdgroupId_args)that);
      return false;
    }

    public boolean equals(getAdwordsAdKeywordsByAdgroupId_args that) {
      if (that == null)
        return false;

      boolean this_present_adgroupId = true;
      boolean that_present_adgroupId = true;
      if (this_present_adgroupId || that_present_adgroupId) {
        if (!(this_present_adgroupId && that_present_adgroupId))
          return false;
        if (this.adgroupId != that.adgroupId)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAdwordsAdKeywordsByAdgroupId_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAdwordsAdKeywordsByAdgroupId_args typedOther = (getAdwordsAdKeywordsByAdgroupId_args)other;

      lastComparison = Boolean.valueOf(isSetAdgroupId()).compareTo(typedOther.isSetAdgroupId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAdgroupId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.adgroupId, typedOther.adgroupId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // ADGROUP_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.adgroupId = iprot.readI64();
              setAdgroupIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(ADGROUP_ID_FIELD_DESC);
      oprot.writeI64(this.adgroupId);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAdwordsAdKeywordsByAdgroupId_args(");
      boolean first = true;

      sb.append("adgroupId:");
      sb.append(this.adgroupId);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAdwordsAdKeywordsByAdgroupId_result implements org.apache.thrift.TBase<getAdwordsAdKeywordsByAdgroupId_result, getAdwordsAdKeywordsByAdgroupId_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAdwordsAdKeywordsByAdgroupId_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private List<AdwordsAdKeyword> success; // required
    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdwordsAdKeyword.class))));
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAdwordsAdKeywordsByAdgroupId_result.class, metaDataMap);
    }

    public getAdwordsAdKeywordsByAdgroupId_result() {
    }

    public getAdwordsAdKeywordsByAdgroupId_result(
      List<AdwordsAdKeyword> success,
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.success = success;
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAdwordsAdKeywordsByAdgroupId_result(getAdwordsAdKeywordsByAdgroupId_result other) {
      if (other.isSetSuccess()) {
        List<AdwordsAdKeyword> __this__success = new ArrayList<AdwordsAdKeyword>();
        for (AdwordsAdKeyword other_element : other.success) {
          __this__success.add(new AdwordsAdKeyword(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public getAdwordsAdKeywordsByAdgroupId_result deepCopy() {
      return new getAdwordsAdKeywordsByAdgroupId_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.gasex = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    public java.util.Iterator<AdwordsAdKeyword> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(AdwordsAdKeyword elem) {
      if (this.success == null) {
        this.success = new ArrayList<AdwordsAdKeyword>();
      }
      this.success.add(elem);
    }

    public List<AdwordsAdKeyword> getSuccess() {
      return this.success;
    }

    public void setSuccess(List<AdwordsAdKeyword> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((List<AdwordsAdKeyword>)value);
        }
        break;

      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAdwordsAdKeywordsByAdgroupId_result)
        return this.equals((getAdwordsAdKeywordsByAdgroupId_result)that);
      return false;
    }

    public boolean equals(getAdwordsAdKeywordsByAdgroupId_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAdwordsAdKeywordsByAdgroupId_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAdwordsAdKeywordsByAdgroupId_result typedOther = (getAdwordsAdKeywordsByAdgroupId_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
                this.success = new ArrayList<AdwordsAdKeyword>(_list0.size);
                for (int _i1 = 0; _i1 < _list0.size; ++_i1)
                {
                  AdwordsAdKeyword _elem2; // required
                  _elem2 = new AdwordsAdKeyword();
                  _elem2.read(iprot);
                  this.success.add(_elem2);
                }
                iprot.readListEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size()));
          for (AdwordsAdKeyword _iter3 : this.success)
          {
            _iter3.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      } else if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAdwordsAdKeywordsByAdgroupId_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAdwordsAdGroupAdsByAdgroupId_args implements org.apache.thrift.TBase<getAdwordsAdGroupAdsByAdgroupId_args, getAdwordsAdGroupAdsByAdgroupId_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAdwordsAdGroupAdsByAdgroupId_args");

    private static final org.apache.thrift.protocol.TField ADGROUP_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("adgroupId", org.apache.thrift.protocol.TType.I64, (short)1);

    private long adgroupId; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      ADGROUP_ID((short)1, "adgroupId");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // ADGROUP_ID
            return ADGROUP_ID;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __ADGROUPID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.ADGROUP_ID, new org.apache.thrift.meta_data.FieldMetaData("adgroupId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAdwordsAdGroupAdsByAdgroupId_args.class, metaDataMap);
    }

    public getAdwordsAdGroupAdsByAdgroupId_args() {
    }

    public getAdwordsAdGroupAdsByAdgroupId_args(
      long adgroupId)
    {
      this();
      this.adgroupId = adgroupId;
      setAdgroupIdIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAdwordsAdGroupAdsByAdgroupId_args(getAdwordsAdGroupAdsByAdgroupId_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.adgroupId = other.adgroupId;
    }

    public getAdwordsAdGroupAdsByAdgroupId_args deepCopy() {
      return new getAdwordsAdGroupAdsByAdgroupId_args(this);
    }

    @Override
    public void clear() {
      setAdgroupIdIsSet(false);
      this.adgroupId = 0;
    }

    public long getAdgroupId() {
      return this.adgroupId;
    }

    public void setAdgroupId(long adgroupId) {
      this.adgroupId = adgroupId;
      setAdgroupIdIsSet(true);
    }

    public void unsetAdgroupId() {
      __isset_bit_vector.clear(__ADGROUPID_ISSET_ID);
    }

    /** Returns true if field adgroupId is set (has been assigned a value) and false otherwise */
    public boolean isSetAdgroupId() {
      return __isset_bit_vector.get(__ADGROUPID_ISSET_ID);
    }

    public void setAdgroupIdIsSet(boolean value) {
      __isset_bit_vector.set(__ADGROUPID_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case ADGROUP_ID:
        if (value == null) {
          unsetAdgroupId();
        } else {
          setAdgroupId((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case ADGROUP_ID:
        return Long.valueOf(getAdgroupId());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case ADGROUP_ID:
        return isSetAdgroupId();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAdwordsAdGroupAdsByAdgroupId_args)
        return this.equals((getAdwordsAdGroupAdsByAdgroupId_args)that);
      return false;
    }

    public boolean equals(getAdwordsAdGroupAdsByAdgroupId_args that) {
      if (that == null)
        return false;

      boolean this_present_adgroupId = true;
      boolean that_present_adgroupId = true;
      if (this_present_adgroupId || that_present_adgroupId) {
        if (!(this_present_adgroupId && that_present_adgroupId))
          return false;
        if (this.adgroupId != that.adgroupId)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAdwordsAdGroupAdsByAdgroupId_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAdwordsAdGroupAdsByAdgroupId_args typedOther = (getAdwordsAdGroupAdsByAdgroupId_args)other;

      lastComparison = Boolean.valueOf(isSetAdgroupId()).compareTo(typedOther.isSetAdgroupId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAdgroupId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.adgroupId, typedOther.adgroupId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // ADGROUP_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.adgroupId = iprot.readI64();
              setAdgroupIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(ADGROUP_ID_FIELD_DESC);
      oprot.writeI64(this.adgroupId);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAdwordsAdGroupAdsByAdgroupId_args(");
      boolean first = true;

      sb.append("adgroupId:");
      sb.append(this.adgroupId);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAdwordsAdGroupAdsByAdgroupId_result implements org.apache.thrift.TBase<getAdwordsAdGroupAdsByAdgroupId_result, getAdwordsAdGroupAdsByAdgroupId_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAdwordsAdGroupAdsByAdgroupId_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private List<AdwordsAdGroupAd> success; // required
    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdwordsAdGroupAd.class))));
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAdwordsAdGroupAdsByAdgroupId_result.class, metaDataMap);
    }

    public getAdwordsAdGroupAdsByAdgroupId_result() {
    }

    public getAdwordsAdGroupAdsByAdgroupId_result(
      List<AdwordsAdGroupAd> success,
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.success = success;
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAdwordsAdGroupAdsByAdgroupId_result(getAdwordsAdGroupAdsByAdgroupId_result other) {
      if (other.isSetSuccess()) {
        List<AdwordsAdGroupAd> __this__success = new ArrayList<AdwordsAdGroupAd>();
        for (AdwordsAdGroupAd other_element : other.success) {
          __this__success.add(new AdwordsAdGroupAd(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public getAdwordsAdGroupAdsByAdgroupId_result deepCopy() {
      return new getAdwordsAdGroupAdsByAdgroupId_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.gasex = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    public java.util.Iterator<AdwordsAdGroupAd> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(AdwordsAdGroupAd elem) {
      if (this.success == null) {
        this.success = new ArrayList<AdwordsAdGroupAd>();
      }
      this.success.add(elem);
    }

    public List<AdwordsAdGroupAd> getSuccess() {
      return this.success;
    }

    public void setSuccess(List<AdwordsAdGroupAd> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((List<AdwordsAdGroupAd>)value);
        }
        break;

      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAdwordsAdGroupAdsByAdgroupId_result)
        return this.equals((getAdwordsAdGroupAdsByAdgroupId_result)that);
      return false;
    }

    public boolean equals(getAdwordsAdGroupAdsByAdgroupId_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAdwordsAdGroupAdsByAdgroupId_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAdwordsAdGroupAdsByAdgroupId_result typedOther = (getAdwordsAdGroupAdsByAdgroupId_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list4 = iprot.readListBegin();
                this.success = new ArrayList<AdwordsAdGroupAd>(_list4.size);
                for (int _i5 = 0; _i5 < _list4.size; ++_i5)
                {
                  AdwordsAdGroupAd _elem6; // required
                  _elem6 = new AdwordsAdGroupAd();
                  _elem6.read(iprot);
                  this.success.add(_elem6);
                }
                iprot.readListEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size()));
          for (AdwordsAdGroupAd _iter7 : this.success)
          {
            _iter7.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      } else if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAdwordsAdGroupAdsByAdgroupId_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAdwordsAdGroupsByCampaignId_args implements org.apache.thrift.TBase<getAdwordsAdGroupsByCampaignId_args, getAdwordsAdGroupsByCampaignId_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAdwordsAdGroupsByCampaignId_args");

    private static final org.apache.thrift.protocol.TField CAMPAIGN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("campaignId", org.apache.thrift.protocol.TType.I64, (short)1);

    private long campaignId; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      CAMPAIGN_ID((short)1, "campaignId");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // CAMPAIGN_ID
            return CAMPAIGN_ID;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __CAMPAIGNID_ISSET_ID = 0;
    private BitSet __isset_bit_vector = new BitSet(1);

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.CAMPAIGN_ID, new org.apache.thrift.meta_data.FieldMetaData("campaignId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAdwordsAdGroupsByCampaignId_args.class, metaDataMap);
    }

    public getAdwordsAdGroupsByCampaignId_args() {
    }

    public getAdwordsAdGroupsByCampaignId_args(
      long campaignId)
    {
      this();
      this.campaignId = campaignId;
      setCampaignIdIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAdwordsAdGroupsByCampaignId_args(getAdwordsAdGroupsByCampaignId_args other) {
      __isset_bit_vector.clear();
      __isset_bit_vector.or(other.__isset_bit_vector);
      this.campaignId = other.campaignId;
    }

    public getAdwordsAdGroupsByCampaignId_args deepCopy() {
      return new getAdwordsAdGroupsByCampaignId_args(this);
    }

    @Override
    public void clear() {
      setCampaignIdIsSet(false);
      this.campaignId = 0;
    }

    public long getCampaignId() {
      return this.campaignId;
    }

    public void setCampaignId(long campaignId) {
      this.campaignId = campaignId;
      setCampaignIdIsSet(true);
    }

    public void unsetCampaignId() {
      __isset_bit_vector.clear(__CAMPAIGNID_ISSET_ID);
    }

    /** Returns true if field campaignId is set (has been assigned a value) and false otherwise */
    public boolean isSetCampaignId() {
      return __isset_bit_vector.get(__CAMPAIGNID_ISSET_ID);
    }

    public void setCampaignIdIsSet(boolean value) {
      __isset_bit_vector.set(__CAMPAIGNID_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case CAMPAIGN_ID:
        if (value == null) {
          unsetCampaignId();
        } else {
          setCampaignId((Long)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case CAMPAIGN_ID:
        return Long.valueOf(getCampaignId());

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case CAMPAIGN_ID:
        return isSetCampaignId();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAdwordsAdGroupsByCampaignId_args)
        return this.equals((getAdwordsAdGroupsByCampaignId_args)that);
      return false;
    }

    public boolean equals(getAdwordsAdGroupsByCampaignId_args that) {
      if (that == null)
        return false;

      boolean this_present_campaignId = true;
      boolean that_present_campaignId = true;
      if (this_present_campaignId || that_present_campaignId) {
        if (!(this_present_campaignId && that_present_campaignId))
          return false;
        if (this.campaignId != that.campaignId)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAdwordsAdGroupsByCampaignId_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAdwordsAdGroupsByCampaignId_args typedOther = (getAdwordsAdGroupsByCampaignId_args)other;

      lastComparison = Boolean.valueOf(isSetCampaignId()).compareTo(typedOther.isSetCampaignId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCampaignId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.campaignId, typedOther.campaignId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 1: // CAMPAIGN_ID
            if (field.type == org.apache.thrift.protocol.TType.I64) {
              this.campaignId = iprot.readI64();
              setCampaignIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldBegin(CAMPAIGN_ID_FIELD_DESC);
      oprot.writeI64(this.campaignId);
      oprot.writeFieldEnd();
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAdwordsAdGroupsByCampaignId_args(");
      boolean first = true;

      sb.append("campaignId:");
      sb.append(this.campaignId);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bit_vector = new BitSet(1);
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAdwordsAdGroupsByCampaignId_result implements org.apache.thrift.TBase<getAdwordsAdGroupsByCampaignId_result, getAdwordsAdGroupsByCampaignId_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAdwordsAdGroupsByCampaignId_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private List<AdwordsAdGroup> success; // required
    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdwordsAdGroup.class))));
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAdwordsAdGroupsByCampaignId_result.class, metaDataMap);
    }

    public getAdwordsAdGroupsByCampaignId_result() {
    }

    public getAdwordsAdGroupsByCampaignId_result(
      List<AdwordsAdGroup> success,
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.success = success;
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAdwordsAdGroupsByCampaignId_result(getAdwordsAdGroupsByCampaignId_result other) {
      if (other.isSetSuccess()) {
        List<AdwordsAdGroup> __this__success = new ArrayList<AdwordsAdGroup>();
        for (AdwordsAdGroup other_element : other.success) {
          __this__success.add(new AdwordsAdGroup(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public getAdwordsAdGroupsByCampaignId_result deepCopy() {
      return new getAdwordsAdGroupsByCampaignId_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.gasex = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    public java.util.Iterator<AdwordsAdGroup> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(AdwordsAdGroup elem) {
      if (this.success == null) {
        this.success = new ArrayList<AdwordsAdGroup>();
      }
      this.success.add(elem);
    }

    public List<AdwordsAdGroup> getSuccess() {
      return this.success;
    }

    public void setSuccess(List<AdwordsAdGroup> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((List<AdwordsAdGroup>)value);
        }
        break;

      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAdwordsAdGroupsByCampaignId_result)
        return this.equals((getAdwordsAdGroupsByCampaignId_result)that);
      return false;
    }

    public boolean equals(getAdwordsAdGroupsByCampaignId_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAdwordsAdGroupsByCampaignId_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAdwordsAdGroupsByCampaignId_result typedOther = (getAdwordsAdGroupsByCampaignId_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list8 = iprot.readListBegin();
                this.success = new ArrayList<AdwordsAdGroup>(_list8.size);
                for (int _i9 = 0; _i9 < _list8.size; ++_i9)
                {
                  AdwordsAdGroup _elem10; // required
                  _elem10 = new AdwordsAdGroup();
                  _elem10.read(iprot);
                  this.success.add(_elem10);
                }
                iprot.readListEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size()));
          for (AdwordsAdGroup _iter11 : this.success)
          {
            _iter11.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      } else if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAdwordsAdGroupsByCampaignId_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAllAdwordsCampaigns_args implements org.apache.thrift.TBase<getAllAdwordsCampaigns_args, getAllAdwordsCampaigns_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAllAdwordsCampaigns_args");



    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAllAdwordsCampaigns_args.class, metaDataMap);
    }

    public getAllAdwordsCampaigns_args() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAllAdwordsCampaigns_args(getAllAdwordsCampaigns_args other) {
    }

    public getAllAdwordsCampaigns_args deepCopy() {
      return new getAllAdwordsCampaigns_args(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAllAdwordsCampaigns_args)
        return this.equals((getAllAdwordsCampaigns_args)that);
      return false;
    }

    public boolean equals(getAllAdwordsCampaigns_args that) {
      if (that == null)
        return false;

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAllAdwordsCampaigns_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAllAdwordsCampaigns_args typedOther = (getAllAdwordsCampaigns_args)other;

      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAllAdwordsCampaigns_args(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAllAdwordsCampaigns_result implements org.apache.thrift.TBase<getAllAdwordsCampaigns_result, getAllAdwordsCampaigns_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAllAdwordsCampaigns_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private List<AdwordsCampaign> success; // required
    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdwordsCampaign.class))));
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAllAdwordsCampaigns_result.class, metaDataMap);
    }

    public getAllAdwordsCampaigns_result() {
    }

    public getAllAdwordsCampaigns_result(
      List<AdwordsCampaign> success,
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.success = success;
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAllAdwordsCampaigns_result(getAllAdwordsCampaigns_result other) {
      if (other.isSetSuccess()) {
        List<AdwordsCampaign> __this__success = new ArrayList<AdwordsCampaign>();
        for (AdwordsCampaign other_element : other.success) {
          __this__success.add(new AdwordsCampaign(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public getAllAdwordsCampaigns_result deepCopy() {
      return new getAllAdwordsCampaigns_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.gasex = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    public java.util.Iterator<AdwordsCampaign> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(AdwordsCampaign elem) {
      if (this.success == null) {
        this.success = new ArrayList<AdwordsCampaign>();
      }
      this.success.add(elem);
    }

    public List<AdwordsCampaign> getSuccess() {
      return this.success;
    }

    public void setSuccess(List<AdwordsCampaign> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((List<AdwordsCampaign>)value);
        }
        break;

      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAllAdwordsCampaigns_result)
        return this.equals((getAllAdwordsCampaigns_result)that);
      return false;
    }

    public boolean equals(getAllAdwordsCampaigns_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAllAdwordsCampaigns_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAllAdwordsCampaigns_result typedOther = (getAllAdwordsCampaigns_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list12 = iprot.readListBegin();
                this.success = new ArrayList<AdwordsCampaign>(_list12.size);
                for (int _i13 = 0; _i13 < _list12.size; ++_i13)
                {
                  AdwordsCampaign _elem14; // required
                  _elem14 = new AdwordsCampaign();
                  _elem14.read(iprot);
                  this.success.add(_elem14);
                }
                iprot.readListEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size()));
          for (AdwordsCampaign _iter15 : this.success)
          {
            _iter15.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      } else if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAllAdwordsCampaigns_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAllAdwordsAdGroups_args implements org.apache.thrift.TBase<getAllAdwordsAdGroups_args, getAllAdwordsAdGroups_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAllAdwordsAdGroups_args");



    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAllAdwordsAdGroups_args.class, metaDataMap);
    }

    public getAllAdwordsAdGroups_args() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAllAdwordsAdGroups_args(getAllAdwordsAdGroups_args other) {
    }

    public getAllAdwordsAdGroups_args deepCopy() {
      return new getAllAdwordsAdGroups_args(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAllAdwordsAdGroups_args)
        return this.equals((getAllAdwordsAdGroups_args)that);
      return false;
    }

    public boolean equals(getAllAdwordsAdGroups_args that) {
      if (that == null)
        return false;

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAllAdwordsAdGroups_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAllAdwordsAdGroups_args typedOther = (getAllAdwordsAdGroups_args)other;

      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAllAdwordsAdGroups_args(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAllAdwordsAdGroups_result implements org.apache.thrift.TBase<getAllAdwordsAdGroups_result, getAllAdwordsAdGroups_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAllAdwordsAdGroups_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private List<AdwordsAdGroup> success; // required
    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdwordsAdGroup.class))));
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAllAdwordsAdGroups_result.class, metaDataMap);
    }

    public getAllAdwordsAdGroups_result() {
    }

    public getAllAdwordsAdGroups_result(
      List<AdwordsAdGroup> success,
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.success = success;
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAllAdwordsAdGroups_result(getAllAdwordsAdGroups_result other) {
      if (other.isSetSuccess()) {
        List<AdwordsAdGroup> __this__success = new ArrayList<AdwordsAdGroup>();
        for (AdwordsAdGroup other_element : other.success) {
          __this__success.add(new AdwordsAdGroup(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public getAllAdwordsAdGroups_result deepCopy() {
      return new getAllAdwordsAdGroups_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.gasex = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    public java.util.Iterator<AdwordsAdGroup> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(AdwordsAdGroup elem) {
      if (this.success == null) {
        this.success = new ArrayList<AdwordsAdGroup>();
      }
      this.success.add(elem);
    }

    public List<AdwordsAdGroup> getSuccess() {
      return this.success;
    }

    public void setSuccess(List<AdwordsAdGroup> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((List<AdwordsAdGroup>)value);
        }
        break;

      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAllAdwordsAdGroups_result)
        return this.equals((getAllAdwordsAdGroups_result)that);
      return false;
    }

    public boolean equals(getAllAdwordsAdGroups_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAllAdwordsAdGroups_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAllAdwordsAdGroups_result typedOther = (getAllAdwordsAdGroups_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list16 = iprot.readListBegin();
                this.success = new ArrayList<AdwordsAdGroup>(_list16.size);
                for (int _i17 = 0; _i17 < _list16.size; ++_i17)
                {
                  AdwordsAdGroup _elem18; // required
                  _elem18 = new AdwordsAdGroup();
                  _elem18.read(iprot);
                  this.success.add(_elem18);
                }
                iprot.readListEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size()));
          for (AdwordsAdGroup _iter19 : this.success)
          {
            _iter19.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      } else if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAllAdwordsAdGroups_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAllAdwordsAdGroupAds_args implements org.apache.thrift.TBase<getAllAdwordsAdGroupAds_args, getAllAdwordsAdGroupAds_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAllAdwordsAdGroupAds_args");



    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAllAdwordsAdGroupAds_args.class, metaDataMap);
    }

    public getAllAdwordsAdGroupAds_args() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAllAdwordsAdGroupAds_args(getAllAdwordsAdGroupAds_args other) {
    }

    public getAllAdwordsAdGroupAds_args deepCopy() {
      return new getAllAdwordsAdGroupAds_args(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAllAdwordsAdGroupAds_args)
        return this.equals((getAllAdwordsAdGroupAds_args)that);
      return false;
    }

    public boolean equals(getAllAdwordsAdGroupAds_args that) {
      if (that == null)
        return false;

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAllAdwordsAdGroupAds_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAllAdwordsAdGroupAds_args typedOther = (getAllAdwordsAdGroupAds_args)other;

      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAllAdwordsAdGroupAds_args(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAllAdwordsAdGroupAds_result implements org.apache.thrift.TBase<getAllAdwordsAdGroupAds_result, getAllAdwordsAdGroupAds_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAllAdwordsAdGroupAds_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private List<AdwordsAdGroupAd> success; // required
    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdwordsAdGroupAd.class))));
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAllAdwordsAdGroupAds_result.class, metaDataMap);
    }

    public getAllAdwordsAdGroupAds_result() {
    }

    public getAllAdwordsAdGroupAds_result(
      List<AdwordsAdGroupAd> success,
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.success = success;
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAllAdwordsAdGroupAds_result(getAllAdwordsAdGroupAds_result other) {
      if (other.isSetSuccess()) {
        List<AdwordsAdGroupAd> __this__success = new ArrayList<AdwordsAdGroupAd>();
        for (AdwordsAdGroupAd other_element : other.success) {
          __this__success.add(new AdwordsAdGroupAd(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public getAllAdwordsAdGroupAds_result deepCopy() {
      return new getAllAdwordsAdGroupAds_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.gasex = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    public java.util.Iterator<AdwordsAdGroupAd> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(AdwordsAdGroupAd elem) {
      if (this.success == null) {
        this.success = new ArrayList<AdwordsAdGroupAd>();
      }
      this.success.add(elem);
    }

    public List<AdwordsAdGroupAd> getSuccess() {
      return this.success;
    }

    public void setSuccess(List<AdwordsAdGroupAd> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((List<AdwordsAdGroupAd>)value);
        }
        break;

      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAllAdwordsAdGroupAds_result)
        return this.equals((getAllAdwordsAdGroupAds_result)that);
      return false;
    }

    public boolean equals(getAllAdwordsAdGroupAds_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAllAdwordsAdGroupAds_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAllAdwordsAdGroupAds_result typedOther = (getAllAdwordsAdGroupAds_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list20 = iprot.readListBegin();
                this.success = new ArrayList<AdwordsAdGroupAd>(_list20.size);
                for (int _i21 = 0; _i21 < _list20.size; ++_i21)
                {
                  AdwordsAdGroupAd _elem22; // required
                  _elem22 = new AdwordsAdGroupAd();
                  _elem22.read(iprot);
                  this.success.add(_elem22);
                }
                iprot.readListEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size()));
          for (AdwordsAdGroupAd _iter23 : this.success)
          {
            _iter23.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      } else if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAllAdwordsAdGroupAds_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAllAdwordsAdKeywords_args implements org.apache.thrift.TBase<getAllAdwordsAdKeywords_args, getAllAdwordsAdKeywords_args._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAllAdwordsAdKeywords_args");



    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAllAdwordsAdKeywords_args.class, metaDataMap);
    }

    public getAllAdwordsAdKeywords_args() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAllAdwordsAdKeywords_args(getAllAdwordsAdKeywords_args other) {
    }

    public getAllAdwordsAdKeywords_args deepCopy() {
      return new getAllAdwordsAdKeywords_args(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAllAdwordsAdKeywords_args)
        return this.equals((getAllAdwordsAdKeywords_args)that);
      return false;
    }

    public boolean equals(getAllAdwordsAdKeywords_args that) {
      if (that == null)
        return false;

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAllAdwordsAdKeywords_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAllAdwordsAdKeywords_args typedOther = (getAllAdwordsAdKeywords_args)other;

      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      validate();

      oprot.writeStructBegin(STRUCT_DESC);
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAllAdwordsAdKeywords_args(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

  public static class getAllAdwordsAdKeywords_result implements org.apache.thrift.TBase<getAllAdwordsAdKeywords_result, getAllAdwordsAdKeywords_result._Fields>, java.io.Serializable, Cloneable   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAllAdwordsAdKeywords_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField GASEX_FIELD_DESC = new org.apache.thrift.protocol.TField("gasex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private List<AdwordsAdKeyword> success; // required
    private GoogleAdwordsServiceException gasex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      GASEX((short)1, "gasex");

      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

      static {
        for (_Fields field : EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // GASEX
            return GASEX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      public static _Fields findByName(String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final String _fieldName;

      _Fields(short thriftId, String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments

    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdwordsAdKeyword.class))));
      tmpMap.put(_Fields.GASEX, new org.apache.thrift.meta_data.FieldMetaData("gasex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
      metaDataMap = Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAllAdwordsAdKeywords_result.class, metaDataMap);
    }

    public getAllAdwordsAdKeywords_result() {
    }

    public getAllAdwordsAdKeywords_result(
      List<AdwordsAdKeyword> success,
      GoogleAdwordsServiceException gasex)
    {
      this();
      this.success = success;
      this.gasex = gasex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getAllAdwordsAdKeywords_result(getAllAdwordsAdKeywords_result other) {
      if (other.isSetSuccess()) {
        List<AdwordsAdKeyword> __this__success = new ArrayList<AdwordsAdKeyword>();
        for (AdwordsAdKeyword other_element : other.success) {
          __this__success.add(new AdwordsAdKeyword(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetGasex()) {
        this.gasex = new GoogleAdwordsServiceException(other.gasex);
      }
    }

    public getAllAdwordsAdKeywords_result deepCopy() {
      return new getAllAdwordsAdKeywords_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.gasex = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    public java.util.Iterator<AdwordsAdKeyword> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(AdwordsAdKeyword elem) {
      if (this.success == null) {
        this.success = new ArrayList<AdwordsAdKeyword>();
      }
      this.success.add(elem);
    }

    public List<AdwordsAdKeyword> getSuccess() {
      return this.success;
    }

    public void setSuccess(List<AdwordsAdKeyword> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public GoogleAdwordsServiceException getGasex() {
      return this.gasex;
    }

    public void setGasex(GoogleAdwordsServiceException gasex) {
      this.gasex = gasex;
    }

    public void unsetGasex() {
      this.gasex = null;
    }

    /** Returns true if field gasex is set (has been assigned a value) and false otherwise */
    public boolean isSetGasex() {
      return this.gasex != null;
    }

    public void setGasexIsSet(boolean value) {
      if (!value) {
        this.gasex = null;
      }
    }

    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((List<AdwordsAdKeyword>)value);
        }
        break;

      case GASEX:
        if (value == null) {
          unsetGasex();
        } else {
          setGasex((GoogleAdwordsServiceException)value);
        }
        break;

      }
    }

    public Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case GASEX:
        return getGasex();

      }
      throw new IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case GASEX:
        return isSetGasex();
      }
      throw new IllegalStateException();
    }

    @Override
    public boolean equals(Object that) {
      if (that == null)
        return false;
      if (that instanceof getAllAdwordsAdKeywords_result)
        return this.equals((getAllAdwordsAdKeywords_result)that);
      return false;
    }

    public boolean equals(getAllAdwordsAdKeywords_result that) {
      if (that == null)
        return false;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_gasex = true && this.isSetGasex();
      boolean that_present_gasex = true && that.isSetGasex();
      if (this_present_gasex || that_present_gasex) {
        if (!(this_present_gasex && that_present_gasex))
          return false;
        if (!this.gasex.equals(that.gasex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    public int compareTo(getAllAdwordsAdKeywords_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;
      getAllAdwordsAdKeywords_result typedOther = (getAllAdwordsAdKeywords_result)other;

      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = Boolean.valueOf(isSetGasex()).compareTo(typedOther.isSetGasex());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGasex()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gasex, typedOther.gasex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField field;
      iprot.readStructBegin();
      while (true)
      {
        field = iprot.readFieldBegin();
        if (field.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (field.id) {
          case 0: // SUCCESS
            if (field.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list24 = iprot.readListBegin();
                this.success = new ArrayList<AdwordsAdKeyword>(_list24.size);
                for (int _i25 = 0; _i25 < _list24.size; ++_i25)
                {
                  AdwordsAdKeyword _elem26; // required
                  _elem26 = new AdwordsAdKeyword();
                  _elem26.read(iprot);
                  this.success.add(_elem26);
                }
                iprot.readListEnd();
              }
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          case 1: // GASEX
            if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
              this.gasex = new GoogleAdwordsServiceException();
              this.gasex.read(iprot);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();
      validate();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      oprot.writeStructBegin(STRUCT_DESC);

      if (this.isSetSuccess()) {
        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
        {
          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size()));
          for (AdwordsAdKeyword _iter27 : this.success)
          {
            _iter27.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      } else if (this.isSetGasex()) {
        oprot.writeFieldBegin(GASEX_FIELD_DESC);
        this.gasex.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder("getAllAdwordsAdKeywords_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("gasex:");
      if (this.gasex == null) {
        sb.append("null");
      } else {
        sb.append(this.gasex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

  }

}