package org.wfc.omada.api.sitesetting.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.Valid;
import java.util.Objects;

/**
 * SSID rate limit config.
 */
@ApiModel(description = "SSID rate limit config.")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:32:19.054+08:00[Asia/Shanghai]")

public class RateLimitSettingOpenApiVo   {
  @JsonProperty("profileId")
  private String profileId;

  @JsonProperty("customSetting")
  private CustomRateLimitSettingOpenApiVo customSetting;

  public RateLimitSettingOpenApiVo profileId(String profileId) {
    this.profileId = profileId;
    return this;
  }

  /**
   * This field represents RateLimit Profile ID. RateLimit Profile can be created using Create rate limit profile interface, and RateLimit Profile ID can be obtained from Get rate limit profile list interface.(The validity priority is higher than the custom setting)
   * @return profileId
  */
  @ApiModelProperty(value = "This field represents RateLimit Profile ID. RateLimit Profile can be created using Create rate limit profile interface, and RateLimit Profile ID can be obtained from Get rate limit profile list interface.(The validity priority is higher than the custom setting)")


  public String getProfileId() {
    return profileId;
  }

  public void setProfileId(String profileId) {
    this.profileId = profileId;
  }

  public RateLimitSettingOpenApiVo customSetting(CustomRateLimitSettingOpenApiVo customSetting) {
    this.customSetting = customSetting;
    return this;
  }

  /**
   * Get customSetting
   * @return customSetting
  */
  @ApiModelProperty(value = "")

  @Valid

  public CustomRateLimitSettingOpenApiVo getCustomSetting() {
    return customSetting;
  }

  public void setCustomSetting(CustomRateLimitSettingOpenApiVo customSetting) {
    this.customSetting = customSetting;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    RateLimitSettingOpenApiVo rateLimitSettingOpenApiVo = (RateLimitSettingOpenApiVo) o;
    return Objects.equals(this.profileId, rateLimitSettingOpenApiVo.profileId) &&
        Objects.equals(this.customSetting, rateLimitSettingOpenApiVo.customSetting);
  }

  @Override
  public int hashCode() {
    return Objects.hash(profileId, customSetting);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class RateLimitSettingOpenApiVo {\n");
    
    sb.append("    profileId: ").append(toIndentedString(profileId)).append("\n");
    sb.append("    customSetting: ").append(toIndentedString(customSetting)).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    ");
  }
}

