content: /*
   * Management API
   *
   * The version of the OpenAPI document: 3
   *
   *
   * 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.adyen.model.management;
  
  import com.fasterxml.jackson.annotation.JsonInclude;
  import com.fasterxml.jackson.annotation.JsonProperty;
  import com.fasterxml.jackson.annotation.JsonPropertyOrder;
  import com.fasterxml.jackson.core.JsonProcessingException;
  import java.util.*;
  
  /** Profile */
  @JsonPropertyOrder({
    Profile.JSON_PROPERTY_AUTH_TYPE,
    Profile.JSON_PROPERTY_AUTO_WIFI,
    Profile.JSON_PROPERTY_BSS_TYPE,
    Profile.JSON_PROPERTY_CHANNEL,
    Profile.JSON_PROPERTY_DEFAULT_PROFILE,
    Profile.JSON_PROPERTY_DOMAIN_SUFFIX,
    Profile.JSON_PROPERTY_EAP,
    Profile.JSON_PROPERTY_EAP_CA_CERT,
    Profile.JSON_PROPERTY_EAP_CLIENT_CERT,
    Profile.JSON_PROPERTY_EAP_CLIENT_KEY,
    Profile.JSON_PROPERTY_EAP_CLIENT_PWD,
    Profile.JSON_PROPERTY_EAP_IDENTITY,
    Profile.JSON_PROPERTY_EAP_INTERMEDIATE_CERT,
    Profile.JSON_PROPERTY_EAP_PWD,
    Profile.JSON_PROPERTY_HIDDEN_SSID,
    Profile.JSON_PROPERTY_NAME,
    Profile.JSON_PROPERTY_PSK,
    Profile.JSON_PROPERTY_SSID,
    Profile.JSON_PROPERTY_WSEC
  })
  public class Profile {
    public static final String JSON_PROPERTY_AUTH_TYPE = "authType";
    private String authType;
  
    public static final String JSON_PROPERTY_AUTO_WIFI = "autoWifi";
    private Boolean autoWifi;
  
    public static final String JSON_PROPERTY_BSS_TYPE = "bssType";
    private String bssType;
  
    public static final String JSON_PROPERTY_CHANNEL = "channel";
    private Integer channel;
  
    public static final String JSON_PROPERTY_DEFAULT_PROFILE = "defaultProfile";
    private Boolean defaultProfile;
  
    public static final String JSON_PROPERTY_DOMAIN_SUFFIX = "domainSuffix";
    private String domainSuffix;
  
    public static final String JSON_PROPERTY_EAP = "eap";
    private String eap;
  
    public static final String JSON_PROPERTY_EAP_CA_CERT = "eapCaCert";
    private ModelFile eapCaCert;
  
    public static final String JSON_PROPERTY_EAP_CLIENT_CERT = "eapClientCert";
    private ModelFile eapClientCert;
  
    public static final String JSON_PROPERTY_EAP_CLIENT_KEY = "eapClientKey";
    private ModelFile eapClientKey;
  
    public static final String JSON_PROPERTY_EAP_CLIENT_PWD = "eapClientPwd";
    private String eapClientPwd;
  
    public static final String JSON_PROPERTY_EAP_IDENTITY = "eapIdentity";
    private String eapIdentity;
  
    public static final String JSON_PROPERTY_EAP_INTERMEDIATE_CERT = "eapIntermediateCert";
    private ModelFile eapIntermediateCert;
  
    public static final String JSON_PROPERTY_EAP_PWD = "eapPwd";
    private String eapPwd;
  
    public static final String JSON_PROPERTY_HIDDEN_SSID = "hiddenSsid";
    private Boolean hiddenSsid;
  
    public static final String JSON_PROPERTY_NAME = "name";
    private String name;
  
    public static final String JSON_PROPERTY_PSK = "psk";
    private String psk;
  
    public static final String JSON_PROPERTY_SSID = "ssid";
    private String ssid;
  
    public static final String JSON_PROPERTY_WSEC = "wsec";
    private String wsec;
  
    public Profile() {}
  
    /**
     * The type of Wi-Fi network. Possible values: **wpa-psk**, **wpa2-psk**, **wpa-eap**,
     * **wpa2-eap**.
     *
     * @param authType The type of Wi-Fi network. Possible values: **wpa-psk**, **wpa2-psk**,
     *     **wpa-eap**, **wpa2-eap**.
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile authType(String authType) {
      this.authType = authType;
      return this;
    }
  
    /**
     * The type of Wi-Fi network. Possible values: **wpa-psk**, **wpa2-psk**, **wpa-eap**,
     * **wpa2-eap**.
     *
     * @return authType The type of Wi-Fi network. Possible values: **wpa-psk**, **wpa2-psk**,
     *     **wpa-eap**, **wpa2-eap**.
     */
    @JsonProperty(JSON_PROPERTY_AUTH_TYPE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getAuthType() {
      return authType;
    }
  
    /**
     * The type of Wi-Fi network. Possible values: **wpa-psk**, **wpa2-psk**, **wpa-eap**,
     * **wpa2-eap**.
     *
     * @param authType The type of Wi-Fi network. Possible values: **wpa-psk**, **wpa2-psk**,
     *     **wpa-eap**, **wpa2-eap**.
     */
    @JsonProperty(JSON_PROPERTY_AUTH_TYPE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setAuthType(String authType) {
      this.authType = authType;
    }
  
    /**
     * Indicates whether to automatically select the best authentication method available. Does not
     * work on older terminal models.
     *
     * @param autoWifi Indicates whether to automatically select the best authentication method
     *     available. Does not work on older terminal models.
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile autoWifi(Boolean autoWifi) {
      this.autoWifi = autoWifi;
      return this;
    }
  
    /**
     * Indicates whether to automatically select the best authentication method available. Does not
     * work on older terminal models.
     *
     * @return autoWifi Indicates whether to automatically select the best authentication method
     *     available. Does not work on older terminal models.
     */
    @JsonProperty(JSON_PROPERTY_AUTO_WIFI)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public Boolean getAutoWifi() {
      return autoWifi;
    }
  
    /**
     * Indicates whether to automatically select the best authentication method available. Does not
     * work on older terminal models.
     *
     * @param autoWifi Indicates whether to automatically select the best authentication method
     *     available. Does not work on older terminal models.
     */
    @JsonProperty(JSON_PROPERTY_AUTO_WIFI)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setAutoWifi(Boolean autoWifi) {
      this.autoWifi = autoWifi;
    }
  
    /**
     * Use **infra** for infrastructure-based networks. This applies to most networks. Use **adhoc**
     * only if the communication is p2p-based between base stations.
     *
     * @param bssType Use **infra** for infrastructure-based networks. This applies to most networks.
     *     Use **adhoc** only if the communication is p2p-based between base stations.
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile bssType(String bssType) {
      this.bssType = bssType;
      return this;
    }
  
    /**
     * Use **infra** for infrastructure-based networks. This applies to most networks. Use **adhoc**
     * only if the communication is p2p-based between base stations.
     *
     * @return bssType Use **infra** for infrastructure-based networks. This applies to most networks.
     *     Use **adhoc** only if the communication is p2p-based between base stations.
     */
    @JsonProperty(JSON_PROPERTY_BSS_TYPE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getBssType() {
      return bssType;
    }
  
    /**
     * Use **infra** for infrastructure-based networks. This applies to most networks. Use **adhoc**
     * only if the communication is p2p-based between base stations.
     *
     * @param bssType Use **infra** for infrastructure-based networks. This applies to most networks.
     *     Use **adhoc** only if the communication is p2p-based between base stations.
     */
    @JsonProperty(JSON_PROPERTY_BSS_TYPE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setBssType(String bssType) {
      this.bssType = bssType;
    }
  
    /**
     * The channel number of the Wi-Fi network. The recommended setting is **0** for automatic channel
     * selection.
     *
     * @param channel The channel number of the Wi-Fi network. The recommended setting is **0** for
     *     automatic channel selection.
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile channel(Integer channel) {
      this.channel = channel;
      return this;
    }
  
    /**
     * The channel number of the Wi-Fi network. The recommended setting is **0** for automatic channel
     * selection.
     *
     * @return channel The channel number of the Wi-Fi network. The recommended setting is **0** for
     *     automatic channel selection.
     */
    @JsonProperty(JSON_PROPERTY_CHANNEL)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public Integer getChannel() {
      return channel;
    }
  
    /**
     * The channel number of the Wi-Fi network. The recommended setting is **0** for automatic channel
     * selection.
     *
     * @param channel The channel number of the Wi-Fi network. The recommended setting is **0** for
     *     automatic channel selection.
     */
    @JsonProperty(JSON_PROPERTY_CHANNEL)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setChannel(Integer channel) {
      this.channel = channel;
    }
  
    /**
     * Indicates whether this is your preferred wireless network. If **true**, the terminal will try
     * connecting to this network first.
     *
     * @param defaultProfile Indicates whether this is your preferred wireless network. If **true**,
     *     the terminal will try connecting to this network first.
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile defaultProfile(Boolean defaultProfile) {
      this.defaultProfile = defaultProfile;
      return this;
    }
  
    /**
     * Indicates whether this is your preferred wireless network. If **true**, the terminal will try
     * connecting to this network first.
     *
     * @return defaultProfile Indicates whether this is your preferred wireless network. If **true**,
     *     the terminal will try connecting to this network first.
     */
    @JsonProperty(JSON_PROPERTY_DEFAULT_PROFILE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public Boolean getDefaultProfile() {
      return defaultProfile;
    }
  
    /**
     * Indicates whether this is your preferred wireless network. If **true**, the terminal will try
     * connecting to this network first.
     *
     * @param defaultProfile Indicates whether this is your preferred wireless network. If **true**,
     *     the terminal will try connecting to this network first.
     */
    @JsonProperty(JSON_PROPERTY_DEFAULT_PROFILE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setDefaultProfile(Boolean defaultProfile) {
      this.defaultProfile = defaultProfile;
    }
  
    /**
     * Specifies the server domain name for EAP-TLS and EAP-PEAP WiFi profiles on Android 11 and
     * above.
     *
     * @param domainSuffix Specifies the server domain name for EAP-TLS and EAP-PEAP WiFi profiles on
     *     Android 11 and above.
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile domainSuffix(String domainSuffix) {
      this.domainSuffix = domainSuffix;
      return this;
    }
  
    /**
     * Specifies the server domain name for EAP-TLS and EAP-PEAP WiFi profiles on Android 11 and
     * above.
     *
     * @return domainSuffix Specifies the server domain name for EAP-TLS and EAP-PEAP WiFi profiles on
     *     Android 11 and above.
     */
    @JsonProperty(JSON_PROPERTY_DOMAIN_SUFFIX)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getDomainSuffix() {
      return domainSuffix;
    }
  
    /**
     * Specifies the server domain name for EAP-TLS and EAP-PEAP WiFi profiles on Android 11 and
     * above.
     *
     * @param domainSuffix Specifies the server domain name for EAP-TLS and EAP-PEAP WiFi profiles on
     *     Android 11 and above.
     */
    @JsonProperty(JSON_PROPERTY_DOMAIN_SUFFIX)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setDomainSuffix(String domainSuffix) {
      this.domainSuffix = domainSuffix;
    }
  
    /**
     * For &#x60;authType&#x60; **wpa-eap** or **wpa2-eap**. Possible values: **tls**, **peap**,
     * **leap**, **fast**
     *
     * @param eap For &#x60;authType&#x60; **wpa-eap** or **wpa2-eap**. Possible values: **tls**,
     *     **peap**, **leap**, **fast**
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile eap(String eap) {
      this.eap = eap;
      return this;
    }
  
    /**
     * For &#x60;authType&#x60; **wpa-eap** or **wpa2-eap**. Possible values: **tls**, **peap**,
     * **leap**, **fast**
     *
     * @return eap For &#x60;authType&#x60; **wpa-eap** or **wpa2-eap**. Possible values: **tls**,
     *     **peap**, **leap**, **fast**
     */
    @JsonProperty(JSON_PROPERTY_EAP)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getEap() {
      return eap;
    }
  
    /**
     * For &#x60;authType&#x60; **wpa-eap** or **wpa2-eap**. Possible values: **tls**, **peap**,
     * **leap**, **fast**
     *
     * @param eap For &#x60;authType&#x60; **wpa-eap** or **wpa2-eap**. Possible values: **tls**,
     *     **peap**, **leap**, **fast**
     */
    @JsonProperty(JSON_PROPERTY_EAP)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setEap(String eap) {
      this.eap = eap;
    }
  
    /**
     * eapCaCert
     *
     * @param eapCaCert
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile eapCaCert(ModelFile eapCaCert) {
      this.eapCaCert = eapCaCert;
      return this;
    }
  
    /**
     * Get eapCaCert
     *
     * @return eapCaCert
     */
    @JsonProperty(JSON_PROPERTY_EAP_CA_CERT)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public ModelFile getEapCaCert() {
      return eapCaCert;
    }
  
    /**
     * eapCaCert
     *
     * @param eapCaCert
     */
    @JsonProperty(JSON_PROPERTY_EAP_CA_CERT)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setEapCaCert(ModelFile eapCaCert) {
      this.eapCaCert = eapCaCert;
    }
  
    /**
     * eapClientCert
     *
     * @param eapClientCert
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile eapClientCert(ModelFile eapClientCert) {
      this.eapClientCert = eapClientCert;
      return this;
    }
  
    /**
     * Get eapClientCert
     *
     * @return eapClientCert
     */
    @JsonProperty(JSON_PROPERTY_EAP_CLIENT_CERT)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public ModelFile getEapClientCert() {
      return eapClientCert;
    }
  
    /**
     * eapClientCert
     *
     * @param eapClientCert
     */
    @JsonProperty(JSON_PROPERTY_EAP_CLIENT_CERT)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setEapClientCert(ModelFile eapClientCert) {
      this.eapClientCert = eapClientCert;
    }
  
    /**
     * eapClientKey
     *
     * @param eapClientKey
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile eapClientKey(ModelFile eapClientKey) {
      this.eapClientKey = eapClientKey;
      return this;
    }
  
    /**
     * Get eapClientKey
     *
     * @return eapClientKey
     */
    @JsonProperty(JSON_PROPERTY_EAP_CLIENT_KEY)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public ModelFile getEapClientKey() {
      return eapClientKey;
    }
  
    /**
     * eapClientKey
     *
     * @param eapClientKey
     */
    @JsonProperty(JSON_PROPERTY_EAP_CLIENT_KEY)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setEapClientKey(ModelFile eapClientKey) {
      this.eapClientKey = eapClientKey;
    }
  
    /**
     * For &#x60;eap&#x60; **tls**. The password of the RSA key file, if that file is
     * password-protected.
     *
     * @param eapClientPwd For &#x60;eap&#x60; **tls**. The password of the RSA key file, if that file
     *     is password-protected.
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile eapClientPwd(String eapClientPwd) {
      this.eapClientPwd = eapClientPwd;
      return this;
    }
  
    /**
     * For &#x60;eap&#x60; **tls**. The password of the RSA key file, if that file is
     * password-protected.
     *
     * @return eapClientPwd For &#x60;eap&#x60; **tls**. The password of the RSA key file, if that
     *     file is password-protected.
     */
    @JsonProperty(JSON_PROPERTY_EAP_CLIENT_PWD)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getEapClientPwd() {
      return eapClientPwd;
    }
  
    /**
     * For &#x60;eap&#x60; **tls**. The password of the RSA key file, if that file is
     * password-protected.
     *
     * @param eapClientPwd For &#x60;eap&#x60; **tls**. The password of the RSA key file, if that file
     *     is password-protected.
     */
    @JsonProperty(JSON_PROPERTY_EAP_CLIENT_PWD)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setEapClientPwd(String eapClientPwd) {
      this.eapClientPwd = eapClientPwd;
    }
  
    /**
     * For &#x60;authType&#x60; **wpa-eap** or **wpa2-eap**. The EAP-PEAP username from your MS-CHAP
     * account. Must match the configuration of your RADIUS server.
     *
     * @param eapIdentity For &#x60;authType&#x60; **wpa-eap** or **wpa2-eap**. The EAP-PEAP username
     *     from your MS-CHAP account. Must match the configuration of your RADIUS server.
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile eapIdentity(String eapIdentity) {
      this.eapIdentity = eapIdentity;
      return this;
    }
  
    /**
     * For &#x60;authType&#x60; **wpa-eap** or **wpa2-eap**. The EAP-PEAP username from your MS-CHAP
     * account. Must match the configuration of your RADIUS server.
     *
     * @return eapIdentity For &#x60;authType&#x60; **wpa-eap** or **wpa2-eap**. The EAP-PEAP username
     *     from your MS-CHAP account. Must match the configuration of your RADIUS server.
     */
    @JsonProperty(JSON_PROPERTY_EAP_IDENTITY)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getEapIdentity() {
      return eapIdentity;
    }
  
    /**
     * For &#x60;authType&#x60; **wpa-eap** or **wpa2-eap**. The EAP-PEAP username from your MS-CHAP
     * account. Must match the configuration of your RADIUS server.
     *
     * @param eapIdentity For &#x60;authType&#x60; **wpa-eap** or **wpa2-eap**. The EAP-PEAP username
     *     from your MS-CHAP account. Must match the configuration of your RADIUS server.
     */
    @JsonProperty(JSON_PROPERTY_EAP_IDENTITY)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setEapIdentity(String eapIdentity) {
      this.eapIdentity = eapIdentity;
    }
  
    /**
     * eapIntermediateCert
     *
     * @param eapIntermediateCert
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile eapIntermediateCert(ModelFile eapIntermediateCert) {
      this.eapIntermediateCert = eapIntermediateCert;
      return this;
    }
  
    /**
     * Get eapIntermediateCert
     *
     * @return eapIntermediateCert
     */
    @JsonProperty(JSON_PROPERTY_EAP_INTERMEDIATE_CERT)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public ModelFile getEapIntermediateCert() {
      return eapIntermediateCert;
    }
  
    /**
     * eapIntermediateCert
     *
     * @param eapIntermediateCert
     */
    @JsonProperty(JSON_PROPERTY_EAP_INTERMEDIATE_CERT)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setEapIntermediateCert(ModelFile eapIntermediateCert) {
      this.eapIntermediateCert = eapIntermediateCert;
    }
  
    /**
     * For &#x60;eap&#x60; **peap**. The EAP-PEAP password from your MS-CHAP account. Must match the
     * configuration of your RADIUS server.
     *
     * @param eapPwd For &#x60;eap&#x60; **peap**. The EAP-PEAP password from your MS-CHAP account.
     *     Must match the configuration of your RADIUS server.
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile eapPwd(String eapPwd) {
      this.eapPwd = eapPwd;
      return this;
    }
  
    /**
     * For &#x60;eap&#x60; **peap**. The EAP-PEAP password from your MS-CHAP account. Must match the
     * configuration of your RADIUS server.
     *
     * @return eapPwd For &#x60;eap&#x60; **peap**. The EAP-PEAP password from your MS-CHAP account.
     *     Must match the configuration of your RADIUS server.
     */
    @JsonProperty(JSON_PROPERTY_EAP_PWD)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getEapPwd() {
      return eapPwd;
    }
  
    /**
     * For &#x60;eap&#x60; **peap**. The EAP-PEAP password from your MS-CHAP account. Must match the
     * configuration of your RADIUS server.
     *
     * @param eapPwd For &#x60;eap&#x60; **peap**. The EAP-PEAP password from your MS-CHAP account.
     *     Must match the configuration of your RADIUS server.
     */
    @JsonProperty(JSON_PROPERTY_EAP_PWD)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setEapPwd(String eapPwd) {
      this.eapPwd = eapPwd;
    }
  
    /**
     * Indicates if the network doesn&#39;t broadcast its SSID. Mandatory for Android terminals,
     * because these terminals rely on this setting to be able to connect to any network.
     *
     * @param hiddenSsid Indicates if the network doesn&#39;t broadcast its SSID. Mandatory for
     *     Android terminals, because these terminals rely on this setting to be able to connect to
     *     any network.
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile hiddenSsid(Boolean hiddenSsid) {
      this.hiddenSsid = hiddenSsid;
      return this;
    }
  
    /**
     * Indicates if the network doesn&#39;t broadcast its SSID. Mandatory for Android terminals,
     * because these terminals rely on this setting to be able to connect to any network.
     *
     * @return hiddenSsid Indicates if the network doesn&#39;t broadcast its SSID. Mandatory for
     *     Android terminals, because these terminals rely on this setting to be able to connect to
     *     any network.
     */
    @JsonProperty(JSON_PROPERTY_HIDDEN_SSID)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public Boolean getHiddenSsid() {
      return hiddenSsid;
    }
  
    /**
     * Indicates if the network doesn&#39;t broadcast its SSID. Mandatory for Android terminals,
     * because these terminals rely on this setting to be able to connect to any network.
     *
     * @param hiddenSsid Indicates if the network doesn&#39;t broadcast its SSID. Mandatory for
     *     Android terminals, because these terminals rely on this setting to be able to connect to
     *     any network.
     */
    @JsonProperty(JSON_PROPERTY_HIDDEN_SSID)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setHiddenSsid(Boolean hiddenSsid) {
      this.hiddenSsid = hiddenSsid;
    }
  
    /**
     * Your name for the Wi-Fi profile.
     *
     * @param name Your name for the Wi-Fi profile.
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile name(String name) {
      this.name = name;
      return this;
    }
  
    /**
     * Your name for the Wi-Fi profile.
     *
     * @return name Your name for the Wi-Fi profile.
     */
    @JsonProperty(JSON_PROPERTY_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getName() {
      return name;
    }
  
    /**
     * Your name for the Wi-Fi profile.
     *
     * @param name Your name for the Wi-Fi profile.
     */
    @JsonProperty(JSON_PROPERTY_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setName(String name) {
      this.name = name;
    }
  
    /**
     * For &#x60;authType&#x60; **wpa-psk or **wpa2-psk**. The password to the wireless network.
     *
     * @param psk For &#x60;authType&#x60; **wpa-psk or **wpa2-psk**. The password to the wireless
     *     network.
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile psk(String psk) {
      this.psk = psk;
      return this;
    }
  
    /**
     * For &#x60;authType&#x60; **wpa-psk or **wpa2-psk**. The password to the wireless network.
     *
     * @return psk For &#x60;authType&#x60; **wpa-psk or **wpa2-psk**. The password to the wireless
     *     network.
     */
    @JsonProperty(JSON_PROPERTY_PSK)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getPsk() {
      return psk;
    }
  
    /**
     * For &#x60;authType&#x60; **wpa-psk or **wpa2-psk**. The password to the wireless network.
     *
     * @param psk For &#x60;authType&#x60; **wpa-psk or **wpa2-psk**. The password to the wireless
     *     network.
     */
    @JsonProperty(JSON_PROPERTY_PSK)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setPsk(String psk) {
      this.psk = psk;
    }
  
    /**
     * The name of the wireless network.
     *
     * @param ssid The name of the wireless network.
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile ssid(String ssid) {
      this.ssid = ssid;
      return this;
    }
  
    /**
     * The name of the wireless network.
     *
     * @return ssid The name of the wireless network.
     */
    @JsonProperty(JSON_PROPERTY_SSID)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getSsid() {
      return ssid;
    }
  
    /**
     * The name of the wireless network.
     *
     * @param ssid The name of the wireless network.
     */
    @JsonProperty(JSON_PROPERTY_SSID)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setSsid(String ssid) {
      this.ssid = ssid;
    }
  
    /**
     * The type of encryption. Possible values: **auto**, **ccmp** (recommended), **tkip**
     *
     * @param wsec The type of encryption. Possible values: **auto**, **ccmp** (recommended), **tkip**
     * @return the current {@code Profile} instance, allowing for method chaining
     */
    public Profile wsec(String wsec) {
      this.wsec = wsec;
      return this;
    }
  
    /**
     * The type of encryption. Possible values: **auto**, **ccmp** (recommended), **tkip**
     *
     * @return wsec The type of encryption. Possible values: **auto**, **ccmp** (recommended),
     *     **tkip**
     */
    @JsonProperty(JSON_PROPERTY_WSEC)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getWsec() {
      return wsec;
    }
  
    /**
     * The type of encryption. Possible values: **auto**, **ccmp** (recommended), **tkip**
     *
     * @param wsec The type of encryption. Possible values: **auto**, **ccmp** (recommended), **tkip**
     */
    @JsonProperty(JSON_PROPERTY_WSEC)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setWsec(String wsec) {
      this.wsec = wsec;
    }
  
    /** Return true if this Profile object is equal to o. */
    @Override
    public boolean equals(Object o) {
      if (this == o) {
        return true;
      }
      if (o == null || getClass() != o.getClass()) {
        return false;
      }
      Profile profile = (Profile) o;
      return Objects.equals(this.authType, profile.authType)
          && Objects.equals(this.autoWifi, profile.autoWifi)
          && Objects.equals(this.bssType, profile.bssType)
          && Objects.equals(this.channel, profile.channel)
          && Objects.equals(this.defaultProfile, profile.defaultProfile)
          && Objects.equals(this.domainSuffix, profile.domainSuffix)
          && Objects.equals(this.eap, profile.eap)
          && Objects.equals(this.eapCaCert, profile.eapCaCert)
          && Objects.equals(this.eapClientCert, profile.eapClientCert)
          && Objects.equals(this.eapClientKey, profile.eapClientKey)
          && Objects.equals(this.eapClientPwd, profile.eapClientPwd)
          && Objects.equals(this.eapIdentity, profile.eapIdentity)
          && Objects.equals(this.eapIntermediateCert, profile.eapIntermediateCert)
          && Objects.equals(this.eapPwd, profile.eapPwd)
          && Objects.equals(this.hiddenSsid, profile.hiddenSsid)
          && Objects.equals(this.name, profile.name)
          && Objects.equals(this.psk, profile.psk)
          && Objects.equals(this.ssid, profile.ssid)
          && Objects.equals(this.wsec, profile.wsec);
    }
  
    @Override
    public int hashCode() {
      return Objects.hash(
          authType,
          autoWifi,
          bssType,
          channel,
          defaultProfile,
          domainSuffix,
          eap,
          eapCaCert,
          eapClientCert,
          eapClientKey,
          eapClientPwd,
          eapIdentity,
          eapIntermediateCert,
          eapPwd,
          hiddenSsid,
          name,
          psk,
          ssid,
          wsec);
    }
  
    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder();
      sb.append("class Profile {\n");
      sb.append("    authType: ").append(toIndentedString(authType)).append("\n");
      sb.append("    autoWifi: ").append(toIndentedString(autoWifi)).append("\n");
      sb.append("    bssType: ").append(toIndentedString(bssType)).append("\n");
      sb.append("    channel: ").append(toIndentedString(channel)).append("\n");
      sb.append("    defaultProfile: ").append(toIndentedString(defaultProfile)).append("\n");
      sb.append("    domainSuffix: ").append(toIndentedString(domainSuffix)).append("\n");
      sb.append("    eap: ").append(toIndentedString(eap)).append("\n");
      sb.append("    eapCaCert: ").append(toIndentedString(eapCaCert)).append("\n");
      sb.append("    eapClientCert: ").append(toIndentedString(eapClientCert)).append("\n");
      sb.append("    eapClientKey: ").append(toIndentedString(eapClientKey)).append("\n");
      sb.append("    eapClientPwd: ").append(toIndentedString(eapClientPwd)).append("\n");
      sb.append("    eapIdentity: ").append(toIndentedString(eapIdentity)).append("\n");
      sb.append("    eapIntermediateCert: ")
          .append(toIndentedString(eapIntermediateCert))
          .append("\n");
      sb.append("    eapPwd: ").append(toIndentedString(eapPwd)).append("\n");
      sb.append("    hiddenSsid: ").append(toIndentedString(hiddenSsid)).append("\n");
      sb.append("    name: ").append(toIndentedString(name)).append("\n");
      sb.append("    psk: ").append(toIndentedString(psk)).append("\n");
      sb.append("    ssid: ").append(toIndentedString(ssid)).append("\n");
      sb.append("    wsec: ").append(toIndentedString(wsec)).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    ");
    }
  
    /**
     * Create an instance of Profile given an JSON string
     *
     * @param jsonString JSON string
     * @return An instance of Profile
     * @throws JsonProcessingException if the JSON string is invalid with respect to Profile
     */
    public static Profile fromJson(String jsonString) throws JsonProcessingException {
      return JSON.getMapper().readValue(jsonString, Profile.class);
    }
  
    /**
     * Convert an instance of Profile to an JSON string
     *
     * @return JSON string
     */
    public String toJson() throws JsonProcessingException {
      return JSON.getMapper().writeValueAsString(this);
    }
  }
  