/*
 * Oceanengine Open Api
 * 巨量引擎开放平台 Open Api
 *
 * The version of the OpenAPI document: 1.1.19
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


package com.bytedance.ads.model;

import java.util.Objects;
import java.util.Arrays;
import com.bytedance.ads.model.AdGetV2DataAdvancedCreativeType;
import com.bytedance.ads.model.AdGetV2DataAppType;
import com.bytedance.ads.model.AdGetV2DataAudienceExtend;
import com.bytedance.ads.model.AdGetV2DataAutoInheritSwitch;
import com.bytedance.ads.model.AdGetV2DataAutoUpdateKeyword;
import com.bytedance.ads.model.AdGetV2DataBudgetMode;
import com.bytedance.ads.model.AdGetV2DataCategoryType;
import com.bytedance.ads.model.AdGetV2DataConvertedTimeDuration;
import com.bytedance.ads.model.AdGetV2DataDeepBidType;
import com.bytedance.ads.model.AdGetV2DataDeepExternalAction;
import com.bytedance.ads.model.AdGetV2DataDeliveryPhase;
import com.bytedance.ads.model.AdGetV2DataDeliveryRange;
import com.bytedance.ads.model.AdGetV2DataDownloadMode;
import com.bytedance.ads.model.AdGetV2DataDownloadType;
import com.bytedance.ads.model.AdGetV2DataDpaAdtype;
import com.bytedance.ads.model.AdGetV2DataDpaOpenUrlType;
import com.bytedance.ads.model.AdGetV2DataExternalAction;
import com.bytedance.ads.model.AdGetV2DataExternalActions;
import com.bytedance.ads.model.AdGetV2DataFeedDeliverySearch;
import com.bytedance.ads.model.AdGetV2DataFlowControlMode;
import com.bytedance.ads.model.AdGetV2DataHideIfConverted;
import com.bytedance.ads.model.AdGetV2DataInheritType;
import com.bytedance.ads.model.AdGetV2DataIntelligentFlowSwitch;
import com.bytedance.ads.model.AdGetV2DataInventoryCatalog;
import com.bytedance.ads.model.AdGetV2DataInventoryType;
import com.bytedance.ads.model.AdGetV2DataLaunchTargetType;
import com.bytedance.ads.model.AdGetV2DataOptStatus;
import com.bytedance.ads.model.AdGetV2DataParamsType;
import com.bytedance.ads.model.AdGetV2DataPricing;
import com.bytedance.ads.model.AdGetV2DataPromotionType;
import com.bytedance.ads.model.AdGetV2DataSceneInventory;
import com.bytedance.ads.model.AdGetV2DataScheduleType;
import com.bytedance.ads.model.AdGetV2DataSmartBidType;
import com.bytedance.ads.model.AdGetV2DataSmartInventory;
import com.bytedance.ads.model.AdGetV2DataStatus;
import com.bytedance.ads.model.AdGetV2DataStoreType;
import com.bytedance.ads.model.AdGetV2DataStoreproUnit;
import com.bytedance.ads.model.AdGetV2DataTrackUrlSendType;
import com.bytedance.ads.model.AdGetV2DataUnionVideoType;
import com.bytedance.ads.model.AdGetV2ResponseDataAudience;
import com.bytedance.ads.model.AdGetV2ResponseDataDpaProductTargetInner;
import com.bytedance.ads.model.AdGetV2ResponseDataShopInfo;
import com.bytedance.ads.model.AdGetV2ResponseDataUdShop;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import com.google.gson.TypeAdapterFactory;
import com.google.gson.reflect.TypeToken;
import com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import java.io.IOException;

import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import com.bytedance.ads.JSON;

/**
 * 
 */
@javax.annotation.Generated(value = "com.org.bytedance.ad_open_sdk.JavacusGenerator", date = "2024-09-10T15:29:00.246104612+08:00[Asia/Shanghai]")
public class AdGetV2ResponseData {
  public static final String SERIALIZED_NAME_ACTION_TRACK_URL = "action_track_url";
  @SerializedName(SERIALIZED_NAME_ACTION_TRACK_URL)
  private List<String> actionTrackUrl = null;

  public static final String SERIALIZED_NAME_AD_CREATE_TIME = "ad_create_time";
  @SerializedName(SERIALIZED_NAME_AD_CREATE_TIME)
  private String adCreateTime = null;

  public static final String SERIALIZED_NAME_AD_GROUP_ID = "ad_group_id";
  @SerializedName(SERIALIZED_NAME_AD_GROUP_ID)
  private Long adGroupId = null;

  public static final String SERIALIZED_NAME_AD_ID = "ad_id";
  @SerializedName(SERIALIZED_NAME_AD_ID)
  private Long adId = null;

  public static final String SERIALIZED_NAME_AD_MODIFY_TIME = "ad_modify_time";
  @SerializedName(SERIALIZED_NAME_AD_MODIFY_TIME)
  private String adModifyTime = null;

  public static final String SERIALIZED_NAME_ADJUST_CPA = "adjust_cpa";
  @SerializedName(SERIALIZED_NAME_ADJUST_CPA)
  private Long adjustCpa = null;

  public static final String SERIALIZED_NAME_ADVANCED_CREATIVE_TYPE = "advanced_creative_type";
  @SerializedName(SERIALIZED_NAME_ADVANCED_CREATIVE_TYPE)
  private AdGetV2DataAdvancedCreativeType advancedCreativeType = null;

  public static final String SERIALIZED_NAME_ADVERTISER_ID = "advertiser_id";
  @SerializedName(SERIALIZED_NAME_ADVERTISER_ID)
  private Long advertiserId = null;

  public static final String SERIALIZED_NAME_ADVERTISER_STORE_IDS = "advertiser_store_ids";
  @SerializedName(SERIALIZED_NAME_ADVERTISER_STORE_IDS)
  private List<Long> advertiserStoreIds = null;

  public static final String SERIALIZED_NAME_APP_DESC = "app_desc";
  @SerializedName(SERIALIZED_NAME_APP_DESC)
  private String appDesc = null;

  public static final String SERIALIZED_NAME_APP_INTRODUCTION = "app_introduction";
  @SerializedName(SERIALIZED_NAME_APP_INTRODUCTION)
  private Long appIntroduction = null;

  public static final String SERIALIZED_NAME_APP_THUMBNAILS = "app_thumbnails";
  @SerializedName(SERIALIZED_NAME_APP_THUMBNAILS)
  private List<String> appThumbnails = null;

  public static final String SERIALIZED_NAME_APP_TYPE = "app_type";
  @SerializedName(SERIALIZED_NAME_APP_TYPE)
  private AdGetV2DataAppType appType = null;

  public static final String SERIALIZED_NAME_ASSET_ID = "asset_id";
  @SerializedName(SERIALIZED_NAME_ASSET_ID)
  private Long assetId = null;

  public static final String SERIALIZED_NAME_ASSET_IDS = "asset_ids";
  @SerializedName(SERIALIZED_NAME_ASSET_IDS)
  private List<Long> assetIds = null;

  public static final String SERIALIZED_NAME_AUDIENCE = "audience";
  @SerializedName(SERIALIZED_NAME_AUDIENCE)
  private AdGetV2ResponseDataAudience audience = null;

  public static final String SERIALIZED_NAME_AUDIENCE_EXTEND = "audience_extend";
  @SerializedName(SERIALIZED_NAME_AUDIENCE_EXTEND)
  private AdGetV2DataAudienceExtend audienceExtend = null;

  public static final String SERIALIZED_NAME_AUDIENCE_PACKAGE_ID = "audience_package_id";
  @SerializedName(SERIALIZED_NAME_AUDIENCE_PACKAGE_ID)
  private Long audiencePackageId = null;

  public static final String SERIALIZED_NAME_AUDIT_REJECT_REASON = "audit_reject_reason";
  @SerializedName(SERIALIZED_NAME_AUDIT_REJECT_REASON)
  private String auditRejectReason = null;

  public static final String SERIALIZED_NAME_AUTO_INHERIT_SWITCH = "auto_inherit_switch";
  @SerializedName(SERIALIZED_NAME_AUTO_INHERIT_SWITCH)
  private AdGetV2DataAutoInheritSwitch autoInheritSwitch = null;

  public static final String SERIALIZED_NAME_AUTO_UPDATE_KEYWORD = "auto_update_keyword";
  @SerializedName(SERIALIZED_NAME_AUTO_UPDATE_KEYWORD)
  private AdGetV2DataAutoUpdateKeyword autoUpdateKeyword = null;

  public static final String SERIALIZED_NAME_AWEME_ACCOUNT = "aweme_account";
  @SerializedName(SERIALIZED_NAME_AWEME_ACCOUNT)
  private String awemeAccount = null;

  public static final String SERIALIZED_NAME_BID = "bid";
  @SerializedName(SERIALIZED_NAME_BID)
  private Double bid = null;

  public static final String SERIALIZED_NAME_BUDGET = "budget";
  @SerializedName(SERIALIZED_NAME_BUDGET)
  private Double budget = null;

  public static final String SERIALIZED_NAME_BUDGET_MODE = "budget_mode";
  @SerializedName(SERIALIZED_NAME_BUDGET_MODE)
  private AdGetV2DataBudgetMode budgetMode = null;

  public static final String SERIALIZED_NAME_CAMPAIGN_ID = "campaign_id";
  @SerializedName(SERIALIZED_NAME_CAMPAIGN_ID)
  private Long campaignId = null;

  public static final String SERIALIZED_NAME_CATEGORY_TYPE = "category_type";
  @SerializedName(SERIALIZED_NAME_CATEGORY_TYPE)
  private AdGetV2DataCategoryType categoryType = null;

  public static final String SERIALIZED_NAME_CONVERT_ID = "convert_id";
  @SerializedName(SERIALIZED_NAME_CONVERT_ID)
  private Long convertId = null;

  public static final String SERIALIZED_NAME_CONVERTED_TIME_DURATION = "converted_time_duration";
  @SerializedName(SERIALIZED_NAME_CONVERTED_TIME_DURATION)
  private AdGetV2DataConvertedTimeDuration convertedTimeDuration = null;

  public static final String SERIALIZED_NAME_CPA_BID = "cpa_bid";
  @SerializedName(SERIALIZED_NAME_CPA_BID)
  private Double cpaBid = null;

  public static final String SERIALIZED_NAME_DEEP_BID_TYPE = "deep_bid_type";
  @SerializedName(SERIALIZED_NAME_DEEP_BID_TYPE)
  private AdGetV2DataDeepBidType deepBidType = null;

  public static final String SERIALIZED_NAME_DEEP_CPABID = "deep_cpabid";
  @SerializedName(SERIALIZED_NAME_DEEP_CPABID)
  private Double deepCpabid = null;

  public static final String SERIALIZED_NAME_DEEP_EXTERNAL_ACTION = "deep_external_action";
  @SerializedName(SERIALIZED_NAME_DEEP_EXTERNAL_ACTION)
  private AdGetV2DataDeepExternalAction deepExternalAction = null;

  public static final String SERIALIZED_NAME_DELIVERY_PHASE = "delivery_phase";
  @SerializedName(SERIALIZED_NAME_DELIVERY_PHASE)
  private AdGetV2DataDeliveryPhase deliveryPhase = null;

  public static final String SERIALIZED_NAME_DELIVERY_RANGE = "delivery_range";
  @SerializedName(SERIALIZED_NAME_DELIVERY_RANGE)
  private AdGetV2DataDeliveryRange deliveryRange = null;

  public static final String SERIALIZED_NAME_DOWNLOAD_MODE = "download_mode";
  @SerializedName(SERIALIZED_NAME_DOWNLOAD_MODE)
  private AdGetV2DataDownloadMode downloadMode = null;

  public static final String SERIALIZED_NAME_DOWNLOAD_TYPE = "download_type";
  @SerializedName(SERIALIZED_NAME_DOWNLOAD_TYPE)
  private AdGetV2DataDownloadType downloadType = null;

  public static final String SERIALIZED_NAME_DOWNLOAD_URL = "download_url";
  @SerializedName(SERIALIZED_NAME_DOWNLOAD_URL)
  private String downloadUrl = null;

  public static final String SERIALIZED_NAME_DPA_ADTYPE = "dpa_adtype";
  @SerializedName(SERIALIZED_NAME_DPA_ADTYPE)
  private AdGetV2DataDpaAdtype dpaAdtype = null;

  public static final String SERIALIZED_NAME_DPA_CATEGORIES = "dpa_categories";
  @SerializedName(SERIALIZED_NAME_DPA_CATEGORIES)
  private List<Long> dpaCategories = null;

  public static final String SERIALIZED_NAME_DPA_CITY = "dpa_city";
  @SerializedName(SERIALIZED_NAME_DPA_CITY)
  private Long dpaCity = null;

  public static final String SERIALIZED_NAME_DPA_EXTERNAL_URL_FIELD = "dpa_external_url_field";
  @SerializedName(SERIALIZED_NAME_DPA_EXTERNAL_URL_FIELD)
  private String dpaExternalUrlField = null;

  public static final String SERIALIZED_NAME_DPA_EXTERNAL_URLS = "dpa_external_urls";
  @SerializedName(SERIALIZED_NAME_DPA_EXTERNAL_URLS)
  private List<String> dpaExternalUrls = null;

  public static final String SERIALIZED_NAME_DPA_LBS = "dpa_lbs";
  @SerializedName(SERIALIZED_NAME_DPA_LBS)
  private Long dpaLbs = null;

  public static final String SERIALIZED_NAME_DPA_OPEN_URL_FIELD = "dpa_open_url_field";
  @SerializedName(SERIALIZED_NAME_DPA_OPEN_URL_FIELD)
  private String dpaOpenUrlField = null;

  public static final String SERIALIZED_NAME_DPA_OPEN_URL_TYPE = "dpa_open_url_type";
  @SerializedName(SERIALIZED_NAME_DPA_OPEN_URL_TYPE)
  private AdGetV2DataDpaOpenUrlType dpaOpenUrlType = null;

  public static final String SERIALIZED_NAME_DPA_OPEN_URLS = "dpa_open_urls";
  @SerializedName(SERIALIZED_NAME_DPA_OPEN_URLS)
  private List<String> dpaOpenUrls = null;

  public static final String SERIALIZED_NAME_DPA_PRODUCT_TARGET = "dpa_product_target";
  @SerializedName(SERIALIZED_NAME_DPA_PRODUCT_TARGET)
  private List<AdGetV2ResponseDataDpaProductTargetInner> dpaProductTarget = null;

  public static final String SERIALIZED_NAME_DPA_PRODUCTS = "dpa_products";
  @SerializedName(SERIALIZED_NAME_DPA_PRODUCTS)
  private List<Long> dpaProducts = null;

  public static final String SERIALIZED_NAME_DPA_PROVINCE = "dpa_province";
  @SerializedName(SERIALIZED_NAME_DPA_PROVINCE)
  private Long dpaProvince = null;

  public static final String SERIALIZED_NAME_END_TIME = "end_time";
  @SerializedName(SERIALIZED_NAME_END_TIME)
  private String endTime = null;

  public static final String SERIALIZED_NAME_EXTERNAL_ACTION = "external_action";
  @SerializedName(SERIALIZED_NAME_EXTERNAL_ACTION)
  private AdGetV2DataExternalAction externalAction = null;

  public static final String SERIALIZED_NAME_EXTERNAL_ACTIONS = "external_actions";
  @SerializedName(SERIALIZED_NAME_EXTERNAL_ACTIONS)
  private List<AdGetV2DataExternalActions> externalActions = null;

  public static final String SERIALIZED_NAME_EXTERNAL_URL = "external_url";
  @SerializedName(SERIALIZED_NAME_EXTERNAL_URL)
  private String externalUrl = null;

  public static final String SERIALIZED_NAME_EXTERNAL_URL_PARAMS = "external_url_params";
  @SerializedName(SERIALIZED_NAME_EXTERNAL_URL_PARAMS)
  private String externalUrlParams = null;

  public static final String SERIALIZED_NAME_FEED_DELIVERY_SEARCH = "feed_delivery_search";
  @SerializedName(SERIALIZED_NAME_FEED_DELIVERY_SEARCH)
  private AdGetV2DataFeedDeliverySearch feedDeliverySearch = null;

  public static final String SERIALIZED_NAME_FLOW_CONTROL_MODE = "flow_control_mode";
  @SerializedName(SERIALIZED_NAME_FLOW_CONTROL_MODE)
  private AdGetV2DataFlowControlMode flowControlMode = null;

  public static final String SERIALIZED_NAME_FORM_ID = "form_id";
  @SerializedName(SERIALIZED_NAME_FORM_ID)
  private Long formId = null;

  public static final String SERIALIZED_NAME_FORM_INDEX = "form_index";
  @SerializedName(SERIALIZED_NAME_FORM_INDEX)
  private Long formIndex = null;

  public static final String SERIALIZED_NAME_GAME_PACKAGE_BATCH_ID = "game_package_batch_id";
  @SerializedName(SERIALIZED_NAME_GAME_PACKAGE_BATCH_ID)
  private Long gamePackageBatchId = null;

  public static final String SERIALIZED_NAME_GAME_PACKAGE_DESC = "game_package_desc";
  @SerializedName(SERIALIZED_NAME_GAME_PACKAGE_DESC)
  private String gamePackageDesc = null;

  public static final String SERIALIZED_NAME_GAME_PACKAGE_THUMBNAIL_IDS = "game_package_thumbnail_ids";
  @SerializedName(SERIALIZED_NAME_GAME_PACKAGE_THUMBNAIL_IDS)
  private List<String> gamePackageThumbnailIds = null;

  public static final String SERIALIZED_NAME_HIDE_IF_CONVERTED = "hide_if_converted";
  @SerializedName(SERIALIZED_NAME_HIDE_IF_CONVERTED)
  private AdGetV2DataHideIfConverted hideIfConverted = null;

  public static final String SERIALIZED_NAME_HIDE_IF_EXISTS = "hide_if_exists";
  @SerializedName(SERIALIZED_NAME_HIDE_IF_EXISTS)
  private Long hideIfExists = null;

  public static final String SERIALIZED_NAME_ID = "id";
  @SerializedName(SERIALIZED_NAME_ID)
  private Long id = null;

  public static final String SERIALIZED_NAME_INHERIT_TYPE = "inherit_type";
  @SerializedName(SERIALIZED_NAME_INHERIT_TYPE)
  private AdGetV2DataInheritType inheritType = null;

  public static final String SERIALIZED_NAME_INHERITED_ADVERTISER_ID = "inherited_advertiser_id";
  @SerializedName(SERIALIZED_NAME_INHERITED_ADVERTISER_ID)
  private List<Long> inheritedAdvertiserId = null;

  public static final String SERIALIZED_NAME_INTELLIGENT_FLOW_SWITCH = "intelligent_flow_switch";
  @SerializedName(SERIALIZED_NAME_INTELLIGENT_FLOW_SWITCH)
  private AdGetV2DataIntelligentFlowSwitch intelligentFlowSwitch = null;

  public static final String SERIALIZED_NAME_INVENTORY_CATALOG = "inventory_catalog";
  @SerializedName(SERIALIZED_NAME_INVENTORY_CATALOG)
  private AdGetV2DataInventoryCatalog inventoryCatalog = null;

  public static final String SERIALIZED_NAME_INVENTORY_TYPE = "inventory_type";
  @SerializedName(SERIALIZED_NAME_INVENTORY_TYPE)
  private List<AdGetV2DataInventoryType> inventoryType = null;

  public static final String SERIALIZED_NAME_LANDING_PAGE_STAY_TIME = "landing_page_stay_time";
  @SerializedName(SERIALIZED_NAME_LANDING_PAGE_STAY_TIME)
  private Long landingPageStayTime = null;

  public static final String SERIALIZED_NAME_LAUNCH_TARGET_TYPE = "launch_target_type";
  @SerializedName(SERIALIZED_NAME_LAUNCH_TARGET_TYPE)
  private AdGetV2DataLaunchTargetType launchTargetType = null;

  public static final String SERIALIZED_NAME_LUBAN_ROI_GOAL = "luban_roi_goal";
  @SerializedName(SERIALIZED_NAME_LUBAN_ROI_GOAL)
  private Double lubanRoiGoal = null;

  public static final String SERIALIZED_NAME_MODIFY_TIME = "modify_time";
  @SerializedName(SERIALIZED_NAME_MODIFY_TIME)
  private String modifyTime = null;

  public static final String SERIALIZED_NAME_NAME = "name";
  @SerializedName(SERIALIZED_NAME_NAME)
  private String name = null;

  public static final String SERIALIZED_NAME_OPEN_URL = "open_url";
  @SerializedName(SERIALIZED_NAME_OPEN_URL)
  private String openUrl = null;

  public static final String SERIALIZED_NAME_OPEN_URL_PARAMS = "open_url_params";
  @SerializedName(SERIALIZED_NAME_OPEN_URL_PARAMS)
  private String openUrlParams = null;

  public static final String SERIALIZED_NAME_OPT_STATUS = "opt_status";
  @SerializedName(SERIALIZED_NAME_OPT_STATUS)
  private AdGetV2DataOptStatus optStatus = null;

  public static final String SERIALIZED_NAME_PACKAGE = "package";
  @SerializedName(SERIALIZED_NAME_PACKAGE)
  private String _package = null;

  public static final String SERIALIZED_NAME_PARAMS_TYPE = "params_type";
  @SerializedName(SERIALIZED_NAME_PARAMS_TYPE)
  private AdGetV2DataParamsType paramsType = null;

  public static final String SERIALIZED_NAME_PRICING = "pricing";
  @SerializedName(SERIALIZED_NAME_PRICING)
  private AdGetV2DataPricing pricing = null;

  public static final String SERIALIZED_NAME_PRODUCT_ID = "product_id";
  @SerializedName(SERIALIZED_NAME_PRODUCT_ID)
  private String productId = null;

  public static final String SERIALIZED_NAME_PRODUCT_PLATFORM_ID = "product_platform_id";
  @SerializedName(SERIALIZED_NAME_PRODUCT_PLATFORM_ID)
  private Long productPlatformId = null;

  public static final String SERIALIZED_NAME_PROMOTION_TYPE = "promotion_type";
  @SerializedName(SERIALIZED_NAME_PROMOTION_TYPE)
  private AdGetV2DataPromotionType promotionType = null;

  public static final String SERIALIZED_NAME_QUICK_APP_ID = "quick_app_id";
  @SerializedName(SERIALIZED_NAME_QUICK_APP_ID)
  private Long quickAppId = null;

  public static final String SERIALIZED_NAME_QUICK_APP_URL = "quick_app_url";
  @SerializedName(SERIALIZED_NAME_QUICK_APP_URL)
  private String quickAppUrl = null;

  public static final String SERIALIZED_NAME_RETENTION_BID = "retention_bid";
  @SerializedName(SERIALIZED_NAME_RETENTION_BID)
  private Double retentionBid = null;

  public static final String SERIALIZED_NAME_ROI_GOAL = "roi_goal";
  @SerializedName(SERIALIZED_NAME_ROI_GOAL)
  private Double roiGoal = null;

  public static final String SERIALIZED_NAME_SCENE_INVENTORY = "scene_inventory";
  @SerializedName(SERIALIZED_NAME_SCENE_INVENTORY)
  private AdGetV2DataSceneInventory sceneInventory = null;

  public static final String SERIALIZED_NAME_SCHEDULE_TIME = "schedule_time";
  @SerializedName(SERIALIZED_NAME_SCHEDULE_TIME)
  private String scheduleTime = null;

  public static final String SERIALIZED_NAME_SCHEDULE_TYPE = "schedule_type";
  @SerializedName(SERIALIZED_NAME_SCHEDULE_TYPE)
  private AdGetV2DataScheduleType scheduleType = null;

  public static final String SERIALIZED_NAME_SEARCH_BID_RATIO = "search_bid_ratio";
  @SerializedName(SERIALIZED_NAME_SEARCH_BID_RATIO)
  private Double searchBidRatio = null;

  public static final String SERIALIZED_NAME_SHOP_INFO = "shop_info";
  @SerializedName(SERIALIZED_NAME_SHOP_INFO)
  private AdGetV2ResponseDataShopInfo shopInfo = null;

  public static final String SERIALIZED_NAME_SMART_BID_TYPE = "smart_bid_type";
  @SerializedName(SERIALIZED_NAME_SMART_BID_TYPE)
  private AdGetV2DataSmartBidType smartBidType = null;

  public static final String SERIALIZED_NAME_SMART_INVENTORY = "smart_inventory";
  @SerializedName(SERIALIZED_NAME_SMART_INVENTORY)
  private AdGetV2DataSmartInventory smartInventory = null;

  public static final String SERIALIZED_NAME_START_TIME = "start_time";
  @SerializedName(SERIALIZED_NAME_START_TIME)
  private String startTime = null;

  public static final String SERIALIZED_NAME_STATUS = "status";
  @SerializedName(SERIALIZED_NAME_STATUS)
  private AdGetV2DataStatus status = null;

  public static final String SERIALIZED_NAME_STORE_TYPE = "store_type";
  @SerializedName(SERIALIZED_NAME_STORE_TYPE)
  private AdGetV2DataStoreType storeType = null;

  public static final String SERIALIZED_NAME_STOREPRO_PACK_ID = "storepro_pack_id";
  @SerializedName(SERIALIZED_NAME_STOREPRO_PACK_ID)
  private Long storeproPackId = null;

  public static final String SERIALIZED_NAME_STOREPRO_UNIT = "storepro_unit";
  @SerializedName(SERIALIZED_NAME_STOREPRO_UNIT)
  private AdGetV2DataStoreproUnit storeproUnit = null;

  public static final String SERIALIZED_NAME_SUBSCRIBE_URL = "subscribe_url";
  @SerializedName(SERIALIZED_NAME_SUBSCRIBE_URL)
  private String subscribeUrl = null;

  public static final String SERIALIZED_NAME_TARGET_CVR = "target_cvr";
  @SerializedName(SERIALIZED_NAME_TARGET_CVR)
  private Long targetCvr = null;

  public static final String SERIALIZED_NAME_TRACK_URL = "track_url";
  @SerializedName(SERIALIZED_NAME_TRACK_URL)
  private List<String> trackUrl = null;

  public static final String SERIALIZED_NAME_TRACK_URL_GROUP_ID = "track_url_group_id";
  @SerializedName(SERIALIZED_NAME_TRACK_URL_GROUP_ID)
  private Long trackUrlGroupId = null;

  public static final String SERIALIZED_NAME_TRACK_URL_GROUP_TYPE = "track_url_group_type";
  @SerializedName(SERIALIZED_NAME_TRACK_URL_GROUP_TYPE)
  private String trackUrlGroupType = null;

  public static final String SERIALIZED_NAME_TRACK_URL_SEND_TYPE = "track_url_send_type";
  @SerializedName(SERIALIZED_NAME_TRACK_URL_SEND_TYPE)
  private AdGetV2DataTrackUrlSendType trackUrlSendType = null;

  public static final String SERIALIZED_NAME_UD_SHOP = "ud_shop";
  @SerializedName(SERIALIZED_NAME_UD_SHOP)
  private AdGetV2ResponseDataUdShop udShop = null;

  public static final String SERIALIZED_NAME_ULINK = "ulink";
  @SerializedName(SERIALIZED_NAME_ULINK)
  private String ulink = null;

  public static final String SERIALIZED_NAME_UNION_VIDEO_TYPE = "union_video_type";
  @SerializedName(SERIALIZED_NAME_UNION_VIDEO_TYPE)
  private AdGetV2DataUnionVideoType unionVideoType = null;

  public static final String SERIALIZED_NAME_VALUE_OPTIMIZED_OPEN = "value_optimized_open";
  @SerializedName(SERIALIZED_NAME_VALUE_OPTIMIZED_OPEN)
  private Long valueOptimizedOpen = null;

  public static final String SERIALIZED_NAME_VALUE_OPTIMIZED_TYPE = "value_optimized_type";
  @SerializedName(SERIALIZED_NAME_VALUE_OPTIMIZED_TYPE)
  private Long valueOptimizedType = null;

  public static final String SERIALIZED_NAME_VIDEO_PLAY_DONE_TRACK_URL = "video_play_done_track_url";
  @SerializedName(SERIALIZED_NAME_VIDEO_PLAY_DONE_TRACK_URL)
  private List<String> videoPlayDoneTrackUrl = null;

  public static final String SERIALIZED_NAME_VIDEO_PLAY_EFFECTIVE_TRACK_URL = "video_play_effective_track_url";
  @SerializedName(SERIALIZED_NAME_VIDEO_PLAY_EFFECTIVE_TRACK_URL)
  private List<String> videoPlayEffectiveTrackUrl = null;

  public static final String SERIALIZED_NAME_VIDEO_PLAY_TRACK_URL = "video_play_track_url";
  @SerializedName(SERIALIZED_NAME_VIDEO_PLAY_TRACK_URL)
  private List<String> videoPlayTrackUrl = null;

  public AdGetV2ResponseData() {
  }

  public AdGetV2ResponseData actionTrackUrl(List<String> actionTrackUrl) {
    
    this.actionTrackUrl = actionTrackUrl;
    return this;
  }

  public AdGetV2ResponseData addActionTrackUrlItem(String actionTrackUrlItem) {
    if (this.actionTrackUrl == null) {
      this.actionTrackUrl = new ArrayList<>();
    }
    this.actionTrackUrl.add(actionTrackUrlItem);
    return this;
  }

   /**
   * 
   * @return actionTrackUrl
  **/
  @javax.annotation.Nullable
  public List<String> getActionTrackUrl() {
    return actionTrackUrl;
  }


  public void setActionTrackUrl(List<String> actionTrackUrl) {
    this.actionTrackUrl = actionTrackUrl;
  }


  public AdGetV2ResponseData adCreateTime(String adCreateTime) {
    
    this.adCreateTime = adCreateTime;
    return this;
  }

   /**
   * 
   * @return adCreateTime
  **/
  @javax.annotation.Nullable
  public String getAdCreateTime() {
    return adCreateTime;
  }


  public void setAdCreateTime(String adCreateTime) {
    this.adCreateTime = adCreateTime;
  }


  public AdGetV2ResponseData adGroupId(Long adGroupId) {
    
    this.adGroupId = adGroupId;
    return this;
  }

   /**
   * 
   * @return adGroupId
  **/
  @javax.annotation.Nullable
  public Long getAdGroupId() {
    return adGroupId;
  }


  public void setAdGroupId(Long adGroupId) {
    this.adGroupId = adGroupId;
  }


  public AdGetV2ResponseData adId(Long adId) {
    
    this.adId = adId;
    return this;
  }

   /**
   * 
   * @return adId
  **/
  @javax.annotation.Nullable
  public Long getAdId() {
    return adId;
  }


  public void setAdId(Long adId) {
    this.adId = adId;
  }


  public AdGetV2ResponseData adModifyTime(String adModifyTime) {
    
    this.adModifyTime = adModifyTime;
    return this;
  }

   /**
   * 
   * @return adModifyTime
  **/
  @javax.annotation.Nullable
  public String getAdModifyTime() {
    return adModifyTime;
  }


  public void setAdModifyTime(String adModifyTime) {
    this.adModifyTime = adModifyTime;
  }


  public AdGetV2ResponseData adjustCpa(Long adjustCpa) {
    
    this.adjustCpa = adjustCpa;
    return this;
  }

   /**
   * 
   * @return adjustCpa
  **/
  @javax.annotation.Nullable
  public Long getAdjustCpa() {
    return adjustCpa;
  }


  public void setAdjustCpa(Long adjustCpa) {
    this.adjustCpa = adjustCpa;
  }


  public AdGetV2ResponseData advancedCreativeType(AdGetV2DataAdvancedCreativeType advancedCreativeType) {
    
    this.advancedCreativeType = advancedCreativeType;
    return this;
  }

   /**
   * Get advancedCreativeType
   * @return advancedCreativeType
  **/
  @javax.annotation.Nullable
  public AdGetV2DataAdvancedCreativeType getAdvancedCreativeType() {
    return advancedCreativeType;
  }


  public void setAdvancedCreativeType(AdGetV2DataAdvancedCreativeType advancedCreativeType) {
    this.advancedCreativeType = advancedCreativeType;
  }


  public AdGetV2ResponseData advertiserId(Long advertiserId) {
    
    this.advertiserId = advertiserId;
    return this;
  }

   /**
   * 
   * @return advertiserId
  **/
  @javax.annotation.Nullable
  public Long getAdvertiserId() {
    return advertiserId;
  }


  public void setAdvertiserId(Long advertiserId) {
    this.advertiserId = advertiserId;
  }


  public AdGetV2ResponseData advertiserStoreIds(List<Long> advertiserStoreIds) {
    
    this.advertiserStoreIds = advertiserStoreIds;
    return this;
  }

  public AdGetV2ResponseData addAdvertiserStoreIdsItem(Long advertiserStoreIdsItem) {
    if (this.advertiserStoreIds == null) {
      this.advertiserStoreIds = new ArrayList<>();
    }
    this.advertiserStoreIds.add(advertiserStoreIdsItem);
    return this;
  }

   /**
   * 
   * @return advertiserStoreIds
  **/
  @javax.annotation.Nullable
  public List<Long> getAdvertiserStoreIds() {
    return advertiserStoreIds;
  }


  public void setAdvertiserStoreIds(List<Long> advertiserStoreIds) {
    this.advertiserStoreIds = advertiserStoreIds;
  }


  public AdGetV2ResponseData appDesc(String appDesc) {
    
    this.appDesc = appDesc;
    return this;
  }

   /**
   * 
   * @return appDesc
  **/
  @javax.annotation.Nullable
  public String getAppDesc() {
    return appDesc;
  }


  public void setAppDesc(String appDesc) {
    this.appDesc = appDesc;
  }


  public AdGetV2ResponseData appIntroduction(Long appIntroduction) {
    
    this.appIntroduction = appIntroduction;
    return this;
  }

   /**
   * 
   * @return appIntroduction
  **/
  @javax.annotation.Nullable
  public Long getAppIntroduction() {
    return appIntroduction;
  }


  public void setAppIntroduction(Long appIntroduction) {
    this.appIntroduction = appIntroduction;
  }


  public AdGetV2ResponseData appThumbnails(List<String> appThumbnails) {
    
    this.appThumbnails = appThumbnails;
    return this;
  }

  public AdGetV2ResponseData addAppThumbnailsItem(String appThumbnailsItem) {
    if (this.appThumbnails == null) {
      this.appThumbnails = new ArrayList<>();
    }
    this.appThumbnails.add(appThumbnailsItem);
    return this;
  }

   /**
   * 
   * @return appThumbnails
  **/
  @javax.annotation.Nullable
  public List<String> getAppThumbnails() {
    return appThumbnails;
  }


  public void setAppThumbnails(List<String> appThumbnails) {
    this.appThumbnails = appThumbnails;
  }


  public AdGetV2ResponseData appType(AdGetV2DataAppType appType) {
    
    this.appType = appType;
    return this;
  }

   /**
   * Get appType
   * @return appType
  **/
  @javax.annotation.Nullable
  public AdGetV2DataAppType getAppType() {
    return appType;
  }


  public void setAppType(AdGetV2DataAppType appType) {
    this.appType = appType;
  }


  public AdGetV2ResponseData assetId(Long assetId) {
    
    this.assetId = assetId;
    return this;
  }

   /**
   * 
   * @return assetId
  **/
  @javax.annotation.Nullable
  public Long getAssetId() {
    return assetId;
  }


  public void setAssetId(Long assetId) {
    this.assetId = assetId;
  }


  public AdGetV2ResponseData assetIds(List<Long> assetIds) {
    
    this.assetIds = assetIds;
    return this;
  }

  public AdGetV2ResponseData addAssetIdsItem(Long assetIdsItem) {
    if (this.assetIds == null) {
      this.assetIds = new ArrayList<>();
    }
    this.assetIds.add(assetIdsItem);
    return this;
  }

   /**
   * 
   * @return assetIds
  **/
  @javax.annotation.Nullable
  public List<Long> getAssetIds() {
    return assetIds;
  }


  public void setAssetIds(List<Long> assetIds) {
    this.assetIds = assetIds;
  }


  public AdGetV2ResponseData audience(AdGetV2ResponseDataAudience audience) {
    
    this.audience = audience;
    return this;
  }

   /**
   * Get audience
   * @return audience
  **/
  @javax.annotation.Nullable
  public AdGetV2ResponseDataAudience getAudience() {
    return audience;
  }


  public void setAudience(AdGetV2ResponseDataAudience audience) {
    this.audience = audience;
  }


  public AdGetV2ResponseData audienceExtend(AdGetV2DataAudienceExtend audienceExtend) {
    
    this.audienceExtend = audienceExtend;
    return this;
  }

   /**
   * Get audienceExtend
   * @return audienceExtend
  **/
  @javax.annotation.Nullable
  public AdGetV2DataAudienceExtend getAudienceExtend() {
    return audienceExtend;
  }


  public void setAudienceExtend(AdGetV2DataAudienceExtend audienceExtend) {
    this.audienceExtend = audienceExtend;
  }


  public AdGetV2ResponseData audiencePackageId(Long audiencePackageId) {
    
    this.audiencePackageId = audiencePackageId;
    return this;
  }

   /**
   * 
   * @return audiencePackageId
  **/
  @javax.annotation.Nullable
  public Long getAudiencePackageId() {
    return audiencePackageId;
  }


  public void setAudiencePackageId(Long audiencePackageId) {
    this.audiencePackageId = audiencePackageId;
  }


  public AdGetV2ResponseData auditRejectReason(String auditRejectReason) {
    
    this.auditRejectReason = auditRejectReason;
    return this;
  }

   /**
   * 
   * @return auditRejectReason
  **/
  @javax.annotation.Nullable
  public String getAuditRejectReason() {
    return auditRejectReason;
  }


  public void setAuditRejectReason(String auditRejectReason) {
    this.auditRejectReason = auditRejectReason;
  }


  public AdGetV2ResponseData autoInheritSwitch(AdGetV2DataAutoInheritSwitch autoInheritSwitch) {
    
    this.autoInheritSwitch = autoInheritSwitch;
    return this;
  }

   /**
   * Get autoInheritSwitch
   * @return autoInheritSwitch
  **/
  @javax.annotation.Nullable
  public AdGetV2DataAutoInheritSwitch getAutoInheritSwitch() {
    return autoInheritSwitch;
  }


  public void setAutoInheritSwitch(AdGetV2DataAutoInheritSwitch autoInheritSwitch) {
    this.autoInheritSwitch = autoInheritSwitch;
  }


  public AdGetV2ResponseData autoUpdateKeyword(AdGetV2DataAutoUpdateKeyword autoUpdateKeyword) {
    
    this.autoUpdateKeyword = autoUpdateKeyword;
    return this;
  }

   /**
   * Get autoUpdateKeyword
   * @return autoUpdateKeyword
  **/
  @javax.annotation.Nullable
  public AdGetV2DataAutoUpdateKeyword getAutoUpdateKeyword() {
    return autoUpdateKeyword;
  }


  public void setAutoUpdateKeyword(AdGetV2DataAutoUpdateKeyword autoUpdateKeyword) {
    this.autoUpdateKeyword = autoUpdateKeyword;
  }


  public AdGetV2ResponseData awemeAccount(String awemeAccount) {
    
    this.awemeAccount = awemeAccount;
    return this;
  }

   /**
   * 
   * @return awemeAccount
  **/
  @javax.annotation.Nullable
  public String getAwemeAccount() {
    return awemeAccount;
  }


  public void setAwemeAccount(String awemeAccount) {
    this.awemeAccount = awemeAccount;
  }


  public AdGetV2ResponseData bid(Double bid) {
    
    this.bid = bid;
    return this;
  }

   /**
   * 
   * @return bid
  **/
  @javax.annotation.Nullable
  public Double getBid() {
    return bid;
  }


  public void setBid(Double bid) {
    this.bid = bid;
  }


  public AdGetV2ResponseData budget(Double budget) {
    
    this.budget = budget;
    return this;
  }

   /**
   * 
   * @return budget
  **/
  @javax.annotation.Nonnull
  public Double getBudget() {
    return budget;
  }


  public void setBudget(Double budget) {
    this.budget = budget;
  }


  public AdGetV2ResponseData budgetMode(AdGetV2DataBudgetMode budgetMode) {
    
    this.budgetMode = budgetMode;
    return this;
  }

   /**
   * Get budgetMode
   * @return budgetMode
  **/
  @javax.annotation.Nullable
  public AdGetV2DataBudgetMode getBudgetMode() {
    return budgetMode;
  }


  public void setBudgetMode(AdGetV2DataBudgetMode budgetMode) {
    this.budgetMode = budgetMode;
  }


  public AdGetV2ResponseData campaignId(Long campaignId) {
    
    this.campaignId = campaignId;
    return this;
  }

   /**
   * 
   * @return campaignId
  **/
  @javax.annotation.Nullable
  public Long getCampaignId() {
    return campaignId;
  }


  public void setCampaignId(Long campaignId) {
    this.campaignId = campaignId;
  }


  public AdGetV2ResponseData categoryType(AdGetV2DataCategoryType categoryType) {
    
    this.categoryType = categoryType;
    return this;
  }

   /**
   * Get categoryType
   * @return categoryType
  **/
  @javax.annotation.Nullable
  public AdGetV2DataCategoryType getCategoryType() {
    return categoryType;
  }


  public void setCategoryType(AdGetV2DataCategoryType categoryType) {
    this.categoryType = categoryType;
  }


  public AdGetV2ResponseData convertId(Long convertId) {
    
    this.convertId = convertId;
    return this;
  }

   /**
   * 
   * @return convertId
  **/
  @javax.annotation.Nullable
  public Long getConvertId() {
    return convertId;
  }


  public void setConvertId(Long convertId) {
    this.convertId = convertId;
  }


  public AdGetV2ResponseData convertedTimeDuration(AdGetV2DataConvertedTimeDuration convertedTimeDuration) {
    
    this.convertedTimeDuration = convertedTimeDuration;
    return this;
  }

   /**
   * Get convertedTimeDuration
   * @return convertedTimeDuration
  **/
  @javax.annotation.Nullable
  public AdGetV2DataConvertedTimeDuration getConvertedTimeDuration() {
    return convertedTimeDuration;
  }


  public void setConvertedTimeDuration(AdGetV2DataConvertedTimeDuration convertedTimeDuration) {
    this.convertedTimeDuration = convertedTimeDuration;
  }


  public AdGetV2ResponseData cpaBid(Double cpaBid) {
    
    this.cpaBid = cpaBid;
    return this;
  }

   /**
   * 
   * @return cpaBid
  **/
  @javax.annotation.Nullable
  public Double getCpaBid() {
    return cpaBid;
  }


  public void setCpaBid(Double cpaBid) {
    this.cpaBid = cpaBid;
  }


  public AdGetV2ResponseData deepBidType(AdGetV2DataDeepBidType deepBidType) {
    
    this.deepBidType = deepBidType;
    return this;
  }

   /**
   * Get deepBidType
   * @return deepBidType
  **/
  @javax.annotation.Nullable
  public AdGetV2DataDeepBidType getDeepBidType() {
    return deepBidType;
  }


  public void setDeepBidType(AdGetV2DataDeepBidType deepBidType) {
    this.deepBidType = deepBidType;
  }


  public AdGetV2ResponseData deepCpabid(Double deepCpabid) {
    
    this.deepCpabid = deepCpabid;
    return this;
  }

   /**
   * 
   * @return deepCpabid
  **/
  @javax.annotation.Nullable
  public Double getDeepCpabid() {
    return deepCpabid;
  }


  public void setDeepCpabid(Double deepCpabid) {
    this.deepCpabid = deepCpabid;
  }


  public AdGetV2ResponseData deepExternalAction(AdGetV2DataDeepExternalAction deepExternalAction) {
    
    this.deepExternalAction = deepExternalAction;
    return this;
  }

   /**
   * Get deepExternalAction
   * @return deepExternalAction
  **/
  @javax.annotation.Nullable
  public AdGetV2DataDeepExternalAction getDeepExternalAction() {
    return deepExternalAction;
  }


  public void setDeepExternalAction(AdGetV2DataDeepExternalAction deepExternalAction) {
    this.deepExternalAction = deepExternalAction;
  }


  public AdGetV2ResponseData deliveryPhase(AdGetV2DataDeliveryPhase deliveryPhase) {
    
    this.deliveryPhase = deliveryPhase;
    return this;
  }

   /**
   * Get deliveryPhase
   * @return deliveryPhase
  **/
  @javax.annotation.Nullable
  public AdGetV2DataDeliveryPhase getDeliveryPhase() {
    return deliveryPhase;
  }


  public void setDeliveryPhase(AdGetV2DataDeliveryPhase deliveryPhase) {
    this.deliveryPhase = deliveryPhase;
  }


  public AdGetV2ResponseData deliveryRange(AdGetV2DataDeliveryRange deliveryRange) {
    
    this.deliveryRange = deliveryRange;
    return this;
  }

   /**
   * Get deliveryRange
   * @return deliveryRange
  **/
  @javax.annotation.Nullable
  public AdGetV2DataDeliveryRange getDeliveryRange() {
    return deliveryRange;
  }


  public void setDeliveryRange(AdGetV2DataDeliveryRange deliveryRange) {
    this.deliveryRange = deliveryRange;
  }


  public AdGetV2ResponseData downloadMode(AdGetV2DataDownloadMode downloadMode) {
    
    this.downloadMode = downloadMode;
    return this;
  }

   /**
   * Get downloadMode
   * @return downloadMode
  **/
  @javax.annotation.Nullable
  public AdGetV2DataDownloadMode getDownloadMode() {
    return downloadMode;
  }


  public void setDownloadMode(AdGetV2DataDownloadMode downloadMode) {
    this.downloadMode = downloadMode;
  }


  public AdGetV2ResponseData downloadType(AdGetV2DataDownloadType downloadType) {
    
    this.downloadType = downloadType;
    return this;
  }

   /**
   * Get downloadType
   * @return downloadType
  **/
  @javax.annotation.Nullable
  public AdGetV2DataDownloadType getDownloadType() {
    return downloadType;
  }


  public void setDownloadType(AdGetV2DataDownloadType downloadType) {
    this.downloadType = downloadType;
  }


  public AdGetV2ResponseData downloadUrl(String downloadUrl) {
    
    this.downloadUrl = downloadUrl;
    return this;
  }

   /**
   * 
   * @return downloadUrl
  **/
  @javax.annotation.Nullable
  public String getDownloadUrl() {
    return downloadUrl;
  }


  public void setDownloadUrl(String downloadUrl) {
    this.downloadUrl = downloadUrl;
  }


  public AdGetV2ResponseData dpaAdtype(AdGetV2DataDpaAdtype dpaAdtype) {
    
    this.dpaAdtype = dpaAdtype;
    return this;
  }

   /**
   * Get dpaAdtype
   * @return dpaAdtype
  **/
  @javax.annotation.Nullable
  public AdGetV2DataDpaAdtype getDpaAdtype() {
    return dpaAdtype;
  }


  public void setDpaAdtype(AdGetV2DataDpaAdtype dpaAdtype) {
    this.dpaAdtype = dpaAdtype;
  }


  public AdGetV2ResponseData dpaCategories(List<Long> dpaCategories) {
    
    this.dpaCategories = dpaCategories;
    return this;
  }

  public AdGetV2ResponseData addDpaCategoriesItem(Long dpaCategoriesItem) {
    if (this.dpaCategories == null) {
      this.dpaCategories = new ArrayList<>();
    }
    this.dpaCategories.add(dpaCategoriesItem);
    return this;
  }

   /**
   * 
   * @return dpaCategories
  **/
  @javax.annotation.Nullable
  public List<Long> getDpaCategories() {
    return dpaCategories;
  }


  public void setDpaCategories(List<Long> dpaCategories) {
    this.dpaCategories = dpaCategories;
  }


  public AdGetV2ResponseData dpaCity(Long dpaCity) {
    
    this.dpaCity = dpaCity;
    return this;
  }

   /**
   * 
   * @return dpaCity
  **/
  @javax.annotation.Nullable
  public Long getDpaCity() {
    return dpaCity;
  }


  public void setDpaCity(Long dpaCity) {
    this.dpaCity = dpaCity;
  }


  public AdGetV2ResponseData dpaExternalUrlField(String dpaExternalUrlField) {
    
    this.dpaExternalUrlField = dpaExternalUrlField;
    return this;
  }

   /**
   * 
   * @return dpaExternalUrlField
  **/
  @javax.annotation.Nullable
  public String getDpaExternalUrlField() {
    return dpaExternalUrlField;
  }


  public void setDpaExternalUrlField(String dpaExternalUrlField) {
    this.dpaExternalUrlField = dpaExternalUrlField;
  }


  public AdGetV2ResponseData dpaExternalUrls(List<String> dpaExternalUrls) {
    
    this.dpaExternalUrls = dpaExternalUrls;
    return this;
  }

  public AdGetV2ResponseData addDpaExternalUrlsItem(String dpaExternalUrlsItem) {
    if (this.dpaExternalUrls == null) {
      this.dpaExternalUrls = new ArrayList<>();
    }
    this.dpaExternalUrls.add(dpaExternalUrlsItem);
    return this;
  }

   /**
   * 
   * @return dpaExternalUrls
  **/
  @javax.annotation.Nullable
  public List<String> getDpaExternalUrls() {
    return dpaExternalUrls;
  }


  public void setDpaExternalUrls(List<String> dpaExternalUrls) {
    this.dpaExternalUrls = dpaExternalUrls;
  }


  public AdGetV2ResponseData dpaLbs(Long dpaLbs) {
    
    this.dpaLbs = dpaLbs;
    return this;
  }

   /**
   * 
   * @return dpaLbs
  **/
  @javax.annotation.Nullable
  public Long getDpaLbs() {
    return dpaLbs;
  }


  public void setDpaLbs(Long dpaLbs) {
    this.dpaLbs = dpaLbs;
  }


  public AdGetV2ResponseData dpaOpenUrlField(String dpaOpenUrlField) {
    
    this.dpaOpenUrlField = dpaOpenUrlField;
    return this;
  }

   /**
   * 
   * @return dpaOpenUrlField
  **/
  @javax.annotation.Nullable
  public String getDpaOpenUrlField() {
    return dpaOpenUrlField;
  }


  public void setDpaOpenUrlField(String dpaOpenUrlField) {
    this.dpaOpenUrlField = dpaOpenUrlField;
  }


  public AdGetV2ResponseData dpaOpenUrlType(AdGetV2DataDpaOpenUrlType dpaOpenUrlType) {
    
    this.dpaOpenUrlType = dpaOpenUrlType;
    return this;
  }

   /**
   * Get dpaOpenUrlType
   * @return dpaOpenUrlType
  **/
  @javax.annotation.Nullable
  public AdGetV2DataDpaOpenUrlType getDpaOpenUrlType() {
    return dpaOpenUrlType;
  }


  public void setDpaOpenUrlType(AdGetV2DataDpaOpenUrlType dpaOpenUrlType) {
    this.dpaOpenUrlType = dpaOpenUrlType;
  }


  public AdGetV2ResponseData dpaOpenUrls(List<String> dpaOpenUrls) {
    
    this.dpaOpenUrls = dpaOpenUrls;
    return this;
  }

  public AdGetV2ResponseData addDpaOpenUrlsItem(String dpaOpenUrlsItem) {
    if (this.dpaOpenUrls == null) {
      this.dpaOpenUrls = new ArrayList<>();
    }
    this.dpaOpenUrls.add(dpaOpenUrlsItem);
    return this;
  }

   /**
   * 
   * @return dpaOpenUrls
  **/
  @javax.annotation.Nullable
  public List<String> getDpaOpenUrls() {
    return dpaOpenUrls;
  }


  public void setDpaOpenUrls(List<String> dpaOpenUrls) {
    this.dpaOpenUrls = dpaOpenUrls;
  }


  public AdGetV2ResponseData dpaProductTarget(List<AdGetV2ResponseDataDpaProductTargetInner> dpaProductTarget) {
    
    this.dpaProductTarget = dpaProductTarget;
    return this;
  }

  public AdGetV2ResponseData addDpaProductTargetItem(AdGetV2ResponseDataDpaProductTargetInner dpaProductTargetItem) {
    if (this.dpaProductTarget == null) {
      this.dpaProductTarget = new ArrayList<>();
    }
    this.dpaProductTarget.add(dpaProductTargetItem);
    return this;
  }

   /**
   * 
   * @return dpaProductTarget
  **/
  @javax.annotation.Nullable
  public List<AdGetV2ResponseDataDpaProductTargetInner> getDpaProductTarget() {
    return dpaProductTarget;
  }


  public void setDpaProductTarget(List<AdGetV2ResponseDataDpaProductTargetInner> dpaProductTarget) {
    this.dpaProductTarget = dpaProductTarget;
  }


  public AdGetV2ResponseData dpaProducts(List<Long> dpaProducts) {
    
    this.dpaProducts = dpaProducts;
    return this;
  }

  public AdGetV2ResponseData addDpaProductsItem(Long dpaProductsItem) {
    if (this.dpaProducts == null) {
      this.dpaProducts = new ArrayList<>();
    }
    this.dpaProducts.add(dpaProductsItem);
    return this;
  }

   /**
   * 
   * @return dpaProducts
  **/
  @javax.annotation.Nullable
  public List<Long> getDpaProducts() {
    return dpaProducts;
  }


  public void setDpaProducts(List<Long> dpaProducts) {
    this.dpaProducts = dpaProducts;
  }


  public AdGetV2ResponseData dpaProvince(Long dpaProvince) {
    
    this.dpaProvince = dpaProvince;
    return this;
  }

   /**
   * 
   * @return dpaProvince
  **/
  @javax.annotation.Nullable
  public Long getDpaProvince() {
    return dpaProvince;
  }


  public void setDpaProvince(Long dpaProvince) {
    this.dpaProvince = dpaProvince;
  }


  public AdGetV2ResponseData endTime(String endTime) {
    
    this.endTime = endTime;
    return this;
  }

   /**
   * 
   * @return endTime
  **/
  @javax.annotation.Nullable
  public String getEndTime() {
    return endTime;
  }


  public void setEndTime(String endTime) {
    this.endTime = endTime;
  }


  public AdGetV2ResponseData externalAction(AdGetV2DataExternalAction externalAction) {
    
    this.externalAction = externalAction;
    return this;
  }

   /**
   * Get externalAction
   * @return externalAction
  **/
  @javax.annotation.Nullable
  public AdGetV2DataExternalAction getExternalAction() {
    return externalAction;
  }


  public void setExternalAction(AdGetV2DataExternalAction externalAction) {
    this.externalAction = externalAction;
  }


  public AdGetV2ResponseData externalActions(List<AdGetV2DataExternalActions> externalActions) {
    
    this.externalActions = externalActions;
    return this;
  }

  public AdGetV2ResponseData addExternalActionsItem(AdGetV2DataExternalActions externalActionsItem) {
    if (this.externalActions == null) {
      this.externalActions = new ArrayList<>();
    }
    this.externalActions.add(externalActionsItem);
    return this;
  }

   /**
   * 
   * @return externalActions
  **/
  @javax.annotation.Nullable
  public List<AdGetV2DataExternalActions> getExternalActions() {
    return externalActions;
  }


  public void setExternalActions(List<AdGetV2DataExternalActions> externalActions) {
    this.externalActions = externalActions;
  }


  public AdGetV2ResponseData externalUrl(String externalUrl) {
    
    this.externalUrl = externalUrl;
    return this;
  }

   /**
   * 
   * @return externalUrl
  **/
  @javax.annotation.Nullable
  public String getExternalUrl() {
    return externalUrl;
  }


  public void setExternalUrl(String externalUrl) {
    this.externalUrl = externalUrl;
  }


  public AdGetV2ResponseData externalUrlParams(String externalUrlParams) {
    
    this.externalUrlParams = externalUrlParams;
    return this;
  }

   /**
   * 
   * @return externalUrlParams
  **/
  @javax.annotation.Nullable
  public String getExternalUrlParams() {
    return externalUrlParams;
  }


  public void setExternalUrlParams(String externalUrlParams) {
    this.externalUrlParams = externalUrlParams;
  }


  public AdGetV2ResponseData feedDeliverySearch(AdGetV2DataFeedDeliverySearch feedDeliverySearch) {
    
    this.feedDeliverySearch = feedDeliverySearch;
    return this;
  }

   /**
   * Get feedDeliverySearch
   * @return feedDeliverySearch
  **/
  @javax.annotation.Nullable
  public AdGetV2DataFeedDeliverySearch getFeedDeliverySearch() {
    return feedDeliverySearch;
  }


  public void setFeedDeliverySearch(AdGetV2DataFeedDeliverySearch feedDeliverySearch) {
    this.feedDeliverySearch = feedDeliverySearch;
  }


  public AdGetV2ResponseData flowControlMode(AdGetV2DataFlowControlMode flowControlMode) {
    
    this.flowControlMode = flowControlMode;
    return this;
  }

   /**
   * Get flowControlMode
   * @return flowControlMode
  **/
  @javax.annotation.Nullable
  public AdGetV2DataFlowControlMode getFlowControlMode() {
    return flowControlMode;
  }


  public void setFlowControlMode(AdGetV2DataFlowControlMode flowControlMode) {
    this.flowControlMode = flowControlMode;
  }


  public AdGetV2ResponseData formId(Long formId) {
    
    this.formId = formId;
    return this;
  }

   /**
   * 
   * @return formId
  **/
  @javax.annotation.Nullable
  public Long getFormId() {
    return formId;
  }


  public void setFormId(Long formId) {
    this.formId = formId;
  }


  public AdGetV2ResponseData formIndex(Long formIndex) {
    
    this.formIndex = formIndex;
    return this;
  }

   /**
   * 
   * @return formIndex
  **/
  @javax.annotation.Nullable
  public Long getFormIndex() {
    return formIndex;
  }


  public void setFormIndex(Long formIndex) {
    this.formIndex = formIndex;
  }


  public AdGetV2ResponseData gamePackageBatchId(Long gamePackageBatchId) {
    
    this.gamePackageBatchId = gamePackageBatchId;
    return this;
  }

   /**
   * 
   * @return gamePackageBatchId
  **/
  @javax.annotation.Nullable
  public Long getGamePackageBatchId() {
    return gamePackageBatchId;
  }


  public void setGamePackageBatchId(Long gamePackageBatchId) {
    this.gamePackageBatchId = gamePackageBatchId;
  }


  public AdGetV2ResponseData gamePackageDesc(String gamePackageDesc) {
    
    this.gamePackageDesc = gamePackageDesc;
    return this;
  }

   /**
   * 
   * @return gamePackageDesc
  **/
  @javax.annotation.Nullable
  public String getGamePackageDesc() {
    return gamePackageDesc;
  }


  public void setGamePackageDesc(String gamePackageDesc) {
    this.gamePackageDesc = gamePackageDesc;
  }


  public AdGetV2ResponseData gamePackageThumbnailIds(List<String> gamePackageThumbnailIds) {
    
    this.gamePackageThumbnailIds = gamePackageThumbnailIds;
    return this;
  }

  public AdGetV2ResponseData addGamePackageThumbnailIdsItem(String gamePackageThumbnailIdsItem) {
    if (this.gamePackageThumbnailIds == null) {
      this.gamePackageThumbnailIds = new ArrayList<>();
    }
    this.gamePackageThumbnailIds.add(gamePackageThumbnailIdsItem);
    return this;
  }

   /**
   * 
   * @return gamePackageThumbnailIds
  **/
  @javax.annotation.Nullable
  public List<String> getGamePackageThumbnailIds() {
    return gamePackageThumbnailIds;
  }


  public void setGamePackageThumbnailIds(List<String> gamePackageThumbnailIds) {
    this.gamePackageThumbnailIds = gamePackageThumbnailIds;
  }


  public AdGetV2ResponseData hideIfConverted(AdGetV2DataHideIfConverted hideIfConverted) {
    
    this.hideIfConverted = hideIfConverted;
    return this;
  }

   /**
   * Get hideIfConverted
   * @return hideIfConverted
  **/
  @javax.annotation.Nullable
  public AdGetV2DataHideIfConverted getHideIfConverted() {
    return hideIfConverted;
  }


  public void setHideIfConverted(AdGetV2DataHideIfConverted hideIfConverted) {
    this.hideIfConverted = hideIfConverted;
  }


  public AdGetV2ResponseData hideIfExists(Long hideIfExists) {
    
    this.hideIfExists = hideIfExists;
    return this;
  }

   /**
   * 
   * @return hideIfExists
  **/
  @javax.annotation.Nullable
  public Long getHideIfExists() {
    return hideIfExists;
  }


  public void setHideIfExists(Long hideIfExists) {
    this.hideIfExists = hideIfExists;
  }


  public AdGetV2ResponseData id(Long id) {
    
    this.id = id;
    return this;
  }

   /**
   * 
   * @return id
  **/
  @javax.annotation.Nullable
  public Long getId() {
    return id;
  }


  public void setId(Long id) {
    this.id = id;
  }


  public AdGetV2ResponseData inheritType(AdGetV2DataInheritType inheritType) {
    
    this.inheritType = inheritType;
    return this;
  }

   /**
   * Get inheritType
   * @return inheritType
  **/
  @javax.annotation.Nullable
  public AdGetV2DataInheritType getInheritType() {
    return inheritType;
  }


  public void setInheritType(AdGetV2DataInheritType inheritType) {
    this.inheritType = inheritType;
  }


  public AdGetV2ResponseData inheritedAdvertiserId(List<Long> inheritedAdvertiserId) {
    
    this.inheritedAdvertiserId = inheritedAdvertiserId;
    return this;
  }

  public AdGetV2ResponseData addInheritedAdvertiserIdItem(Long inheritedAdvertiserIdItem) {
    if (this.inheritedAdvertiserId == null) {
      this.inheritedAdvertiserId = new ArrayList<>();
    }
    this.inheritedAdvertiserId.add(inheritedAdvertiserIdItem);
    return this;
  }

   /**
   * 
   * @return inheritedAdvertiserId
  **/
  @javax.annotation.Nullable
  public List<Long> getInheritedAdvertiserId() {
    return inheritedAdvertiserId;
  }


  public void setInheritedAdvertiserId(List<Long> inheritedAdvertiserId) {
    this.inheritedAdvertiserId = inheritedAdvertiserId;
  }


  public AdGetV2ResponseData intelligentFlowSwitch(AdGetV2DataIntelligentFlowSwitch intelligentFlowSwitch) {
    
    this.intelligentFlowSwitch = intelligentFlowSwitch;
    return this;
  }

   /**
   * Get intelligentFlowSwitch
   * @return intelligentFlowSwitch
  **/
  @javax.annotation.Nullable
  public AdGetV2DataIntelligentFlowSwitch getIntelligentFlowSwitch() {
    return intelligentFlowSwitch;
  }


  public void setIntelligentFlowSwitch(AdGetV2DataIntelligentFlowSwitch intelligentFlowSwitch) {
    this.intelligentFlowSwitch = intelligentFlowSwitch;
  }


  public AdGetV2ResponseData inventoryCatalog(AdGetV2DataInventoryCatalog inventoryCatalog) {
    
    this.inventoryCatalog = inventoryCatalog;
    return this;
  }

   /**
   * Get inventoryCatalog
   * @return inventoryCatalog
  **/
  @javax.annotation.Nullable
  public AdGetV2DataInventoryCatalog getInventoryCatalog() {
    return inventoryCatalog;
  }


  public void setInventoryCatalog(AdGetV2DataInventoryCatalog inventoryCatalog) {
    this.inventoryCatalog = inventoryCatalog;
  }


  public AdGetV2ResponseData inventoryType(List<AdGetV2DataInventoryType> inventoryType) {
    
    this.inventoryType = inventoryType;
    return this;
  }

  public AdGetV2ResponseData addInventoryTypeItem(AdGetV2DataInventoryType inventoryTypeItem) {
    if (this.inventoryType == null) {
      this.inventoryType = new ArrayList<>();
    }
    this.inventoryType.add(inventoryTypeItem);
    return this;
  }

   /**
   * 
   * @return inventoryType
  **/
  @javax.annotation.Nullable
  public List<AdGetV2DataInventoryType> getInventoryType() {
    return inventoryType;
  }


  public void setInventoryType(List<AdGetV2DataInventoryType> inventoryType) {
    this.inventoryType = inventoryType;
  }


  public AdGetV2ResponseData landingPageStayTime(Long landingPageStayTime) {
    
    this.landingPageStayTime = landingPageStayTime;
    return this;
  }

   /**
   * 
   * @return landingPageStayTime
  **/
  @javax.annotation.Nullable
  public Long getLandingPageStayTime() {
    return landingPageStayTime;
  }


  public void setLandingPageStayTime(Long landingPageStayTime) {
    this.landingPageStayTime = landingPageStayTime;
  }


  public AdGetV2ResponseData launchTargetType(AdGetV2DataLaunchTargetType launchTargetType) {
    
    this.launchTargetType = launchTargetType;
    return this;
  }

   /**
   * Get launchTargetType
   * @return launchTargetType
  **/
  @javax.annotation.Nullable
  public AdGetV2DataLaunchTargetType getLaunchTargetType() {
    return launchTargetType;
  }


  public void setLaunchTargetType(AdGetV2DataLaunchTargetType launchTargetType) {
    this.launchTargetType = launchTargetType;
  }


  public AdGetV2ResponseData lubanRoiGoal(Double lubanRoiGoal) {
    
    this.lubanRoiGoal = lubanRoiGoal;
    return this;
  }

   /**
   * 
   * @return lubanRoiGoal
  **/
  @javax.annotation.Nullable
  public Double getLubanRoiGoal() {
    return lubanRoiGoal;
  }


  public void setLubanRoiGoal(Double lubanRoiGoal) {
    this.lubanRoiGoal = lubanRoiGoal;
  }


  public AdGetV2ResponseData modifyTime(String modifyTime) {
    
    this.modifyTime = modifyTime;
    return this;
  }

   /**
   * 
   * @return modifyTime
  **/
  @javax.annotation.Nullable
  public String getModifyTime() {
    return modifyTime;
  }


  public void setModifyTime(String modifyTime) {
    this.modifyTime = modifyTime;
  }


  public AdGetV2ResponseData name(String name) {
    
    this.name = name;
    return this;
  }

   /**
   * 
   * @return name
  **/
  @javax.annotation.Nullable
  public String getName() {
    return name;
  }


  public void setName(String name) {
    this.name = name;
  }


  public AdGetV2ResponseData openUrl(String openUrl) {
    
    this.openUrl = openUrl;
    return this;
  }

   /**
   * 
   * @return openUrl
  **/
  @javax.annotation.Nullable
  public String getOpenUrl() {
    return openUrl;
  }


  public void setOpenUrl(String openUrl) {
    this.openUrl = openUrl;
  }


  public AdGetV2ResponseData openUrlParams(String openUrlParams) {
    
    this.openUrlParams = openUrlParams;
    return this;
  }

   /**
   * 
   * @return openUrlParams
  **/
  @javax.annotation.Nullable
  public String getOpenUrlParams() {
    return openUrlParams;
  }


  public void setOpenUrlParams(String openUrlParams) {
    this.openUrlParams = openUrlParams;
  }


  public AdGetV2ResponseData optStatus(AdGetV2DataOptStatus optStatus) {
    
    this.optStatus = optStatus;
    return this;
  }

   /**
   * Get optStatus
   * @return optStatus
  **/
  @javax.annotation.Nullable
  public AdGetV2DataOptStatus getOptStatus() {
    return optStatus;
  }


  public void setOptStatus(AdGetV2DataOptStatus optStatus) {
    this.optStatus = optStatus;
  }


  public AdGetV2ResponseData _package(String _package) {
    
    this._package = _package;
    return this;
  }

   /**
   * 
   * @return _package
  **/
  @javax.annotation.Nullable
  public String getPackage() {
    return _package;
  }


  public void setPackage(String _package) {
    this._package = _package;
  }


  public AdGetV2ResponseData paramsType(AdGetV2DataParamsType paramsType) {
    
    this.paramsType = paramsType;
    return this;
  }

   /**
   * Get paramsType
   * @return paramsType
  **/
  @javax.annotation.Nullable
  public AdGetV2DataParamsType getParamsType() {
    return paramsType;
  }


  public void setParamsType(AdGetV2DataParamsType paramsType) {
    this.paramsType = paramsType;
  }


  public AdGetV2ResponseData pricing(AdGetV2DataPricing pricing) {
    
    this.pricing = pricing;
    return this;
  }

   /**
   * Get pricing
   * @return pricing
  **/
  @javax.annotation.Nullable
  public AdGetV2DataPricing getPricing() {
    return pricing;
  }


  public void setPricing(AdGetV2DataPricing pricing) {
    this.pricing = pricing;
  }


  public AdGetV2ResponseData productId(String productId) {
    
    this.productId = productId;
    return this;
  }

   /**
   * 
   * @return productId
  **/
  @javax.annotation.Nullable
  public String getProductId() {
    return productId;
  }


  public void setProductId(String productId) {
    this.productId = productId;
  }


  public AdGetV2ResponseData productPlatformId(Long productPlatformId) {
    
    this.productPlatformId = productPlatformId;
    return this;
  }

   /**
   * 
   * @return productPlatformId
  **/
  @javax.annotation.Nullable
  public Long getProductPlatformId() {
    return productPlatformId;
  }


  public void setProductPlatformId(Long productPlatformId) {
    this.productPlatformId = productPlatformId;
  }


  public AdGetV2ResponseData promotionType(AdGetV2DataPromotionType promotionType) {
    
    this.promotionType = promotionType;
    return this;
  }

   /**
   * Get promotionType
   * @return promotionType
  **/
  @javax.annotation.Nullable
  public AdGetV2DataPromotionType getPromotionType() {
    return promotionType;
  }


  public void setPromotionType(AdGetV2DataPromotionType promotionType) {
    this.promotionType = promotionType;
  }


  public AdGetV2ResponseData quickAppId(Long quickAppId) {
    
    this.quickAppId = quickAppId;
    return this;
  }

   /**
   * 
   * @return quickAppId
  **/
  @javax.annotation.Nullable
  public Long getQuickAppId() {
    return quickAppId;
  }


  public void setQuickAppId(Long quickAppId) {
    this.quickAppId = quickAppId;
  }


  public AdGetV2ResponseData quickAppUrl(String quickAppUrl) {
    
    this.quickAppUrl = quickAppUrl;
    return this;
  }

   /**
   * 
   * @return quickAppUrl
  **/
  @javax.annotation.Nullable
  public String getQuickAppUrl() {
    return quickAppUrl;
  }


  public void setQuickAppUrl(String quickAppUrl) {
    this.quickAppUrl = quickAppUrl;
  }


  public AdGetV2ResponseData retentionBid(Double retentionBid) {
    
    this.retentionBid = retentionBid;
    return this;
  }

   /**
   * 
   * @return retentionBid
  **/
  @javax.annotation.Nullable
  public Double getRetentionBid() {
    return retentionBid;
  }


  public void setRetentionBid(Double retentionBid) {
    this.retentionBid = retentionBid;
  }


  public AdGetV2ResponseData roiGoal(Double roiGoal) {
    
    this.roiGoal = roiGoal;
    return this;
  }

   /**
   * 
   * @return roiGoal
  **/
  @javax.annotation.Nullable
  public Double getRoiGoal() {
    return roiGoal;
  }


  public void setRoiGoal(Double roiGoal) {
    this.roiGoal = roiGoal;
  }


  public AdGetV2ResponseData sceneInventory(AdGetV2DataSceneInventory sceneInventory) {
    
    this.sceneInventory = sceneInventory;
    return this;
  }

   /**
   * Get sceneInventory
   * @return sceneInventory
  **/
  @javax.annotation.Nullable
  public AdGetV2DataSceneInventory getSceneInventory() {
    return sceneInventory;
  }


  public void setSceneInventory(AdGetV2DataSceneInventory sceneInventory) {
    this.sceneInventory = sceneInventory;
  }


  public AdGetV2ResponseData scheduleTime(String scheduleTime) {
    
    this.scheduleTime = scheduleTime;
    return this;
  }

   /**
   * 
   * @return scheduleTime
  **/
  @javax.annotation.Nullable
  public String getScheduleTime() {
    return scheduleTime;
  }


  public void setScheduleTime(String scheduleTime) {
    this.scheduleTime = scheduleTime;
  }


  public AdGetV2ResponseData scheduleType(AdGetV2DataScheduleType scheduleType) {
    
    this.scheduleType = scheduleType;
    return this;
  }

   /**
   * Get scheduleType
   * @return scheduleType
  **/
  @javax.annotation.Nullable
  public AdGetV2DataScheduleType getScheduleType() {
    return scheduleType;
  }


  public void setScheduleType(AdGetV2DataScheduleType scheduleType) {
    this.scheduleType = scheduleType;
  }


  public AdGetV2ResponseData searchBidRatio(Double searchBidRatio) {
    
    this.searchBidRatio = searchBidRatio;
    return this;
  }

   /**
   * 
   * @return searchBidRatio
  **/
  @javax.annotation.Nullable
  public Double getSearchBidRatio() {
    return searchBidRatio;
  }


  public void setSearchBidRatio(Double searchBidRatio) {
    this.searchBidRatio = searchBidRatio;
  }


  public AdGetV2ResponseData shopInfo(AdGetV2ResponseDataShopInfo shopInfo) {
    
    this.shopInfo = shopInfo;
    return this;
  }

   /**
   * Get shopInfo
   * @return shopInfo
  **/
  @javax.annotation.Nullable
  public AdGetV2ResponseDataShopInfo getShopInfo() {
    return shopInfo;
  }


  public void setShopInfo(AdGetV2ResponseDataShopInfo shopInfo) {
    this.shopInfo = shopInfo;
  }


  public AdGetV2ResponseData smartBidType(AdGetV2DataSmartBidType smartBidType) {
    
    this.smartBidType = smartBidType;
    return this;
  }

   /**
   * Get smartBidType
   * @return smartBidType
  **/
  @javax.annotation.Nullable
  public AdGetV2DataSmartBidType getSmartBidType() {
    return smartBidType;
  }


  public void setSmartBidType(AdGetV2DataSmartBidType smartBidType) {
    this.smartBidType = smartBidType;
  }


  public AdGetV2ResponseData smartInventory(AdGetV2DataSmartInventory smartInventory) {
    
    this.smartInventory = smartInventory;
    return this;
  }

   /**
   * Get smartInventory
   * @return smartInventory
  **/
  @javax.annotation.Nullable
  public AdGetV2DataSmartInventory getSmartInventory() {
    return smartInventory;
  }


  public void setSmartInventory(AdGetV2DataSmartInventory smartInventory) {
    this.smartInventory = smartInventory;
  }


  public AdGetV2ResponseData startTime(String startTime) {
    
    this.startTime = startTime;
    return this;
  }

   /**
   * 
   * @return startTime
  **/
  @javax.annotation.Nullable
  public String getStartTime() {
    return startTime;
  }


  public void setStartTime(String startTime) {
    this.startTime = startTime;
  }


  public AdGetV2ResponseData status(AdGetV2DataStatus status) {
    
    this.status = status;
    return this;
  }

   /**
   * Get status
   * @return status
  **/
  @javax.annotation.Nullable
  public AdGetV2DataStatus getStatus() {
    return status;
  }


  public void setStatus(AdGetV2DataStatus status) {
    this.status = status;
  }


  public AdGetV2ResponseData storeType(AdGetV2DataStoreType storeType) {
    
    this.storeType = storeType;
    return this;
  }

   /**
   * Get storeType
   * @return storeType
  **/
  @javax.annotation.Nullable
  public AdGetV2DataStoreType getStoreType() {
    return storeType;
  }


  public void setStoreType(AdGetV2DataStoreType storeType) {
    this.storeType = storeType;
  }


  public AdGetV2ResponseData storeproPackId(Long storeproPackId) {
    
    this.storeproPackId = storeproPackId;
    return this;
  }

   /**
   * 
   * @return storeproPackId
  **/
  @javax.annotation.Nullable
  public Long getStoreproPackId() {
    return storeproPackId;
  }


  public void setStoreproPackId(Long storeproPackId) {
    this.storeproPackId = storeproPackId;
  }


  public AdGetV2ResponseData storeproUnit(AdGetV2DataStoreproUnit storeproUnit) {
    
    this.storeproUnit = storeproUnit;
    return this;
  }

   /**
   * Get storeproUnit
   * @return storeproUnit
  **/
  @javax.annotation.Nullable
  public AdGetV2DataStoreproUnit getStoreproUnit() {
    return storeproUnit;
  }


  public void setStoreproUnit(AdGetV2DataStoreproUnit storeproUnit) {
    this.storeproUnit = storeproUnit;
  }


  public AdGetV2ResponseData subscribeUrl(String subscribeUrl) {
    
    this.subscribeUrl = subscribeUrl;
    return this;
  }

   /**
   * 
   * @return subscribeUrl
  **/
  @javax.annotation.Nullable
  public String getSubscribeUrl() {
    return subscribeUrl;
  }


  public void setSubscribeUrl(String subscribeUrl) {
    this.subscribeUrl = subscribeUrl;
  }


  public AdGetV2ResponseData targetCvr(Long targetCvr) {
    
    this.targetCvr = targetCvr;
    return this;
  }

   /**
   * 
   * @return targetCvr
  **/
  @javax.annotation.Nullable
  public Long getTargetCvr() {
    return targetCvr;
  }


  public void setTargetCvr(Long targetCvr) {
    this.targetCvr = targetCvr;
  }


  public AdGetV2ResponseData trackUrl(List<String> trackUrl) {
    
    this.trackUrl = trackUrl;
    return this;
  }

  public AdGetV2ResponseData addTrackUrlItem(String trackUrlItem) {
    if (this.trackUrl == null) {
      this.trackUrl = new ArrayList<>();
    }
    this.trackUrl.add(trackUrlItem);
    return this;
  }

   /**
   * 
   * @return trackUrl
  **/
  @javax.annotation.Nullable
  public List<String> getTrackUrl() {
    return trackUrl;
  }


  public void setTrackUrl(List<String> trackUrl) {
    this.trackUrl = trackUrl;
  }


  public AdGetV2ResponseData trackUrlGroupId(Long trackUrlGroupId) {
    
    this.trackUrlGroupId = trackUrlGroupId;
    return this;
  }

   /**
   * 
   * @return trackUrlGroupId
  **/
  @javax.annotation.Nullable
  public Long getTrackUrlGroupId() {
    return trackUrlGroupId;
  }


  public void setTrackUrlGroupId(Long trackUrlGroupId) {
    this.trackUrlGroupId = trackUrlGroupId;
  }


  public AdGetV2ResponseData trackUrlGroupType(String trackUrlGroupType) {
    
    this.trackUrlGroupType = trackUrlGroupType;
    return this;
  }

   /**
   * 
   * @return trackUrlGroupType
  **/
  @javax.annotation.Nullable
  public String getTrackUrlGroupType() {
    return trackUrlGroupType;
  }


  public void setTrackUrlGroupType(String trackUrlGroupType) {
    this.trackUrlGroupType = trackUrlGroupType;
  }


  public AdGetV2ResponseData trackUrlSendType(AdGetV2DataTrackUrlSendType trackUrlSendType) {
    
    this.trackUrlSendType = trackUrlSendType;
    return this;
  }

   /**
   * Get trackUrlSendType
   * @return trackUrlSendType
  **/
  @javax.annotation.Nullable
  public AdGetV2DataTrackUrlSendType getTrackUrlSendType() {
    return trackUrlSendType;
  }


  public void setTrackUrlSendType(AdGetV2DataTrackUrlSendType trackUrlSendType) {
    this.trackUrlSendType = trackUrlSendType;
  }


  public AdGetV2ResponseData udShop(AdGetV2ResponseDataUdShop udShop) {
    
    this.udShop = udShop;
    return this;
  }

   /**
   * Get udShop
   * @return udShop
  **/
  @javax.annotation.Nullable
  public AdGetV2ResponseDataUdShop getUdShop() {
    return udShop;
  }


  public void setUdShop(AdGetV2ResponseDataUdShop udShop) {
    this.udShop = udShop;
  }


  public AdGetV2ResponseData ulink(String ulink) {
    
    this.ulink = ulink;
    return this;
  }

   /**
   * 
   * @return ulink
  **/
  @javax.annotation.Nullable
  public String getUlink() {
    return ulink;
  }


  public void setUlink(String ulink) {
    this.ulink = ulink;
  }


  public AdGetV2ResponseData unionVideoType(AdGetV2DataUnionVideoType unionVideoType) {
    
    this.unionVideoType = unionVideoType;
    return this;
  }

   /**
   * Get unionVideoType
   * @return unionVideoType
  **/
  @javax.annotation.Nullable
  public AdGetV2DataUnionVideoType getUnionVideoType() {
    return unionVideoType;
  }


  public void setUnionVideoType(AdGetV2DataUnionVideoType unionVideoType) {
    this.unionVideoType = unionVideoType;
  }


  public AdGetV2ResponseData valueOptimizedOpen(Long valueOptimizedOpen) {
    
    this.valueOptimizedOpen = valueOptimizedOpen;
    return this;
  }

   /**
   * 
   * @return valueOptimizedOpen
  **/
  @javax.annotation.Nullable
  public Long getValueOptimizedOpen() {
    return valueOptimizedOpen;
  }


  public void setValueOptimizedOpen(Long valueOptimizedOpen) {
    this.valueOptimizedOpen = valueOptimizedOpen;
  }


  public AdGetV2ResponseData valueOptimizedType(Long valueOptimizedType) {
    
    this.valueOptimizedType = valueOptimizedType;
    return this;
  }

   /**
   * 
   * @return valueOptimizedType
  **/
  @javax.annotation.Nullable
  public Long getValueOptimizedType() {
    return valueOptimizedType;
  }


  public void setValueOptimizedType(Long valueOptimizedType) {
    this.valueOptimizedType = valueOptimizedType;
  }


  public AdGetV2ResponseData videoPlayDoneTrackUrl(List<String> videoPlayDoneTrackUrl) {
    
    this.videoPlayDoneTrackUrl = videoPlayDoneTrackUrl;
    return this;
  }

  public AdGetV2ResponseData addVideoPlayDoneTrackUrlItem(String videoPlayDoneTrackUrlItem) {
    if (this.videoPlayDoneTrackUrl == null) {
      this.videoPlayDoneTrackUrl = new ArrayList<>();
    }
    this.videoPlayDoneTrackUrl.add(videoPlayDoneTrackUrlItem);
    return this;
  }

   /**
   * 
   * @return videoPlayDoneTrackUrl
  **/
  @javax.annotation.Nullable
  public List<String> getVideoPlayDoneTrackUrl() {
    return videoPlayDoneTrackUrl;
  }


  public void setVideoPlayDoneTrackUrl(List<String> videoPlayDoneTrackUrl) {
    this.videoPlayDoneTrackUrl = videoPlayDoneTrackUrl;
  }


  public AdGetV2ResponseData videoPlayEffectiveTrackUrl(List<String> videoPlayEffectiveTrackUrl) {
    
    this.videoPlayEffectiveTrackUrl = videoPlayEffectiveTrackUrl;
    return this;
  }

  public AdGetV2ResponseData addVideoPlayEffectiveTrackUrlItem(String videoPlayEffectiveTrackUrlItem) {
    if (this.videoPlayEffectiveTrackUrl == null) {
      this.videoPlayEffectiveTrackUrl = new ArrayList<>();
    }
    this.videoPlayEffectiveTrackUrl.add(videoPlayEffectiveTrackUrlItem);
    return this;
  }

   /**
   * 
   * @return videoPlayEffectiveTrackUrl
  **/
  @javax.annotation.Nullable
  public List<String> getVideoPlayEffectiveTrackUrl() {
    return videoPlayEffectiveTrackUrl;
  }


  public void setVideoPlayEffectiveTrackUrl(List<String> videoPlayEffectiveTrackUrl) {
    this.videoPlayEffectiveTrackUrl = videoPlayEffectiveTrackUrl;
  }


  public AdGetV2ResponseData videoPlayTrackUrl(List<String> videoPlayTrackUrl) {
    
    this.videoPlayTrackUrl = videoPlayTrackUrl;
    return this;
  }

  public AdGetV2ResponseData addVideoPlayTrackUrlItem(String videoPlayTrackUrlItem) {
    if (this.videoPlayTrackUrl == null) {
      this.videoPlayTrackUrl = new ArrayList<>();
    }
    this.videoPlayTrackUrl.add(videoPlayTrackUrlItem);
    return this;
  }

   /**
   * 
   * @return videoPlayTrackUrl
  **/
  @javax.annotation.Nullable
  public List<String> getVideoPlayTrackUrl() {
    return videoPlayTrackUrl;
  }


  public void setVideoPlayTrackUrl(List<String> videoPlayTrackUrl) {
    this.videoPlayTrackUrl = videoPlayTrackUrl;
  }



  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    AdGetV2ResponseData adGetV2ResponseData = (AdGetV2ResponseData) o;
    return Objects.equals(this.actionTrackUrl, adGetV2ResponseData.actionTrackUrl) &&
        Objects.equals(this.adCreateTime, adGetV2ResponseData.adCreateTime) &&
        Objects.equals(this.adGroupId, adGetV2ResponseData.adGroupId) &&
        Objects.equals(this.adId, adGetV2ResponseData.adId) &&
        Objects.equals(this.adModifyTime, adGetV2ResponseData.adModifyTime) &&
        Objects.equals(this.adjustCpa, adGetV2ResponseData.adjustCpa) &&
        Objects.equals(this.advancedCreativeType, adGetV2ResponseData.advancedCreativeType) &&
        Objects.equals(this.advertiserId, adGetV2ResponseData.advertiserId) &&
        Objects.equals(this.advertiserStoreIds, adGetV2ResponseData.advertiserStoreIds) &&
        Objects.equals(this.appDesc, adGetV2ResponseData.appDesc) &&
        Objects.equals(this.appIntroduction, adGetV2ResponseData.appIntroduction) &&
        Objects.equals(this.appThumbnails, adGetV2ResponseData.appThumbnails) &&
        Objects.equals(this.appType, adGetV2ResponseData.appType) &&
        Objects.equals(this.assetId, adGetV2ResponseData.assetId) &&
        Objects.equals(this.assetIds, adGetV2ResponseData.assetIds) &&
        Objects.equals(this.audience, adGetV2ResponseData.audience) &&
        Objects.equals(this.audienceExtend, adGetV2ResponseData.audienceExtend) &&
        Objects.equals(this.audiencePackageId, adGetV2ResponseData.audiencePackageId) &&
        Objects.equals(this.auditRejectReason, adGetV2ResponseData.auditRejectReason) &&
        Objects.equals(this.autoInheritSwitch, adGetV2ResponseData.autoInheritSwitch) &&
        Objects.equals(this.autoUpdateKeyword, adGetV2ResponseData.autoUpdateKeyword) &&
        Objects.equals(this.awemeAccount, adGetV2ResponseData.awemeAccount) &&
        Objects.equals(this.bid, adGetV2ResponseData.bid) &&
        Objects.equals(this.budget, adGetV2ResponseData.budget) &&
        Objects.equals(this.budgetMode, adGetV2ResponseData.budgetMode) &&
        Objects.equals(this.campaignId, adGetV2ResponseData.campaignId) &&
        Objects.equals(this.categoryType, adGetV2ResponseData.categoryType) &&
        Objects.equals(this.convertId, adGetV2ResponseData.convertId) &&
        Objects.equals(this.convertedTimeDuration, adGetV2ResponseData.convertedTimeDuration) &&
        Objects.equals(this.cpaBid, adGetV2ResponseData.cpaBid) &&
        Objects.equals(this.deepBidType, adGetV2ResponseData.deepBidType) &&
        Objects.equals(this.deepCpabid, adGetV2ResponseData.deepCpabid) &&
        Objects.equals(this.deepExternalAction, adGetV2ResponseData.deepExternalAction) &&
        Objects.equals(this.deliveryPhase, adGetV2ResponseData.deliveryPhase) &&
        Objects.equals(this.deliveryRange, adGetV2ResponseData.deliveryRange) &&
        Objects.equals(this.downloadMode, adGetV2ResponseData.downloadMode) &&
        Objects.equals(this.downloadType, adGetV2ResponseData.downloadType) &&
        Objects.equals(this.downloadUrl, adGetV2ResponseData.downloadUrl) &&
        Objects.equals(this.dpaAdtype, adGetV2ResponseData.dpaAdtype) &&
        Objects.equals(this.dpaCategories, adGetV2ResponseData.dpaCategories) &&
        Objects.equals(this.dpaCity, adGetV2ResponseData.dpaCity) &&
        Objects.equals(this.dpaExternalUrlField, adGetV2ResponseData.dpaExternalUrlField) &&
        Objects.equals(this.dpaExternalUrls, adGetV2ResponseData.dpaExternalUrls) &&
        Objects.equals(this.dpaLbs, adGetV2ResponseData.dpaLbs) &&
        Objects.equals(this.dpaOpenUrlField, adGetV2ResponseData.dpaOpenUrlField) &&
        Objects.equals(this.dpaOpenUrlType, adGetV2ResponseData.dpaOpenUrlType) &&
        Objects.equals(this.dpaOpenUrls, adGetV2ResponseData.dpaOpenUrls) &&
        Objects.equals(this.dpaProductTarget, adGetV2ResponseData.dpaProductTarget) &&
        Objects.equals(this.dpaProducts, adGetV2ResponseData.dpaProducts) &&
        Objects.equals(this.dpaProvince, adGetV2ResponseData.dpaProvince) &&
        Objects.equals(this.endTime, adGetV2ResponseData.endTime) &&
        Objects.equals(this.externalAction, adGetV2ResponseData.externalAction) &&
        Objects.equals(this.externalActions, adGetV2ResponseData.externalActions) &&
        Objects.equals(this.externalUrl, adGetV2ResponseData.externalUrl) &&
        Objects.equals(this.externalUrlParams, adGetV2ResponseData.externalUrlParams) &&
        Objects.equals(this.feedDeliverySearch, adGetV2ResponseData.feedDeliverySearch) &&
        Objects.equals(this.flowControlMode, adGetV2ResponseData.flowControlMode) &&
        Objects.equals(this.formId, adGetV2ResponseData.formId) &&
        Objects.equals(this.formIndex, adGetV2ResponseData.formIndex) &&
        Objects.equals(this.gamePackageBatchId, adGetV2ResponseData.gamePackageBatchId) &&
        Objects.equals(this.gamePackageDesc, adGetV2ResponseData.gamePackageDesc) &&
        Objects.equals(this.gamePackageThumbnailIds, adGetV2ResponseData.gamePackageThumbnailIds) &&
        Objects.equals(this.hideIfConverted, adGetV2ResponseData.hideIfConverted) &&
        Objects.equals(this.hideIfExists, adGetV2ResponseData.hideIfExists) &&
        Objects.equals(this.id, adGetV2ResponseData.id) &&
        Objects.equals(this.inheritType, adGetV2ResponseData.inheritType) &&
        Objects.equals(this.inheritedAdvertiserId, adGetV2ResponseData.inheritedAdvertiserId) &&
        Objects.equals(this.intelligentFlowSwitch, adGetV2ResponseData.intelligentFlowSwitch) &&
        Objects.equals(this.inventoryCatalog, adGetV2ResponseData.inventoryCatalog) &&
        Objects.equals(this.inventoryType, adGetV2ResponseData.inventoryType) &&
        Objects.equals(this.landingPageStayTime, adGetV2ResponseData.landingPageStayTime) &&
        Objects.equals(this.launchTargetType, adGetV2ResponseData.launchTargetType) &&
        Objects.equals(this.lubanRoiGoal, adGetV2ResponseData.lubanRoiGoal) &&
        Objects.equals(this.modifyTime, adGetV2ResponseData.modifyTime) &&
        Objects.equals(this.name, adGetV2ResponseData.name) &&
        Objects.equals(this.openUrl, adGetV2ResponseData.openUrl) &&
        Objects.equals(this.openUrlParams, adGetV2ResponseData.openUrlParams) &&
        Objects.equals(this.optStatus, adGetV2ResponseData.optStatus) &&
        Objects.equals(this._package, adGetV2ResponseData._package) &&
        Objects.equals(this.paramsType, adGetV2ResponseData.paramsType) &&
        Objects.equals(this.pricing, adGetV2ResponseData.pricing) &&
        Objects.equals(this.productId, adGetV2ResponseData.productId) &&
        Objects.equals(this.productPlatformId, adGetV2ResponseData.productPlatformId) &&
        Objects.equals(this.promotionType, adGetV2ResponseData.promotionType) &&
        Objects.equals(this.quickAppId, adGetV2ResponseData.quickAppId) &&
        Objects.equals(this.quickAppUrl, adGetV2ResponseData.quickAppUrl) &&
        Objects.equals(this.retentionBid, adGetV2ResponseData.retentionBid) &&
        Objects.equals(this.roiGoal, adGetV2ResponseData.roiGoal) &&
        Objects.equals(this.sceneInventory, adGetV2ResponseData.sceneInventory) &&
        Objects.equals(this.scheduleTime, adGetV2ResponseData.scheduleTime) &&
        Objects.equals(this.scheduleType, adGetV2ResponseData.scheduleType) &&
        Objects.equals(this.searchBidRatio, adGetV2ResponseData.searchBidRatio) &&
        Objects.equals(this.shopInfo, adGetV2ResponseData.shopInfo) &&
        Objects.equals(this.smartBidType, adGetV2ResponseData.smartBidType) &&
        Objects.equals(this.smartInventory, adGetV2ResponseData.smartInventory) &&
        Objects.equals(this.startTime, adGetV2ResponseData.startTime) &&
        Objects.equals(this.status, adGetV2ResponseData.status) &&
        Objects.equals(this.storeType, adGetV2ResponseData.storeType) &&
        Objects.equals(this.storeproPackId, adGetV2ResponseData.storeproPackId) &&
        Objects.equals(this.storeproUnit, adGetV2ResponseData.storeproUnit) &&
        Objects.equals(this.subscribeUrl, adGetV2ResponseData.subscribeUrl) &&
        Objects.equals(this.targetCvr, adGetV2ResponseData.targetCvr) &&
        Objects.equals(this.trackUrl, adGetV2ResponseData.trackUrl) &&
        Objects.equals(this.trackUrlGroupId, adGetV2ResponseData.trackUrlGroupId) &&
        Objects.equals(this.trackUrlGroupType, adGetV2ResponseData.trackUrlGroupType) &&
        Objects.equals(this.trackUrlSendType, adGetV2ResponseData.trackUrlSendType) &&
        Objects.equals(this.udShop, adGetV2ResponseData.udShop) &&
        Objects.equals(this.ulink, adGetV2ResponseData.ulink) &&
        Objects.equals(this.unionVideoType, adGetV2ResponseData.unionVideoType) &&
        Objects.equals(this.valueOptimizedOpen, adGetV2ResponseData.valueOptimizedOpen) &&
        Objects.equals(this.valueOptimizedType, adGetV2ResponseData.valueOptimizedType) &&
        Objects.equals(this.videoPlayDoneTrackUrl, adGetV2ResponseData.videoPlayDoneTrackUrl) &&
        Objects.equals(this.videoPlayEffectiveTrackUrl, adGetV2ResponseData.videoPlayEffectiveTrackUrl) &&
        Objects.equals(this.videoPlayTrackUrl, adGetV2ResponseData.videoPlayTrackUrl);
  }

  @Override
  public int hashCode() {
    return Objects.hash(actionTrackUrl, adCreateTime, adGroupId, adId, adModifyTime, adjustCpa, advancedCreativeType, advertiserId, advertiserStoreIds, appDesc, appIntroduction, appThumbnails, appType, assetId, assetIds, audience, audienceExtend, audiencePackageId, auditRejectReason, autoInheritSwitch, autoUpdateKeyword, awemeAccount, bid, budget, budgetMode, campaignId, categoryType, convertId, convertedTimeDuration, cpaBid, deepBidType, deepCpabid, deepExternalAction, deliveryPhase, deliveryRange, downloadMode, downloadType, downloadUrl, dpaAdtype, dpaCategories, dpaCity, dpaExternalUrlField, dpaExternalUrls, dpaLbs, dpaOpenUrlField, dpaOpenUrlType, dpaOpenUrls, dpaProductTarget, dpaProducts, dpaProvince, endTime, externalAction, externalActions, externalUrl, externalUrlParams, feedDeliverySearch, flowControlMode, formId, formIndex, gamePackageBatchId, gamePackageDesc, gamePackageThumbnailIds, hideIfConverted, hideIfExists, id, inheritType, inheritedAdvertiserId, intelligentFlowSwitch, inventoryCatalog, inventoryType, landingPageStayTime, launchTargetType, lubanRoiGoal, modifyTime, name, openUrl, openUrlParams, optStatus, _package, paramsType, pricing, productId, productPlatformId, promotionType, quickAppId, quickAppUrl, retentionBid, roiGoal, sceneInventory, scheduleTime, scheduleType, searchBidRatio, shopInfo, smartBidType, smartInventory, startTime, status, storeType, storeproPackId, storeproUnit, subscribeUrl, targetCvr, trackUrl, trackUrlGroupId, trackUrlGroupType, trackUrlSendType, udShop, ulink, unionVideoType, valueOptimizedOpen, valueOptimizedType, videoPlayDoneTrackUrl, videoPlayEffectiveTrackUrl, videoPlayTrackUrl);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class AdGetV2ResponseData {\n");
    sb.append("    actionTrackUrl: ").append(toIndentedString(actionTrackUrl)).append("\n");
    sb.append("    adCreateTime: ").append(toIndentedString(adCreateTime)).append("\n");
    sb.append("    adGroupId: ").append(toIndentedString(adGroupId)).append("\n");
    sb.append("    adId: ").append(toIndentedString(adId)).append("\n");
    sb.append("    adModifyTime: ").append(toIndentedString(adModifyTime)).append("\n");
    sb.append("    adjustCpa: ").append(toIndentedString(adjustCpa)).append("\n");
    sb.append("    advancedCreativeType: ").append(toIndentedString(advancedCreativeType)).append("\n");
    sb.append("    advertiserId: ").append(toIndentedString(advertiserId)).append("\n");
    sb.append("    advertiserStoreIds: ").append(toIndentedString(advertiserStoreIds)).append("\n");
    sb.append("    appDesc: ").append(toIndentedString(appDesc)).append("\n");
    sb.append("    appIntroduction: ").append(toIndentedString(appIntroduction)).append("\n");
    sb.append("    appThumbnails: ").append(toIndentedString(appThumbnails)).append("\n");
    sb.append("    appType: ").append(toIndentedString(appType)).append("\n");
    sb.append("    assetId: ").append(toIndentedString(assetId)).append("\n");
    sb.append("    assetIds: ").append(toIndentedString(assetIds)).append("\n");
    sb.append("    audience: ").append(toIndentedString(audience)).append("\n");
    sb.append("    audienceExtend: ").append(toIndentedString(audienceExtend)).append("\n");
    sb.append("    audiencePackageId: ").append(toIndentedString(audiencePackageId)).append("\n");
    sb.append("    auditRejectReason: ").append(toIndentedString(auditRejectReason)).append("\n");
    sb.append("    autoInheritSwitch: ").append(toIndentedString(autoInheritSwitch)).append("\n");
    sb.append("    autoUpdateKeyword: ").append(toIndentedString(autoUpdateKeyword)).append("\n");
    sb.append("    awemeAccount: ").append(toIndentedString(awemeAccount)).append("\n");
    sb.append("    bid: ").append(toIndentedString(bid)).append("\n");
    sb.append("    budget: ").append(toIndentedString(budget)).append("\n");
    sb.append("    budgetMode: ").append(toIndentedString(budgetMode)).append("\n");
    sb.append("    campaignId: ").append(toIndentedString(campaignId)).append("\n");
    sb.append("    categoryType: ").append(toIndentedString(categoryType)).append("\n");
    sb.append("    convertId: ").append(toIndentedString(convertId)).append("\n");
    sb.append("    convertedTimeDuration: ").append(toIndentedString(convertedTimeDuration)).append("\n");
    sb.append("    cpaBid: ").append(toIndentedString(cpaBid)).append("\n");
    sb.append("    deepBidType: ").append(toIndentedString(deepBidType)).append("\n");
    sb.append("    deepCpabid: ").append(toIndentedString(deepCpabid)).append("\n");
    sb.append("    deepExternalAction: ").append(toIndentedString(deepExternalAction)).append("\n");
    sb.append("    deliveryPhase: ").append(toIndentedString(deliveryPhase)).append("\n");
    sb.append("    deliveryRange: ").append(toIndentedString(deliveryRange)).append("\n");
    sb.append("    downloadMode: ").append(toIndentedString(downloadMode)).append("\n");
    sb.append("    downloadType: ").append(toIndentedString(downloadType)).append("\n");
    sb.append("    downloadUrl: ").append(toIndentedString(downloadUrl)).append("\n");
    sb.append("    dpaAdtype: ").append(toIndentedString(dpaAdtype)).append("\n");
    sb.append("    dpaCategories: ").append(toIndentedString(dpaCategories)).append("\n");
    sb.append("    dpaCity: ").append(toIndentedString(dpaCity)).append("\n");
    sb.append("    dpaExternalUrlField: ").append(toIndentedString(dpaExternalUrlField)).append("\n");
    sb.append("    dpaExternalUrls: ").append(toIndentedString(dpaExternalUrls)).append("\n");
    sb.append("    dpaLbs: ").append(toIndentedString(dpaLbs)).append("\n");
    sb.append("    dpaOpenUrlField: ").append(toIndentedString(dpaOpenUrlField)).append("\n");
    sb.append("    dpaOpenUrlType: ").append(toIndentedString(dpaOpenUrlType)).append("\n");
    sb.append("    dpaOpenUrls: ").append(toIndentedString(dpaOpenUrls)).append("\n");
    sb.append("    dpaProductTarget: ").append(toIndentedString(dpaProductTarget)).append("\n");
    sb.append("    dpaProducts: ").append(toIndentedString(dpaProducts)).append("\n");
    sb.append("    dpaProvince: ").append(toIndentedString(dpaProvince)).append("\n");
    sb.append("    endTime: ").append(toIndentedString(endTime)).append("\n");
    sb.append("    externalAction: ").append(toIndentedString(externalAction)).append("\n");
    sb.append("    externalActions: ").append(toIndentedString(externalActions)).append("\n");
    sb.append("    externalUrl: ").append(toIndentedString(externalUrl)).append("\n");
    sb.append("    externalUrlParams: ").append(toIndentedString(externalUrlParams)).append("\n");
    sb.append("    feedDeliverySearch: ").append(toIndentedString(feedDeliverySearch)).append("\n");
    sb.append("    flowControlMode: ").append(toIndentedString(flowControlMode)).append("\n");
    sb.append("    formId: ").append(toIndentedString(formId)).append("\n");
    sb.append("    formIndex: ").append(toIndentedString(formIndex)).append("\n");
    sb.append("    gamePackageBatchId: ").append(toIndentedString(gamePackageBatchId)).append("\n");
    sb.append("    gamePackageDesc: ").append(toIndentedString(gamePackageDesc)).append("\n");
    sb.append("    gamePackageThumbnailIds: ").append(toIndentedString(gamePackageThumbnailIds)).append("\n");
    sb.append("    hideIfConverted: ").append(toIndentedString(hideIfConverted)).append("\n");
    sb.append("    hideIfExists: ").append(toIndentedString(hideIfExists)).append("\n");
    sb.append("    id: ").append(toIndentedString(id)).append("\n");
    sb.append("    inheritType: ").append(toIndentedString(inheritType)).append("\n");
    sb.append("    inheritedAdvertiserId: ").append(toIndentedString(inheritedAdvertiserId)).append("\n");
    sb.append("    intelligentFlowSwitch: ").append(toIndentedString(intelligentFlowSwitch)).append("\n");
    sb.append("    inventoryCatalog: ").append(toIndentedString(inventoryCatalog)).append("\n");
    sb.append("    inventoryType: ").append(toIndentedString(inventoryType)).append("\n");
    sb.append("    landingPageStayTime: ").append(toIndentedString(landingPageStayTime)).append("\n");
    sb.append("    launchTargetType: ").append(toIndentedString(launchTargetType)).append("\n");
    sb.append("    lubanRoiGoal: ").append(toIndentedString(lubanRoiGoal)).append("\n");
    sb.append("    modifyTime: ").append(toIndentedString(modifyTime)).append("\n");
    sb.append("    name: ").append(toIndentedString(name)).append("\n");
    sb.append("    openUrl: ").append(toIndentedString(openUrl)).append("\n");
    sb.append("    openUrlParams: ").append(toIndentedString(openUrlParams)).append("\n");
    sb.append("    optStatus: ").append(toIndentedString(optStatus)).append("\n");
    sb.append("    _package: ").append(toIndentedString(_package)).append("\n");
    sb.append("    paramsType: ").append(toIndentedString(paramsType)).append("\n");
    sb.append("    pricing: ").append(toIndentedString(pricing)).append("\n");
    sb.append("    productId: ").append(toIndentedString(productId)).append("\n");
    sb.append("    productPlatformId: ").append(toIndentedString(productPlatformId)).append("\n");
    sb.append("    promotionType: ").append(toIndentedString(promotionType)).append("\n");
    sb.append("    quickAppId: ").append(toIndentedString(quickAppId)).append("\n");
    sb.append("    quickAppUrl: ").append(toIndentedString(quickAppUrl)).append("\n");
    sb.append("    retentionBid: ").append(toIndentedString(retentionBid)).append("\n");
    sb.append("    roiGoal: ").append(toIndentedString(roiGoal)).append("\n");
    sb.append("    sceneInventory: ").append(toIndentedString(sceneInventory)).append("\n");
    sb.append("    scheduleTime: ").append(toIndentedString(scheduleTime)).append("\n");
    sb.append("    scheduleType: ").append(toIndentedString(scheduleType)).append("\n");
    sb.append("    searchBidRatio: ").append(toIndentedString(searchBidRatio)).append("\n");
    sb.append("    shopInfo: ").append(toIndentedString(shopInfo)).append("\n");
    sb.append("    smartBidType: ").append(toIndentedString(smartBidType)).append("\n");
    sb.append("    smartInventory: ").append(toIndentedString(smartInventory)).append("\n");
    sb.append("    startTime: ").append(toIndentedString(startTime)).append("\n");
    sb.append("    status: ").append(toIndentedString(status)).append("\n");
    sb.append("    storeType: ").append(toIndentedString(storeType)).append("\n");
    sb.append("    storeproPackId: ").append(toIndentedString(storeproPackId)).append("\n");
    sb.append("    storeproUnit: ").append(toIndentedString(storeproUnit)).append("\n");
    sb.append("    subscribeUrl: ").append(toIndentedString(subscribeUrl)).append("\n");
    sb.append("    targetCvr: ").append(toIndentedString(targetCvr)).append("\n");
    sb.append("    trackUrl: ").append(toIndentedString(trackUrl)).append("\n");
    sb.append("    trackUrlGroupId: ").append(toIndentedString(trackUrlGroupId)).append("\n");
    sb.append("    trackUrlGroupType: ").append(toIndentedString(trackUrlGroupType)).append("\n");
    sb.append("    trackUrlSendType: ").append(toIndentedString(trackUrlSendType)).append("\n");
    sb.append("    udShop: ").append(toIndentedString(udShop)).append("\n");
    sb.append("    ulink: ").append(toIndentedString(ulink)).append("\n");
    sb.append("    unionVideoType: ").append(toIndentedString(unionVideoType)).append("\n");
    sb.append("    valueOptimizedOpen: ").append(toIndentedString(valueOptimizedOpen)).append("\n");
    sb.append("    valueOptimizedType: ").append(toIndentedString(valueOptimizedType)).append("\n");
    sb.append("    videoPlayDoneTrackUrl: ").append(toIndentedString(videoPlayDoneTrackUrl)).append("\n");
    sb.append("    videoPlayEffectiveTrackUrl: ").append(toIndentedString(videoPlayEffectiveTrackUrl)).append("\n");
    sb.append("    videoPlayTrackUrl: ").append(toIndentedString(videoPlayTrackUrl)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }


  public static HashSet<String> openapiFields;
  public static HashSet<String> openapiRequiredFields;

  static {
    // a set of all properties/fields (JSON key names)
    openapiFields = new HashSet<String>();
    openapiFields.add("action_track_url");
    openapiFields.add("ad_create_time");
    openapiFields.add("ad_group_id");
    openapiFields.add("ad_id");
    openapiFields.add("ad_modify_time");
    openapiFields.add("adjust_cpa");
    openapiFields.add("advanced_creative_type");
    openapiFields.add("advertiser_id");
    openapiFields.add("advertiser_store_ids");
    openapiFields.add("app_desc");
    openapiFields.add("app_introduction");
    openapiFields.add("app_thumbnails");
    openapiFields.add("app_type");
    openapiFields.add("asset_id");
    openapiFields.add("asset_ids");
    openapiFields.add("audience");
    openapiFields.add("audience_extend");
    openapiFields.add("audience_package_id");
    openapiFields.add("audit_reject_reason");
    openapiFields.add("auto_inherit_switch");
    openapiFields.add("auto_update_keyword");
    openapiFields.add("aweme_account");
    openapiFields.add("bid");
    openapiFields.add("budget");
    openapiFields.add("budget_mode");
    openapiFields.add("campaign_id");
    openapiFields.add("category_type");
    openapiFields.add("convert_id");
    openapiFields.add("converted_time_duration");
    openapiFields.add("cpa_bid");
    openapiFields.add("deep_bid_type");
    openapiFields.add("deep_cpabid");
    openapiFields.add("deep_external_action");
    openapiFields.add("delivery_phase");
    openapiFields.add("delivery_range");
    openapiFields.add("download_mode");
    openapiFields.add("download_type");
    openapiFields.add("download_url");
    openapiFields.add("dpa_adtype");
    openapiFields.add("dpa_categories");
    openapiFields.add("dpa_city");
    openapiFields.add("dpa_external_url_field");
    openapiFields.add("dpa_external_urls");
    openapiFields.add("dpa_lbs");
    openapiFields.add("dpa_open_url_field");
    openapiFields.add("dpa_open_url_type");
    openapiFields.add("dpa_open_urls");
    openapiFields.add("dpa_product_target");
    openapiFields.add("dpa_products");
    openapiFields.add("dpa_province");
    openapiFields.add("end_time");
    openapiFields.add("external_action");
    openapiFields.add("external_actions");
    openapiFields.add("external_url");
    openapiFields.add("external_url_params");
    openapiFields.add("feed_delivery_search");
    openapiFields.add("flow_control_mode");
    openapiFields.add("form_id");
    openapiFields.add("form_index");
    openapiFields.add("game_package_batch_id");
    openapiFields.add("game_package_desc");
    openapiFields.add("game_package_thumbnail_ids");
    openapiFields.add("hide_if_converted");
    openapiFields.add("hide_if_exists");
    openapiFields.add("id");
    openapiFields.add("inherit_type");
    openapiFields.add("inherited_advertiser_id");
    openapiFields.add("intelligent_flow_switch");
    openapiFields.add("inventory_catalog");
    openapiFields.add("inventory_type");
    openapiFields.add("landing_page_stay_time");
    openapiFields.add("launch_target_type");
    openapiFields.add("luban_roi_goal");
    openapiFields.add("modify_time");
    openapiFields.add("name");
    openapiFields.add("open_url");
    openapiFields.add("open_url_params");
    openapiFields.add("opt_status");
    openapiFields.add("package");
    openapiFields.add("params_type");
    openapiFields.add("pricing");
    openapiFields.add("product_id");
    openapiFields.add("product_platform_id");
    openapiFields.add("promotion_type");
    openapiFields.add("quick_app_id");
    openapiFields.add("quick_app_url");
    openapiFields.add("retention_bid");
    openapiFields.add("roi_goal");
    openapiFields.add("scene_inventory");
    openapiFields.add("schedule_time");
    openapiFields.add("schedule_type");
    openapiFields.add("search_bid_ratio");
    openapiFields.add("shop_info");
    openapiFields.add("smart_bid_type");
    openapiFields.add("smart_inventory");
    openapiFields.add("start_time");
    openapiFields.add("status");
    openapiFields.add("store_type");
    openapiFields.add("storepro_pack_id");
    openapiFields.add("storepro_unit");
    openapiFields.add("subscribe_url");
    openapiFields.add("target_cvr");
    openapiFields.add("track_url");
    openapiFields.add("track_url_group_id");
    openapiFields.add("track_url_group_type");
    openapiFields.add("track_url_send_type");
    openapiFields.add("ud_shop");
    openapiFields.add("ulink");
    openapiFields.add("union_video_type");
    openapiFields.add("value_optimized_open");
    openapiFields.add("value_optimized_type");
    openapiFields.add("video_play_done_track_url");
    openapiFields.add("video_play_effective_track_url");
    openapiFields.add("video_play_track_url");

    // a set of required properties/fields (JSON key names)
    openapiRequiredFields = new HashSet<String>();
    openapiRequiredFields.add("budget");
  }


  public static class CustomTypeAdapterFactory implements TypeAdapterFactory {
    @SuppressWarnings("unchecked")
    @Override
    public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
       if (!AdGetV2ResponseData.class.isAssignableFrom(type.getRawType())) {
         return null; // this class only serializes 'AdGetV2ResponseData' and its subtypes
       }
       final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
       final TypeAdapter<AdGetV2ResponseData> thisAdapter
                        = gson.getDelegateAdapter(this, TypeToken.get(AdGetV2ResponseData.class));

       return (TypeAdapter<T>) new TypeAdapter<AdGetV2ResponseData>() {
           @Override
           public void write(JsonWriter out, AdGetV2ResponseData value) throws IOException {
             JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject();
             elementAdapter.write(out, obj);
           }

           @Override
           public AdGetV2ResponseData read(JsonReader in) throws IOException {
             JsonElement jsonElement = elementAdapter.read(in);
             return thisAdapter.fromJsonTree(jsonElement);
           }

       }.nullSafe();
    }
  }

 /**
  * Create an instance of AdGetV2ResponseData given an JSON string
  *
  * @param jsonString JSON string
  * @return An instance of AdGetV2ResponseData
  * @throws IOException if the JSON string is invalid with respect to AdGetV2ResponseData
  */
  public static AdGetV2ResponseData fromJson(String jsonString) throws IOException {
    return JSON.getGson().fromJson(jsonString, AdGetV2ResponseData.class);
  }

 /**
  * Convert an instance of AdGetV2ResponseData to an JSON string
  *
  * @return JSON string
  */
  public String toJson() {
    return JSON.getGson().toJson(this);
  }
}

