From 9e644ceea547aaf1537b656709f3f0ae674b402e Mon Sep 17 00:00:00 2001
From: Falguni Vadodaria
Date: Wed, 2 Sep 2020 15:51:43 -0700
Subject: [PATCH 1/3] Add RecordingRule and RecordingRulesUpdate
---
.../java/com/twilio/type/RecordingRule.java | 249 ++++++++++++++++++
.../com/twilio/type/RecordingRulesUpdate.java | 43 +++
.../com/twilio/type/RecordingRuleTest.java | 82 ++++++
3 files changed, 374 insertions(+)
create mode 100644 src/main/java/com/twilio/type/RecordingRule.java
create mode 100644 src/main/java/com/twilio/type/RecordingRulesUpdate.java
create mode 100644 src/test/java/com/twilio/type/RecordingRuleTest.java
diff --git a/src/main/java/com/twilio/type/RecordingRule.java b/src/main/java/com/twilio/type/RecordingRule.java
new file mode 100644
index 0000000000..39dffa52ef
--- /dev/null
+++ b/src/main/java/com/twilio/type/RecordingRule.java
@@ -0,0 +1,249 @@
+package com.twilio.type;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.google.common.base.MoreObjects;
+import com.twilio.converter.Promoter;
+
+import java.util.Objects;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class RecordingRule {
+
+ public enum Type {
+ INCLUDE("include"),
+ EXCLUDE("exclude");
+
+ private final String value;
+
+ Type(final String value) {
+ this.value = value;
+ }
+
+ @JsonCreator
+ public static Type forValue(final String value) {
+ return Promoter.enumFromString(value, Type.values());
+ }
+
+ @JsonValue
+ public String value() {
+ return this.value;
+ }
+
+ @Override
+ public String toString() {
+ return value;
+ }
+ }
+
+ public enum Kind {
+ AUDIO("audio"),
+ DATA("data"),
+ VIDEO("video");
+
+ private final String value;
+
+ Kind(final String value) {
+ this.value = value;
+ }
+
+ @JsonCreator
+ public static Kind forValue(final String value) {
+ return Promoter.enumFromString(value, Kind.values());
+ }
+
+ @JsonValue
+ public String value() {
+ return this.value;
+ }
+
+ @Override
+ public String toString() {
+ return value;
+ }
+ }
+
+
+ private static final RecordingRule recordAll = builder().withType(Type.INCLUDE).withAll().build();
+ private static final RecordingRule recordNone = builder().withType(Type.EXCLUDE).withAll().build();
+
+ @JsonProperty("type")
+ private final Type type;
+
+ @JsonProperty("all")
+ private final Boolean all;
+
+ @JsonProperty("publisher")
+ private final String publisher;
+
+ @JsonProperty("track")
+ private final String track;
+
+ @JsonProperty("kind")
+ private final Kind kind;
+
+ public RecordingRule(@JsonProperty("type") final Type type,
+ @JsonProperty("all") final Boolean all,
+ @JsonProperty("publisher") final String publisher,
+ @JsonProperty("track") final String track,
+ @JsonProperty("kind") final Kind kind) {
+ this.type = type;
+ this.all = all;
+ this.publisher = publisher;
+ this.track = track;
+ this.kind = kind;
+ }
+
+ public RecordingRule() {
+ this.type = null;
+ this.all = null;
+ this.publisher = null;
+ this.track = null;
+ this.kind = null;
+ }
+
+ public static BuilderStart builder() {
+ return new Builder();
+ }
+
+ public interface BuilderStart {
+ BuilderMiddle withType(final Type type);
+ }
+
+ public interface BuilderMiddle {
+ BuilderMiddleBuild withPublisher(final String publisher);
+ BuilderMiddleBuild withKind(final Kind kind);
+ BuilderMiddleBuild withTrack(final String track);
+ BuilderBuild withAll();
+ }
+
+ public interface BuilderMiddleBuild {
+ BuilderMiddleBuild withPublisher(final String publisher);
+ BuilderMiddleBuild withKind(final Kind kind);
+ BuilderMiddleBuild withTrack(final String track);
+ RecordingRule build();
+ }
+
+ public interface BuilderBuild {
+ RecordingRule build();
+ }
+
+ public static class Builder implements
+ BuilderStart,
+ BuilderMiddle,
+ BuilderMiddleBuild,
+ BuilderBuild {
+ private Type type;
+ private Boolean all;
+ private String publisher;
+ private Kind kind;
+ private String track;
+
+ private Builder() {
+ }
+
+ public BuilderMiddle withType(final Type type) {
+ this.type = type;
+ return this;
+ }
+
+ public BuilderBuild withAll() {
+ this.all = true;
+ return this;
+ }
+ public BuilderMiddleBuild withPublisher(final String publisher) {
+ this.publisher = publisher;
+ return this;
+ }
+ public BuilderMiddleBuild withKind(final Kind kind) {
+ this.kind = kind;
+ return this;
+ }
+ public BuilderMiddleBuild withTrack(final String track) {
+ this.track = track;
+ return this;
+ }
+
+ private boolean hasOneFilter() {
+ // at least one filter must be set
+ return this.kind != null
+ || this.all != null
+ || this.track != null
+ || this.publisher != null;
+ }
+
+ private boolean hasType() {
+ // every rule must have a type
+ return this.type != null;
+ }
+
+ public RecordingRule build() {
+ if (!hasType()) {
+ throw new IllegalArgumentException("Recording Rule must have a type");
+ }
+ if (!hasOneFilter()) {
+ throw new IllegalArgumentException("Recording Rule must have at least one filter");
+ }
+
+ return new RecordingRule(this.type, this.all, this.publisher, this.track, this.kind);
+ }
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public Boolean getAll() {
+ return all;
+ }
+
+ public String getPublisher() {
+ return publisher;
+ }
+
+ public String getTrack() {
+ return track;
+ }
+
+ public Kind getKind() {
+ return kind;
+ }
+
+ public static RecordingRule all() {
+ return recordAll;
+ }
+
+ public static RecordingRule none() {
+ return recordNone;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof RecordingRule)) return false;
+ RecordingRule that = (RecordingRule) o;
+ return getType() == that.getType() &&
+ Objects.equals(getAll(), that.getAll()) &&
+ Objects.equals(getPublisher(), that.getPublisher()) &&
+ Objects.equals(getTrack(), that.getTrack()) &&
+ getKind() == that.getKind();
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(getType(), getAll(), getPublisher(), getTrack(), getKind());
+ }
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("type", this.type)
+ .add("all", this.all)
+ .add("publisher", this.publisher)
+ .add("track", this.track)
+ .add("kind", this.kind)
+ .toString();
+ }
+}
diff --git a/src/main/java/com/twilio/type/RecordingRulesUpdate.java b/src/main/java/com/twilio/type/RecordingRulesUpdate.java
new file mode 100644
index 0000000000..3891ae5595
--- /dev/null
+++ b/src/main/java/com/twilio/type/RecordingRulesUpdate.java
@@ -0,0 +1,43 @@
+package com.twilio.type;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.base.MoreObjects;
+
+import java.util.List;
+import java.util.Objects;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class RecordingRulesUpdate {
+
+ @JsonProperty("rules")
+ private final List rules;
+
+ public RecordingRulesUpdate(@JsonProperty("rules") final List rules) {
+ this.rules = rules;
+ }
+
+ public List getRules() {
+ return rules;
+ }
+
+ @Override
+ public boolean equals(final Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ final com.twilio.type.RecordingRulesUpdate that = (com.twilio.type.RecordingRulesUpdate) o;
+ return Objects.equals(getRules(), that.getRules());
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(getRules());
+ }
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("rules", this.rules)
+ .toString();
+ }
+}
diff --git a/src/test/java/com/twilio/type/RecordingRuleTest.java b/src/test/java/com/twilio/type/RecordingRuleTest.java
new file mode 100644
index 0000000000..231793cfff
--- /dev/null
+++ b/src/test/java/com/twilio/type/RecordingRuleTest.java
@@ -0,0 +1,82 @@
+package com.twilio.type;
+
+import com.google.common.collect.Lists;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.junit.Assert.fail;
+
+public class RecordingRuleTest extends TypeTest {
+ @Test
+ public void testBuilderOneFilter() {
+ try {
+ RecordingRule.builder().withType(RecordingRule.Type.INCLUDE).withPublisher(null).build();
+ } catch (IllegalArgumentException e) {
+ return;
+ }
+ fail("Rule builder should enforce a filter");
+ }
+
+ @Test
+ public void testBuilderMustHaveType() {
+ try {
+ RecordingRule.builder().withType(null).withPublisher("alice").build();
+ } catch (IllegalArgumentException e) {
+ return;
+ }
+ fail("Rule builder should enforce setting a type");
+ }
+
+ @Test
+ public void testAllExclusive() throws IOException {
+ String json = "{\n" +
+ " \"type\": \"include\",\n" +
+ " \"all\": true\n" +
+ "}";
+
+ RecordingRule r = fromJson(json, RecordingRule.class);
+ Assert.assertEquals(RecordingRule.Type.INCLUDE, r.getType());
+ Assert.assertEquals(true, r.getAll());
+
+ Assert.assertTrue(convertsToAndFromJson(r, RecordingRule.class));
+ }
+
+ @Test
+ public void testFilters() throws IOException {
+ String json = "{\n" +
+ " \"type\": \"exclude\",\n" +
+ " \"track\": \"screen\",\n" +
+ " \"kind\": \"video\",\n" +
+ " \"publisher\": \"alice\"\n" +
+ "}";
+
+ RecordingRule r = fromJson(json, RecordingRule.class);
+ Assert.assertEquals(RecordingRule.Type.EXCLUDE, r.getType());
+ Assert.assertEquals(RecordingRule.Kind.VIDEO, r.getKind());
+ Assert.assertEquals("alice", r.getPublisher());
+ Assert.assertNull(r.getAll());
+
+ Assert.assertTrue(convertsToAndFromJson(r, RecordingRule.class));
+ }
+
+ @Test
+ public void testUpdate() throws IOException {
+ final RecordingRule allAudio = RecordingRule.builder()
+ .withType(RecordingRule.Type.INCLUDE)
+ .withKind(RecordingRule.Kind.AUDIO)
+ .build();
+ final RecordingRule presenterVideo = RecordingRule.builder()
+ .withType(RecordingRule.Type.INCLUDE)
+ .withKind(RecordingRule.Kind.VIDEO)
+ .withPublisher("presenter")
+ .build();
+
+ final RecordingRulesUpdate update = new RecordingRulesUpdate(Lists.newArrayList(
+ allAudio, presenterVideo
+ ));
+
+ Assert.assertTrue(convertsToAndFromJson(update, RecordingRulesUpdate.class));
+ }
+}
From 06f401e0a081fbc5d7042a42be62900ef251d998 Mon Sep 17 00:00:00 2001
From: Falguni Vadodaria
Date: Mon, 12 Oct 2020 21:02:29 -0700
Subject: [PATCH 2/3] Description
---
.../java/com/twilio/type/RecordingRule.java | 71 ++------
.../com/twilio/type/RecordingRulesUpdate.java | 7 +
src/main/java/com/twilio/type/Rule.java | 94 ++++++++++
.../java/com/twilio/type/SubscribeRule.java | 164 +++++-------------
4 files changed, 158 insertions(+), 178 deletions(-)
create mode 100644 src/main/java/com/twilio/type/Rule.java
diff --git a/src/main/java/com/twilio/type/RecordingRule.java b/src/main/java/com/twilio/type/RecordingRule.java
index 39dffa52ef..8d00150c3f 100644
--- a/src/main/java/com/twilio/type/RecordingRule.java
+++ b/src/main/java/com/twilio/type/RecordingRule.java
@@ -1,70 +1,20 @@
package com.twilio.type;
-import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonValue;
import com.google.common.base.MoreObjects;
-import com.twilio.converter.Promoter;
import java.util.Objects;
+/**
+ * Recording Rule
+ *
+ * For more information see:
+ * Specifying Recording Rules
+ *
+ */
@JsonIgnoreProperties(ignoreUnknown = true)
-public class RecordingRule {
-
- public enum Type {
- INCLUDE("include"),
- EXCLUDE("exclude");
-
- private final String value;
-
- Type(final String value) {
- this.value = value;
- }
-
- @JsonCreator
- public static Type forValue(final String value) {
- return Promoter.enumFromString(value, Type.values());
- }
-
- @JsonValue
- public String value() {
- return this.value;
- }
-
- @Override
- public String toString() {
- return value;
- }
- }
-
- public enum Kind {
- AUDIO("audio"),
- DATA("data"),
- VIDEO("video");
-
- private final String value;
-
- Kind(final String value) {
- this.value = value;
- }
-
- @JsonCreator
- public static Kind forValue(final String value) {
- return Promoter.enumFromString(value, Kind.values());
- }
-
- @JsonValue
- public String value() {
- return this.value;
- }
-
- @Override
- public String toString() {
- return value;
- }
- }
-
+public class RecordingRule implements Rule {
private static final RecordingRule recordAll = builder().withType(Type.INCLUDE).withAll().build();
private static final RecordingRule recordNone = builder().withType(Type.EXCLUDE).withAll().build();
@@ -191,22 +141,27 @@ public RecordingRule build() {
}
}
+ @Override
public Type getType() {
return type;
}
+ @Override
public Boolean getAll() {
return all;
}
+ @Override
public String getPublisher() {
return publisher;
}
+ @Override
public String getTrack() {
return track;
}
+ @Override
public Kind getKind() {
return kind;
}
diff --git a/src/main/java/com/twilio/type/RecordingRulesUpdate.java b/src/main/java/com/twilio/type/RecordingRulesUpdate.java
index 3891ae5595..a1cf7d22b6 100644
--- a/src/main/java/com/twilio/type/RecordingRulesUpdate.java
+++ b/src/main/java/com/twilio/type/RecordingRulesUpdate.java
@@ -7,6 +7,13 @@
import java.util.List;
import java.util.Objects;
+/**
+ * Recording Rule Update - Used to update the list of Recording Rules
+ *
+ * For more information see:
+ * Specifying Recording Rules
+ *
+ */
@JsonIgnoreProperties(ignoreUnknown = true)
public class RecordingRulesUpdate {
diff --git a/src/main/java/com/twilio/type/Rule.java b/src/main/java/com/twilio/type/Rule.java
new file mode 100644
index 0000000000..567917d131
--- /dev/null
+++ b/src/main/java/com/twilio/type/Rule.java
@@ -0,0 +1,94 @@
+package com.twilio.type;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.twilio.converter.Promoter;
+
+public interface Rule {
+
+ Type getType();
+ Boolean getAll();
+ String getPublisher();
+ String getTrack();
+ Kind getKind();
+
+ enum Type {
+ INCLUDE("include"),
+ EXCLUDE("exclude");
+
+ private final String value;
+
+ Type(final String value) {
+ this.value = value;
+ }
+
+ @JsonCreator
+ public static Type forValue(final String value) {
+ return Promoter.enumFromString(value, Rule.Type.values());
+ }
+
+ @JsonValue
+ public String value() {
+ return this.value;
+ }
+
+ @Override
+ public String toString() {
+ return value;
+ }
+ }
+
+ enum Kind {
+ AUDIO("audio"),
+ DATA("data"),
+ VIDEO("video");
+
+ private final String value;
+
+ Kind(final String value) {
+ this.value = value;
+ }
+
+ @JsonCreator
+ public static Kind forValue(final String value) {
+ return Promoter.enumFromString(value, Rule.Kind.values());
+ }
+
+ @JsonValue
+ public String value() {
+ return this.value;
+ }
+
+ @Override
+ public String toString() {
+ return value;
+ }
+ }
+
+ enum Priority {
+ LOW("low"),
+ MEDIUM("medium"),
+ HIGH("high");
+
+ private final String value;
+
+ Priority(final String value) {
+ this.value = value;
+ }
+
+ @JsonCreator
+ public static Priority forValue(final String value) {
+ return Promoter.enumFromString(value, Priority.values());
+ }
+
+ @JsonValue
+ public String value() {
+ return this.value;
+ }
+
+ @Override
+ public String toString() {
+ return value;
+ }
+ }
+}
diff --git a/src/main/java/com/twilio/type/SubscribeRule.java b/src/main/java/com/twilio/type/SubscribeRule.java
index 5e4d7f1d18..4d37596b05 100644
--- a/src/main/java/com/twilio/type/SubscribeRule.java
+++ b/src/main/java/com/twilio/type/SubscribeRule.java
@@ -1,10 +1,7 @@
package com.twilio.type;
-import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonValue;
-import com.twilio.converter.Promoter;
import com.google.common.base.MoreObjects;
@@ -19,86 +16,7 @@
*
*/
@JsonIgnoreProperties(ignoreUnknown = true)
-public class SubscribeRule {
- public enum Type {
- INCLUDE("include"),
- EXCLUDE("exclude");
-
- private final String value;
-
- Type(final String value) {
- this.value = value;
- }
-
- @JsonCreator
- public static Type forValue(final String value) {
- return Promoter.enumFromString(value, Type.values());
- }
-
- @JsonValue
- public String value() {
- return this.value;
- }
-
- @Override
- public String toString() {
- return value;
- }
- }
-
- public enum Kind {
- AUDIO("audio"),
- DATA("data"),
- VIDEO("video");
-
- private final String value;
-
- Kind(final String value) {
- this.value = value;
- }
-
- @JsonCreator
- public static Kind forValue(final String value) {
- return Promoter.enumFromString(value, Kind.values());
- }
-
- @JsonValue
- public String value() {
- return this.value;
- }
-
- @Override
- public String toString() {
- return value;
- }
- }
-
- public enum Priority {
- LOW("low"),
- STANDARD("standard"),
- HIGH("high");
-
- private final String value;
-
- Priority(final String value) {
- this.value = value;
- }
-
- @JsonCreator
- public static Priority forValue(final String value) {
- return Promoter.enumFromString(value, Priority.values());
- }
-
- @JsonValue
- public String value() {
- return this.value;
- }
-
- @Override
- public String toString() {
- return value;
- }
- }
+public class SubscribeRule implements Rule {
private static final SubscribeRule subscribeAll = builder().withType(Type.INCLUDE).withAll().build();
private static final SubscribeRule subscribeNone = builder().withType(Type.EXCLUDE).withAll().build();
@@ -148,11 +66,48 @@ public static BuilderStart builder() {
return new Builder();
}
- public interface BuilderStart {
+ @Override
+ public Type getType() {
+ return type;
+ }
+
+ @Override
+ public Boolean getAll() {
+ return all;
+ }
+
+ @Override
+ public String getPublisher() {
+ return publisher;
+ }
+
+ @Override
+ public String getTrack() {
+ return track;
+ }
+
+ @Override
+ public Kind getKind() {
+ return kind;
+ }
+
+ public Priority getPriority() {
+ return priority;
+ }
+
+ public static SubscribeRule all() {
+ return subscribeAll;
+ }
+
+ public static SubscribeRule none() {
+ return subscribeNone;
+ }
+
+ interface BuilderStart {
BuilderMiddle withType(final Type type);
}
- public interface BuilderMiddle {
+ interface BuilderMiddle {
BuilderMiddleBuild withPublisher(final String publisher);
BuilderMiddleBuild withKind(final Kind kind);
BuilderMiddleBuild withTrack(final String track);
@@ -160,7 +115,7 @@ public interface BuilderMiddle {
BuilderBuild withAll();
}
- public interface BuilderMiddleBuild {
+ interface BuilderMiddleBuild {
BuilderMiddleBuild withPublisher(final String publisher);
BuilderMiddleBuild withKind(final Kind kind);
BuilderMiddleBuild withTrack(final String track);
@@ -168,10 +123,11 @@ public interface BuilderMiddleBuild {
SubscribeRule build();
}
- public interface BuilderBuild {
+ interface BuilderBuild {
SubscribeRule build();
}
+
public static class Builder implements
BuilderStart,
BuilderMiddle,
@@ -208,7 +164,7 @@ public BuilderMiddleBuild withTrack(final String track) {
this.track = track;
return this;
}
- public BuilderMiddleBuild withPriority(final Priority priority) {
+ public BuilderMiddleBuild withPriority(final SubscribeRule.Priority priority) {
this.priority = priority;
return this;
}
@@ -239,38 +195,6 @@ public SubscribeRule build() {
}
}
- public Type getType() {
- return type;
- }
-
- public Boolean getAll() {
- return all;
- }
-
- public String getPublisher() {
- return publisher;
- }
-
- public String getTrack() {
- return track;
- }
-
- public Kind getKind() {
- return kind;
- }
-
- public Priority getPriority() {
- return priority;
- }
-
- public static SubscribeRule all() {
- return subscribeAll;
- }
-
- public static SubscribeRule none() {
- return subscribeNone;
- }
-
@Override
public boolean equals(Object o) {
if (this == o) return true;
From c29e2a2564cb5231a0368586a59991ebf756c14b Mon Sep 17 00:00:00 2001
From: Falguni Vadodaria
Date: Tue, 13 Oct 2020 11:52:23 -0700
Subject: [PATCH 3/3] Solving test failure
---
.../java/com/twilio/type/RecordingRule.java | 19 ++----
.../com/twilio/type/RecordingRulesUpdate.java | 15 ++---
src/main/java/com/twilio/type/Rule.java | 6 +-
.../java/com/twilio/type/SubscribeRule.java | 64 ++++++++-----------
.../com/twilio/type/RecordingRuleTest.java | 4 +-
5 files changed, 43 insertions(+), 65 deletions(-)
diff --git a/src/main/java/com/twilio/type/RecordingRule.java b/src/main/java/com/twilio/type/RecordingRule.java
index 8d00150c3f..986398da08 100644
--- a/src/main/java/com/twilio/type/RecordingRule.java
+++ b/src/main/java/com/twilio/type/RecordingRule.java
@@ -2,18 +2,20 @@
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.base.MoreObjects;
+import lombok.ToString;
import java.util.Objects;
/**
* Recording Rule
+ *
*
- * For more information see:
- * Specifying Recording Rules
+ * For more information see:
+ * Specifying Recording Rules
*
*/
@JsonIgnoreProperties(ignoreUnknown = true)
+@ToString
public class RecordingRule implements Rule {
private static final RecordingRule recordAll = builder().withType(Type.INCLUDE).withAll().build();
@@ -190,15 +192,4 @@ public boolean equals(Object o) {
public int hashCode() {
return Objects.hash(getType(), getAll(), getPublisher(), getTrack(), getKind());
}
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(this)
- .add("type", this.type)
- .add("all", this.all)
- .add("publisher", this.publisher)
- .add("track", this.track)
- .add("kind", this.kind)
- .toString();
- }
}
diff --git a/src/main/java/com/twilio/type/RecordingRulesUpdate.java b/src/main/java/com/twilio/type/RecordingRulesUpdate.java
index a1cf7d22b6..11c0da14d4 100644
--- a/src/main/java/com/twilio/type/RecordingRulesUpdate.java
+++ b/src/main/java/com/twilio/type/RecordingRulesUpdate.java
@@ -2,19 +2,21 @@
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.base.MoreObjects;
+import lombok.ToString;
import java.util.List;
import java.util.Objects;
/**
* Recording Rule Update - Used to update the list of Recording Rules
+ *
*
- * For more information see:
- * Specifying Recording Rules
+ * For more information see:
+ * Specifying Recording Rules
*
*/
@JsonIgnoreProperties(ignoreUnknown = true)
+@ToString
public class RecordingRulesUpdate {
@JsonProperty("rules")
@@ -40,11 +42,4 @@ public boolean equals(final Object o) {
public int hashCode() {
return Objects.hash(getRules());
}
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(this)
- .add("rules", this.rules)
- .toString();
- }
}
diff --git a/src/main/java/com/twilio/type/Rule.java b/src/main/java/com/twilio/type/Rule.java
index 567917d131..ea37f70786 100644
--- a/src/main/java/com/twilio/type/Rule.java
+++ b/src/main/java/com/twilio/type/Rule.java
@@ -7,9 +7,13 @@
public interface Rule {
Type getType();
+
Boolean getAll();
+
String getPublisher();
+
String getTrack();
+
Kind getKind();
enum Type {
@@ -67,7 +71,7 @@ public String toString() {
enum Priority {
LOW("low"),
- MEDIUM("medium"),
+ STANDARD("standard"),
HIGH("high");
private final String value;
diff --git a/src/main/java/com/twilio/type/SubscribeRule.java b/src/main/java/com/twilio/type/SubscribeRule.java
index 83164e1625..ee2b505596 100644
--- a/src/main/java/com/twilio/type/SubscribeRule.java
+++ b/src/main/java/com/twilio/type/SubscribeRule.java
@@ -2,7 +2,7 @@
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.base.MoreObjects;
+import lombok.ToString;
import java.util.Objects;
@@ -10,11 +10,12 @@
* Subscribe Rule
*
*
- * For more information see:
- * Specifying Subscribe Rules
+ * For more information see:
+ * Specifying Subscribe Rules
*
*/
@JsonIgnoreProperties(ignoreUnknown = true)
+@ToString
public class SubscribeRule implements Rule {
private static final SubscribeRule subscribeAll = builder().withType(Type.INCLUDE).withAll().build();
@@ -39,11 +40,11 @@ public class SubscribeRule implements Rule {
private final Priority priority;
public SubscribeRule(@JsonProperty("type") final Type type,
- @JsonProperty("all") final Boolean all,
- @JsonProperty("publisher") final String publisher,
- @JsonProperty("track") final String track,
- @JsonProperty("kind") final Kind kind,
- @JsonProperty("priority") final Priority priority) {
+ @JsonProperty("all") final Boolean all,
+ @JsonProperty("publisher") final String publisher,
+ @JsonProperty("track") final String track,
+ @JsonProperty("kind") final Kind kind,
+ @JsonProperty("priority") final Priority priority) {
this.type = type;
this.all = all;
this.publisher = publisher;
@@ -102,44 +103,35 @@ public static SubscribeRule none() {
return subscribeNone;
}
- interface BuilderStart {
+ public interface BuilderStart {
BuilderMiddle withType(final Type type);
}
- interface BuilderMiddle {
+ public interface BuilderMiddle {
BuilderMiddleBuild withPublisher(final String publisher);
-
BuilderMiddleBuild withKind(final Kind kind);
-
BuilderMiddleBuild withTrack(final String track);
-
BuilderMiddleBuild withPriority(final Priority priority);
-
BuilderBuild withAll();
}
- interface BuilderMiddleBuild {
+ public interface BuilderMiddleBuild {
BuilderMiddleBuild withPublisher(final String publisher);
-
BuilderMiddleBuild withKind(final Kind kind);
-
BuilderMiddleBuild withTrack(final String track);
-
BuilderMiddleBuild withPriority(final Priority priority);
-
SubscribeRule build();
}
- interface BuilderBuild {
+ public interface BuilderBuild {
SubscribeRule build();
}
-
public static class Builder implements
- BuilderStart,
- BuilderMiddle,
- BuilderMiddleBuild,
- BuilderBuild {
+ BuilderStart,
+ BuilderMiddle,
+ BuilderMiddleBuild,
+ BuilderBuild {
private Type type;
private Boolean all;
private String publisher;
@@ -159,22 +151,18 @@ public BuilderBuild withAll() {
this.all = true;
return this;
}
-
public BuilderMiddleBuild withPublisher(final String publisher) {
this.publisher = publisher;
return this;
}
-
public BuilderMiddleBuild withKind(final Kind kind) {
this.kind = kind;
return this;
}
-
public BuilderMiddleBuild withTrack(final String track) {
this.track = track;
return this;
}
-
public BuilderMiddleBuild withPriority(final Priority priority) {
this.priority = priority;
return this;
@@ -183,10 +171,10 @@ public BuilderMiddleBuild withPriority(final Priority priority) {
private boolean hasOneFilter() {
// at least one filter must be set
return this.kind != null
- || this.all != null
- || this.track != null
- || this.publisher != null
- || this.priority != null;
+ || this.all != null
+ || this.track != null
+ || this.publisher != null
+ || this.priority != null;
}
private boolean hasType() {
@@ -212,11 +200,11 @@ public boolean equals(Object o) {
if (!(o instanceof SubscribeRule)) return false;
SubscribeRule that = (SubscribeRule) o;
return getType() == that.getType() &&
- Objects.equals(getAll(), that.getAll()) &&
- Objects.equals(getPublisher(), that.getPublisher()) &&
- Objects.equals(getTrack(), that.getTrack()) &&
- getKind() == that.getKind() &&
- getPriority() == that.getPriority();
+ Objects.equals(getAll(), that.getAll()) &&
+ Objects.equals(getPublisher(), that.getPublisher()) &&
+ Objects.equals(getTrack(), that.getTrack()) &&
+ getKind() == that.getKind() &&
+ getPriority() == that.getPriority();
}
@Override
diff --git a/src/test/java/com/twilio/type/RecordingRuleTest.java b/src/test/java/com/twilio/type/RecordingRuleTest.java
index 231793cfff..51865aa6ef 100644
--- a/src/test/java/com/twilio/type/RecordingRuleTest.java
+++ b/src/test/java/com/twilio/type/RecordingRuleTest.java
@@ -1,10 +1,10 @@
package com.twilio.type;
-import com.google.common.collect.Lists;
import org.junit.Assert;
import org.junit.Test;
import java.io.IOException;
+import java.util.Arrays;
import static org.junit.Assert.fail;
@@ -73,7 +73,7 @@ public void testUpdate() throws IOException {
.withPublisher("presenter")
.build();
- final RecordingRulesUpdate update = new RecordingRulesUpdate(Lists.newArrayList(
+ final RecordingRulesUpdate update = new RecordingRulesUpdate(Arrays.asList(
allAudio, presenterVideo
));