TS3StorageParam.java

/**
 * Autogenerated by Thrift Compiler (0.16.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
package org.apache.doris.thrift;

@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.16.0)", date = "2026-05-14")
public class TS3StorageParam implements org.apache.thrift.TBase<TS3StorageParam, TS3StorageParam._Fields>, java.io.Serializable, Cloneable, Comparable<TS3StorageParam> {
  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TS3StorageParam");

  private static final org.apache.thrift.protocol.TField ENDPOINT_FIELD_DESC = new org.apache.thrift.protocol.TField("endpoint", org.apache.thrift.protocol.TType.STRING, (short)1);
  private static final org.apache.thrift.protocol.TField REGION_FIELD_DESC = new org.apache.thrift.protocol.TField("region", org.apache.thrift.protocol.TType.STRING, (short)2);
  private static final org.apache.thrift.protocol.TField AK_FIELD_DESC = new org.apache.thrift.protocol.TField("ak", org.apache.thrift.protocol.TType.STRING, (short)3);
  private static final org.apache.thrift.protocol.TField SK_FIELD_DESC = new org.apache.thrift.protocol.TField("sk", org.apache.thrift.protocol.TType.STRING, (short)4);
  private static final org.apache.thrift.protocol.TField MAX_CONN_FIELD_DESC = new org.apache.thrift.protocol.TField("max_conn", org.apache.thrift.protocol.TType.I32, (short)5);
  private static final org.apache.thrift.protocol.TField REQUEST_TIMEOUT_MS_FIELD_DESC = new org.apache.thrift.protocol.TField("request_timeout_ms", org.apache.thrift.protocol.TType.I32, (short)6);
  private static final org.apache.thrift.protocol.TField CONN_TIMEOUT_MS_FIELD_DESC = new org.apache.thrift.protocol.TField("conn_timeout_ms", org.apache.thrift.protocol.TType.I32, (short)7);
  private static final org.apache.thrift.protocol.TField ROOT_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("root_path", org.apache.thrift.protocol.TType.STRING, (short)8);
  private static final org.apache.thrift.protocol.TField BUCKET_FIELD_DESC = new org.apache.thrift.protocol.TField("bucket", org.apache.thrift.protocol.TType.STRING, (short)9);
  private static final org.apache.thrift.protocol.TField USE_PATH_STYLE_FIELD_DESC = new org.apache.thrift.protocol.TField("use_path_style", org.apache.thrift.protocol.TType.BOOL, (short)10);
  private static final org.apache.thrift.protocol.TField TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("token", org.apache.thrift.protocol.TType.STRING, (short)11);
  private static final org.apache.thrift.protocol.TField PROVIDER_FIELD_DESC = new org.apache.thrift.protocol.TField("provider", org.apache.thrift.protocol.TType.I32, (short)12);
  private static final org.apache.thrift.protocol.TField CRED_PROVIDER_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("cred_provider_type", org.apache.thrift.protocol.TType.I32, (short)13);
  private static final org.apache.thrift.protocol.TField ROLE_ARN_FIELD_DESC = new org.apache.thrift.protocol.TField("role_arn", org.apache.thrift.protocol.TType.STRING, (short)14);
  private static final org.apache.thrift.protocol.TField EXTERNAL_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("external_id", org.apache.thrift.protocol.TType.STRING, (short)15);

  private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new TS3StorageParamStandardSchemeFactory();
  private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new TS3StorageParamTupleSchemeFactory();

  public @org.apache.thrift.annotation.Nullable java.lang.String endpoint; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String region; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String ak; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String sk; // optional
  public int max_conn; // optional
  public int request_timeout_ms; // optional
  public int conn_timeout_ms; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String root_path; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String bucket; // optional
  public boolean use_path_style; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String token; // optional
  /**
   * 
   * @see TObjStorageType
   */
  public @org.apache.thrift.annotation.Nullable TObjStorageType provider; // optional
  /**
   * 
   * @see TCredProviderType
   */
  public @org.apache.thrift.annotation.Nullable TCredProviderType cred_provider_type; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String role_arn; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String external_id; // optional

  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
    ENDPOINT((short)1, "endpoint"),
    REGION((short)2, "region"),
    AK((short)3, "ak"),
    SK((short)4, "sk"),
    MAX_CONN((short)5, "max_conn"),
    REQUEST_TIMEOUT_MS((short)6, "request_timeout_ms"),
    CONN_TIMEOUT_MS((short)7, "conn_timeout_ms"),
    ROOT_PATH((short)8, "root_path"),
    BUCKET((short)9, "bucket"),
    USE_PATH_STYLE((short)10, "use_path_style"),
    TOKEN((short)11, "token"),
    /**
     * 
     * @see TObjStorageType
     */
    PROVIDER((short)12, "provider"),
    /**
     * 
     * @see TCredProviderType
     */
    CRED_PROVIDER_TYPE((short)13, "cred_provider_type"),
    ROLE_ARN((short)14, "role_arn"),
    EXTERNAL_ID((short)15, "external_id");

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

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

    /**
     * Find the _Fields constant that matches fieldId, or null if its not found.
     */
    @org.apache.thrift.annotation.Nullable
    public static _Fields findByThriftId(int fieldId) {
      switch(fieldId) {
        case 1: // ENDPOINT
          return ENDPOINT;
        case 2: // REGION
          return REGION;
        case 3: // AK
          return AK;
        case 4: // SK
          return SK;
        case 5: // MAX_CONN
          return MAX_CONN;
        case 6: // REQUEST_TIMEOUT_MS
          return REQUEST_TIMEOUT_MS;
        case 7: // CONN_TIMEOUT_MS
          return CONN_TIMEOUT_MS;
        case 8: // ROOT_PATH
          return ROOT_PATH;
        case 9: // BUCKET
          return BUCKET;
        case 10: // USE_PATH_STYLE
          return USE_PATH_STYLE;
        case 11: // TOKEN
          return TOKEN;
        case 12: // PROVIDER
          return PROVIDER;
        case 13: // CRED_PROVIDER_TYPE
          return CRED_PROVIDER_TYPE;
        case 14: // ROLE_ARN
          return ROLE_ARN;
        case 15: // EXTERNAL_ID
          return EXTERNAL_ID;
        default:
          return null;
      }
    }

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

    /**
     * Find the _Fields constant that matches name, or null if its not found.
     */
    @org.apache.thrift.annotation.Nullable
    public static _Fields findByName(java.lang.String name) {
      return byName.get(name);
    }

    private final short _thriftId;
    private final java.lang.String _fieldName;

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

    public short getThriftFieldId() {
      return _thriftId;
    }

    public java.lang.String getFieldName() {
      return _fieldName;
    }
  }

  // isset id assignments
  private static final int __MAX_CONN_ISSET_ID = 0;
  private static final int __REQUEST_TIMEOUT_MS_ISSET_ID = 1;
  private static final int __CONN_TIMEOUT_MS_ISSET_ID = 2;
  private static final int __USE_PATH_STYLE_ISSET_ID = 3;
  private byte __isset_bitfield = 0;
  private static final _Fields optionals[] = {_Fields.ENDPOINT,_Fields.REGION,_Fields.AK,_Fields.SK,_Fields.MAX_CONN,_Fields.REQUEST_TIMEOUT_MS,_Fields.CONN_TIMEOUT_MS,_Fields.ROOT_PATH,_Fields.BUCKET,_Fields.USE_PATH_STYLE,_Fields.TOKEN,_Fields.PROVIDER,_Fields.CRED_PROVIDER_TYPE,_Fields.ROLE_ARN,_Fields.EXTERNAL_ID};
  public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
  static {
    java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
    tmpMap.put(_Fields.ENDPOINT, new org.apache.thrift.meta_data.FieldMetaData("endpoint", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.REGION, new org.apache.thrift.meta_data.FieldMetaData("region", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.AK, new org.apache.thrift.meta_data.FieldMetaData("ak", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.SK, new org.apache.thrift.meta_data.FieldMetaData("sk", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.MAX_CONN, new org.apache.thrift.meta_data.FieldMetaData("max_conn", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.REQUEST_TIMEOUT_MS, new org.apache.thrift.meta_data.FieldMetaData("request_timeout_ms", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.CONN_TIMEOUT_MS, new org.apache.thrift.meta_data.FieldMetaData("conn_timeout_ms", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.ROOT_PATH, new org.apache.thrift.meta_data.FieldMetaData("root_path", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.BUCKET, new org.apache.thrift.meta_data.FieldMetaData("bucket", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.USE_PATH_STYLE, new org.apache.thrift.meta_data.FieldMetaData("use_path_style", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.TOKEN, new org.apache.thrift.meta_data.FieldMetaData("token", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.PROVIDER, new org.apache.thrift.meta_data.FieldMetaData("provider", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TObjStorageType.class)));
    tmpMap.put(_Fields.CRED_PROVIDER_TYPE, new org.apache.thrift.meta_data.FieldMetaData("cred_provider_type", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TCredProviderType.class)));
    tmpMap.put(_Fields.ROLE_ARN, new org.apache.thrift.meta_data.FieldMetaData("role_arn", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.EXTERNAL_ID, new org.apache.thrift.meta_data.FieldMetaData("external_id", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TS3StorageParam.class, metaDataMap);
  }

  public TS3StorageParam() {
    this.max_conn = 50;

    this.request_timeout_ms = 3000;

    this.conn_timeout_ms = 1000;

    this.use_path_style = false;

  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public TS3StorageParam(TS3StorageParam other) {
    __isset_bitfield = other.__isset_bitfield;
    if (other.isSetEndpoint()) {
      this.endpoint = other.endpoint;
    }
    if (other.isSetRegion()) {
      this.region = other.region;
    }
    if (other.isSetAk()) {
      this.ak = other.ak;
    }
    if (other.isSetSk()) {
      this.sk = other.sk;
    }
    this.max_conn = other.max_conn;
    this.request_timeout_ms = other.request_timeout_ms;
    this.conn_timeout_ms = other.conn_timeout_ms;
    if (other.isSetRootPath()) {
      this.root_path = other.root_path;
    }
    if (other.isSetBucket()) {
      this.bucket = other.bucket;
    }
    this.use_path_style = other.use_path_style;
    if (other.isSetToken()) {
      this.token = other.token;
    }
    if (other.isSetProvider()) {
      this.provider = other.provider;
    }
    if (other.isSetCredProviderType()) {
      this.cred_provider_type = other.cred_provider_type;
    }
    if (other.isSetRoleArn()) {
      this.role_arn = other.role_arn;
    }
    if (other.isSetExternalId()) {
      this.external_id = other.external_id;
    }
  }

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

  @Override
  public void clear() {
    this.endpoint = null;
    this.region = null;
    this.ak = null;
    this.sk = null;
    this.max_conn = 50;

    this.request_timeout_ms = 3000;

    this.conn_timeout_ms = 1000;

    this.root_path = null;
    this.bucket = null;
    this.use_path_style = false;

    this.token = null;
    this.provider = null;
    this.cred_provider_type = null;
    this.role_arn = null;
    this.external_id = null;
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getEndpoint() {
    return this.endpoint;
  }

  public TS3StorageParam setEndpoint(@org.apache.thrift.annotation.Nullable java.lang.String endpoint) {
    this.endpoint = endpoint;
    return this;
  }

  public void unsetEndpoint() {
    this.endpoint = null;
  }

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

  public void setEndpointIsSet(boolean value) {
    if (!value) {
      this.endpoint = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getRegion() {
    return this.region;
  }

  public TS3StorageParam setRegion(@org.apache.thrift.annotation.Nullable java.lang.String region) {
    this.region = region;
    return this;
  }

  public void unsetRegion() {
    this.region = null;
  }

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

  public void setRegionIsSet(boolean value) {
    if (!value) {
      this.region = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getAk() {
    return this.ak;
  }

  public TS3StorageParam setAk(@org.apache.thrift.annotation.Nullable java.lang.String ak) {
    this.ak = ak;
    return this;
  }

  public void unsetAk() {
    this.ak = null;
  }

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

  public void setAkIsSet(boolean value) {
    if (!value) {
      this.ak = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getSk() {
    return this.sk;
  }

  public TS3StorageParam setSk(@org.apache.thrift.annotation.Nullable java.lang.String sk) {
    this.sk = sk;
    return this;
  }

  public void unsetSk() {
    this.sk = null;
  }

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

  public void setSkIsSet(boolean value) {
    if (!value) {
      this.sk = null;
    }
  }

  public int getMaxConn() {
    return this.max_conn;
  }

  public TS3StorageParam setMaxConn(int max_conn) {
    this.max_conn = max_conn;
    setMaxConnIsSet(true);
    return this;
  }

  public void unsetMaxConn() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MAX_CONN_ISSET_ID);
  }

  /** Returns true if field max_conn is set (has been assigned a value) and false otherwise */
  public boolean isSetMaxConn() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MAX_CONN_ISSET_ID);
  }

  public void setMaxConnIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MAX_CONN_ISSET_ID, value);
  }

  public int getRequestTimeoutMs() {
    return this.request_timeout_ms;
  }

  public TS3StorageParam setRequestTimeoutMs(int request_timeout_ms) {
    this.request_timeout_ms = request_timeout_ms;
    setRequestTimeoutMsIsSet(true);
    return this;
  }

  public void unsetRequestTimeoutMs() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __REQUEST_TIMEOUT_MS_ISSET_ID);
  }

  /** Returns true if field request_timeout_ms is set (has been assigned a value) and false otherwise */
  public boolean isSetRequestTimeoutMs() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __REQUEST_TIMEOUT_MS_ISSET_ID);
  }

  public void setRequestTimeoutMsIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __REQUEST_TIMEOUT_MS_ISSET_ID, value);
  }

  public int getConnTimeoutMs() {
    return this.conn_timeout_ms;
  }

  public TS3StorageParam setConnTimeoutMs(int conn_timeout_ms) {
    this.conn_timeout_ms = conn_timeout_ms;
    setConnTimeoutMsIsSet(true);
    return this;
  }

  public void unsetConnTimeoutMs() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __CONN_TIMEOUT_MS_ISSET_ID);
  }

  /** Returns true if field conn_timeout_ms is set (has been assigned a value) and false otherwise */
  public boolean isSetConnTimeoutMs() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __CONN_TIMEOUT_MS_ISSET_ID);
  }

  public void setConnTimeoutMsIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __CONN_TIMEOUT_MS_ISSET_ID, value);
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getRootPath() {
    return this.root_path;
  }

  public TS3StorageParam setRootPath(@org.apache.thrift.annotation.Nullable java.lang.String root_path) {
    this.root_path = root_path;
    return this;
  }

  public void unsetRootPath() {
    this.root_path = null;
  }

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

  public void setRootPathIsSet(boolean value) {
    if (!value) {
      this.root_path = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getBucket() {
    return this.bucket;
  }

  public TS3StorageParam setBucket(@org.apache.thrift.annotation.Nullable java.lang.String bucket) {
    this.bucket = bucket;
    return this;
  }

  public void unsetBucket() {
    this.bucket = null;
  }

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

  public void setBucketIsSet(boolean value) {
    if (!value) {
      this.bucket = null;
    }
  }

  public boolean isUsePathStyle() {
    return this.use_path_style;
  }

  public TS3StorageParam setUsePathStyle(boolean use_path_style) {
    this.use_path_style = use_path_style;
    setUsePathStyleIsSet(true);
    return this;
  }

  public void unsetUsePathStyle() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __USE_PATH_STYLE_ISSET_ID);
  }

  /** Returns true if field use_path_style is set (has been assigned a value) and false otherwise */
  public boolean isSetUsePathStyle() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __USE_PATH_STYLE_ISSET_ID);
  }

  public void setUsePathStyleIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __USE_PATH_STYLE_ISSET_ID, value);
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getToken() {
    return this.token;
  }

  public TS3StorageParam setToken(@org.apache.thrift.annotation.Nullable java.lang.String token) {
    this.token = token;
    return this;
  }

  public void unsetToken() {
    this.token = null;
  }

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

  public void setTokenIsSet(boolean value) {
    if (!value) {
      this.token = null;
    }
  }

  /**
   * 
   * @see TObjStorageType
   */
  @org.apache.thrift.annotation.Nullable
  public TObjStorageType getProvider() {
    return this.provider;
  }

  /**
   * 
   * @see TObjStorageType
   */
  public TS3StorageParam setProvider(@org.apache.thrift.annotation.Nullable TObjStorageType provider) {
    this.provider = provider;
    return this;
  }

  public void unsetProvider() {
    this.provider = null;
  }

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

  public void setProviderIsSet(boolean value) {
    if (!value) {
      this.provider = null;
    }
  }

  /**
   * 
   * @see TCredProviderType
   */
  @org.apache.thrift.annotation.Nullable
  public TCredProviderType getCredProviderType() {
    return this.cred_provider_type;
  }

  /**
   * 
   * @see TCredProviderType
   */
  public TS3StorageParam setCredProviderType(@org.apache.thrift.annotation.Nullable TCredProviderType cred_provider_type) {
    this.cred_provider_type = cred_provider_type;
    return this;
  }

  public void unsetCredProviderType() {
    this.cred_provider_type = null;
  }

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

  public void setCredProviderTypeIsSet(boolean value) {
    if (!value) {
      this.cred_provider_type = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getRoleArn() {
    return this.role_arn;
  }

  public TS3StorageParam setRoleArn(@org.apache.thrift.annotation.Nullable java.lang.String role_arn) {
    this.role_arn = role_arn;
    return this;
  }

  public void unsetRoleArn() {
    this.role_arn = null;
  }

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

  public void setRoleArnIsSet(boolean value) {
    if (!value) {
      this.role_arn = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getExternalId() {
    return this.external_id;
  }

  public TS3StorageParam setExternalId(@org.apache.thrift.annotation.Nullable java.lang.String external_id) {
    this.external_id = external_id;
    return this;
  }

  public void unsetExternalId() {
    this.external_id = null;
  }

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

  public void setExternalIdIsSet(boolean value) {
    if (!value) {
      this.external_id = null;
    }
  }

  public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
    switch (field) {
    case ENDPOINT:
      if (value == null) {
        unsetEndpoint();
      } else {
        setEndpoint((java.lang.String)value);
      }
      break;

    case REGION:
      if (value == null) {
        unsetRegion();
      } else {
        setRegion((java.lang.String)value);
      }
      break;

    case AK:
      if (value == null) {
        unsetAk();
      } else {
        setAk((java.lang.String)value);
      }
      break;

    case SK:
      if (value == null) {
        unsetSk();
      } else {
        setSk((java.lang.String)value);
      }
      break;

    case MAX_CONN:
      if (value == null) {
        unsetMaxConn();
      } else {
        setMaxConn((java.lang.Integer)value);
      }
      break;

    case REQUEST_TIMEOUT_MS:
      if (value == null) {
        unsetRequestTimeoutMs();
      } else {
        setRequestTimeoutMs((java.lang.Integer)value);
      }
      break;

    case CONN_TIMEOUT_MS:
      if (value == null) {
        unsetConnTimeoutMs();
      } else {
        setConnTimeoutMs((java.lang.Integer)value);
      }
      break;

    case ROOT_PATH:
      if (value == null) {
        unsetRootPath();
      } else {
        setRootPath((java.lang.String)value);
      }
      break;

    case BUCKET:
      if (value == null) {
        unsetBucket();
      } else {
        setBucket((java.lang.String)value);
      }
      break;

    case USE_PATH_STYLE:
      if (value == null) {
        unsetUsePathStyle();
      } else {
        setUsePathStyle((java.lang.Boolean)value);
      }
      break;

    case TOKEN:
      if (value == null) {
        unsetToken();
      } else {
        setToken((java.lang.String)value);
      }
      break;

    case PROVIDER:
      if (value == null) {
        unsetProvider();
      } else {
        setProvider((TObjStorageType)value);
      }
      break;

    case CRED_PROVIDER_TYPE:
      if (value == null) {
        unsetCredProviderType();
      } else {
        setCredProviderType((TCredProviderType)value);
      }
      break;

    case ROLE_ARN:
      if (value == null) {
        unsetRoleArn();
      } else {
        setRoleArn((java.lang.String)value);
      }
      break;

    case EXTERNAL_ID:
      if (value == null) {
        unsetExternalId();
      } else {
        setExternalId((java.lang.String)value);
      }
      break;

    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.Object getFieldValue(_Fields field) {
    switch (field) {
    case ENDPOINT:
      return getEndpoint();

    case REGION:
      return getRegion();

    case AK:
      return getAk();

    case SK:
      return getSk();

    case MAX_CONN:
      return getMaxConn();

    case REQUEST_TIMEOUT_MS:
      return getRequestTimeoutMs();

    case CONN_TIMEOUT_MS:
      return getConnTimeoutMs();

    case ROOT_PATH:
      return getRootPath();

    case BUCKET:
      return getBucket();

    case USE_PATH_STYLE:
      return isUsePathStyle();

    case TOKEN:
      return getToken();

    case PROVIDER:
      return getProvider();

    case CRED_PROVIDER_TYPE:
      return getCredProviderType();

    case ROLE_ARN:
      return getRoleArn();

    case EXTERNAL_ID:
      return getExternalId();

    }
    throw new java.lang.IllegalStateException();
  }

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

    switch (field) {
    case ENDPOINT:
      return isSetEndpoint();
    case REGION:
      return isSetRegion();
    case AK:
      return isSetAk();
    case SK:
      return isSetSk();
    case MAX_CONN:
      return isSetMaxConn();
    case REQUEST_TIMEOUT_MS:
      return isSetRequestTimeoutMs();
    case CONN_TIMEOUT_MS:
      return isSetConnTimeoutMs();
    case ROOT_PATH:
      return isSetRootPath();
    case BUCKET:
      return isSetBucket();
    case USE_PATH_STYLE:
      return isSetUsePathStyle();
    case TOKEN:
      return isSetToken();
    case PROVIDER:
      return isSetProvider();
    case CRED_PROVIDER_TYPE:
      return isSetCredProviderType();
    case ROLE_ARN:
      return isSetRoleArn();
    case EXTERNAL_ID:
      return isSetExternalId();
    }
    throw new java.lang.IllegalStateException();
  }

  @Override
  public boolean equals(java.lang.Object that) {
    if (that instanceof TS3StorageParam)
      return this.equals((TS3StorageParam)that);
    return false;
  }

  public boolean equals(TS3StorageParam that) {
    if (that == null)
      return false;
    if (this == that)
      return true;

    boolean this_present_endpoint = true && this.isSetEndpoint();
    boolean that_present_endpoint = true && that.isSetEndpoint();
    if (this_present_endpoint || that_present_endpoint) {
      if (!(this_present_endpoint && that_present_endpoint))
        return false;
      if (!this.endpoint.equals(that.endpoint))
        return false;
    }

    boolean this_present_region = true && this.isSetRegion();
    boolean that_present_region = true && that.isSetRegion();
    if (this_present_region || that_present_region) {
      if (!(this_present_region && that_present_region))
        return false;
      if (!this.region.equals(that.region))
        return false;
    }

    boolean this_present_ak = true && this.isSetAk();
    boolean that_present_ak = true && that.isSetAk();
    if (this_present_ak || that_present_ak) {
      if (!(this_present_ak && that_present_ak))
        return false;
      if (!this.ak.equals(that.ak))
        return false;
    }

    boolean this_present_sk = true && this.isSetSk();
    boolean that_present_sk = true && that.isSetSk();
    if (this_present_sk || that_present_sk) {
      if (!(this_present_sk && that_present_sk))
        return false;
      if (!this.sk.equals(that.sk))
        return false;
    }

    boolean this_present_max_conn = true && this.isSetMaxConn();
    boolean that_present_max_conn = true && that.isSetMaxConn();
    if (this_present_max_conn || that_present_max_conn) {
      if (!(this_present_max_conn && that_present_max_conn))
        return false;
      if (this.max_conn != that.max_conn)
        return false;
    }

    boolean this_present_request_timeout_ms = true && this.isSetRequestTimeoutMs();
    boolean that_present_request_timeout_ms = true && that.isSetRequestTimeoutMs();
    if (this_present_request_timeout_ms || that_present_request_timeout_ms) {
      if (!(this_present_request_timeout_ms && that_present_request_timeout_ms))
        return false;
      if (this.request_timeout_ms != that.request_timeout_ms)
        return false;
    }

    boolean this_present_conn_timeout_ms = true && this.isSetConnTimeoutMs();
    boolean that_present_conn_timeout_ms = true && that.isSetConnTimeoutMs();
    if (this_present_conn_timeout_ms || that_present_conn_timeout_ms) {
      if (!(this_present_conn_timeout_ms && that_present_conn_timeout_ms))
        return false;
      if (this.conn_timeout_ms != that.conn_timeout_ms)
        return false;
    }

    boolean this_present_root_path = true && this.isSetRootPath();
    boolean that_present_root_path = true && that.isSetRootPath();
    if (this_present_root_path || that_present_root_path) {
      if (!(this_present_root_path && that_present_root_path))
        return false;
      if (!this.root_path.equals(that.root_path))
        return false;
    }

    boolean this_present_bucket = true && this.isSetBucket();
    boolean that_present_bucket = true && that.isSetBucket();
    if (this_present_bucket || that_present_bucket) {
      if (!(this_present_bucket && that_present_bucket))
        return false;
      if (!this.bucket.equals(that.bucket))
        return false;
    }

    boolean this_present_use_path_style = true && this.isSetUsePathStyle();
    boolean that_present_use_path_style = true && that.isSetUsePathStyle();
    if (this_present_use_path_style || that_present_use_path_style) {
      if (!(this_present_use_path_style && that_present_use_path_style))
        return false;
      if (this.use_path_style != that.use_path_style)
        return false;
    }

    boolean this_present_token = true && this.isSetToken();
    boolean that_present_token = true && that.isSetToken();
    if (this_present_token || that_present_token) {
      if (!(this_present_token && that_present_token))
        return false;
      if (!this.token.equals(that.token))
        return false;
    }

    boolean this_present_provider = true && this.isSetProvider();
    boolean that_present_provider = true && that.isSetProvider();
    if (this_present_provider || that_present_provider) {
      if (!(this_present_provider && that_present_provider))
        return false;
      if (!this.provider.equals(that.provider))
        return false;
    }

    boolean this_present_cred_provider_type = true && this.isSetCredProviderType();
    boolean that_present_cred_provider_type = true && that.isSetCredProviderType();
    if (this_present_cred_provider_type || that_present_cred_provider_type) {
      if (!(this_present_cred_provider_type && that_present_cred_provider_type))
        return false;
      if (!this.cred_provider_type.equals(that.cred_provider_type))
        return false;
    }

    boolean this_present_role_arn = true && this.isSetRoleArn();
    boolean that_present_role_arn = true && that.isSetRoleArn();
    if (this_present_role_arn || that_present_role_arn) {
      if (!(this_present_role_arn && that_present_role_arn))
        return false;
      if (!this.role_arn.equals(that.role_arn))
        return false;
    }

    boolean this_present_external_id = true && this.isSetExternalId();
    boolean that_present_external_id = true && that.isSetExternalId();
    if (this_present_external_id || that_present_external_id) {
      if (!(this_present_external_id && that_present_external_id))
        return false;
      if (!this.external_id.equals(that.external_id))
        return false;
    }

    return true;
  }

  @Override
  public int hashCode() {
    int hashCode = 1;

    hashCode = hashCode * 8191 + ((isSetEndpoint()) ? 131071 : 524287);
    if (isSetEndpoint())
      hashCode = hashCode * 8191 + endpoint.hashCode();

    hashCode = hashCode * 8191 + ((isSetRegion()) ? 131071 : 524287);
    if (isSetRegion())
      hashCode = hashCode * 8191 + region.hashCode();

    hashCode = hashCode * 8191 + ((isSetAk()) ? 131071 : 524287);
    if (isSetAk())
      hashCode = hashCode * 8191 + ak.hashCode();

    hashCode = hashCode * 8191 + ((isSetSk()) ? 131071 : 524287);
    if (isSetSk())
      hashCode = hashCode * 8191 + sk.hashCode();

    hashCode = hashCode * 8191 + ((isSetMaxConn()) ? 131071 : 524287);
    if (isSetMaxConn())
      hashCode = hashCode * 8191 + max_conn;

    hashCode = hashCode * 8191 + ((isSetRequestTimeoutMs()) ? 131071 : 524287);
    if (isSetRequestTimeoutMs())
      hashCode = hashCode * 8191 + request_timeout_ms;

    hashCode = hashCode * 8191 + ((isSetConnTimeoutMs()) ? 131071 : 524287);
    if (isSetConnTimeoutMs())
      hashCode = hashCode * 8191 + conn_timeout_ms;

    hashCode = hashCode * 8191 + ((isSetRootPath()) ? 131071 : 524287);
    if (isSetRootPath())
      hashCode = hashCode * 8191 + root_path.hashCode();

    hashCode = hashCode * 8191 + ((isSetBucket()) ? 131071 : 524287);
    if (isSetBucket())
      hashCode = hashCode * 8191 + bucket.hashCode();

    hashCode = hashCode * 8191 + ((isSetUsePathStyle()) ? 131071 : 524287);
    if (isSetUsePathStyle())
      hashCode = hashCode * 8191 + ((use_path_style) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetToken()) ? 131071 : 524287);
    if (isSetToken())
      hashCode = hashCode * 8191 + token.hashCode();

    hashCode = hashCode * 8191 + ((isSetProvider()) ? 131071 : 524287);
    if (isSetProvider())
      hashCode = hashCode * 8191 + provider.getValue();

    hashCode = hashCode * 8191 + ((isSetCredProviderType()) ? 131071 : 524287);
    if (isSetCredProviderType())
      hashCode = hashCode * 8191 + cred_provider_type.getValue();

    hashCode = hashCode * 8191 + ((isSetRoleArn()) ? 131071 : 524287);
    if (isSetRoleArn())
      hashCode = hashCode * 8191 + role_arn.hashCode();

    hashCode = hashCode * 8191 + ((isSetExternalId()) ? 131071 : 524287);
    if (isSetExternalId())
      hashCode = hashCode * 8191 + external_id.hashCode();

    return hashCode;
  }

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

    int lastComparison = 0;

    lastComparison = java.lang.Boolean.compare(isSetEndpoint(), other.isSetEndpoint());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetEndpoint()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.endpoint, other.endpoint);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetRegion(), other.isSetRegion());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetRegion()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.region, other.region);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetAk(), other.isSetAk());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetAk()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ak, other.ak);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetSk(), other.isSetSk());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSk()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sk, other.sk);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetMaxConn(), other.isSetMaxConn());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMaxConn()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.max_conn, other.max_conn);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetRequestTimeoutMs(), other.isSetRequestTimeoutMs());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetRequestTimeoutMs()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request_timeout_ms, other.request_timeout_ms);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetConnTimeoutMs(), other.isSetConnTimeoutMs());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetConnTimeoutMs()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.conn_timeout_ms, other.conn_timeout_ms);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetRootPath(), other.isSetRootPath());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetRootPath()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.root_path, other.root_path);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetBucket(), other.isSetBucket());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetBucket()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.bucket, other.bucket);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetUsePathStyle(), other.isSetUsePathStyle());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetUsePathStyle()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.use_path_style, other.use_path_style);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetToken(), other.isSetToken());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetToken()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.token, other.token);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetProvider(), other.isSetProvider());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetProvider()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.provider, other.provider);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetCredProviderType(), other.isSetCredProviderType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCredProviderType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cred_provider_type, other.cred_provider_type);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetRoleArn(), other.isSetRoleArn());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetRoleArn()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.role_arn, other.role_arn);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetExternalId(), other.isSetExternalId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetExternalId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.external_id, other.external_id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    return 0;
  }

  @org.apache.thrift.annotation.Nullable
  public _Fields fieldForId(int fieldId) {
    return _Fields.findByThriftId(fieldId);
  }

  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
    scheme(iprot).read(iprot, this);
  }

  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
    scheme(oprot).write(oprot, this);
  }

  @Override
  public java.lang.String toString() {
    java.lang.StringBuilder sb = new java.lang.StringBuilder("TS3StorageParam(");
    boolean first = true;

    if (isSetEndpoint()) {
      sb.append("endpoint:");
      if (this.endpoint == null) {
        sb.append("null");
      } else {
        sb.append(this.endpoint);
      }
      first = false;
    }
    if (isSetRegion()) {
      if (!first) sb.append(", ");
      sb.append("region:");
      if (this.region == null) {
        sb.append("null");
      } else {
        sb.append(this.region);
      }
      first = false;
    }
    if (isSetAk()) {
      if (!first) sb.append(", ");
      sb.append("ak:");
      if (this.ak == null) {
        sb.append("null");
      } else {
        sb.append(this.ak);
      }
      first = false;
    }
    if (isSetSk()) {
      if (!first) sb.append(", ");
      sb.append("sk:");
      if (this.sk == null) {
        sb.append("null");
      } else {
        sb.append(this.sk);
      }
      first = false;
    }
    if (isSetMaxConn()) {
      if (!first) sb.append(", ");
      sb.append("max_conn:");
      sb.append(this.max_conn);
      first = false;
    }
    if (isSetRequestTimeoutMs()) {
      if (!first) sb.append(", ");
      sb.append("request_timeout_ms:");
      sb.append(this.request_timeout_ms);
      first = false;
    }
    if (isSetConnTimeoutMs()) {
      if (!first) sb.append(", ");
      sb.append("conn_timeout_ms:");
      sb.append(this.conn_timeout_ms);
      first = false;
    }
    if (isSetRootPath()) {
      if (!first) sb.append(", ");
      sb.append("root_path:");
      if (this.root_path == null) {
        sb.append("null");
      } else {
        sb.append(this.root_path);
      }
      first = false;
    }
    if (isSetBucket()) {
      if (!first) sb.append(", ");
      sb.append("bucket:");
      if (this.bucket == null) {
        sb.append("null");
      } else {
        sb.append(this.bucket);
      }
      first = false;
    }
    if (isSetUsePathStyle()) {
      if (!first) sb.append(", ");
      sb.append("use_path_style:");
      sb.append(this.use_path_style);
      first = false;
    }
    if (isSetToken()) {
      if (!first) sb.append(", ");
      sb.append("token:");
      if (this.token == null) {
        sb.append("null");
      } else {
        sb.append(this.token);
      }
      first = false;
    }
    if (isSetProvider()) {
      if (!first) sb.append(", ");
      sb.append("provider:");
      if (this.provider == null) {
        sb.append("null");
      } else {
        sb.append(this.provider);
      }
      first = false;
    }
    if (isSetCredProviderType()) {
      if (!first) sb.append(", ");
      sb.append("cred_provider_type:");
      if (this.cred_provider_type == null) {
        sb.append("null");
      } else {
        sb.append(this.cred_provider_type);
      }
      first = false;
    }
    if (isSetRoleArn()) {
      if (!first) sb.append(", ");
      sb.append("role_arn:");
      if (this.role_arn == null) {
        sb.append("null");
      } else {
        sb.append(this.role_arn);
      }
      first = false;
    }
    if (isSetExternalId()) {
      if (!first) sb.append(", ");
      sb.append("external_id:");
      if (this.external_id == null) {
        sb.append("null");
      } else {
        sb.append(this.external_id);
      }
      first = false;
    }
    sb.append(")");
    return sb.toString();
  }

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

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

  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
    try {
      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
      __isset_bitfield = 0;
      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
    } catch (org.apache.thrift.TException te) {
      throw new java.io.IOException(te);
    }
  }

  private static class TS3StorageParamStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
    public TS3StorageParamStandardScheme getScheme() {
      return new TS3StorageParamStandardScheme();
    }
  }

  private static class TS3StorageParamStandardScheme extends org.apache.thrift.scheme.StandardScheme<TS3StorageParam> {

    public void read(org.apache.thrift.protocol.TProtocol iprot, TS3StorageParam struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField schemeField;
      iprot.readStructBegin();
      while (true)
      {
        schemeField = iprot.readFieldBegin();
        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (schemeField.id) {
          case 1: // ENDPOINT
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.endpoint = iprot.readString();
              struct.setEndpointIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 2: // REGION
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.region = iprot.readString();
              struct.setRegionIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 3: // AK
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.ak = iprot.readString();
              struct.setAkIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 4: // SK
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.sk = iprot.readString();
              struct.setSkIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 5: // MAX_CONN
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.max_conn = iprot.readI32();
              struct.setMaxConnIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 6: // REQUEST_TIMEOUT_MS
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.request_timeout_ms = iprot.readI32();
              struct.setRequestTimeoutMsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 7: // CONN_TIMEOUT_MS
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.conn_timeout_ms = iprot.readI32();
              struct.setConnTimeoutMsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 8: // ROOT_PATH
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.root_path = iprot.readString();
              struct.setRootPathIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 9: // BUCKET
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.bucket = iprot.readString();
              struct.setBucketIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 10: // USE_PATH_STYLE
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.use_path_style = iprot.readBool();
              struct.setUsePathStyleIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 11: // TOKEN
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.token = iprot.readString();
              struct.setTokenIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 12: // PROVIDER
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.provider = org.apache.doris.thrift.TObjStorageType.findByValue(iprot.readI32());
              struct.setProviderIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 13: // CRED_PROVIDER_TYPE
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.cred_provider_type = org.apache.doris.thrift.TCredProviderType.findByValue(iprot.readI32());
              struct.setCredProviderTypeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 14: // ROLE_ARN
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.role_arn = iprot.readString();
              struct.setRoleArnIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 15: // EXTERNAL_ID
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.external_id = iprot.readString();
              struct.setExternalIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          default:
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

      // check for required fields of primitive type, which can't be checked in the validate method
      struct.validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      if (struct.endpoint != null) {
        if (struct.isSetEndpoint()) {
          oprot.writeFieldBegin(ENDPOINT_FIELD_DESC);
          oprot.writeString(struct.endpoint);
          oprot.writeFieldEnd();
        }
      }
      if (struct.region != null) {
        if (struct.isSetRegion()) {
          oprot.writeFieldBegin(REGION_FIELD_DESC);
          oprot.writeString(struct.region);
          oprot.writeFieldEnd();
        }
      }
      if (struct.ak != null) {
        if (struct.isSetAk()) {
          oprot.writeFieldBegin(AK_FIELD_DESC);
          oprot.writeString(struct.ak);
          oprot.writeFieldEnd();
        }
      }
      if (struct.sk != null) {
        if (struct.isSetSk()) {
          oprot.writeFieldBegin(SK_FIELD_DESC);
          oprot.writeString(struct.sk);
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetMaxConn()) {
        oprot.writeFieldBegin(MAX_CONN_FIELD_DESC);
        oprot.writeI32(struct.max_conn);
        oprot.writeFieldEnd();
      }
      if (struct.isSetRequestTimeoutMs()) {
        oprot.writeFieldBegin(REQUEST_TIMEOUT_MS_FIELD_DESC);
        oprot.writeI32(struct.request_timeout_ms);
        oprot.writeFieldEnd();
      }
      if (struct.isSetConnTimeoutMs()) {
        oprot.writeFieldBegin(CONN_TIMEOUT_MS_FIELD_DESC);
        oprot.writeI32(struct.conn_timeout_ms);
        oprot.writeFieldEnd();
      }
      if (struct.root_path != null) {
        if (struct.isSetRootPath()) {
          oprot.writeFieldBegin(ROOT_PATH_FIELD_DESC);
          oprot.writeString(struct.root_path);
          oprot.writeFieldEnd();
        }
      }
      if (struct.bucket != null) {
        if (struct.isSetBucket()) {
          oprot.writeFieldBegin(BUCKET_FIELD_DESC);
          oprot.writeString(struct.bucket);
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetUsePathStyle()) {
        oprot.writeFieldBegin(USE_PATH_STYLE_FIELD_DESC);
        oprot.writeBool(struct.use_path_style);
        oprot.writeFieldEnd();
      }
      if (struct.token != null) {
        if (struct.isSetToken()) {
          oprot.writeFieldBegin(TOKEN_FIELD_DESC);
          oprot.writeString(struct.token);
          oprot.writeFieldEnd();
        }
      }
      if (struct.provider != null) {
        if (struct.isSetProvider()) {
          oprot.writeFieldBegin(PROVIDER_FIELD_DESC);
          oprot.writeI32(struct.provider.getValue());
          oprot.writeFieldEnd();
        }
      }
      if (struct.cred_provider_type != null) {
        if (struct.isSetCredProviderType()) {
          oprot.writeFieldBegin(CRED_PROVIDER_TYPE_FIELD_DESC);
          oprot.writeI32(struct.cred_provider_type.getValue());
          oprot.writeFieldEnd();
        }
      }
      if (struct.role_arn != null) {
        if (struct.isSetRoleArn()) {
          oprot.writeFieldBegin(ROLE_ARN_FIELD_DESC);
          oprot.writeString(struct.role_arn);
          oprot.writeFieldEnd();
        }
      }
      if (struct.external_id != null) {
        if (struct.isSetExternalId()) {
          oprot.writeFieldBegin(EXTERNAL_ID_FIELD_DESC);
          oprot.writeString(struct.external_id);
          oprot.writeFieldEnd();
        }
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

  }

  private static class TS3StorageParamTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
    public TS3StorageParamTupleScheme getScheme() {
      return new TS3StorageParamTupleScheme();
    }
  }

  private static class TS3StorageParamTupleScheme extends org.apache.thrift.scheme.TupleScheme<TS3StorageParam> {

    @Override
    public void write(org.apache.thrift.protocol.TProtocol prot, TS3StorageParam struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      java.util.BitSet optionals = new java.util.BitSet();
      if (struct.isSetEndpoint()) {
        optionals.set(0);
      }
      if (struct.isSetRegion()) {
        optionals.set(1);
      }
      if (struct.isSetAk()) {
        optionals.set(2);
      }
      if (struct.isSetSk()) {
        optionals.set(3);
      }
      if (struct.isSetMaxConn()) {
        optionals.set(4);
      }
      if (struct.isSetRequestTimeoutMs()) {
        optionals.set(5);
      }
      if (struct.isSetConnTimeoutMs()) {
        optionals.set(6);
      }
      if (struct.isSetRootPath()) {
        optionals.set(7);
      }
      if (struct.isSetBucket()) {
        optionals.set(8);
      }
      if (struct.isSetUsePathStyle()) {
        optionals.set(9);
      }
      if (struct.isSetToken()) {
        optionals.set(10);
      }
      if (struct.isSetProvider()) {
        optionals.set(11);
      }
      if (struct.isSetCredProviderType()) {
        optionals.set(12);
      }
      if (struct.isSetRoleArn()) {
        optionals.set(13);
      }
      if (struct.isSetExternalId()) {
        optionals.set(14);
      }
      oprot.writeBitSet(optionals, 15);
      if (struct.isSetEndpoint()) {
        oprot.writeString(struct.endpoint);
      }
      if (struct.isSetRegion()) {
        oprot.writeString(struct.region);
      }
      if (struct.isSetAk()) {
        oprot.writeString(struct.ak);
      }
      if (struct.isSetSk()) {
        oprot.writeString(struct.sk);
      }
      if (struct.isSetMaxConn()) {
        oprot.writeI32(struct.max_conn);
      }
      if (struct.isSetRequestTimeoutMs()) {
        oprot.writeI32(struct.request_timeout_ms);
      }
      if (struct.isSetConnTimeoutMs()) {
        oprot.writeI32(struct.conn_timeout_ms);
      }
      if (struct.isSetRootPath()) {
        oprot.writeString(struct.root_path);
      }
      if (struct.isSetBucket()) {
        oprot.writeString(struct.bucket);
      }
      if (struct.isSetUsePathStyle()) {
        oprot.writeBool(struct.use_path_style);
      }
      if (struct.isSetToken()) {
        oprot.writeString(struct.token);
      }
      if (struct.isSetProvider()) {
        oprot.writeI32(struct.provider.getValue());
      }
      if (struct.isSetCredProviderType()) {
        oprot.writeI32(struct.cred_provider_type.getValue());
      }
      if (struct.isSetRoleArn()) {
        oprot.writeString(struct.role_arn);
      }
      if (struct.isSetExternalId()) {
        oprot.writeString(struct.external_id);
      }
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol prot, TS3StorageParam struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      java.util.BitSet incoming = iprot.readBitSet(15);
      if (incoming.get(0)) {
        struct.endpoint = iprot.readString();
        struct.setEndpointIsSet(true);
      }
      if (incoming.get(1)) {
        struct.region = iprot.readString();
        struct.setRegionIsSet(true);
      }
      if (incoming.get(2)) {
        struct.ak = iprot.readString();
        struct.setAkIsSet(true);
      }
      if (incoming.get(3)) {
        struct.sk = iprot.readString();
        struct.setSkIsSet(true);
      }
      if (incoming.get(4)) {
        struct.max_conn = iprot.readI32();
        struct.setMaxConnIsSet(true);
      }
      if (incoming.get(5)) {
        struct.request_timeout_ms = iprot.readI32();
        struct.setRequestTimeoutMsIsSet(true);
      }
      if (incoming.get(6)) {
        struct.conn_timeout_ms = iprot.readI32();
        struct.setConnTimeoutMsIsSet(true);
      }
      if (incoming.get(7)) {
        struct.root_path = iprot.readString();
        struct.setRootPathIsSet(true);
      }
      if (incoming.get(8)) {
        struct.bucket = iprot.readString();
        struct.setBucketIsSet(true);
      }
      if (incoming.get(9)) {
        struct.use_path_style = iprot.readBool();
        struct.setUsePathStyleIsSet(true);
      }
      if (incoming.get(10)) {
        struct.token = iprot.readString();
        struct.setTokenIsSet(true);
      }
      if (incoming.get(11)) {
        struct.provider = org.apache.doris.thrift.TObjStorageType.findByValue(iprot.readI32());
        struct.setProviderIsSet(true);
      }
      if (incoming.get(12)) {
        struct.cred_provider_type = org.apache.doris.thrift.TCredProviderType.findByValue(iprot.readI32());
        struct.setCredProviderTypeIsSet(true);
      }
      if (incoming.get(13)) {
        struct.role_arn = iprot.readString();
        struct.setRoleArnIsSet(true);
      }
      if (incoming.get(14)) {
        struct.external_id = iprot.readString();
        struct.setExternalIdIsSet(true);
      }
    }
  }

  private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
    return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
  }
}