content: /*
   * 支付宝开放平台API
   * 支付宝开放平台v3协议文档
   *
   * The version of the OpenAPI document: 2025-08-26
   * 
   *
   * 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.MiniAppPluginReference;
  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;
  
  /**
   * AlipayOpenMiniInnerversionUploadModel
   */
  @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
  public class AlipayOpenMiniInnerversionUploadModel {
    public static final String SERIALIZED_NAME_APP_ORIGIN = "app_origin";
    @SerializedName(SERIALIZED_NAME_APP_ORIGIN)
    private String appOrigin;
  
    public static final String SERIALIZED_NAME_BUILD_APP_TYPE = "build_app_type";
    @SerializedName(SERIALIZED_NAME_BUILD_APP_TYPE)
    private String buildAppType;
  
    public static final String SERIALIZED_NAME_BUILD_EXTRA_INFO = "build_extra_info";
    @SerializedName(SERIALIZED_NAME_BUILD_EXTRA_INFO)
    private String buildExtraInfo;
  
    public static final String SERIALIZED_NAME_BUILD_EXTRA_MINI_PROJECT_CONFIG = "build_extra_mini_project_config";
    @SerializedName(SERIALIZED_NAME_BUILD_EXTRA_MINI_PROJECT_CONFIG)
    private String buildExtraMiniProjectConfig;
  
    public static final String SERIALIZED_NAME_BUILD_JS_PERMISSION = "build_js_permission";
    @SerializedName(SERIALIZED_NAME_BUILD_JS_PERMISSION)
    private String buildJsPermission;
  
    public static final String SERIALIZED_NAME_BUILD_MAIN_URL = "build_main_url";
    @SerializedName(SERIALIZED_NAME_BUILD_MAIN_URL)
    private String buildMainUrl;
  
    public static final String SERIALIZED_NAME_BUILD_MAX_ANDROID_CLIENT_VERSION = "build_max_android_client_version";
    @SerializedName(SERIALIZED_NAME_BUILD_MAX_ANDROID_CLIENT_VERSION)
    private String buildMaxAndroidClientVersion;
  
    public static final String SERIALIZED_NAME_BUILD_MAX_IOS_CLIENT_VERSION = "build_max_ios_client_version";
    @SerializedName(SERIALIZED_NAME_BUILD_MAX_IOS_CLIENT_VERSION)
    private String buildMaxIosClientVersion;
  
    public static final String SERIALIZED_NAME_BUILD_MIN_ANDROID_CLIENT_VERSION = "build_min_android_client_version";
    @SerializedName(SERIALIZED_NAME_BUILD_MIN_ANDROID_CLIENT_VERSION)
    private String buildMinAndroidClientVersion;
  
    public static final String SERIALIZED_NAME_BUILD_MIN_IOS_CLIENT_VERSION = "build_min_ios_client_version";
    @SerializedName(SERIALIZED_NAME_BUILD_MIN_IOS_CLIENT_VERSION)
    private String buildMinIosClientVersion;
  
    public static final String SERIALIZED_NAME_BUILD_PACKAGE_MD5 = "build_package_md_5";
    @SerializedName(SERIALIZED_NAME_BUILD_PACKAGE_MD5)
    private String buildPackageMd5;
  
    public static final String SERIALIZED_NAME_BUILD_PACKAGE_NAME = "build_package_name";
    @SerializedName(SERIALIZED_NAME_BUILD_PACKAGE_NAME)
    private String buildPackageName;
  
    public static final String SERIALIZED_NAME_BUILD_PACKAGE_STREAM = "build_package_stream";
    @SerializedName(SERIALIZED_NAME_BUILD_PACKAGE_STREAM)
    private String buildPackageStream;
  
    public static final String SERIALIZED_NAME_BUILD_QCLOUD_INFO = "build_qcloud_info";
    @SerializedName(SERIALIZED_NAME_BUILD_QCLOUD_INFO)
    private String buildQcloudInfo;
  
    public static final String SERIALIZED_NAME_BUILD_SIGNED_PKG_URL = "build_signed_pkg_url";
    @SerializedName(SERIALIZED_NAME_BUILD_SIGNED_PKG_URL)
    private String buildSignedPkgUrl;
  
    public static final String SERIALIZED_NAME_BUILD_SOURCE_PKG_SIZE = "build_source_pkg_size";
    @SerializedName(SERIALIZED_NAME_BUILD_SOURCE_PKG_SIZE)
    private String buildSourcePkgSize;
  
    public static final String SERIALIZED_NAME_BUILD_SOURCE_PKG_URL = "build_source_pkg_url";
    @SerializedName(SERIALIZED_NAME_BUILD_SOURCE_PKG_URL)
    private String buildSourcePkgUrl;
  
    public static final String SERIALIZED_NAME_BUILD_SUB_URL = "build_sub_url";
    @SerializedName(SERIALIZED_NAME_BUILD_SUB_URL)
    private String buildSubUrl;
  
    public static final String SERIALIZED_NAME_BUILD_VERSION = "build_version";
    @SerializedName(SERIALIZED_NAME_BUILD_VERSION)
    private String buildVersion;
  
    public static final String SERIALIZED_NAME_BUILDED_PACKAGE_SIZE = "builded_package_size";
    @SerializedName(SERIALIZED_NAME_BUILDED_PACKAGE_SIZE)
    private String buildedPackageSize;
  
    public static final String SERIALIZED_NAME_BUILDED_PACKAGE_URL = "builded_package_url";
    @SerializedName(SERIALIZED_NAME_BUILDED_PACKAGE_URL)
    private String buildedPackageUrl;
  
    public static final String SERIALIZED_NAME_BUNDLE_ID = "bundle_id";
    @SerializedName(SERIALIZED_NAME_BUNDLE_ID)
    private String bundleId;
  
    public static final String SERIALIZED_NAME_CLIENT_TYPE = "client_type";
    @SerializedName(SERIALIZED_NAME_CLIENT_TYPE)
    private String clientType;
  
    public static final String SERIALIZED_NAME_INST_CODE = "inst_code";
    @SerializedName(SERIALIZED_NAME_INST_CODE)
    private String instCode;
  
    public static final String SERIALIZED_NAME_MINI_APP_ID = "mini_app_id";
    @SerializedName(SERIALIZED_NAME_MINI_APP_ID)
    private String miniAppId;
  
    public static final String SERIALIZED_NAME_PLUGIN_REFS = "plugin_refs";
    @SerializedName(SERIALIZED_NAME_PLUGIN_REFS)
    private List<MiniAppPluginReference> pluginRefs = null;
  
    public AlipayOpenMiniInnerversionUploadModel() { 
    }
  
    public AlipayOpenMiniInnerversionUploadModel appOrigin(String appOrigin) {
      
      this.appOrigin = appOrigin;
      return this;
    }
  
     /**
     * 业务来源，新接入方需要向支付宝申请专用来源，否则不予接入。https://yuque.antfin-inc.com/tinyapp-all/qddncu/bidushixiang
     * @return appOrigin
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "https://yuque.antfin-inc.com/tinyapp-all/qddncu/bidushixiang", value = "业务来源，新接入方需要向支付宝申请专用来源，否则不予接入。https://yuque.antfin-inc.com/tinyapp-all/qddncu/bidushixiang")
  
    public String getAppOrigin() {
      return appOrigin;
    }
  
  
    public void setAppOrigin(String appOrigin) {
      this.appOrigin = appOrigin;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildAppType(String buildAppType) {
      
      this.buildAppType = buildAppType;
      return this;
    }
  
     /**
     * IDE开发打包类型，写死tinyApp
     * @return buildAppType
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "tinyApp", value = "IDE开发打包类型，写死tinyApp")
  
    public String getBuildAppType() {
      return buildAppType;
    }
  
  
    public void setBuildAppType(String buildAppType) {
      this.buildAppType = buildAppType;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildExtraInfo(String buildExtraInfo) {
      
      this.buildExtraInfo = buildExtraInfo;
      return this;
    }
  
     /**
     * 扩展信息，比如adaptorName、tinycliVersion、tinycliName、import-module、allowPrecompile、extJson、allowInstallDependency、aggregationMainAppId，如果没有特殊要求，tinycliVersion版本请用最新的： https://registry.npm.alibaba-inc.com/@alipay/tiny-cli/huoban-prod
     * @return buildExtraInfo
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "{\"tinycliVersion\":\"1.5.20200213201649\"}", value = "扩展信息，比如adaptorName、tinycliVersion、tinycliName、import-module、allowPrecompile、extJson、allowInstallDependency、aggregationMainAppId，如果没有特殊要求，tinycliVersion版本请用最新的： https://registry.npm.alibaba-inc.com/@alipay/tiny-cli/huoban-prod")
  
    public String getBuildExtraInfo() {
      return buildExtraInfo;
    }
  
  
    public void setBuildExtraInfo(String buildExtraInfo) {
      this.buildExtraInfo = buildExtraInfo;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildExtraMiniProjectConfig(String buildExtraMiniProjectConfig) {
      
      this.buildExtraMiniProjectConfig = buildExtraMiniProjectConfig;
      return this;
    }
  
     /**
     * 用于覆盖开发者配置字段，实现止血和灰度逻辑
     * @return buildExtraMiniProjectConfig
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "{\"enableAppxNg\":\"YES\"}", value = "用于覆盖开发者配置字段，实现止血和灰度逻辑")
  
    public String getBuildExtraMiniProjectConfig() {
      return buildExtraMiniProjectConfig;
    }
  
  
    public void setBuildExtraMiniProjectConfig(String buildExtraMiniProjectConfig) {
      this.buildExtraMiniProjectConfig = buildExtraMiniProjectConfig;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildJsPermission(String buildJsPermission) {
      
      this.buildJsPermission = buildJsPermission;
      return this;
    }
  
     /**
     * jsapi 权限文件,钉钉外请勿传
     * @return buildJsPermission
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "{\"permissionJSON\":[1, 2, 3, 4, 5]}", value = "jsapi 权限文件,钉钉外请勿传")
  
    public String getBuildJsPermission() {
      return buildJsPermission;
    }
  
  
    public void setBuildJsPermission(String buildJsPermission) {
      this.buildJsPermission = buildJsPermission;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildMainUrl(String buildMainUrl) {
      
      this.buildMainUrl = buildMainUrl;
      return this;
    }
  
     /**
     * 小程序页面主入口。/index.html#page/component/index，该值需要和extendInfo中的page参数保持一致
     * @return buildMainUrl
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "/index.html#page/component/index", value = "小程序页面主入口。/index.html#page/component/index，该值需要和extendInfo中的page参数保持一致")
  
    public String getBuildMainUrl() {
      return buildMainUrl;
    }
  
  
    public void setBuildMainUrl(String buildMainUrl) {
      this.buildMainUrl = buildMainUrl;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildMaxAndroidClientVersion(String buildMaxAndroidClientVersion) {
      
      this.buildMaxAndroidClientVersion = buildMaxAndroidClientVersion;
      return this;
    }
  
     /**
     * 最大Android客户端版本号，禁止使用，如果需要使用请联系小程序平台评估，否则端上会出现问题
     * @return buildMaxAndroidClientVersion
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "100.0.0", value = "最大Android客户端版本号，禁止使用，如果需要使用请联系小程序平台评估，否则端上会出现问题")
  
    public String getBuildMaxAndroidClientVersion() {
      return buildMaxAndroidClientVersion;
    }
  
  
    public void setBuildMaxAndroidClientVersion(String buildMaxAndroidClientVersion) {
      this.buildMaxAndroidClientVersion = buildMaxAndroidClientVersion;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildMaxIosClientVersion(String buildMaxIosClientVersion) {
      
      this.buildMaxIosClientVersion = buildMaxIosClientVersion;
      return this;
    }
  
     /**
     * 最大iOS客户单版本号，禁止使用，如果需要使用请联系小程序平台评估，否则端上会出现问题
     * @return buildMaxIosClientVersion
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "100.0.0", value = "最大iOS客户单版本号，禁止使用，如果需要使用请联系小程序平台评估，否则端上会出现问题")
  
    public String getBuildMaxIosClientVersion() {
      return buildMaxIosClientVersion;
    }
  
  
    public void setBuildMaxIosClientVersion(String buildMaxIosClientVersion) {
      this.buildMaxIosClientVersion = buildMaxIosClientVersion;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildMinAndroidClientVersion(String buildMinAndroidClientVersion) {
      
      this.buildMinAndroidClientVersion = buildMinAndroidClientVersion;
      return this;
    }
  
     /**
     * 最小Android客户端版本号，禁止使用，如果需要使用请联系小程序平台评估，否则端上会出现问题
     * @return buildMinAndroidClientVersion
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "10.1.35", value = "最小Android客户端版本号，禁止使用，如果需要使用请联系小程序平台评估，否则端上会出现问题")
  
    public String getBuildMinAndroidClientVersion() {
      return buildMinAndroidClientVersion;
    }
  
  
    public void setBuildMinAndroidClientVersion(String buildMinAndroidClientVersion) {
      this.buildMinAndroidClientVersion = buildMinAndroidClientVersion;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildMinIosClientVersion(String buildMinIosClientVersion) {
      
      this.buildMinIosClientVersion = buildMinIosClientVersion;
      return this;
    }
  
     /**
     * 最小iOS客户单版本号，禁止使用，如果需要使用请联系小程序平台评估，否则端上会出现问题
     * @return buildMinIosClientVersion
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "10.1.35", value = "最小iOS客户单版本号，禁止使用，如果需要使用请联系小程序平台评估，否则端上会出现问题")
  
    public String getBuildMinIosClientVersion() {
      return buildMinIosClientVersion;
    }
  
  
    public void setBuildMinIosClientVersion(String buildMinIosClientVersion) {
      this.buildMinIosClientVersion = buildMinIosClientVersion;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildPackageMd5(String buildPackageMd5) {
      
      this.buildPackageMd5 = buildPackageMd5;
      return this;
    }
  
     /**
     * 源码包文件流的MD5字符串
     * @return buildPackageMd5
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "源码包", value = "源码包文件流的MD5字符串")
  
    public String getBuildPackageMd5() {
      return buildPackageMd5;
    }
  
  
    public void setBuildPackageMd5(String buildPackageMd5) {
      this.buildPackageMd5 = buildPackageMd5;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildPackageName(String buildPackageName) {
      
      this.buildPackageName = buildPackageName;
      return this;
    }
  
     /**
     * 包名称
     * @return buildPackageName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "dist.amr", value = "包名称")
  
    public String getBuildPackageName() {
      return buildPackageName;
    }
  
  
    public void setBuildPackageName(String buildPackageName) {
      this.buildPackageName = buildPackageName;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildPackageStream(String buildPackageStream) {
      
      this.buildPackageStream = buildPackageStream;
      return this;
    }
  
     /**
     * base64编码后的小程序源码包文件流
     * @return buildPackageStream
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "小程序源码包", value = "base64编码后的小程序源码包文件流")
  
    public String getBuildPackageStream() {
      return buildPackageStream;
    }
  
  
    public void setBuildPackageStream(String buildPackageStream) {
      this.buildPackageStream = buildPackageStream;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildQcloudInfo(String buildQcloudInfo) {
      
      this.buildQcloudInfo = buildQcloudInfo;
      return this;
    }
  
     /**
     * 打包平台扩展信息
     * @return buildQcloudInfo
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "{\"launchParams\":{\"enableTabBar\":\"YES\",\"enableJSC\":\"YES\",\"page\":\"page/component/index\",\"enableKeepAlive\":\"YES\",\"enableWK\":\"YES\"}}", value = "打包平台扩展信息")
  
    public String getBuildQcloudInfo() {
      return buildQcloudInfo;
    }
  
  
    public void setBuildQcloudInfo(String buildQcloudInfo) {
      this.buildQcloudInfo = buildQcloudInfo;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildSignedPkgUrl(String buildSignedPkgUrl) {
      
      this.buildSignedPkgUrl = buildSignedPkgUrl;
      return this;
    }
  
     /**
     * 已经构建加签过的包地址
     * @return buildSignedPkgUrl
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "已经构建加签过的包地址", value = "已经构建加签过的包地址")
  
    public String getBuildSignedPkgUrl() {
      return buildSignedPkgUrl;
    }
  
  
    public void setBuildSignedPkgUrl(String buildSignedPkgUrl) {
      this.buildSignedPkgUrl = buildSignedPkgUrl;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildSourcePkgSize(String buildSourcePkgSize) {
      
      this.buildSourcePkgSize = buildSourcePkgSize;
      return this;
    }
  
     /**
     * 源码包大小
     * @return buildSourcePkgSize
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "10000", value = "源码包大小")
  
    public String getBuildSourcePkgSize() {
      return buildSourcePkgSize;
    }
  
  
    public void setBuildSourcePkgSize(String buildSourcePkgSize) {
      this.buildSourcePkgSize = buildSourcePkgSize;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildSourcePkgUrl(String buildSourcePkgUrl) {
      
      this.buildSourcePkgUrl = buildSourcePkgUrl;
      return this;
    }
  
     /**
     * 源码包地址，源码包大小不能超过20M且地址必须永久有效，若超20M，将限制业务来源调用。将源码文件夹整个用zip格式压缩成后缀amr文件传至文件服务器
     * @return buildSourcePkgUrl
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "http://alipay-offline.cn-hangzhou.alipay.aliyun-inc.com/pkgcore/DMDjCdOCtERoGgyrJZzq.amr", value = "源码包地址，源码包大小不能超过20M且地址必须永久有效，若超20M，将限制业务来源调用。将源码文件夹整个用zip格式压缩成后缀amr文件传至文件服务器")
  
    public String getBuildSourcePkgUrl() {
      return buildSourcePkgUrl;
    }
  
  
    public void setBuildSourcePkgUrl(String buildSourcePkgUrl) {
      this.buildSourcePkgUrl = buildSourcePkgUrl;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildSubUrl(String buildSubUrl) {
      
      this.buildSubUrl = buildSubUrl;
      return this;
    }
  
     /**
     * 子入口
     * @return buildSubUrl
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "/index.html#pages/todos/todos", value = "子入口")
  
    public String getBuildSubUrl() {
      return buildSubUrl;
    }
  
  
    public void setBuildSubUrl(String buildSubUrl) {
      this.buildSubUrl = buildSubUrl;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildVersion(String buildVersion) {
      
      this.buildVersion = buildVersion;
      return this;
    }
  
     /**
     * 小程序版本
     * @return buildVersion
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "0.0.1", value = "小程序版本")
  
    public String getBuildVersion() {
      return buildVersion;
    }
  
  
    public void setBuildVersion(String buildVersion) {
      this.buildVersion = buildVersion;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildedPackageSize(String buildedPackageSize) {
      
      this.buildedPackageSize = buildedPackageSize;
      return this;
    }
  
     /**
     * 已经构建过的包大小，单位是字节，主要是给自行构建的场景使用
     * @return buildedPackageSize
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "10000", value = "已经构建过的包大小，单位是字节，主要是给自行构建的场景使用")
  
    public String getBuildedPackageSize() {
      return buildedPackageSize;
    }
  
  
    public void setBuildedPackageSize(String buildedPackageSize) {
      this.buildedPackageSize = buildedPackageSize;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel buildedPackageUrl(String buildedPackageUrl) {
      
      this.buildedPackageUrl = buildedPackageUrl;
      return this;
    }
  
     /**
     * 已经构建的包地址，目前主要自行构建的场景使用
     * @return buildedPackageUrl
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "已经构建的包地址", value = "已经构建的包地址，目前主要自行构建的场景使用")
  
    public String getBuildedPackageUrl() {
      return buildedPackageUrl;
    }
  
  
    public void setBuildedPackageUrl(String buildedPackageUrl) {
      this.buildedPackageUrl = buildedPackageUrl;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel bundleId(String bundleId) {
      
      this.bundleId = bundleId;
      return this;
    }
  
     /**
     * 一个端的标识，用于区分不同的客户端，每接入一个客户端，都需要向小程序应用中心申请bundleId入驻
     * @return bundleId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "com.alipay.alipaywallet", value = "一个端的标识，用于区分不同的客户端，每接入一个客户端，都需要向小程序应用中心申请bundleId入驻")
  
    public String getBundleId() {
      return bundleId;
    }
  
  
    public void setBundleId(String bundleId) {
      this.bundleId = bundleId;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel clientType(String clientType) {
      
      this.clientType = clientType;
      return this;
    }
  
     /**
     * 多端类型，除了钉钉外其他业务方禁止使用
     * @return clientType
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "DINGDING", value = "多端类型，除了钉钉外其他业务方禁止使用")
  
    public String getClientType() {
      return clientType;
    }
  
  
    public void setClientType(String clientType) {
      this.clientType = clientType;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel instCode(String instCode) {
      
      this.instCode = instCode;
      return this;
    }
  
     /**
     * 上传调试版的接入租户类型。
     * @return instCode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "taobao", value = "上传调试版的接入租户类型。")
  
    public String getInstCode() {
      return instCode;
    }
  
  
    public void setInstCode(String instCode) {
      this.instCode = instCode;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel miniAppId(String miniAppId) {
      
      this.miniAppId = miniAppId;
      return this;
    }
  
     /**
     * 小程序ID
     * @return miniAppId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2017122101357757", value = "小程序ID")
  
    public String getMiniAppId() {
      return miniAppId;
    }
  
  
    public void setMiniAppId(String miniAppId) {
      this.miniAppId = miniAppId;
    }
  
  
    public AlipayOpenMiniInnerversionUploadModel pluginRefs(List<MiniAppPluginReference> pluginRefs) {
      
      this.pluginRefs = pluginRefs;
      return this;
    }
  
    public AlipayOpenMiniInnerversionUploadModel addPluginRefsItem(MiniAppPluginReference pluginRefsItem) {
      if (this.pluginRefs == null) {
        this.pluginRefs = new ArrayList<>();
      }
      this.pluginRefs.add(pluginRefsItem);
      return this;
    }
  
     /**
     * 小程序代码中引用的插件列表，包含插件id和插件版本信息，业务方需要自行解析源码包的app.json里面的plugins信息
     * @return pluginRefs
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(value = "小程序代码中引用的插件列表，包含插件id和插件版本信息，业务方需要自行解析源码包的app.json里面的plugins信息")
  
    public List<MiniAppPluginReference> getPluginRefs() {
      return pluginRefs;
    }
  
  
    public void setPluginRefs(List<MiniAppPluginReference> pluginRefs) {
      this.pluginRefs = pluginRefs;
    }
  
    /**
     * A container for additional, undeclared properties.
     * This is a holder for any undeclared properties as specified with
     * the 'additionalProperties' keyword in the OAS document.
     */
    private Map<String, Object> additionalProperties;
  
    /**
     * Set the additional (undeclared) property with the specified name and value.
     * If the property does not already exist, create it otherwise replace it.
     *
     * @param key name of the property
     * @param value value of the property
     * @return the AlipayOpenMiniInnerversionUploadModel instance itself
     */
    public AlipayOpenMiniInnerversionUploadModel putAdditionalProperty(String key, Object value) {
      if (this.additionalProperties == null) {
          this.additionalProperties = new HashMap<String, Object>();
      }
      this.additionalProperties.put(key, value);
      return this;
    }
  
    /**
     * Return the additional (undeclared) property.
     *
     * @return a map of objects
     */
    public Map<String, Object> getAdditionalProperties() {
      return additionalProperties;
    }
  
    /**
     * Return the additional (undeclared) property with the specified name.
     *
     * @param key name of the property
     * @return an object
     */
    public Object getAdditionalProperty(String key) {
      if (this.additionalProperties == null) {
          return null;
      }
      return this.additionalProperties.get(key);
    }
  
  
    @Override
    public boolean equals(Object o) {
      if (this == o) {
        return true;
      }
      if (o == null || getClass() != o.getClass()) {
        return false;
      }
      AlipayOpenMiniInnerversionUploadModel alipayOpenMiniInnerversionUploadModel = (AlipayOpenMiniInnerversionUploadModel) o;
      return Objects.equals(this.appOrigin, alipayOpenMiniInnerversionUploadModel.appOrigin) &&
          Objects.equals(this.buildAppType, alipayOpenMiniInnerversionUploadModel.buildAppType) &&
          Objects.equals(this.buildExtraInfo, alipayOpenMiniInnerversionUploadModel.buildExtraInfo) &&
          Objects.equals(this.buildExtraMiniProjectConfig, alipayOpenMiniInnerversionUploadModel.buildExtraMiniProjectConfig) &&
          Objects.equals(this.buildJsPermission, alipayOpenMiniInnerversionUploadModel.buildJsPermission) &&
          Objects.equals(this.buildMainUrl, alipayOpenMiniInnerversionUploadModel.buildMainUrl) &&
          Objects.equals(this.buildMaxAndroidClientVersion, alipayOpenMiniInnerversionUploadModel.buildMaxAndroidClientVersion) &&
          Objects.equals(this.buildMaxIosClientVersion, alipayOpenMiniInnerversionUploadModel.buildMaxIosClientVersion) &&
          Objects.equals(this.buildMinAndroidClientVersion, alipayOpenMiniInnerversionUploadModel.buildMinAndroidClientVersion) &&
          Objects.equals(this.buildMinIosClientVersion, alipayOpenMiniInnerversionUploadModel.buildMinIosClientVersion) &&
          Objects.equals(this.buildPackageMd5, alipayOpenMiniInnerversionUploadModel.buildPackageMd5) &&
          Objects.equals(this.buildPackageName, alipayOpenMiniInnerversionUploadModel.buildPackageName) &&
          Objects.equals(this.buildPackageStream, alipayOpenMiniInnerversionUploadModel.buildPackageStream) &&
          Objects.equals(this.buildQcloudInfo, alipayOpenMiniInnerversionUploadModel.buildQcloudInfo) &&
          Objects.equals(this.buildSignedPkgUrl, alipayOpenMiniInnerversionUploadModel.buildSignedPkgUrl) &&
          Objects.equals(this.buildSourcePkgSize, alipayOpenMiniInnerversionUploadModel.buildSourcePkgSize) &&
          Objects.equals(this.buildSourcePkgUrl, alipayOpenMiniInnerversionUploadModel.buildSourcePkgUrl) &&
          Objects.equals(this.buildSubUrl, alipayOpenMiniInnerversionUploadModel.buildSubUrl) &&
          Objects.equals(this.buildVersion, alipayOpenMiniInnerversionUploadModel.buildVersion) &&
          Objects.equals(this.buildedPackageSize, alipayOpenMiniInnerversionUploadModel.buildedPackageSize) &&
          Objects.equals(this.buildedPackageUrl, alipayOpenMiniInnerversionUploadModel.buildedPackageUrl) &&
          Objects.equals(this.bundleId, alipayOpenMiniInnerversionUploadModel.bundleId) &&
          Objects.equals(this.clientType, alipayOpenMiniInnerversionUploadModel.clientType) &&
          Objects.equals(this.instCode, alipayOpenMiniInnerversionUploadModel.instCode) &&
          Objects.equals(this.miniAppId, alipayOpenMiniInnerversionUploadModel.miniAppId) &&
          Objects.equals(this.pluginRefs, alipayOpenMiniInnerversionUploadModel.pluginRefs)&&
          Objects.equals(this.additionalProperties, alipayOpenMiniInnerversionUploadModel.additionalProperties);
    }
  
    @Override
    public int hashCode() {
      return Objects.hash(appOrigin, buildAppType, buildExtraInfo, buildExtraMiniProjectConfig, buildJsPermission, buildMainUrl, buildMaxAndroidClientVersion, buildMaxIosClientVersion, buildMinAndroidClientVersion, buildMinIosClientVersion, buildPackageMd5, buildPackageName, buildPackageStream, buildQcloudInfo, buildSignedPkgUrl, buildSourcePkgSize, buildSourcePkgUrl, buildSubUrl, buildVersion, buildedPackageSize, buildedPackageUrl, bundleId, clientType, instCode, miniAppId, pluginRefs, additionalProperties);
    }
  
    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder();
      sb.append("class AlipayOpenMiniInnerversionUploadModel {\n");
      sb.append("    appOrigin: ").append(toIndentedString(appOrigin)).append("\n");
      sb.append("    buildAppType: ").append(toIndentedString(buildAppType)).append("\n");
      sb.append("    buildExtraInfo: ").append(toIndentedString(buildExtraInfo)).append("\n");
      sb.append("    buildExtraMiniProjectConfig: ").append(toIndentedString(buildExtraMiniProjectConfig)).append("\n");
      sb.append("    buildJsPermission: ").append(toIndentedString(buildJsPermission)).append("\n");
      sb.append("    buildMainUrl: ").append(toIndentedString(buildMainUrl)).append("\n");
      sb.append("    buildMaxAndroidClientVersion: ").append(toIndentedString(buildMaxAndroidClientVersion)).append("\n");
      sb.append("    buildMaxIosClientVersion: ").append(toIndentedString(buildMaxIosClientVersion)).append("\n");
      sb.append("    buildMinAndroidClientVersion: ").append(toIndentedString(buildMinAndroidClientVersion)).append("\n");
      sb.append("    buildMinIosClientVersion: ").append(toIndentedString(buildMinIosClientVersion)).append("\n");
      sb.append("    buildPackageMd5: ").append(toIndentedString(buildPackageMd5)).append("\n");
      sb.append("    buildPackageName: ").append(toIndentedString(buildPackageName)).append("\n");
      sb.append("    buildPackageStream: ").append(toIndentedString(buildPackageStream)).append("\n");
      sb.append("    buildQcloudInfo: ").append(toIndentedString(buildQcloudInfo)).append("\n");
      sb.append("    buildSignedPkgUrl: ").append(toIndentedString(buildSignedPkgUrl)).append("\n");
      sb.append("    buildSourcePkgSize: ").append(toIndentedString(buildSourcePkgSize)).append("\n");
      sb.append("    buildSourcePkgUrl: ").append(toIndentedString(buildSourcePkgUrl)).append("\n");
      sb.append("    buildSubUrl: ").append(toIndentedString(buildSubUrl)).append("\n");
      sb.append("    buildVersion: ").append(toIndentedString(buildVersion)).append("\n");
      sb.append("    buildedPackageSize: ").append(toIndentedString(buildedPackageSize)).append("\n");
      sb.append("    buildedPackageUrl: ").append(toIndentedString(buildedPackageUrl)).append("\n");
      sb.append("    bundleId: ").append(toIndentedString(bundleId)).append("\n");
      sb.append("    clientType: ").append(toIndentedString(clientType)).append("\n");
      sb.append("    instCode: ").append(toIndentedString(instCode)).append("\n");
      sb.append("    miniAppId: ").append(toIndentedString(miniAppId)).append("\n");
      sb.append("    pluginRefs: ").append(toIndentedString(pluginRefs)).append("\n");
      sb.append("    additionalProperties: ").append(toIndentedString(additionalProperties)).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("app_origin");
      openapiFields.add("build_app_type");
      openapiFields.add("build_extra_info");
      openapiFields.add("build_extra_mini_project_config");
      openapiFields.add("build_js_permission");
      openapiFields.add("build_main_url");
      openapiFields.add("build_max_android_client_version");
      openapiFields.add("build_max_ios_client_version");
      openapiFields.add("build_min_android_client_version");
      openapiFields.add("build_min_ios_client_version");
      openapiFields.add("build_package_md_5");
      openapiFields.add("build_package_name");
      openapiFields.add("build_package_stream");
      openapiFields.add("build_qcloud_info");
      openapiFields.add("build_signed_pkg_url");
      openapiFields.add("build_source_pkg_size");
      openapiFields.add("build_source_pkg_url");
      openapiFields.add("build_sub_url");
      openapiFields.add("build_version");
      openapiFields.add("builded_package_size");
      openapiFields.add("builded_package_url");
      openapiFields.add("bundle_id");
      openapiFields.add("client_type");
      openapiFields.add("inst_code");
      openapiFields.add("mini_app_id");
      openapiFields.add("plugin_refs");
  
      // 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 AlipayOpenMiniInnerversionUploadModel
    */
    public static void validateJsonObject(JsonObject jsonObj) throws IOException {
        if (jsonObj == null) {
          if (AlipayOpenMiniInnerversionUploadModel.openapiRequiredFields.isEmpty()) {
            return;
          } else { // has required fields
            throw new IllegalArgumentException(String.format("The required field(s) %s in AlipayOpenMiniInnerversionUploadModel is not found in the empty JSON string", AlipayOpenMiniInnerversionUploadModel.openapiRequiredFields.toString()));
          }
        }
        if (jsonObj.get("app_origin") != null && !jsonObj.get("app_origin").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `app_origin` to be a primitive type in the JSON string but got `%s`", jsonObj.get("app_origin").toString()));
        }
        if (jsonObj.get("build_app_type") != null && !jsonObj.get("build_app_type").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `build_app_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("build_app_type").toString()));
        }
        if (jsonObj.get("build_extra_info") != null && !jsonObj.get("build_extra_info").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `build_extra_info` to be a primitive type in the JSON string but got `%s`", jsonObj.get("build_extra_info").toString()));
        }
        if (jsonObj.get("build_extra_mini_project_config") != null && !jsonObj.get("build_extra_mini_project_config").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `build_extra_mini_project_config` to be a primitive type in the JSON string but got `%s`", jsonObj.get("build_extra_mini_project_config").toString()));
        }
        if (jsonObj.get("build_js_permission") != null && !jsonObj.get("build_js_permission").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `build_js_permission` to be a primitive type in the JSON string but got `%s`", jsonObj.get("build_js_permission").toString()));
        }
        if (jsonObj.get("build_main_url") != null && !jsonObj.get("build_main_url").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `build_main_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("build_main_url").toString()));
        }
        if (jsonObj.get("build_max_android_client_version") != null && !jsonObj.get("build_max_android_client_version").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `build_max_android_client_version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("build_max_android_client_version").toString()));
        }
        if (jsonObj.get("build_max_ios_client_version") != null && !jsonObj.get("build_max_ios_client_version").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `build_max_ios_client_version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("build_max_ios_client_version").toString()));
        }
        if (jsonObj.get("build_min_android_client_version") != null && !jsonObj.get("build_min_android_client_version").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `build_min_android_client_version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("build_min_android_client_version").toString()));
        }
        if (jsonObj.get("build_min_ios_client_version") != null && !jsonObj.get("build_min_ios_client_version").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `build_min_ios_client_version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("build_min_ios_client_version").toString()));
        }
        if (jsonObj.get("build_package_md_5") != null && !jsonObj.get("build_package_md_5").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `build_package_md_5` to be a primitive type in the JSON string but got `%s`", jsonObj.get("build_package_md_5").toString()));
        }
        if (jsonObj.get("build_package_name") != null && !jsonObj.get("build_package_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `build_package_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("build_package_name").toString()));
        }
        if (jsonObj.get("build_package_stream") != null && !jsonObj.get("build_package_stream").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `build_package_stream` to be a primitive type in the JSON string but got `%s`", jsonObj.get("build_package_stream").toString()));
        }
        if (jsonObj.get("build_qcloud_info") != null && !jsonObj.get("build_qcloud_info").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `build_qcloud_info` to be a primitive type in the JSON string but got `%s`", jsonObj.get("build_qcloud_info").toString()));
        }
        if (jsonObj.get("build_signed_pkg_url") != null && !jsonObj.get("build_signed_pkg_url").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `build_signed_pkg_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("build_signed_pkg_url").toString()));
        }
        if (jsonObj.get("build_source_pkg_size") != null && !jsonObj.get("build_source_pkg_size").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `build_source_pkg_size` to be a primitive type in the JSON string but got `%s`", jsonObj.get("build_source_pkg_size").toString()));
        }
        if (jsonObj.get("build_source_pkg_url") != null && !jsonObj.get("build_source_pkg_url").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `build_source_pkg_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("build_source_pkg_url").toString()));
        }
        if (jsonObj.get("build_sub_url") != null && !jsonObj.get("build_sub_url").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `build_sub_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("build_sub_url").toString()));
        }
        if (jsonObj.get("build_version") != null && !jsonObj.get("build_version").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `build_version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("build_version").toString()));
        }
        if (jsonObj.get("builded_package_size") != null && !jsonObj.get("builded_package_size").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `builded_package_size` to be a primitive type in the JSON string but got `%s`", jsonObj.get("builded_package_size").toString()));
        }
        if (jsonObj.get("builded_package_url") != null && !jsonObj.get("builded_package_url").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `builded_package_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("builded_package_url").toString()));
        }
        if (jsonObj.get("bundle_id") != null && !jsonObj.get("bundle_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `bundle_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("bundle_id").toString()));
        }
        if (jsonObj.get("client_type") != null && !jsonObj.get("client_type").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `client_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("client_type").toString()));
        }
        if (jsonObj.get("inst_code") != null && !jsonObj.get("inst_code").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `inst_code` to be a primitive type in the JSON string but got `%s`", jsonObj.get("inst_code").toString()));
        }
        if (jsonObj.get("mini_app_id") != null && !jsonObj.get("mini_app_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `mini_app_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("mini_app_id").toString()));
        }
        JsonArray jsonArraypluginRefs = jsonObj.getAsJsonArray("plugin_refs");
        if (jsonArraypluginRefs != null) {
          // ensure the json data is an array
          if (!jsonObj.get("plugin_refs").isJsonArray()) {
            throw new IllegalArgumentException(String.format("Expected the field `plugin_refs` to be an array in the JSON string but got `%s`", jsonObj.get("plugin_refs").toString()));
          }
  
          // validate the optional field `plugin_refs` (array)
          for (int i = 0; i < jsonArraypluginRefs.size(); i++) {
            MiniAppPluginReference.validateJsonObject(jsonArraypluginRefs.get(i).getAsJsonObject());
          };
        }
    }
  
    public static class CustomTypeAdapterFactory implements TypeAdapterFactory {
      @SuppressWarnings("unchecked")
      @Override
      public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
         if (!AlipayOpenMiniInnerversionUploadModel.class.isAssignableFrom(type.getRawType())) {
           return null; // this class only serializes 'AlipayOpenMiniInnerversionUploadModel' and its subtypes
         }
         final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
         final TypeAdapter<AlipayOpenMiniInnerversionUploadModel> thisAdapter
                          = gson.getDelegateAdapter(this, TypeToken.get(AlipayOpenMiniInnerversionUploadModel.class));
  
         return (TypeAdapter<T>) new TypeAdapter<AlipayOpenMiniInnerversionUploadModel>() {
             @Override
             public void write(JsonWriter out, AlipayOpenMiniInnerversionUploadModel value) throws IOException {
               JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject();
               obj.remove("additionalProperties");
               // serialize additonal properties
               if (value.getAdditionalProperties() != null) {
                 for (Map.Entry<String, Object> entry : value.getAdditionalProperties().entrySet()) {
                   if (entry.getValue() instanceof String)
                     obj.addProperty(entry.getKey(), (String) entry.getValue());
                   else if (entry.getValue() instanceof Number)
                     obj.addProperty(entry.getKey(), (Number) entry.getValue());
                   else if (entry.getValue() instanceof Boolean)
                     obj.addProperty(entry.getKey(), (Boolean) entry.getValue());
                   else if (entry.getValue() instanceof Character)
                     obj.addProperty(entry.getKey(), (Character) entry.getValue());
                   else {
                     obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject());
                   }
                 }
               }
               elementAdapter.write(out, obj);
             }
  
             @Override
             public AlipayOpenMiniInnerversionUploadModel read(JsonReader in) throws IOException {
               JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject();
               validateJsonObject(jsonObj);
               // store additional fields in the deserialized instance
               AlipayOpenMiniInnerversionUploadModel instance = thisAdapter.fromJsonTree(jsonObj);
               for (Map.Entry<String, JsonElement> entry : jsonObj.entrySet()) {
                 if (!openapiFields.contains(entry.getKey())) {
                   if (entry.getValue().isJsonPrimitive()) { // primitive type
                     if (entry.getValue().getAsJsonPrimitive().isString())
                       instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString());
                     else if (entry.getValue().getAsJsonPrimitive().isNumber())
                       instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber());
                     else if (entry.getValue().getAsJsonPrimitive().isBoolean())
                       instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean());
                     else
                       throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString()));
                   } else { // non-primitive type
                     instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class));
                   }
                 }
               }
               return instance;
             }
  
         }.nullSafe();
      }
    }
  
   /**
    * Create an instance of AlipayOpenMiniInnerversionUploadModel given an JSON string
    *
    * @param jsonString JSON string
    * @return An instance of AlipayOpenMiniInnerversionUploadModel
    * @throws IOException if the JSON string is invalid with respect to AlipayOpenMiniInnerversionUploadModel
    */
    public static AlipayOpenMiniInnerversionUploadModel fromJson(String jsonString) throws IOException {
      return JSON.getGson().fromJson(jsonString, AlipayOpenMiniInnerversionUploadModel.class);
    }
  
   /**
    * Convert an instance of AlipayOpenMiniInnerversionUploadModel to an JSON string
    *
    * @return JSON string
    */
    public String toJson() {
      return JSON.getGson().toJson(this);
    }
  }
  
  