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.ArrayList;
import java.util.List;
import java.util.Objects;

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

public class SsidMacFilterOpenApiVo   {
  @JsonProperty("macFilterEnable")
  private Boolean macFilterEnable;

  @JsonProperty("policy")
  private Integer policy;

  @JsonProperty("macFilterId")
  private String macFilterId;

  @JsonProperty("ouiProfileIdList")
  @Valid
  private List<String> ouiProfileIdList = null;

  public SsidMacFilterOpenApiVo macFilterEnable(Boolean macFilterEnable) {
    this.macFilterEnable = macFilterEnable;
    return this;
  }

  /**
   * SSID MAC Filter global config status. True: enable, false: disable.
   * @return macFilterEnable
  */
  @ApiModelProperty(value = "SSID MAC Filter global config status. True: enable, false: disable.")


  public Boolean getMacFilterEnable() {
    return macFilterEnable;
  }

  public void setMacFilterEnable(Boolean macFilterEnable) {
    this.macFilterEnable = macFilterEnable;
  }

  public SsidMacFilterOpenApiVo policy(Integer policy) {
    this.policy = policy;
    return this;
  }

  /**
   * SSID MAC Filter policy config mode; It should be a value as follows: 0: Deny List, 1: Allow List.
   * @return policy
  */
  @ApiModelProperty(value = "SSID MAC Filter policy config mode; It should be a value as follows: 0: Deny List, 1: Allow List.")


  public Integer getPolicy() {
    return policy;
  }

  public void setPolicy(Integer policy) {
    this.policy = policy;
  }

  public SsidMacFilterOpenApiVo macFilterId(String macFilterId) {
    this.macFilterId = macFilterId;
    return this;
  }

  /**
   * This field represents MAC Group Profile ID. MAC Group Profile can be created using Create a new group profile interface, and MAC Group Profile ID can be obtained from Get group profile list by type interface.
   * @return macFilterId
  */
  @ApiModelProperty(value = "This field represents MAC Group Profile ID. MAC Group Profile can be created using Create a new group profile interface, and MAC Group Profile ID can be obtained from Get group profile list by type interface.")


  public String getMacFilterId() {
    return macFilterId;
  }

  public void setMacFilterId(String macFilterId) {
    this.macFilterId = macFilterId;
  }

  public SsidMacFilterOpenApiVo ouiProfileIdList(List<String> ouiProfileIdList) {
    this.ouiProfileIdList = ouiProfileIdList;
    return this;
  }

  public SsidMacFilterOpenApiVo addOuiProfileIdListItem(String ouiProfileIdListItem) {
    if (this.ouiProfileIdList == null) {
      this.ouiProfileIdList = new ArrayList<>();
    }
    this.ouiProfileIdList.add(ouiProfileIdListItem);
    return this;
  }

  /**
   * This field represents OUI Profile ID list. OUI Profile can be created using Create OUI profile interface, and OUI Profile ID can be obtained from Get OUI profile summary list interface.
   * @return ouiProfileIdList
  */
  @ApiModelProperty(value = "This field represents OUI Profile ID list. OUI Profile can be created using Create OUI profile interface, and OUI Profile ID can be obtained from Get OUI profile summary list interface.")


  public List<String> getOuiProfileIdList() {
    return ouiProfileIdList;
  }

  public void setOuiProfileIdList(List<String> ouiProfileIdList) {
    this.ouiProfileIdList = ouiProfileIdList;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    SsidMacFilterOpenApiVo ssidMacFilterOpenApiVo = (SsidMacFilterOpenApiVo) o;
    return Objects.equals(this.macFilterEnable, ssidMacFilterOpenApiVo.macFilterEnable) &&
        Objects.equals(this.policy, ssidMacFilterOpenApiVo.policy) &&
        Objects.equals(this.macFilterId, ssidMacFilterOpenApiVo.macFilterId) &&
        Objects.equals(this.ouiProfileIdList, ssidMacFilterOpenApiVo.ouiProfileIdList);
  }

  @Override
  public int hashCode() {
    return Objects.hash(macFilterEnable, policy, macFilterId, ouiProfileIdList);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class SsidMacFilterOpenApiVo {\n");
    
    sb.append("    macFilterEnable: ").append(toIndentedString(macFilterEnable)).append("\n");
    sb.append("    policy: ").append(toIndentedString(policy)).append("\n");
    sb.append("    macFilterId: ").append(toIndentedString(macFilterId)).append("\n");
    sb.append("    ouiProfileIdList: ").append(toIndentedString(ouiProfileIdList)).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    ");
  }
}

