Skip to content

Commit

Permalink
#81 added support CAA type record
Browse files Browse the repository at this point in the history
  • Loading branch information
jeevatkm committed May 1, 2018
1 parent 44d9f6a commit 206eb4b
Show file tree
Hide file tree
Showing 2 changed files with 112 additions and 0 deletions.
76 changes: 76 additions & 0 deletions src/main/java/com/myjeeva/digitalocean/common/CaaTagType.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
/**
* The MIT License
*
* Copyright (c) 2013-2018 Jeevanandam M. (myjeeva.com)
*
* 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:
*
* The above copyright notice and this permission notice shall be included in all copies or
* substantial portions of the Software.
*
* 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.common;

import org.apache.commons.lang3.StringUtils;

import com.google.gson.annotations.SerializedName;

/**
* <p>
* Enumeration of DigitalOcean CAA Tag Types. Valid values are "issue", "issuewild", or "iodef".
* </p>
*
* <p>
* More info: https://developers.digitalocean.com/documentation/v2/#domain-records/
* </p>
*
* @author Jeevanandam M. (jeeva@myjeeva.com)
*
* @since v2.15
*/
public enum CaaTagType {

@SerializedName("issue")
ISSUE("issue"),

@SerializedName("issuewild")
ISSUE_WILD("issuewild"),

@SerializedName("iodef")
IODEF("iodef");

private String value;

private CaaTagType(String value) {
this.value = value;
}

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

public static CaaTagType fromValue(String value) {
if (StringUtils.isBlank(value)) {
throw new IllegalArgumentException("Value cannot be null or empty!");
}

for (CaaTagType rt : CaaTagType.values()) {
if (value.equalsIgnoreCase(rt.value)) {
return rt;
}
}

throw new IllegalArgumentException("Cannot create enum from " + value + " value!");
}
}
36 changes: 36 additions & 0 deletions src/main/java/com/myjeeva/digitalocean/pojo/DomainRecord.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;

import com.google.gson.annotations.Expose;
import com.myjeeva.digitalocean.common.CaaTagType;

/**
* Represents DomainRecord (TLD) Record attributes of DigitalOcean DNS. Revised as per v2 API data
Expand Down Expand Up @@ -57,6 +58,12 @@ public class DomainRecord extends RateLimitBase {

@Expose
private Integer ttl;

@Expose
private Integer flags;

@Expose
private CaaTagType tag;

public DomainRecord() {
// Default Constructor
Expand Down Expand Up @@ -204,4 +211,33 @@ public Integer getTtl() {
public void setTtl(Integer ttl) {
this.ttl = ttl;
}

/**
* @return the flags
*/
public Integer getFlags() {
return flags;
}

/**
* @param flags the flags to set
*/
public void setFlags(Integer flags) {
this.flags = flags;
}

/**
* @return the tag
*/
public CaaTagType getTag() {
return tag;
}

/**
* @param tag the tag to set
*/
public void setTag(CaaTagType tag) {
this.tag = tag;
}

}

0 comments on commit 206eb4b

Please sign in to comment.