/*
 * 支付宝开放平台API
 * 支付宝开放平台v3协议文档
 *
 * The version of the OpenAPI document: 2023-08-14
 * 
 *
 * 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.alipay.v3.model;

import java.util.Objects;
import java.util.Arrays;
import com.alipay.v3.model.BusinessItem;
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 io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
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 java.lang.reflect.Type;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import com.alipay.v3.JSON;

/**
 * AlipayEcoMycarParkingParkinglotinfoUpdateModel
 */
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
public class AlipayEcoMycarParkingParkinglotinfoUpdateModel {
  public static final String SERIALIZED_NAME_AGENT_ID = "agent_id";
  @SerializedName(SERIALIZED_NAME_AGENT_ID)
  private String agentId;

  public static final String SERIALIZED_NAME_BUSINESS_ISV = "business_isv";
  @SerializedName(SERIALIZED_NAME_BUSINESS_ISV)
  private List<BusinessItem> businessIsv = null;

  public static final String SERIALIZED_NAME_CITY_ID = "city_id";
  @SerializedName(SERIALIZED_NAME_CITY_ID)
  private String cityId;

  public static final String SERIALIZED_NAME_CONTACT_ALIPAY = "contact_alipay";
  @SerializedName(SERIALIZED_NAME_CONTACT_ALIPAY)
  private String contactAlipay;

  public static final String SERIALIZED_NAME_CONTACT_EMAIL = "contact_email";
  @SerializedName(SERIALIZED_NAME_CONTACT_EMAIL)
  private String contactEmail;

  public static final String SERIALIZED_NAME_CONTACT_MOBILE = "contact_mobile";
  @SerializedName(SERIALIZED_NAME_CONTACT_MOBILE)
  private String contactMobile;

  public static final String SERIALIZED_NAME_CONTACT_NAME = "contact_name";
  @SerializedName(SERIALIZED_NAME_CONTACT_NAME)
  private String contactName;

  public static final String SERIALIZED_NAME_CONTACT_TEL = "contact_tel";
  @SerializedName(SERIALIZED_NAME_CONTACT_TEL)
  private String contactTel;

  public static final String SERIALIZED_NAME_CONTACT_WEIXIN = "contact_weixin";
  @SerializedName(SERIALIZED_NAME_CONTACT_WEIXIN)
  private String contactWeixin;

  public static final String SERIALIZED_NAME_EQUIPMENT_NAME = "equipment_name";
  @SerializedName(SERIALIZED_NAME_EQUIPMENT_NAME)
  private String equipmentName;

  public static final String SERIALIZED_NAME_IS_SUPPORT_INVOICE = "is_support_invoice";
  @SerializedName(SERIALIZED_NAME_IS_SUPPORT_INVOICE)
  private String isSupportInvoice;

  public static final String SERIALIZED_NAME_ISV_MOBILE = "isv_mobile";
  @SerializedName(SERIALIZED_NAME_ISV_MOBILE)
  private String isvMobile;

  public static final String SERIALIZED_NAME_LATITUDE = "latitude";
  @SerializedName(SERIALIZED_NAME_LATITUDE)
  private String latitude;

  public static final String SERIALIZED_NAME_LONGITUDE = "longitude";
  @SerializedName(SERIALIZED_NAME_LONGITUDE)
  private String longitude;

  public static final String SERIALIZED_NAME_MCHNT_ID = "mchnt_id";
  @SerializedName(SERIALIZED_NAME_MCHNT_ID)
  private String mchntId;

  public static final String SERIALIZED_NAME_ORIGINAL_ISV_APPID = "original_isv_appid";
  @SerializedName(SERIALIZED_NAME_ORIGINAL_ISV_APPID)
  private String originalIsvAppid;

  public static final String SERIALIZED_NAME_ORIGINAL_ISV_MOBILE = "original_isv_mobile";
  @SerializedName(SERIALIZED_NAME_ORIGINAL_ISV_MOBILE)
  private String originalIsvMobile;

  public static final String SERIALIZED_NAME_ORIGINAL_ISV_NAME = "original_isv_name";
  @SerializedName(SERIALIZED_NAME_ORIGINAL_ISV_NAME)
  private String originalIsvName;

  public static final String SERIALIZED_NAME_ORIGINAL_ISV_PID = "original_isv_pid";
  @SerializedName(SERIALIZED_NAME_ORIGINAL_ISV_PID)
  private String originalIsvPid;

  public static final String SERIALIZED_NAME_OUT_PARKING_ID = "out_parking_id";
  @SerializedName(SERIALIZED_NAME_OUT_PARKING_ID)
  private String outParkingId;

  public static final String SERIALIZED_NAME_PARKING_ADDRESS = "parking_address";
  @SerializedName(SERIALIZED_NAME_PARKING_ADDRESS)
  private String parkingAddress;

  public static final String SERIALIZED_NAME_PARKING_END_TIME = "parking_end_time";
  @SerializedName(SERIALIZED_NAME_PARKING_END_TIME)
  private String parkingEndTime;

  public static final String SERIALIZED_NAME_PARKING_FEE_DESCRIPTION = "parking_fee_description";
  @SerializedName(SERIALIZED_NAME_PARKING_FEE_DESCRIPTION)
  private String parkingFeeDescription;

  public static final String SERIALIZED_NAME_PARKING_FEE_DESCRIPTION_IMG = "parking_fee_description_img";
  @SerializedName(SERIALIZED_NAME_PARKING_FEE_DESCRIPTION_IMG)
  private String parkingFeeDescriptionImg;

  public static final String SERIALIZED_NAME_PARKING_ID = "parking_id";
  @SerializedName(SERIALIZED_NAME_PARKING_ID)
  private String parkingId;

  public static final String SERIALIZED_NAME_PARKING_LOT_TYPE = "parking_lot_type";
  @SerializedName(SERIALIZED_NAME_PARKING_LOT_TYPE)
  private String parkingLotType;

  public static final String SERIALIZED_NAME_PARKING_MOBILE = "parking_mobile";
  @SerializedName(SERIALIZED_NAME_PARKING_MOBILE)
  private String parkingMobile;

  public static final String SERIALIZED_NAME_PARKING_NAME = "parking_name";
  @SerializedName(SERIALIZED_NAME_PARKING_NAME)
  private String parkingName;

  public static final String SERIALIZED_NAME_PARKING_NUMBER = "parking_number";
  @SerializedName(SERIALIZED_NAME_PARKING_NUMBER)
  private String parkingNumber;

  public static final String SERIALIZED_NAME_PARKING_POIID = "parking_poiid";
  @SerializedName(SERIALIZED_NAME_PARKING_POIID)
  private String parkingPoiid;

  public static final String SERIALIZED_NAME_PARKING_START_TIME = "parking_start_time";
  @SerializedName(SERIALIZED_NAME_PARKING_START_TIME)
  private String parkingStartTime;

  public static final String SERIALIZED_NAME_PARKING_TYPE = "parking_type";
  @SerializedName(SERIALIZED_NAME_PARKING_TYPE)
  private String parkingType;

  public static final String SERIALIZED_NAME_PAY_TYPE = "pay_type";
  @SerializedName(SERIALIZED_NAME_PAY_TYPE)
  private String payType;

  public static final String SERIALIZED_NAME_PAYMENT_MODE = "payment_mode";
  @SerializedName(SERIALIZED_NAME_PAYMENT_MODE)
  private String paymentMode;

  public static final String SERIALIZED_NAME_SHOPINGMALL_ID = "shopingmall_id";
  @SerializedName(SERIALIZED_NAME_SHOPINGMALL_ID)
  private String shopingmallId;

  public static final String SERIALIZED_NAME_SUM_SPACE = "sum_space";
  @SerializedName(SERIALIZED_NAME_SUM_SPACE)
  private String sumSpace;

  public static final String SERIALIZED_NAME_SUPPORT_AFTER_PAY = "support_after_pay";
  @SerializedName(SERIALIZED_NAME_SUPPORT_AFTER_PAY)
  private String supportAfterPay;

  public static final String SERIALIZED_NAME_TIME_OUT = "time_out";
  @SerializedName(SERIALIZED_NAME_TIME_OUT)
  private String timeOut;

  public AlipayEcoMycarParkingParkinglotinfoUpdateModel() { 
  }

  public AlipayEcoMycarParkingParkinglotinfoUpdateModel agentId(String agentId) {
    
    this.agentId = agentId;
    return this;
  }

   /**
   * 服务商ID（2088开头的16位纯数字），由服务商提供给ISV
   * @return agentId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "2088456825942563", value = "服务商ID（2088开头的16位纯数字），由服务商提供给ISV")

  public String getAgentId() {
    return agentId;
  }


  public void setAgentId(String agentId) {
    this.agentId = agentId;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel businessIsv(List<BusinessItem> businessIsv) {
    
    this.businessIsv = businessIsv;
    return this;
  }

  public AlipayEcoMycarParkingParkinglotinfoUpdateModel addBusinessIsvItem(BusinessItem businessIsvItem) {
    if (this.businessIsv == null) {
      this.businessIsv = new ArrayList<>();
    }
    this.businessIsv.add(businessIsvItem);
    return this;
  }

   /**
   * 车场业务归属列表
   * @return businessIsv
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "车场业务归属列表")

  public List<BusinessItem> getBusinessIsv() {
    return businessIsv;
  }


  public void setBusinessIsv(List<BusinessItem> businessIsv) {
    this.businessIsv = businessIsv;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel cityId(String cityId) {
    
    this.cityId = cityId;
    return this;
  }

   /**
   * 该参数废弃
   * @return cityId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "110101", value = "该参数废弃")

  public String getCityId() {
    return cityId;
  }


  public void setCityId(String cityId) {
    this.cityId = cityId;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel contactAlipay(String contactAlipay) {
    
    this.contactAlipay = contactAlipay;
    return this;
  }

   /**
   * 该参数废弃
   * @return contactAlipay
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "189xxxxxxxxxxx", value = "该参数废弃")

  public String getContactAlipay() {
    return contactAlipay;
  }


  public void setContactAlipay(String contactAlipay) {
    this.contactAlipay = contactAlipay;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel contactEmail(String contactEmail) {
    
    this.contactEmail = contactEmail;
    return this;
  }

   /**
   * 该参数废弃
   * @return contactEmail
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "alipay@alipay.com", value = "该参数废弃")

  public String getContactEmail() {
    return contactEmail;
  }


  public void setContactEmail(String contactEmail) {
    this.contactEmail = contactEmail;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel contactMobile(String contactMobile) {
    
    this.contactMobile = contactMobile;
    return this;
  }

   /**
   * 该参数废弃
   * @return contactMobile
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "18912345678", value = "该参数废弃")

  public String getContactMobile() {
    return contactMobile;
  }


  public void setContactMobile(String contactMobile) {
    this.contactMobile = contactMobile;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel contactName(String contactName) {
    
    this.contactName = contactName;
    return this;
  }

   /**
   * 该参数废弃
   * @return contactName
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "张三", value = "该参数废弃")

  public String getContactName() {
    return contactName;
  }


  public void setContactName(String contactName) {
    this.contactName = contactName;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel contactTel(String contactTel) {
    
    this.contactTel = contactTel;
    return this;
  }

   /**
   * 该参数废弃
   * @return contactTel
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "0571xxxxxxxx", value = "该参数废弃")

  public String getContactTel() {
    return contactTel;
  }


  public void setContactTel(String contactTel) {
    this.contactTel = contactTel;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel contactWeixin(String contactWeixin) {
    
    this.contactWeixin = contactWeixin;
    return this;
  }

   /**
   * 该参数废弃
   * @return contactWeixin
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "923422342", value = "该参数废弃")

  public String getContactWeixin() {
    return contactWeixin;
  }


  public void setContactWeixin(String contactWeixin) {
    this.contactWeixin = contactWeixin;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel equipmentName(String equipmentName) {
    
    this.equipmentName = equipmentName;
    return this;
  }

   /**
   * 该参数废弃
   * @return equipmentName
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "杭州立方", value = "该参数废弃")

  public String getEquipmentName() {
    return equipmentName;
  }


  public void setEquipmentName(String equipmentName) {
    this.equipmentName = equipmentName;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel isSupportInvoice(String isSupportInvoice) {
    
    this.isSupportInvoice = isSupportInvoice;
    return this;
  }

   /**
   * 是否支持电子发票。枚举支持：  *0：表示不支持。  *1：表示支持。
   * @return isSupportInvoice
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "1", value = "是否支持电子发票。枚举支持：  *0：表示不支持。  *1：表示支持。")

  public String getIsSupportInvoice() {
    return isSupportInvoice;
  }


  public void setIsSupportInvoice(String isSupportInvoice) {
    this.isSupportInvoice = isSupportInvoice;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel isvMobile(String isvMobile) {
    
    this.isvMobile = isvMobile;
    return this;
  }

   /**
   * ISV电话，传入original_isv_pid、original_isv_appid时，此处为服务商电话
   * @return isvMobile
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "571-8643-2799", value = "ISV电话，传入original_isv_pid、original_isv_appid时，此处为服务商电话")

  public String getIsvMobile() {
    return isvMobile;
  }


  public void setIsvMobile(String isvMobile) {
    this.isvMobile = isvMobile;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel latitude(String latitude) {
    
    this.latitude = latitude;
    return this;
  }

   /**
   * 纬度
   * @return latitude
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "30.548828", value = "纬度")

  public String getLatitude() {
    return latitude;
  }


  public void setLatitude(String latitude) {
    this.latitude = latitude;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel longitude(String longitude) {
    
    this.longitude = longitude;
    return this;
  }

   /**
   * 经度
   * @return longitude
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "114.266418", value = "经度")

  public String getLongitude() {
    return longitude;
  }


  public void setLongitude(String longitude) {
    this.longitude = longitude;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel mchntId(String mchntId) {
    
    this.mchntId = mchntId;
    return this;
  }

   /**
   * 收款方ID（2088开头的16位纯数字），由停车场收款的业主方提供给ISV，该字段暂用于机具和物料申领，更新时不影响交易接口中的收款方值。
   * @return mchntId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "2088456825942563", value = "收款方ID（2088开头的16位纯数字），由停车场收款的业主方提供给ISV，该字段暂用于机具和物料申领，更新时不影响交易接口中的收款方值。")

  public String getMchntId() {
    return mchntId;
  }


  public void setMchntId(String mchntId) {
    this.mchntId = mchntId;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel originalIsvAppid(String originalIsvAppid) {
    
    this.originalIsvAppid = originalIsvAppid;
    return this;
  }

   /**
   * ISV的APPID,服务商调用必传，由ISV提供给服务商
   * @return originalIsvAppid
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "2021002108619277", value = "ISV的APPID,服务商调用必传，由ISV提供给服务商")

  public String getOriginalIsvAppid() {
    return originalIsvAppid;
  }


  public void setOriginalIsvAppid(String originalIsvAppid) {
    this.originalIsvAppid = originalIsvAppid;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel originalIsvMobile(String originalIsvMobile) {
    
    this.originalIsvMobile = originalIsvMobile;
    return this;
  }

   /**
   * ISV电话，此值与isv_mobile组合使用
   * @return originalIsvMobile
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "571-8643-2799", value = "ISV电话，此值与isv_mobile组合使用")

  public String getOriginalIsvMobile() {
    return originalIsvMobile;
  }


  public void setOriginalIsvMobile(String originalIsvMobile) {
    this.originalIsvMobile = originalIsvMobile;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel originalIsvName(String originalIsvName) {
    
    this.originalIsvName = originalIsvName;
    return this;
  }

   /**
   * ISV的名称，服务商调用必传，由ISV提供给服务商
   * @return originalIsvName
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "杭州立方", value = "ISV的名称，服务商调用必传，由ISV提供给服务商")

  public String getOriginalIsvName() {
    return originalIsvName;
  }


  public void setOriginalIsvName(String originalIsvName) {
    this.originalIsvName = originalIsvName;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel originalIsvPid(String originalIsvPid) {
    
    this.originalIsvPid = originalIsvPid;
    return this;
  }

   /**
   * ISV的PID，服务商调用必传,由ISV提供给服务商
   * @return originalIsvPid
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "2088456825942563", value = "ISV的PID，服务商调用必传,由ISV提供给服务商")

  public String getOriginalIsvPid() {
    return originalIsvPid;
  }


  public void setOriginalIsvPid(String originalIsvPid) {
    this.originalIsvPid = originalIsvPid;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel outParkingId(String outParkingId) {
    
    this.outParkingId = outParkingId;
    return this;
  }

   /**
   * 该参数废弃
   * @return outParkingId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "10000110001", value = "该参数废弃")

  public String getOutParkingId() {
    return outParkingId;
  }


  public void setOutParkingId(String outParkingId) {
    this.outParkingId = outParkingId;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel parkingAddress(String parkingAddress) {
    
    this.parkingAddress = parkingAddress;
    return this;
  }

   /**
   * 停车场地址
   * @return parkingAddress
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "浙江省杭州市古墩路与疏港公路的交汇处", value = "停车场地址")

  public String getParkingAddress() {
    return parkingAddress;
  }


  public void setParkingAddress(String parkingAddress) {
    this.parkingAddress = parkingAddress;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel parkingEndTime(String parkingEndTime) {
    
    this.parkingEndTime = parkingEndTime;
    return this;
  }

   /**
   * 该参数废弃
   * @return parkingEndTime
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "03:07:50", value = "该参数废弃")

  public String getParkingEndTime() {
    return parkingEndTime;
  }


  public void setParkingEndTime(String parkingEndTime) {
    this.parkingEndTime = parkingEndTime;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel parkingFeeDescription(String parkingFeeDescription) {
    
    this.parkingFeeDescription = parkingFeeDescription;
    return this;
  }

   /**
   * 收费说明
   * @return parkingFeeDescription
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "小车一小时10元", value = "收费说明")

  public String getParkingFeeDescription() {
    return parkingFeeDescription;
  }


  public void setParkingFeeDescription(String parkingFeeDescription) {
    this.parkingFeeDescription = parkingFeeDescription;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel parkingFeeDescriptionImg(String parkingFeeDescriptionImg) {
    
    this.parkingFeeDescriptionImg = parkingFeeDescriptionImg;
    return this;
  }

   /**
   * 商户在停车平台露出的停车价格图片；注意：该图片为PNG格式内容为BASE64的字符串，大小不要超过1MB
   * @return parkingFeeDescriptionImg
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAE0lEQVQImWP81mfxn4GJAYQgAAAqvgLBUG4ufAAAAABJRU5ErkJggg==", value = "商户在停车平台露出的停车价格图片；注意：该图片为PNG格式内容为BASE64的字符串，大小不要超过1MB")

  public String getParkingFeeDescriptionImg() {
    return parkingFeeDescriptionImg;
  }


  public void setParkingFeeDescriptionImg(String parkingFeeDescriptionImg) {
    this.parkingFeeDescriptionImg = parkingFeeDescriptionImg;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel parkingId(String parkingId) {
    
    this.parkingId = parkingId;
    return this;
  }

   /**
   * 支付宝返回停车场id，系统唯一
   * @return parkingId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "2014072300007148", value = "支付宝返回停车场id，系统唯一")

  public String getParkingId() {
    return parkingId;
  }


  public void setParkingId(String parkingId) {
    this.parkingId = parkingId;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel parkingLotType(String parkingLotType) {
    
    this.parkingLotType = parkingLotType;
    return this;
  }

   /**
   * 停车场类型，1为居民小区、2为商圈停车场（购物中心商业广场商场等）、3为路侧停车、4为公园景点（景点乐园公园老街古镇等）、5为商务楼宇（酒店写字楼商务楼园区等）、6为其他、7为交通枢纽（机场火车站汽车站码头港口等）、8为市政设施（体育场博物图书馆医院学校等）
   * @return parkingLotType
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "1", value = "停车场类型，1为居民小区、2为商圈停车场（购物中心商业广场商场等）、3为路侧停车、4为公园景点（景点乐园公园老街古镇等）、5为商务楼宇（酒店写字楼商务楼园区等）、6为其他、7为交通枢纽（机场火车站汽车站码头港口等）、8为市政设施（体育场博物图书馆医院学校等）")

  public String getParkingLotType() {
    return parkingLotType;
  }


  public void setParkingLotType(String parkingLotType) {
    this.parkingLotType = parkingLotType;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel parkingMobile(String parkingMobile) {
    
    this.parkingMobile = parkingMobile;
    return this;
  }

   /**
   * 停车场客服电话
   * @return parkingMobile
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "189XXXXXXXX", value = "停车场客服电话")

  public String getParkingMobile() {
    return parkingMobile;
  }


  public void setParkingMobile(String parkingMobile) {
    this.parkingMobile = parkingMobile;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel parkingName(String parkingName) {
    
    this.parkingName = parkingName;
    return this;
  }

   /**
   * 停车场名称，由ISV定义，尽量与高德地图上的一致
   * @return parkingName
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "城西停车场", value = "停车场名称，由ISV定义，尽量与高德地图上的一致")

  public String getParkingName() {
    return parkingName;
  }


  public void setParkingName(String parkingName) {
    this.parkingName = parkingName;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel parkingNumber(String parkingNumber) {
    
    this.parkingNumber = parkingNumber;
    return this;
  }

   /**
   * 该参数废弃
   * @return parkingNumber
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "10000", value = "该参数废弃")

  public String getParkingNumber() {
    return parkingNumber;
  }


  public void setParkingNumber(String parkingNumber) {
    this.parkingNumber = parkingNumber;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel parkingPoiid(String parkingPoiid) {
    
    this.parkingPoiid = parkingPoiid;
    return this;
  }

   /**
   * 高德地图唯一标识。新增高德兴趣点流程 &lt;a href&#x3D;\&quot;https://opensupport.alipay.com/support/helpcenter/311/201602557288?ant_source&#x3D;zsearch\&quot;&gt;点此查看详情&lt;/a&gt; 。 获取高德兴趣点流程 &lt;a href&#x3D;\&quot;https://opensupport.alipay.com/support/helpcenter/311/201602557287?ant_source&#x3D;zsearch\&quot;&gt;点此查看详情&lt;/a&gt;。
   * @return parkingPoiid
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "B000A9JM2H", value = "高德地图唯一标识。新增高德兴趣点流程 <a href=\"https://opensupport.alipay.com/support/helpcenter/311/201602557288?ant_source=zsearch\">点此查看详情</a> 。 获取高德兴趣点流程 <a href=\"https://opensupport.alipay.com/support/helpcenter/311/201602557287?ant_source=zsearch\">点此查看详情</a>。")

  public String getParkingPoiid() {
    return parkingPoiid;
  }


  public void setParkingPoiid(String parkingPoiid) {
    this.parkingPoiid = parkingPoiid;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel parkingStartTime(String parkingStartTime) {
    
    this.parkingStartTime = parkingStartTime;
    return this;
  }

   /**
   * 该参数废弃
   * @return parkingStartTime
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "03:07:50", value = "该参数废弃")

  public String getParkingStartTime() {
    return parkingStartTime;
  }


  public void setParkingStartTime(String parkingStartTime) {
    this.parkingStartTime = parkingStartTime;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel parkingType(String parkingType) {
    
    this.parkingType = parkingType;
    return this;
  }

   /**
   * 该参数废弃
   * @return parkingType
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "1", value = "该参数废弃")

  public String getParkingType() {
    return parkingType;
  }


  public void setParkingType(String parkingType) {
    this.parkingType = parkingType;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel payType(String payType) {
    
    this.payType = payType;
    return this;
  }

   /**
   * 支付方式。枚举支持： *1：表示支付宝在线缴费。  *2：表示支付宝代扣缴费。  *3：表示当面付。  说明：如支持多种方式以 &#39;,&#39; 进行分隔。
   * @return payType
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "2", value = "支付方式。枚举支持： *1：表示支付宝在线缴费。  *2：表示支付宝代扣缴费。  *3：表示当面付。  说明：如支持多种方式以 ',' 进行分隔。")

  public String getPayType() {
    return payType;
  }


  public void setPayType(String payType) {
    this.payType = payType;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel paymentMode(String paymentMode) {
    
    this.paymentMode = paymentMode;
    return this;
  }

   /**
   * 该参数废弃
   * @return paymentMode
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "1", value = "该参数废弃")

  public String getPaymentMode() {
    return paymentMode;
  }


  public void setPaymentMode(String paymentMode) {
    this.paymentMode = paymentMode;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel shopingmallId(String shopingmallId) {
    
    this.shopingmallId = shopingmallId;
    return this;
  }

   /**
   * 商圈id
   * @return shopingmallId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "100001008", value = "商圈id")

  public String getShopingmallId() {
    return shopingmallId;
  }


  public void setShopingmallId(String shopingmallId) {
    this.shopingmallId = shopingmallId;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel sumSpace(String sumSpace) {
    
    this.sumSpace = sumSpace;
    return this;
  }

   /**
   * 停车场车位数
   * @return sumSpace
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "3000", value = "停车场车位数")

  public String getSumSpace() {
    return sumSpace;
  }


  public void setSumSpace(String sumSpace) {
    this.sumSpace = sumSpace;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel supportAfterPay(String supportAfterPay) {
    
    this.supportAfterPay = supportAfterPay;
    return this;
  }

   /**
   * 是否支持先离后付。枚举支持：  *Y：支持。  *N：不支持。  说明：默认为空不支持，此参数适用于签约信用代扣的商户。
   * @return supportAfterPay
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "Y", value = "是否支持先离后付。枚举支持：  *Y：支持。  *N：不支持。  说明：默认为空不支持，此参数适用于签约信用代扣的商户。")

  public String getSupportAfterPay() {
    return supportAfterPay;
  }


  public void setSupportAfterPay(String supportAfterPay) {
    this.supportAfterPay = supportAfterPay;
  }


  public AlipayEcoMycarParkingParkinglotinfoUpdateModel timeOut(String timeOut) {
    
    this.timeOut = timeOut;
    return this;
  }

   /**
   * 用户支付未离场的超时时间(以分钟为单位)
   * @return timeOut
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "13", value = "用户支付未离场的超时时间(以分钟为单位)")

  public String getTimeOut() {
    return timeOut;
  }


  public void setTimeOut(String timeOut) {
    this.timeOut = timeOut;
  }



  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    AlipayEcoMycarParkingParkinglotinfoUpdateModel alipayEcoMycarParkingParkinglotinfoUpdateModel = (AlipayEcoMycarParkingParkinglotinfoUpdateModel) o;
    return Objects.equals(this.agentId, alipayEcoMycarParkingParkinglotinfoUpdateModel.agentId) &&
        Objects.equals(this.businessIsv, alipayEcoMycarParkingParkinglotinfoUpdateModel.businessIsv) &&
        Objects.equals(this.cityId, alipayEcoMycarParkingParkinglotinfoUpdateModel.cityId) &&
        Objects.equals(this.contactAlipay, alipayEcoMycarParkingParkinglotinfoUpdateModel.contactAlipay) &&
        Objects.equals(this.contactEmail, alipayEcoMycarParkingParkinglotinfoUpdateModel.contactEmail) &&
        Objects.equals(this.contactMobile, alipayEcoMycarParkingParkinglotinfoUpdateModel.contactMobile) &&
        Objects.equals(this.contactName, alipayEcoMycarParkingParkinglotinfoUpdateModel.contactName) &&
        Objects.equals(this.contactTel, alipayEcoMycarParkingParkinglotinfoUpdateModel.contactTel) &&
        Objects.equals(this.contactWeixin, alipayEcoMycarParkingParkinglotinfoUpdateModel.contactWeixin) &&
        Objects.equals(this.equipmentName, alipayEcoMycarParkingParkinglotinfoUpdateModel.equipmentName) &&
        Objects.equals(this.isSupportInvoice, alipayEcoMycarParkingParkinglotinfoUpdateModel.isSupportInvoice) &&
        Objects.equals(this.isvMobile, alipayEcoMycarParkingParkinglotinfoUpdateModel.isvMobile) &&
        Objects.equals(this.latitude, alipayEcoMycarParkingParkinglotinfoUpdateModel.latitude) &&
        Objects.equals(this.longitude, alipayEcoMycarParkingParkinglotinfoUpdateModel.longitude) &&
        Objects.equals(this.mchntId, alipayEcoMycarParkingParkinglotinfoUpdateModel.mchntId) &&
        Objects.equals(this.originalIsvAppid, alipayEcoMycarParkingParkinglotinfoUpdateModel.originalIsvAppid) &&
        Objects.equals(this.originalIsvMobile, alipayEcoMycarParkingParkinglotinfoUpdateModel.originalIsvMobile) &&
        Objects.equals(this.originalIsvName, alipayEcoMycarParkingParkinglotinfoUpdateModel.originalIsvName) &&
        Objects.equals(this.originalIsvPid, alipayEcoMycarParkingParkinglotinfoUpdateModel.originalIsvPid) &&
        Objects.equals(this.outParkingId, alipayEcoMycarParkingParkinglotinfoUpdateModel.outParkingId) &&
        Objects.equals(this.parkingAddress, alipayEcoMycarParkingParkinglotinfoUpdateModel.parkingAddress) &&
        Objects.equals(this.parkingEndTime, alipayEcoMycarParkingParkinglotinfoUpdateModel.parkingEndTime) &&
        Objects.equals(this.parkingFeeDescription, alipayEcoMycarParkingParkinglotinfoUpdateModel.parkingFeeDescription) &&
        Objects.equals(this.parkingFeeDescriptionImg, alipayEcoMycarParkingParkinglotinfoUpdateModel.parkingFeeDescriptionImg) &&
        Objects.equals(this.parkingId, alipayEcoMycarParkingParkinglotinfoUpdateModel.parkingId) &&
        Objects.equals(this.parkingLotType, alipayEcoMycarParkingParkinglotinfoUpdateModel.parkingLotType) &&
        Objects.equals(this.parkingMobile, alipayEcoMycarParkingParkinglotinfoUpdateModel.parkingMobile) &&
        Objects.equals(this.parkingName, alipayEcoMycarParkingParkinglotinfoUpdateModel.parkingName) &&
        Objects.equals(this.parkingNumber, alipayEcoMycarParkingParkinglotinfoUpdateModel.parkingNumber) &&
        Objects.equals(this.parkingPoiid, alipayEcoMycarParkingParkinglotinfoUpdateModel.parkingPoiid) &&
        Objects.equals(this.parkingStartTime, alipayEcoMycarParkingParkinglotinfoUpdateModel.parkingStartTime) &&
        Objects.equals(this.parkingType, alipayEcoMycarParkingParkinglotinfoUpdateModel.parkingType) &&
        Objects.equals(this.payType, alipayEcoMycarParkingParkinglotinfoUpdateModel.payType) &&
        Objects.equals(this.paymentMode, alipayEcoMycarParkingParkinglotinfoUpdateModel.paymentMode) &&
        Objects.equals(this.shopingmallId, alipayEcoMycarParkingParkinglotinfoUpdateModel.shopingmallId) &&
        Objects.equals(this.sumSpace, alipayEcoMycarParkingParkinglotinfoUpdateModel.sumSpace) &&
        Objects.equals(this.supportAfterPay, alipayEcoMycarParkingParkinglotinfoUpdateModel.supportAfterPay) &&
        Objects.equals(this.timeOut, alipayEcoMycarParkingParkinglotinfoUpdateModel.timeOut);
  }

  @Override
  public int hashCode() {
    return Objects.hash(agentId, businessIsv, cityId, contactAlipay, contactEmail, contactMobile, contactName, contactTel, contactWeixin, equipmentName, isSupportInvoice, isvMobile, latitude, longitude, mchntId, originalIsvAppid, originalIsvMobile, originalIsvName, originalIsvPid, outParkingId, parkingAddress, parkingEndTime, parkingFeeDescription, parkingFeeDescriptionImg, parkingId, parkingLotType, parkingMobile, parkingName, parkingNumber, parkingPoiid, parkingStartTime, parkingType, payType, paymentMode, shopingmallId, sumSpace, supportAfterPay, timeOut);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class AlipayEcoMycarParkingParkinglotinfoUpdateModel {\n");
    sb.append("    agentId: ").append(toIndentedString(agentId)).append("\n");
    sb.append("    businessIsv: ").append(toIndentedString(businessIsv)).append("\n");
    sb.append("    cityId: ").append(toIndentedString(cityId)).append("\n");
    sb.append("    contactAlipay: ").append(toIndentedString(contactAlipay)).append("\n");
    sb.append("    contactEmail: ").append(toIndentedString(contactEmail)).append("\n");
    sb.append("    contactMobile: ").append(toIndentedString(contactMobile)).append("\n");
    sb.append("    contactName: ").append(toIndentedString(contactName)).append("\n");
    sb.append("    contactTel: ").append(toIndentedString(contactTel)).append("\n");
    sb.append("    contactWeixin: ").append(toIndentedString(contactWeixin)).append("\n");
    sb.append("    equipmentName: ").append(toIndentedString(equipmentName)).append("\n");
    sb.append("    isSupportInvoice: ").append(toIndentedString(isSupportInvoice)).append("\n");
    sb.append("    isvMobile: ").append(toIndentedString(isvMobile)).append("\n");
    sb.append("    latitude: ").append(toIndentedString(latitude)).append("\n");
    sb.append("    longitude: ").append(toIndentedString(longitude)).append("\n");
    sb.append("    mchntId: ").append(toIndentedString(mchntId)).append("\n");
    sb.append("    originalIsvAppid: ").append(toIndentedString(originalIsvAppid)).append("\n");
    sb.append("    originalIsvMobile: ").append(toIndentedString(originalIsvMobile)).append("\n");
    sb.append("    originalIsvName: ").append(toIndentedString(originalIsvName)).append("\n");
    sb.append("    originalIsvPid: ").append(toIndentedString(originalIsvPid)).append("\n");
    sb.append("    outParkingId: ").append(toIndentedString(outParkingId)).append("\n");
    sb.append("    parkingAddress: ").append(toIndentedString(parkingAddress)).append("\n");
    sb.append("    parkingEndTime: ").append(toIndentedString(parkingEndTime)).append("\n");
    sb.append("    parkingFeeDescription: ").append(toIndentedString(parkingFeeDescription)).append("\n");
    sb.append("    parkingFeeDescriptionImg: ").append(toIndentedString(parkingFeeDescriptionImg)).append("\n");
    sb.append("    parkingId: ").append(toIndentedString(parkingId)).append("\n");
    sb.append("    parkingLotType: ").append(toIndentedString(parkingLotType)).append("\n");
    sb.append("    parkingMobile: ").append(toIndentedString(parkingMobile)).append("\n");
    sb.append("    parkingName: ").append(toIndentedString(parkingName)).append("\n");
    sb.append("    parkingNumber: ").append(toIndentedString(parkingNumber)).append("\n");
    sb.append("    parkingPoiid: ").append(toIndentedString(parkingPoiid)).append("\n");
    sb.append("    parkingStartTime: ").append(toIndentedString(parkingStartTime)).append("\n");
    sb.append("    parkingType: ").append(toIndentedString(parkingType)).append("\n");
    sb.append("    payType: ").append(toIndentedString(payType)).append("\n");
    sb.append("    paymentMode: ").append(toIndentedString(paymentMode)).append("\n");
    sb.append("    shopingmallId: ").append(toIndentedString(shopingmallId)).append("\n");
    sb.append("    sumSpace: ").append(toIndentedString(sumSpace)).append("\n");
    sb.append("    supportAfterPay: ").append(toIndentedString(supportAfterPay)).append("\n");
    sb.append("    timeOut: ").append(toIndentedString(timeOut)).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("agent_id");
    openapiFields.add("business_isv");
    openapiFields.add("city_id");
    openapiFields.add("contact_alipay");
    openapiFields.add("contact_email");
    openapiFields.add("contact_mobile");
    openapiFields.add("contact_name");
    openapiFields.add("contact_tel");
    openapiFields.add("contact_weixin");
    openapiFields.add("equipment_name");
    openapiFields.add("is_support_invoice");
    openapiFields.add("isv_mobile");
    openapiFields.add("latitude");
    openapiFields.add("longitude");
    openapiFields.add("mchnt_id");
    openapiFields.add("original_isv_appid");
    openapiFields.add("original_isv_mobile");
    openapiFields.add("original_isv_name");
    openapiFields.add("original_isv_pid");
    openapiFields.add("out_parking_id");
    openapiFields.add("parking_address");
    openapiFields.add("parking_end_time");
    openapiFields.add("parking_fee_description");
    openapiFields.add("parking_fee_description_img");
    openapiFields.add("parking_id");
    openapiFields.add("parking_lot_type");
    openapiFields.add("parking_mobile");
    openapiFields.add("parking_name");
    openapiFields.add("parking_number");
    openapiFields.add("parking_poiid");
    openapiFields.add("parking_start_time");
    openapiFields.add("parking_type");
    openapiFields.add("pay_type");
    openapiFields.add("payment_mode");
    openapiFields.add("shopingmall_id");
    openapiFields.add("sum_space");
    openapiFields.add("support_after_pay");
    openapiFields.add("time_out");

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

 /**
  * Validates the JSON Object and throws an exception if issues found
  *
  * @param jsonObj JSON Object
  * @throws IOException if the JSON Object is invalid with respect to AlipayEcoMycarParkingParkinglotinfoUpdateModel
  */
  public static void validateJsonObject(JsonObject jsonObj) throws IOException {
      if (jsonObj == null) {
        if (AlipayEcoMycarParkingParkinglotinfoUpdateModel.openapiRequiredFields.isEmpty()) {
          return;
        } else { // has required fields
          throw new IllegalArgumentException(String.format("The required field(s) %s in AlipayEcoMycarParkingParkinglotinfoUpdateModel is not found in the empty JSON string", AlipayEcoMycarParkingParkinglotinfoUpdateModel.openapiRequiredFields.toString()));
        }
      }

      Set<Entry<String, JsonElement>> entries = jsonObj.entrySet();
      // check to see if the JSON string contains additional fields
      for (Entry<String, JsonElement> entry : entries) {
        if (!AlipayEcoMycarParkingParkinglotinfoUpdateModel.openapiFields.contains(entry.getKey())) {
          throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlipayEcoMycarParkingParkinglotinfoUpdateModel` properties. JSON: %s", entry.getKey(), jsonObj.toString()));
        }
      }
      if (jsonObj.get("agent_id") != null && !jsonObj.get("agent_id").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `agent_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("agent_id").toString()));
      }
      JsonArray jsonArraybusinessIsv = jsonObj.getAsJsonArray("business_isv");
      if (jsonArraybusinessIsv != null) {
        // ensure the json data is an array
        if (!jsonObj.get("business_isv").isJsonArray()) {
          throw new IllegalArgumentException(String.format("Expected the field `business_isv` to be an array in the JSON string but got `%s`", jsonObj.get("business_isv").toString()));
        }

        // validate the optional field `business_isv` (array)
        for (int i = 0; i < jsonArraybusinessIsv.size(); i++) {
          BusinessItem.validateJsonObject(jsonArraybusinessIsv.get(i).getAsJsonObject());
        };
      }
      if (jsonObj.get("city_id") != null && !jsonObj.get("city_id").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `city_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("city_id").toString()));
      }
      if (jsonObj.get("contact_alipay") != null && !jsonObj.get("contact_alipay").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `contact_alipay` to be a primitive type in the JSON string but got `%s`", jsonObj.get("contact_alipay").toString()));
      }
      if (jsonObj.get("contact_email") != null && !jsonObj.get("contact_email").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `contact_email` to be a primitive type in the JSON string but got `%s`", jsonObj.get("contact_email").toString()));
      }
      if (jsonObj.get("contact_mobile") != null && !jsonObj.get("contact_mobile").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `contact_mobile` to be a primitive type in the JSON string but got `%s`", jsonObj.get("contact_mobile").toString()));
      }
      if (jsonObj.get("contact_name") != null && !jsonObj.get("contact_name").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `contact_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("contact_name").toString()));
      }
      if (jsonObj.get("contact_tel") != null && !jsonObj.get("contact_tel").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `contact_tel` to be a primitive type in the JSON string but got `%s`", jsonObj.get("contact_tel").toString()));
      }
      if (jsonObj.get("contact_weixin") != null && !jsonObj.get("contact_weixin").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `contact_weixin` to be a primitive type in the JSON string but got `%s`", jsonObj.get("contact_weixin").toString()));
      }
      if (jsonObj.get("equipment_name") != null && !jsonObj.get("equipment_name").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `equipment_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("equipment_name").toString()));
      }
      if (jsonObj.get("is_support_invoice") != null && !jsonObj.get("is_support_invoice").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `is_support_invoice` to be a primitive type in the JSON string but got `%s`", jsonObj.get("is_support_invoice").toString()));
      }
      if (jsonObj.get("isv_mobile") != null && !jsonObj.get("isv_mobile").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `isv_mobile` to be a primitive type in the JSON string but got `%s`", jsonObj.get("isv_mobile").toString()));
      }
      if (jsonObj.get("latitude") != null && !jsonObj.get("latitude").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `latitude` to be a primitive type in the JSON string but got `%s`", jsonObj.get("latitude").toString()));
      }
      if (jsonObj.get("longitude") != null && !jsonObj.get("longitude").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `longitude` to be a primitive type in the JSON string but got `%s`", jsonObj.get("longitude").toString()));
      }
      if (jsonObj.get("mchnt_id") != null && !jsonObj.get("mchnt_id").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `mchnt_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("mchnt_id").toString()));
      }
      if (jsonObj.get("original_isv_appid") != null && !jsonObj.get("original_isv_appid").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `original_isv_appid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("original_isv_appid").toString()));
      }
      if (jsonObj.get("original_isv_mobile") != null && !jsonObj.get("original_isv_mobile").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `original_isv_mobile` to be a primitive type in the JSON string but got `%s`", jsonObj.get("original_isv_mobile").toString()));
      }
      if (jsonObj.get("original_isv_name") != null && !jsonObj.get("original_isv_name").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `original_isv_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("original_isv_name").toString()));
      }
      if (jsonObj.get("original_isv_pid") != null && !jsonObj.get("original_isv_pid").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `original_isv_pid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("original_isv_pid").toString()));
      }
      if (jsonObj.get("out_parking_id") != null && !jsonObj.get("out_parking_id").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `out_parking_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("out_parking_id").toString()));
      }
      if (jsonObj.get("parking_address") != null && !jsonObj.get("parking_address").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `parking_address` to be a primitive type in the JSON string but got `%s`", jsonObj.get("parking_address").toString()));
      }
      if (jsonObj.get("parking_end_time") != null && !jsonObj.get("parking_end_time").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `parking_end_time` to be a primitive type in the JSON string but got `%s`", jsonObj.get("parking_end_time").toString()));
      }
      if (jsonObj.get("parking_fee_description") != null && !jsonObj.get("parking_fee_description").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `parking_fee_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("parking_fee_description").toString()));
      }
      if (jsonObj.get("parking_fee_description_img") != null && !jsonObj.get("parking_fee_description_img").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `parking_fee_description_img` to be a primitive type in the JSON string but got `%s`", jsonObj.get("parking_fee_description_img").toString()));
      }
      if (jsonObj.get("parking_id") != null && !jsonObj.get("parking_id").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `parking_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("parking_id").toString()));
      }
      if (jsonObj.get("parking_lot_type") != null && !jsonObj.get("parking_lot_type").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `parking_lot_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("parking_lot_type").toString()));
      }
      if (jsonObj.get("parking_mobile") != null && !jsonObj.get("parking_mobile").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `parking_mobile` to be a primitive type in the JSON string but got `%s`", jsonObj.get("parking_mobile").toString()));
      }
      if (jsonObj.get("parking_name") != null && !jsonObj.get("parking_name").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `parking_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("parking_name").toString()));
      }
      if (jsonObj.get("parking_number") != null && !jsonObj.get("parking_number").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `parking_number` to be a primitive type in the JSON string but got `%s`", jsonObj.get("parking_number").toString()));
      }
      if (jsonObj.get("parking_poiid") != null && !jsonObj.get("parking_poiid").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `parking_poiid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("parking_poiid").toString()));
      }
      if (jsonObj.get("parking_start_time") != null && !jsonObj.get("parking_start_time").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `parking_start_time` to be a primitive type in the JSON string but got `%s`", jsonObj.get("parking_start_time").toString()));
      }
      if (jsonObj.get("parking_type") != null && !jsonObj.get("parking_type").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `parking_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("parking_type").toString()));
      }
      if (jsonObj.get("pay_type") != null && !jsonObj.get("pay_type").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `pay_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("pay_type").toString()));
      }
      if (jsonObj.get("payment_mode") != null && !jsonObj.get("payment_mode").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `payment_mode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("payment_mode").toString()));
      }
      if (jsonObj.get("shopingmall_id") != null && !jsonObj.get("shopingmall_id").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `shopingmall_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("shopingmall_id").toString()));
      }
      if (jsonObj.get("sum_space") != null && !jsonObj.get("sum_space").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `sum_space` to be a primitive type in the JSON string but got `%s`", jsonObj.get("sum_space").toString()));
      }
      if (jsonObj.get("support_after_pay") != null && !jsonObj.get("support_after_pay").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `support_after_pay` to be a primitive type in the JSON string but got `%s`", jsonObj.get("support_after_pay").toString()));
      }
      if (jsonObj.get("time_out") != null && !jsonObj.get("time_out").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `time_out` to be a primitive type in the JSON string but got `%s`", jsonObj.get("time_out").toString()));
      }
  }

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

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

           @Override
           public AlipayEcoMycarParkingParkinglotinfoUpdateModel read(JsonReader in) throws IOException {
             JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject();
             validateJsonObject(jsonObj);
             return thisAdapter.fromJsonTree(jsonObj);
           }

       }.nullSafe();
    }
  }

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

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

