// Path: src/main/java/com/myjeeva/digitalocean/common/StickySessionType.java
// public enum StickySessionType {
//   @SerializedName("cookies")
//   Cookies("cookies"),
// 
//   @SerializedName("none")
//   None("none");
// 
//   private String value;
// 
//   private StickySessionType(String value) {
//     this.value = value;
//   }
// 
//   public static StickySessionType fromValue(String value) {
//     if (StringUtils.isBlank(value)) {
//       throw new IllegalArgumentException("Value cannot be null or empty!");
//     }
// 
//     for (StickySessionType ds : StickySessionType.values()) {
//       if (value.equalsIgnoreCase(ds.value)) {
//         return ds;
//       }
//     }
// 
//     throw new IllegalArgumentException("Cannot create enum from " + value + " value!");
//   }
// 
//   @Override
//   public String toString() {
//     return this.value;
//   }
// }


import com.myjeeva.digitalocean.common.StickySessionType;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
/**
 * The MIT License
 *
 * <p>Copyright (c) 2013-2020 Jeevanandam M. (jeeva@myjeeva.com)
 *
 * <p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software
 * and associated documentation files (the "Software"), to deal in the Software without restriction,
 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * <p>The above copyright notice and this permission notice shall be included in all copies or
 * substantial portions of the Software.
 *
 * <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
package com.myjeeva.digitalocean.pojo;


/**
 * Represents DigitalOcean Load Balancer sticky sessions object
 *
 * @author Thomas Lehoux (https://github.com/tlehoux)
 * @since v2.11
 */
public class StickySessions extends Base {

  private static final long serialVersionUID = -2697068548366505704L;

  @Expose private StickySessionType type = StickySessionType.None;

  @Expose private Integer port;

  @Expose
  @SerializedName("cookie_name")
  private String cookieName;

  @Expose
  @SerializedName("cookie_ttl_seconds")
  private Integer cookieTtlInSeconds;

  @Override
  public String toString() {
    return ReflectionToStringBuilder.toString(this);
  }

  /** @return the type */
  public StickySessionType getType() {
    return type;
  }

  /** @param type the type to set */
// Path: src/main/java/com/myjeeva/digitalocean/common/StickySessionType.java
// public enum StickySessionType {
//   @SerializedName("cookies")
//   Cookies("cookies"),
// 
//   @SerializedName("none")
//   None("none");
// 
//   private String value;
// 
//   private StickySessionType(String value) {
//     this.value = value;
//   }
// 
//   public static StickySessionType fromValue(String value) {
//     if (StringUtils.isBlank(value)) {
//       throw new IllegalArgumentException("Value cannot be null or empty!");
//     }
// 
//     for (StickySessionType ds : StickySessionType.values()) {
//       if (value.equalsIgnoreCase(ds.value)) {
//         return ds;
//       }
//     }
// 
//     throw new IllegalArgumentException("Cannot create enum from " + value + " value!");
//   }
// 
//   @Override
//   public String toString() {
//     return this.value;
//   }
// }


// Path: src/main/java/com/myjeeva/digitalocean/pojo/StickySessions.java
import com.myjeeva.digitalocean.common.StickySessionType;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

/**
 * The MIT License
 *
 * <p>Copyright (c) 2013-2020 Jeevanandam M. (jeeva@myjeeva.com)
 *
 * <p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software
 * and associated documentation files (the "Software"), to deal in the Software without restriction,
 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * <p>The above copyright notice and this permission notice shall be included in all copies or
 * substantial portions of the Software.
 *
 * <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
package com.myjeeva.digitalocean.pojo;


/**
 * Represents DigitalOcean Load Balancer sticky sessions object
 *
 * @author Thomas Lehoux (https://github.com/tlehoux)
 * @since v2.11
 */
public class StickySessions extends Base {

  private static final long serialVersionUID = -2697068548366505704L;

  @Expose private StickySessionType type = StickySessionType.None;

  @Expose private Integer port;

  @Expose
  @SerializedName("cookie_name")
  private String cookieName;

  @Expose
  @SerializedName("cookie_ttl_seconds")
  private Integer cookieTtlInSeconds;

  @Override
  public String toString() {
    return ReflectionToStringBuilder.toString(this);
  }

  /** @return the type */
  public StickySessionType getType() {
    return type;
  }

  /** @param type the type to set */
  public void setType(StickySessionType type) {