diff --git a/build.gradle b/build.gradle index 4dded78..fb11728 100644 --- a/build.gradle +++ b/build.gradle @@ -50,7 +50,7 @@ publishing { maven(MavenPublication) { groupId = 'com.courier' artifactId = 'courier-java' - version = '3.1.2' + version = '3.2.0' from components.java pom { name = 'courier' diff --git a/src/main/java/com/courier/api/core/ClientOptions.java b/src/main/java/com/courier/api/core/ClientOptions.java index 042d31c..e606a2e 100644 --- a/src/main/java/com/courier/api/core/ClientOptions.java +++ b/src/main/java/com/courier/api/core/ClientOptions.java @@ -30,7 +30,7 @@ private ClientOptions( { put("X-Fern-Language", "JAVA"); put("X-Fern-SDK-Name", "com.courier.fern:api-sdk"); - put("X-Fern-SDK-Version", "3.1.2"); + put("X-Fern-SDK-Version", "3.2.0"); } }); this.headerSuppliers = headerSuppliers; diff --git a/src/main/java/com/courier/api/resources/profiles/types/UserProfile.java b/src/main/java/com/courier/api/resources/profiles/types/UserProfile.java index 88288fd..9ffbeb8 100644 --- a/src/main/java/com/courier/api/resources/profiles/types/UserProfile.java +++ b/src/main/java/com/courier/api/resources/profiles/types/UserProfile.java @@ -72,7 +72,7 @@ public final class UserProfile { private final String facebookPsid; - private final String firebaseToken; + private final UserProfileFirebaseToken firebaseToken; private final Intercom intercom; @@ -110,7 +110,7 @@ private UserProfile( Discord discord, Expo expo, String facebookPsid, - String firebaseToken, + UserProfileFirebaseToken firebaseToken, Intercom intercom, Slack slack, MsTeams msTeams, @@ -288,7 +288,7 @@ public String getFacebookPsid() { } @JsonProperty("firebaseToken") - public String getFirebaseToken() { + public UserProfileFirebaseToken getFirebaseToken() { return firebaseToken; } @@ -508,7 +508,7 @@ public interface FacebookPsidStage { } public interface FirebaseTokenStage { - IntercomStage firebaseToken(String firebaseToken); + IntercomStage firebaseToken(UserProfileFirebaseToken firebaseToken); } public interface IntercomStage { @@ -615,7 +615,7 @@ public static final class Builder private String facebookPsid; - private String firebaseToken; + private UserProfileFirebaseToken firebaseToken; private Intercom intercom; @@ -859,7 +859,7 @@ public FirebaseTokenStage facebookPsid(String facebookPsid) { @java.lang.Override @JsonSetter("firebaseToken") - public IntercomStage firebaseToken(String firebaseToken) { + public IntercomStage firebaseToken(UserProfileFirebaseToken firebaseToken) { this.firebaseToken = firebaseToken; return this; } diff --git a/src/main/java/com/courier/api/resources/profiles/types/UserProfileFirebaseToken.java b/src/main/java/com/courier/api/resources/profiles/types/UserProfileFirebaseToken.java new file mode 100644 index 0000000..ac49d53 --- /dev/null +++ b/src/main/java/com/courier/api/resources/profiles/types/UserProfileFirebaseToken.java @@ -0,0 +1,96 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.courier.api.resources.profiles.types; + +import com.courier.api.core.ObjectMappers; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +@JsonDeserialize(using = UserProfileFirebaseToken.Deserializer.class) +public final class UserProfileFirebaseToken { + private final Object value; + + private final int type; + + private UserProfileFirebaseToken(Object value, int type) { + this.value = value; + this.type = type; + } + + @JsonValue + public Object get() { + return this.value; + } + + public T visit(Visitor visitor) { + if (this.type == 0) { + return visitor.visit((String) this.value); + } else if (this.type == 1) { + return visitor.visit((List) this.value); + } + throw new IllegalStateException("Failed to visit value. This should never happen."); + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof UserProfileFirebaseToken && equalTo((UserProfileFirebaseToken) other); + } + + private boolean equalTo(UserProfileFirebaseToken other) { + return value.equals(other.value); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.value); + } + + @java.lang.Override + public String toString() { + return this.value.toString(); + } + + public static UserProfileFirebaseToken of(String value) { + return new UserProfileFirebaseToken(value, 0); + } + + public static UserProfileFirebaseToken of(List value) { + return new UserProfileFirebaseToken(value, 1); + } + + public interface Visitor { + T visit(String value); + + T visit(List value); + } + + static final class Deserializer extends StdDeserializer { + Deserializer() { + super(UserProfileFirebaseToken.class); + } + + @java.lang.Override + public UserProfileFirebaseToken deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + Object value = p.readValueAs(Object.class); + try { + return of(ObjectMappers.JSON_MAPPER.convertValue(value, String.class)); + } catch (IllegalArgumentException e) { + } + try { + return of(ObjectMappers.JSON_MAPPER.convertValue(value, new TypeReference>() {})); + } catch (IllegalArgumentException e) { + } + throw new JsonParseException(p, "Failed to deserialize"); + } + } +} diff --git a/src/main/java/com/courier/api/resources/send/types/Channel.java b/src/main/java/com/courier/api/resources/send/types/Channel.java index 0f98c22..dc3e7f1 100644 --- a/src/main/java/com/courier/api/resources/send/types/Channel.java +++ b/src/main/java/com/courier/api/resources/send/types/Channel.java @@ -31,7 +31,7 @@ public final class Channel { private final Optional timeouts; - private final Optional override; + private final Optional> override; private final Optional metadata; @@ -43,7 +43,7 @@ private Channel( Optional routingMethod, Optional if_, Optional timeouts, - Optional override, + Optional> override, Optional metadata, Map additionalProperties) { this.brandId = brandId; @@ -103,7 +103,7 @@ public Optional getTimeouts() { * @return Channel specific overrides. */ @JsonProperty("override") - public Optional getOverride() { + public Optional> getOverride() { return override; } @@ -166,7 +166,7 @@ public static final class Builder { private Optional timeouts = Optional.empty(); - private Optional override = Optional.empty(); + private Optional> override = Optional.empty(); private Optional metadata = Optional.empty(); @@ -242,12 +242,12 @@ public Builder timeouts(Timeouts timeouts) { } @JsonSetter(value = "override", nulls = Nulls.SKIP) - public Builder override(Optional override) { + public Builder override(Optional> override) { this.override = override; return this; } - public Builder override(Override override) { + public Builder override(Map override) { this.override = Optional.of(override); return this; } diff --git a/src/main/java/com/courier/api/resources/send/types/MessageChannelEmailOverride.java b/src/main/java/com/courier/api/resources/send/types/MessageChannelEmailOverride.java deleted file mode 100644 index c7d8686..0000000 --- a/src/main/java/com/courier/api/resources/send/types/MessageChannelEmailOverride.java +++ /dev/null @@ -1,388 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ -package com.courier.api.resources.send.types; - -import com.courier.api.core.ObjectMappers; -import com.courier.api.resources.brands.types.Brand; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonSetter; -import com.fasterxml.jackson.annotation.Nulls; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; - -@JsonInclude(JsonInclude.Include.NON_EMPTY) -@JsonDeserialize(builder = MessageChannelEmailOverride.Builder.class) -public final class MessageChannelEmailOverride { - private final Optional>> attachments; - - private final Optional bcc; - - private final Optional brand; - - private final Optional cc; - - private final Optional from; - - private final Optional html; - - private final Optional replyTo; - - private final Optional subject; - - private final Optional text; - - private final TrackingOverride tracking; - - private final Map additionalProperties; - - private MessageChannelEmailOverride( - Optional>> attachments, - Optional bcc, - Optional brand, - Optional cc, - Optional from, - Optional html, - Optional replyTo, - Optional subject, - Optional text, - TrackingOverride tracking, - Map additionalProperties) { - this.attachments = attachments; - this.bcc = bcc; - this.brand = brand; - this.cc = cc; - this.from = from; - this.html = html; - this.replyTo = replyTo; - this.subject = subject; - this.text = text; - this.tracking = tracking; - this.additionalProperties = additionalProperties; - } - - @JsonProperty("attachments") - public Optional>> getAttachments() { - return attachments; - } - - @JsonProperty("bcc") - public Optional getBcc() { - return bcc; - } - - @JsonProperty("brand") - public Optional getBrand() { - return brand; - } - - @JsonProperty("cc") - public Optional getCc() { - return cc; - } - - @JsonProperty("from") - public Optional getFrom() { - return from; - } - - @JsonProperty("html") - public Optional getHtml() { - return html; - } - - @JsonProperty("reply_to") - public Optional getReplyTo() { - return replyTo; - } - - @JsonProperty("subject") - public Optional getSubject() { - return subject; - } - - @JsonProperty("text") - public Optional getText() { - return text; - } - - @JsonProperty("tracking") - public TrackingOverride getTracking() { - return tracking; - } - - @java.lang.Override - public boolean equals(Object other) { - if (this == other) return true; - return other instanceof MessageChannelEmailOverride && equalTo((MessageChannelEmailOverride) other); - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - private boolean equalTo(MessageChannelEmailOverride other) { - return attachments.equals(other.attachments) - && bcc.equals(other.bcc) - && brand.equals(other.brand) - && cc.equals(other.cc) - && from.equals(other.from) - && html.equals(other.html) - && replyTo.equals(other.replyTo) - && subject.equals(other.subject) - && text.equals(other.text) - && tracking.equals(other.tracking); - } - - @java.lang.Override - public int hashCode() { - return Objects.hash( - this.attachments, - this.bcc, - this.brand, - this.cc, - this.from, - this.html, - this.replyTo, - this.subject, - this.text, - this.tracking); - } - - @java.lang.Override - public String toString() { - return ObjectMappers.stringify(this); - } - - public static TrackingStage builder() { - return new Builder(); - } - - public interface TrackingStage { - _FinalStage tracking(TrackingOverride tracking); - - Builder from(MessageChannelEmailOverride other); - } - - public interface _FinalStage { - MessageChannelEmailOverride build(); - - _FinalStage attachments(Optional>> attachments); - - _FinalStage attachments(List> attachments); - - _FinalStage bcc(Optional bcc); - - _FinalStage bcc(String bcc); - - _FinalStage brand(Optional brand); - - _FinalStage brand(Brand brand); - - _FinalStage cc(Optional cc); - - _FinalStage cc(String cc); - - _FinalStage from(Optional from); - - _FinalStage from(String from); - - _FinalStage html(Optional html); - - _FinalStage html(String html); - - _FinalStage replyTo(Optional replyTo); - - _FinalStage replyTo(String replyTo); - - _FinalStage subject(Optional subject); - - _FinalStage subject(String subject); - - _FinalStage text(Optional text); - - _FinalStage text(String text); - } - - @JsonIgnoreProperties(ignoreUnknown = true) - public static final class Builder implements TrackingStage, _FinalStage { - private TrackingOverride tracking; - - private Optional text = Optional.empty(); - - private Optional subject = Optional.empty(); - - private Optional replyTo = Optional.empty(); - - private Optional html = Optional.empty(); - - private Optional from = Optional.empty(); - - private Optional cc = Optional.empty(); - - private Optional brand = Optional.empty(); - - private Optional bcc = Optional.empty(); - - private Optional>> attachments = Optional.empty(); - - @JsonAnySetter - private Map additionalProperties = new HashMap<>(); - - private Builder() {} - - @java.lang.Override - public Builder from(MessageChannelEmailOverride other) { - attachments(other.getAttachments()); - bcc(other.getBcc()); - brand(other.getBrand()); - cc(other.getCc()); - from(other.getFrom()); - html(other.getHtml()); - replyTo(other.getReplyTo()); - subject(other.getSubject()); - text(other.getText()); - tracking(other.getTracking()); - return this; - } - - @java.lang.Override - @JsonSetter("tracking") - public _FinalStage tracking(TrackingOverride tracking) { - this.tracking = tracking; - return this; - } - - @java.lang.Override - public _FinalStage text(String text) { - this.text = Optional.of(text); - return this; - } - - @java.lang.Override - @JsonSetter(value = "text", nulls = Nulls.SKIP) - public _FinalStage text(Optional text) { - this.text = text; - return this; - } - - @java.lang.Override - public _FinalStage subject(String subject) { - this.subject = Optional.of(subject); - return this; - } - - @java.lang.Override - @JsonSetter(value = "subject", nulls = Nulls.SKIP) - public _FinalStage subject(Optional subject) { - this.subject = subject; - return this; - } - - @java.lang.Override - public _FinalStage replyTo(String replyTo) { - this.replyTo = Optional.of(replyTo); - return this; - } - - @java.lang.Override - @JsonSetter(value = "reply_to", nulls = Nulls.SKIP) - public _FinalStage replyTo(Optional replyTo) { - this.replyTo = replyTo; - return this; - } - - @java.lang.Override - public _FinalStage html(String html) { - this.html = Optional.of(html); - return this; - } - - @java.lang.Override - @JsonSetter(value = "html", nulls = Nulls.SKIP) - public _FinalStage html(Optional html) { - this.html = html; - return this; - } - - @java.lang.Override - public _FinalStage from(String from) { - this.from = Optional.of(from); - return this; - } - - @java.lang.Override - @JsonSetter(value = "from", nulls = Nulls.SKIP) - public _FinalStage from(Optional from) { - this.from = from; - return this; - } - - @java.lang.Override - public _FinalStage cc(String cc) { - this.cc = Optional.of(cc); - return this; - } - - @java.lang.Override - @JsonSetter(value = "cc", nulls = Nulls.SKIP) - public _FinalStage cc(Optional cc) { - this.cc = cc; - return this; - } - - @java.lang.Override - public _FinalStage brand(Brand brand) { - this.brand = Optional.of(brand); - return this; - } - - @java.lang.Override - @JsonSetter(value = "brand", nulls = Nulls.SKIP) - public _FinalStage brand(Optional brand) { - this.brand = brand; - return this; - } - - @java.lang.Override - public _FinalStage bcc(String bcc) { - this.bcc = Optional.of(bcc); - return this; - } - - @java.lang.Override - @JsonSetter(value = "bcc", nulls = Nulls.SKIP) - public _FinalStage bcc(Optional bcc) { - this.bcc = bcc; - return this; - } - - @java.lang.Override - public _FinalStage attachments(List> attachments) { - this.attachments = Optional.of(attachments); - return this; - } - - @java.lang.Override - @JsonSetter(value = "attachments", nulls = Nulls.SKIP) - public _FinalStage attachments(Optional>> attachments) { - this.attachments = attachments; - return this; - } - - @java.lang.Override - public MessageChannelEmailOverride build() { - return new MessageChannelEmailOverride( - attachments, bcc, brand, cc, from, html, replyTo, subject, text, tracking, additionalProperties); - } - } -} diff --git a/src/main/java/com/courier/api/resources/send/types/Override.java b/src/main/java/com/courier/api/resources/send/types/Override.java deleted file mode 100644 index b99dadd..0000000 --- a/src/main/java/com/courier/api/resources/send/types/Override.java +++ /dev/null @@ -1,24 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ -package com.courier.api.resources.send.types; - -import com.fasterxml.jackson.annotation.JsonValue; - -public enum Override { - MESSAGE_CHANNEL_EMAIL_OVERRIDE("MessageChannelEmailOverride"), - - MESSAGE_CHANNEL_PUSH_OVERRIDE("MessageChannelPushOverride"); - - private final String value; - - Override(String value) { - this.value = value; - } - - @JsonValue - @java.lang.Override - public String toString() { - return this.value; - } -}