2222import com .vonage .client .common .MessageType ;
2323import com .vonage .client .messages .internal .MessagePayload ;
2424import java .net .URI ;
25- import java .util .LinkedHashMap ;
26- import java .util .Map ;
27- import java .util .Objects ;
25+ import java .util .*;
2826
2927/**
3028 * Abstract base class of all Messages sent via the Messages v1 API. All subclasses follow a
@@ -43,6 +41,7 @@ public abstract class MessageRequest extends JsonableBaseObject {
4341 final String clientRef ;
4442 final URI webhookUrl ;
4543 final MessagesVersion webhookVersion ;
44+ final List <MessageRequest > failover ;
4645 protected final Integer ttl ;
4746 final String text ;
4847 protected final Map <String , Object > custom ;
@@ -71,6 +70,7 @@ protected MessageRequest(Builder<?, ?> builder, Channel channel, MessageType mes
7170 clientRef = validateClientReference (builder .clientRef );
7271 webhookUrl = builder .webhookUrl ;
7372 webhookVersion = builder .webhookVersion ;
73+ failover = builder .failover ;
7474
7575 MessagePayload media = null ;
7676 Map <String , Object > custom = null ;
@@ -180,6 +180,11 @@ public MessagesVersion getWebhookVersion() {
180180 return webhookVersion ;
181181 }
182182
183+ @ JsonProperty ("failover" )
184+ public List <MessageRequest > getFailover () {
185+ return failover ;
186+ }
187+
183188 @ JsonProperty ("ttl" )
184189 protected Integer getTtl () {
185190 return ttl ;
@@ -210,6 +215,7 @@ public abstract static class Builder<M extends MessageRequest, B extends Builder
210215 private String from , to , clientRef , text , url , caption , name ;
211216 private URI webhookUrl ;
212217 private MessagesVersion webhookVersion ;
218+ private List <MessageRequest > failover ;
213219 private Integer ttl ;
214220 private Map <String , Object > custom ;
215221
@@ -381,6 +387,33 @@ protected B name(String name) {
381387 return (B ) this ;
382388 }
383389
390+ /**
391+ * (OPTIONAL)
392+ * Sets the failover messages to be sent if the primary message fails.
393+ *
394+ * @param failover The failover message(s).
395+ * @return This builder.
396+ *
397+ * @since 9.3.0
398+ */
399+ public B failover (MessageRequest ... failover ) {
400+ return failover (Arrays .asList (failover ));
401+ }
402+
403+ /**
404+ * (OPTIONAL)
405+ * Sets the failover messages to be sent if the primary message fails.
406+ *
407+ * @param failover The list of failover messages.
408+ * @return This builder.
409+ *
410+ * @since 9.3.0
411+ */
412+ public B failover (List <MessageRequest > failover ) {
413+ this .failover = failover ;
414+ return (B ) this ;
415+ }
416+
384417 /**
385418 * Builds the MessageRequest.
386419 *
0 commit comments