values() {
+ return ENUM_SUPPORT.values();
+ }
+
+ public static TypeEnum from(String value) {
+ return ENUM_SUPPORT.from(value);
+ }
+
+ public static String valueOf(TypeEnum e) {
+ return ENUM_SUPPORT.valueOf(e);
+ }
+ }
+
+ /**
+ * Get deliveryReport
+ *
+ * @return deliveryReport
+ */
+ DeliveryReportType getDeliveryReport();
+
+ /**
+ * If set in the future the message will be delayed until send_at
occurs. Must be
+ * before expire_at
. If set in the past, messages will be sent immediately. Formatted
+ * as ISO-8601. For example:
+ * YYYY-MM-DDThh:mm:ss.SSSZ
.
+ *
+ * @return sendAt
+ */
+ Instant getSendAt();
+
+ /**
+ * If set, the system will stop trying to deliver the message at this point. Must be after
+ * send_at
. Default and max is 3 days after send_at
. Formatted as ISO-8601. For example:
+ * YYYY-MM-DDThh:mm:ss.SSSZ
.
+ *
+ * @return expireAt
+ */
+ Instant getExpireAt();
+
+ /**
+ * Override the default callback URL for this batch. Must be a valid URL. Learn how to
+ * set a default callback URL here.
+ *
+ * @return callbackUrl
+ */
+ String getCallbackUrl();
+
+ /**
+ * The client identifier of a batch message. If set, the identifier will be added in the delivery
+ * report/callback of this batch.
+ *
+ * @return clientReference
+ */
+ String getClientReference();
+
+ /**
+ * If set to true then feedback
+ * is expected after successful delivery.
+ *
+ * @return feedbackEnabled
+ */
+ Boolean getFeedbackEnabled();
+
+ /**
+ * The type of number for the sender number. Use to override the automatic detection.
+ *
+ * minimum: 0 maximum: 6
+ *
+ * @return fromTon
+ */
+ Integer getFromTon();
+
+ /**
+ * Number Plan Indicator for the sender number. Use to override the automatic detection.
+ *
+ *
minimum: 0 maximum: 18
+ *
+ * @return fromNpi
+ */
+ Integer getFromNpi();
+
+ /**
+ * Getting builder
+ *
+ * @return New Builder instance
+ */
+ static Builder builder() {
+ return new BinaryRequestImpl.Builder();
+ }
+
+ /** Dedicated Builder */
+ interface Builder {
+
+ /**
+ * see getter
+ *
+ * @param to see getter
+ * @return Current builder
+ * @see #getTo
+ */
+ Builder setTo(List to);
+
+ /**
+ * see getter
+ *
+ * @param from see getter
+ * @return Current builder
+ * @see #getFrom
+ */
+ Builder setFrom(String from);
+
+ /**
+ * see getter
+ *
+ * @param body see getter
+ * @return Current builder
+ * @see #getBody
+ */
+ Builder setBody(String body);
+
+ /**
+ * see getter
+ *
+ * @param udh see getter
+ * @return Current builder
+ * @see #getUdh
+ */
+ Builder setUdh(String udh);
+
+ /**
+ * see getter
+ *
+ * @param deliveryReport see getter
+ * @return Current builder
+ * @see #getDeliveryReport
+ */
+ Builder setDeliveryReport(DeliveryReportType deliveryReport);
+
+ /**
+ * see getter
+ *
+ * @param sendAt see getter
+ * @return Current builder
+ * @see #getSendAt
+ */
+ Builder setSendAt(Instant sendAt);
+
+ /**
+ * see getter
+ *
+ * @param expireAt see getter
+ * @return Current builder
+ * @see #getExpireAt
+ */
+ Builder setExpireAt(Instant expireAt);
+
+ /**
+ * see getter
+ *
+ * @param callbackUrl see getter
+ * @return Current builder
+ * @see #getCallbackUrl
+ */
+ Builder setCallbackUrl(String callbackUrl);
+
+ /**
+ * see getter
+ *
+ * @param clientReference see getter
+ * @return Current builder
+ * @see #getClientReference
+ */
+ Builder setClientReference(String clientReference);
+
+ /**
+ * see getter
+ *
+ * @param feedbackEnabled see getter
+ * @return Current builder
+ * @see #getFeedbackEnabled
+ */
+ Builder setFeedbackEnabled(Boolean feedbackEnabled);
+
+ /**
+ * see getter
+ *
+ * @param fromTon see getter
+ * @return Current builder
+ * @see #getFromTon
+ */
+ Builder setFromTon(Integer fromTon);
+
+ /**
+ * see getter
+ *
+ * @param fromNpi see getter
+ * @return Current builder
+ * @see #getFromNpi
+ */
+ Builder setFromNpi(Integer fromNpi);
+
+ /**
+ * Create instance
+ *
+ * @return The instance build with current builder values
+ */
+ BinaryRequest build();
+ }
+}
diff --git a/openapi-contracts/src/main/com/sinch/sdk/domains/sms/models/v1/batches/request/BinaryRequestImpl.java b/openapi-contracts/src/main/com/sinch/sdk/domains/sms/models/v1/batches/request/BinaryRequestImpl.java
new file mode 100644
index 000000000..39fa49dd7
--- /dev/null
+++ b/openapi-contracts/src/main/com/sinch/sdk/domains/sms/models/v1/batches/request/BinaryRequestImpl.java
@@ -0,0 +1,440 @@
+package com.sinch.sdk.domains.sms.models.v1.batches.request;
+
+import com.fasterxml.jackson.annotation.JsonFilter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
+import com.sinch.sdk.core.models.OptionalValue;
+import com.sinch.sdk.domains.sms.models.v1.batches.DeliveryReportType;
+import java.time.Instant;
+import java.util.List;
+import java.util.Objects;
+
+@JsonPropertyOrder({
+ BinaryRequestImpl.JSON_PROPERTY_TO,
+ BinaryRequestImpl.JSON_PROPERTY_FROM,
+ BinaryRequestImpl.JSON_PROPERTY_BODY,
+ BinaryRequestImpl.JSON_PROPERTY_UDH,
+ BinaryRequestImpl.JSON_PROPERTY_TYPE,
+ BinaryRequestImpl.JSON_PROPERTY_DELIVERY_REPORT,
+ BinaryRequestImpl.JSON_PROPERTY_SEND_AT,
+ BinaryRequestImpl.JSON_PROPERTY_EXPIRE_AT,
+ BinaryRequestImpl.JSON_PROPERTY_CALLBACK_URL,
+ BinaryRequestImpl.JSON_PROPERTY_CLIENT_REFERENCE,
+ BinaryRequestImpl.JSON_PROPERTY_FEEDBACK_ENABLED,
+ BinaryRequestImpl.JSON_PROPERTY_FROM_TON,
+ BinaryRequestImpl.JSON_PROPERTY_FROM_NPI
+})
+@JsonFilter("uninitializedFilter")
+@JsonInclude(value = JsonInclude.Include.CUSTOM)
+public class BinaryRequestImpl implements BinaryRequest, BatchRequest {
+ private static final long serialVersionUID = 1L;
+
+ public static final String JSON_PROPERTY_TO = "to";
+
+ private OptionalValue> to;
+
+ public static final String JSON_PROPERTY_FROM = "from";
+
+ private OptionalValue from;
+
+ public static final String JSON_PROPERTY_BODY = "body";
+
+ private OptionalValue body;
+
+ public static final String JSON_PROPERTY_UDH = "udh";
+
+ private OptionalValue udh;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+
+ private OptionalValue type;
+
+ public static final String JSON_PROPERTY_DELIVERY_REPORT = "delivery_report";
+
+ private OptionalValue deliveryReport;
+
+ public static final String JSON_PROPERTY_SEND_AT = "send_at";
+
+ private OptionalValue sendAt;
+
+ public static final String JSON_PROPERTY_EXPIRE_AT = "expire_at";
+
+ private OptionalValue expireAt;
+
+ public static final String JSON_PROPERTY_CALLBACK_URL = "callback_url";
+
+ private OptionalValue callbackUrl;
+
+ public static final String JSON_PROPERTY_CLIENT_REFERENCE = "client_reference";
+
+ private OptionalValue clientReference;
+
+ public static final String JSON_PROPERTY_FEEDBACK_ENABLED = "feedback_enabled";
+
+ private OptionalValue feedbackEnabled;
+
+ public static final String JSON_PROPERTY_FROM_TON = "from_ton";
+
+ private OptionalValue fromTon;
+
+ public static final String JSON_PROPERTY_FROM_NPI = "from_npi";
+
+ private OptionalValue fromNpi;
+
+ public BinaryRequestImpl() {}
+
+ protected BinaryRequestImpl(
+ OptionalValue> to,
+ OptionalValue from,
+ OptionalValue body,
+ OptionalValue udh,
+ OptionalValue type,
+ OptionalValue deliveryReport,
+ OptionalValue sendAt,
+ OptionalValue expireAt,
+ OptionalValue callbackUrl,
+ OptionalValue clientReference,
+ OptionalValue feedbackEnabled,
+ OptionalValue fromTon,
+ OptionalValue fromNpi) {
+ this.to = to;
+ this.from = from;
+ this.body = body;
+ this.udh = udh;
+ this.type = type;
+ this.deliveryReport = deliveryReport;
+ this.sendAt = sendAt;
+ this.expireAt = expireAt;
+ this.callbackUrl = callbackUrl;
+ this.clientReference = clientReference;
+ this.feedbackEnabled = feedbackEnabled;
+ this.fromTon = fromTon;
+ this.fromNpi = fromNpi;
+ }
+
+ @JsonIgnore
+ public List getTo() {
+ return to.orElse(null);
+ }
+
+ @JsonProperty(JSON_PROPERTY_TO)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public OptionalValue> to() {
+ return to;
+ }
+
+ @JsonIgnore
+ public String getFrom() {
+ return from.orElse(null);
+ }
+
+ @JsonProperty(JSON_PROPERTY_FROM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public OptionalValue from() {
+ return from;
+ }
+
+ @JsonIgnore
+ public String getBody() {
+ return body.orElse(null);
+ }
+
+ @JsonProperty(JSON_PROPERTY_BODY)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public OptionalValue body() {
+ return body;
+ }
+
+ @JsonIgnore
+ public String getUdh() {
+ return udh.orElse(null);
+ }
+
+ @JsonProperty(JSON_PROPERTY_UDH)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public OptionalValue udh() {
+ return udh;
+ }
+
+ @JsonIgnore
+ public TypeEnum getType() {
+ return type.orElse(null);
+ }
+
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public OptionalValue type() {
+ return type;
+ }
+
+ @JsonIgnore
+ public DeliveryReportType getDeliveryReport() {
+ return deliveryReport.orElse(null);
+ }
+
+ @JsonProperty(JSON_PROPERTY_DELIVERY_REPORT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public OptionalValue deliveryReport() {
+ return deliveryReport;
+ }
+
+ @JsonIgnore
+ public Instant getSendAt() {
+ return sendAt.orElse(null);
+ }
+
+ @JsonProperty(JSON_PROPERTY_SEND_AT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public OptionalValue sendAt() {
+ return sendAt;
+ }
+
+ @JsonIgnore
+ public Instant getExpireAt() {
+ return expireAt.orElse(null);
+ }
+
+ @JsonProperty(JSON_PROPERTY_EXPIRE_AT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public OptionalValue expireAt() {
+ return expireAt;
+ }
+
+ @JsonIgnore
+ public String getCallbackUrl() {
+ return callbackUrl.orElse(null);
+ }
+
+ @JsonProperty(JSON_PROPERTY_CALLBACK_URL)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public OptionalValue callbackUrl() {
+ return callbackUrl;
+ }
+
+ @JsonIgnore
+ public String getClientReference() {
+ return clientReference.orElse(null);
+ }
+
+ @JsonProperty(JSON_PROPERTY_CLIENT_REFERENCE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public OptionalValue clientReference() {
+ return clientReference;
+ }
+
+ @JsonIgnore
+ public Boolean getFeedbackEnabled() {
+ return feedbackEnabled.orElse(null);
+ }
+
+ @JsonProperty(JSON_PROPERTY_FEEDBACK_ENABLED)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public OptionalValue feedbackEnabled() {
+ return feedbackEnabled;
+ }
+
+ @JsonIgnore
+ public Integer getFromTon() {
+ return fromTon.orElse(null);
+ }
+
+ @JsonProperty(JSON_PROPERTY_FROM_TON)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public OptionalValue fromTon() {
+ return fromTon;
+ }
+
+ @JsonIgnore
+ public Integer getFromNpi() {
+ return fromNpi.orElse(null);
+ }
+
+ @JsonProperty(JSON_PROPERTY_FROM_NPI)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public OptionalValue fromNpi() {
+ return fromNpi;
+ }
+
+ /** Return true if this BinaryRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ BinaryRequestImpl binaryRequest = (BinaryRequestImpl) o;
+ return Objects.equals(this.to, binaryRequest.to)
+ && Objects.equals(this.from, binaryRequest.from)
+ && Objects.equals(this.body, binaryRequest.body)
+ && Objects.equals(this.udh, binaryRequest.udh)
+ && Objects.equals(this.type, binaryRequest.type)
+ && Objects.equals(this.deliveryReport, binaryRequest.deliveryReport)
+ && Objects.equals(this.sendAt, binaryRequest.sendAt)
+ && Objects.equals(this.expireAt, binaryRequest.expireAt)
+ && Objects.equals(this.callbackUrl, binaryRequest.callbackUrl)
+ && Objects.equals(this.clientReference, binaryRequest.clientReference)
+ && Objects.equals(this.feedbackEnabled, binaryRequest.feedbackEnabled)
+ && Objects.equals(this.fromTon, binaryRequest.fromTon)
+ && Objects.equals(this.fromNpi, binaryRequest.fromNpi);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ to,
+ from,
+ body,
+ udh,
+ type,
+ deliveryReport,
+ sendAt,
+ expireAt,
+ callbackUrl,
+ clientReference,
+ feedbackEnabled,
+ fromTon,
+ fromNpi);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class BinaryRequestImpl {\n");
+ sb.append(" to: ").append(toIndentedString(to)).append("\n");
+ sb.append(" from: ").append(toIndentedString(from)).append("\n");
+ sb.append(" body: ").append(toIndentedString(body)).append("\n");
+ sb.append(" udh: ").append(toIndentedString(udh)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" deliveryReport: ").append(toIndentedString(deliveryReport)).append("\n");
+ sb.append(" sendAt: ").append(toIndentedString(sendAt)).append("\n");
+ sb.append(" expireAt: ").append(toIndentedString(expireAt)).append("\n");
+ sb.append(" callbackUrl: ").append(toIndentedString(callbackUrl)).append("\n");
+ sb.append(" clientReference: ").append(toIndentedString(clientReference)).append("\n");
+ sb.append(" feedbackEnabled: ").append(toIndentedString(feedbackEnabled)).append("\n");
+ sb.append(" fromTon: ").append(toIndentedString(fromTon)).append("\n");
+ sb.append(" fromNpi: ").append(toIndentedString(fromNpi)).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 ");
+ }
+
+ @JsonPOJOBuilder(withPrefix = "set")
+ static class Builder implements BinaryRequest.Builder {
+ OptionalValue> to = OptionalValue.empty();
+ OptionalValue from = OptionalValue.empty();
+ OptionalValue body = OptionalValue.empty();
+ OptionalValue udh = OptionalValue.empty();
+ OptionalValue type = OptionalValue.of(TypeEnum.MT_BINARY);
+ OptionalValue deliveryReport = OptionalValue.empty();
+ OptionalValue sendAt = OptionalValue.empty();
+ OptionalValue expireAt = OptionalValue.empty();
+ OptionalValue callbackUrl = OptionalValue.empty();
+ OptionalValue clientReference = OptionalValue.empty();
+ OptionalValue feedbackEnabled = OptionalValue.empty();
+ OptionalValue fromTon = OptionalValue.empty();
+ OptionalValue fromNpi = OptionalValue.empty();
+
+ @JsonProperty(JSON_PROPERTY_TO)
+ public Builder setTo(List to) {
+ this.to = OptionalValue.of(to);
+ return this;
+ }
+
+ @JsonProperty(JSON_PROPERTY_FROM)
+ public Builder setFrom(String from) {
+ this.from = OptionalValue.of(from);
+ return this;
+ }
+
+ @JsonProperty(JSON_PROPERTY_BODY)
+ public Builder setBody(String body) {
+ this.body = OptionalValue.of(body);
+ return this;
+ }
+
+ @JsonProperty(JSON_PROPERTY_UDH)
+ public Builder setUdh(String udh) {
+ this.udh = OptionalValue.of(udh);
+ return this;
+ }
+
+ @JsonProperty(JSON_PROPERTY_DELIVERY_REPORT)
+ public Builder setDeliveryReport(DeliveryReportType deliveryReport) {
+ this.deliveryReport = OptionalValue.of(deliveryReport);
+ return this;
+ }
+
+ @JsonProperty(JSON_PROPERTY_SEND_AT)
+ public Builder setSendAt(Instant sendAt) {
+ this.sendAt = OptionalValue.of(sendAt);
+ return this;
+ }
+
+ @JsonProperty(JSON_PROPERTY_EXPIRE_AT)
+ public Builder setExpireAt(Instant expireAt) {
+ this.expireAt = OptionalValue.of(expireAt);
+ return this;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CALLBACK_URL)
+ public Builder setCallbackUrl(String callbackUrl) {
+ this.callbackUrl = OptionalValue.of(callbackUrl);
+ return this;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CLIENT_REFERENCE)
+ public Builder setClientReference(String clientReference) {
+ this.clientReference = OptionalValue.of(clientReference);
+ return this;
+ }
+
+ @JsonProperty(JSON_PROPERTY_FEEDBACK_ENABLED)
+ public Builder setFeedbackEnabled(Boolean feedbackEnabled) {
+ this.feedbackEnabled = OptionalValue.of(feedbackEnabled);
+ return this;
+ }
+
+ @JsonProperty(JSON_PROPERTY_FROM_TON)
+ public Builder setFromTon(Integer fromTon) {
+ this.fromTon = OptionalValue.of(fromTon);
+ return this;
+ }
+
+ @JsonProperty(JSON_PROPERTY_FROM_NPI)
+ public Builder setFromNpi(Integer fromNpi) {
+ this.fromNpi = OptionalValue.of(fromNpi);
+ return this;
+ }
+
+ public BinaryRequest build() {
+ return new BinaryRequestImpl(
+ to,
+ from,
+ body,
+ udh,
+ type,
+ deliveryReport,
+ sendAt,
+ expireAt,
+ callbackUrl,
+ clientReference,
+ feedbackEnabled,
+ fromTon,
+ fromNpi);
+ }
+ }
+}
diff --git a/openapi-contracts/src/main/com/sinch/sdk/domains/sms/models/v1/batches/request/MediaRequest.java b/openapi-contracts/src/main/com/sinch/sdk/domains/sms/models/v1/batches/request/MediaRequest.java
new file mode 100644
index 000000000..1774aad95
--- /dev/null
+++ b/openapi-contracts/src/main/com/sinch/sdk/domains/sms/models/v1/batches/request/MediaRequest.java
@@ -0,0 +1,263 @@
+/*
+ * API Overview | Sinch
+ *
+ * OpenAPI document version: v1
+ * Contact: Support@sinch.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * Do not edit the class manually.
+ */
+
+package com.sinch.sdk.domains.sms.models.v1.batches.request;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.sinch.sdk.core.utils.EnumDynamic;
+import com.sinch.sdk.core.utils.EnumSupportDynamic;
+import com.sinch.sdk.domains.sms.models.v1.batches.DeliveryReportType;
+import com.sinch.sdk.domains.sms.models.v1.batches.MediaBody;
+import java.time.Instant;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Stream;
+
+/** Only available in the US. Contact your account manager if you wish to send MMS. */
+@JsonDeserialize(builder = MediaRequestImpl.Builder.class)
+public interface MediaRequest extends BatchRequest {
+
+ /**
+ * List of Phone numbers and group IDs that will receive the batch. More info
+ *
+ * @return to
+ */
+ List getTo();
+
+ /**
+ * Sender number. Must be valid phone number, short code or alphanumeric. Required if Automatic
+ * Default Originator not configured.
+ *
+ * @return from
+ */
+ String getFrom();
+
+ /**
+ * Get body
+ *
+ * @return body
+ */
+ MediaBody getBody();
+
+ /**
+ * Contains the parameters that will be used for customizing the message for each recipient. Click here to learn more about
+ * parameterization.
+ *
+ * @return parameters
+ */
+ Map> getParameters();
+
+ /** MMS */
+ public class TypeEnum extends EnumDynamic {
+ public static final TypeEnum MT_MEDIA = new TypeEnum("mt_media");
+
+ private static final EnumSupportDynamic ENUM_SUPPORT =
+ new EnumSupportDynamic<>(TypeEnum.class, TypeEnum::new, Arrays.asList(MT_MEDIA));
+
+ private TypeEnum(String value) {
+ super(value);
+ }
+
+ public static Stream values() {
+ return ENUM_SUPPORT.values();
+ }
+
+ public static TypeEnum from(String value) {
+ return ENUM_SUPPORT.from(value);
+ }
+
+ public static String valueOf(TypeEnum e) {
+ return ENUM_SUPPORT.valueOf(e);
+ }
+ }
+
+ /**
+ * Get deliveryReport
+ *
+ * @return deliveryReport
+ */
+ DeliveryReportType getDeliveryReport();
+
+ /**
+ * If set in the future, the message will be delayed until send_at
occurs. Must be
+ * before expire_at
. If set in the past, messages will be sent immediately. Formatted
+ * as ISO-8601:
+ * YYYY-MM-DDThh:mm:ss.SSSZ
.
+ *
+ * @return sendAt
+ */
+ Instant getSendAt();
+
+ /**
+ * If set, the system will stop trying to deliver the message at this point. Must be after
+ * send_at
. Default and max is 3 days after send_at
. Formatted as ISO-8601: YYYY-MM-DDThh:mm:ss.SSSZ
+ *
.
+ *
+ * @return expireAt
+ */
+ Instant getExpireAt();
+
+ /**
+ * Override the default callback URL for this batch. Must be valid URL.
+ *
+ * @return callbackUrl
+ */
+ String getCallbackUrl();
+
+ /**
+ * The client identifier of a batch message. If set, the identifier will be added in the delivery
+ * report/callback of this batch
+ *
+ * @return clientReference
+ */
+ String getClientReference();
+
+ /**
+ * If set to true
, then feedback
+ * is expected after successful delivery.
+ *
+ * @return feedbackEnabled
+ */
+ Boolean getFeedbackEnabled();
+
+ /**
+ * Whether or not you want the media included in your message to be checked against Sinch MMS channel best practices. If set to true, your
+ * message will be rejected if it doesn't conform to the listed recommendations, otherwise no
+ * validation will be performed.
+ *
+ * @return strictValidation
+ */
+ Boolean getStrictValidation();
+
+ /**
+ * Getting builder
+ *
+ * @return New Builder instance
+ */
+ static Builder builder() {
+ return new MediaRequestImpl.Builder();
+ }
+
+ /** Dedicated Builder */
+ interface Builder {
+
+ /**
+ * see getter
+ *
+ * @param to see getter
+ * @return Current builder
+ * @see #getTo
+ */
+ Builder setTo(List to);
+
+ /**
+ * see getter
+ *
+ * @param from see getter
+ * @return Current builder
+ * @see #getFrom
+ */
+ Builder setFrom(String from);
+
+ /**
+ * see getter
+ *
+ * @param body see getter
+ * @return Current builder
+ * @see #getBody
+ */
+ Builder setBody(MediaBody body);
+
+ /**
+ * see getter
+ *
+ * @param parameters see getter
+ * @return Current builder
+ * @see #getParameters
+ */
+ Builder setParameters(Map> parameters);
+
+ /**
+ * see getter
+ *
+ * @param deliveryReport see getter
+ * @return Current builder
+ * @see #getDeliveryReport
+ */
+ Builder setDeliveryReport(DeliveryReportType deliveryReport);
+
+ /**
+ * see getter
+ *
+ * @param sendAt see getter
+ * @return Current builder
+ * @see #getSendAt
+ */
+ Builder setSendAt(Instant sendAt);
+
+ /**
+ * see getter
+ *
+ * @param expireAt see getter
+ * @return Current builder
+ * @see #getExpireAt
+ */
+ Builder setExpireAt(Instant expireAt);
+
+ /**
+ * see getter
+ *
+ * @param callbackUrl see getter
+ * @return Current builder
+ * @see #getCallbackUrl
+ */
+ Builder setCallbackUrl(String callbackUrl);
+
+ /**
+ * see getter
+ *
+ * @param clientReference see getter
+ * @return Current builder
+ * @see #getClientReference
+ */
+ Builder setClientReference(String clientReference);
+
+ /**
+ * see getter
+ *
+ * @param feedbackEnabled see getter
+ * @return Current builder
+ * @see #getFeedbackEnabled
+ */
+ Builder setFeedbackEnabled(Boolean feedbackEnabled);
+
+ /**
+ * see getter
+ *
+ * @param strictValidation see getter
+ * @return Current builder
+ * @see #getStrictValidation
+ */
+ Builder setStrictValidation(Boolean strictValidation);
+
+ /**
+ * Create instance
+ *
+ * @return The instance build with current builder values
+ */
+ MediaRequest build();
+ }
+}
diff --git a/openapi-contracts/src/main/com/sinch/sdk/domains/sms/models/v1/batches/request/MediaRequestImpl.java b/openapi-contracts/src/main/com/sinch/sdk/domains/sms/models/v1/batches/request/MediaRequestImpl.java
new file mode 100644
index 000000000..227379256
--- /dev/null
+++ b/openapi-contracts/src/main/com/sinch/sdk/domains/sms/models/v1/batches/request/MediaRequestImpl.java
@@ -0,0 +1,413 @@
+package com.sinch.sdk.domains.sms.models.v1.batches.request;
+
+import com.fasterxml.jackson.annotation.JsonFilter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
+import com.sinch.sdk.core.models.OptionalValue;
+import com.sinch.sdk.domains.sms.models.v1.batches.DeliveryReportType;
+import com.sinch.sdk.domains.sms.models.v1.batches.MediaBody;
+import java.time.Instant;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+@JsonPropertyOrder({
+ MediaRequestImpl.JSON_PROPERTY_TO,
+ MediaRequestImpl.JSON_PROPERTY_FROM,
+ MediaRequestImpl.JSON_PROPERTY_BODY,
+ MediaRequestImpl.JSON_PROPERTY_PARAMETERS,
+ MediaRequestImpl.JSON_PROPERTY_TYPE,
+ MediaRequestImpl.JSON_PROPERTY_DELIVERY_REPORT,
+ MediaRequestImpl.JSON_PROPERTY_SEND_AT,
+ MediaRequestImpl.JSON_PROPERTY_EXPIRE_AT,
+ MediaRequestImpl.JSON_PROPERTY_CALLBACK_URL,
+ MediaRequestImpl.JSON_PROPERTY_CLIENT_REFERENCE,
+ MediaRequestImpl.JSON_PROPERTY_FEEDBACK_ENABLED,
+ MediaRequestImpl.JSON_PROPERTY_STRICT_VALIDATION
+})
+@JsonFilter("uninitializedFilter")
+@JsonInclude(value = JsonInclude.Include.CUSTOM)
+public class MediaRequestImpl implements MediaRequest, BatchRequest {
+ private static final long serialVersionUID = 1L;
+
+ public static final String JSON_PROPERTY_TO = "to";
+
+ private OptionalValue> to;
+
+ public static final String JSON_PROPERTY_FROM = "from";
+
+ private OptionalValue from;
+
+ public static final String JSON_PROPERTY_BODY = "body";
+
+ private OptionalValue body;
+
+ public static final String JSON_PROPERTY_PARAMETERS = "parameters";
+
+ private OptionalValue