From 9bee63957abaaecb564ad7406e3286cb33b3118f Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Mon, 9 Nov 2026 08:19:28 -0800 Subject: [PATCH] feat: Add verification method field to BoxSign Signer schema (box/box-openapi#626) --- .codegen.json | 2 +- .../SignRequestCreateSigner.java | 47 ++++++- .../signrequestsigner/SignRequestSigner.java | 36 ++++++ .../SignRequestSignerVerificationMethod.java | 106 ++++++++++++++++ ...RequestSignerVerificationMethodCacPiv.java | 95 ++++++++++++++ ...gnerVerificationMethodCacPivTypeField.java | 64 ++++++++++ ...nRequestSignerVerificationMethodLogin.java | 96 ++++++++++++++ ...ignerVerificationMethodLoginTypeField.java | 64 ++++++++++ ...questSignerVerificationMethodPhoneSms.java | 119 ++++++++++++++++++ ...erVerificationMethodPhoneSmsTypeField.java | 64 ++++++++++ .../templatesigner/TemplateSigner.java | 45 ++++++- .../TemplateSignerVerificationMethod.java | 103 +++++++++++++++ ...emplateSignerVerificationMethodCacPiv.java | 94 ++++++++++++++ ...gnerVerificationMethodCacPivTypeField.java | 64 ++++++++++ ...TemplateSignerVerificationMethodLogin.java | 96 ++++++++++++++ ...ignerVerificationMethodLoginTypeField.java | 64 ++++++++++ ...plateSignerVerificationMethodPhoneSms.java | 95 ++++++++++++++ ...erVerificationMethodPhoneSmsTypeField.java | 64 ++++++++++ 18 files changed, 1313 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethod/SignRequestSignerVerificationMethod.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodcacpiv/SignRequestSignerVerificationMethodCacPiv.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodcacpiv/SignRequestSignerVerificationMethodCacPivTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodlogin/SignRequestSignerVerificationMethodLogin.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodlogin/SignRequestSignerVerificationMethodLoginTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodphonesms/SignRequestSignerVerificationMethodPhoneSms.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodphonesms/SignRequestSignerVerificationMethodPhoneSmsTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethod/TemplateSignerVerificationMethod.java create mode 100644 src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodcacpiv/TemplateSignerVerificationMethodCacPiv.java create mode 100644 src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodcacpiv/TemplateSignerVerificationMethodCacPivTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodlogin/TemplateSignerVerificationMethodLogin.java create mode 100644 src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodlogin/TemplateSignerVerificationMethodLoginTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodphonesms/TemplateSignerVerificationMethodPhoneSms.java create mode 100644 src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodphonesms/TemplateSignerVerificationMethodPhoneSmsTypeField.java diff --git a/.codegen.json b/.codegen.json index 89e94ac43..88070dcc4 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "0068c55", "specHash": "74452eb", "version": "5.19.0" } +{ "engineHash": "0068c55", "specHash": "33e4656", "version": "5.19.0" } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSigner.java b/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSigner.java index 382576808..4cb3a2869 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSigner.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSigner.java @@ -3,6 +3,10 @@ import com.box.sdkgen.internal.Nullable; import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.signrequestsignerverificationmethod.SignRequestSignerVerificationMethod; +import com.box.sdkgen.schemas.signrequestsignerverificationmethodcacpiv.SignRequestSignerVerificationMethodCacPiv; +import com.box.sdkgen.schemas.signrequestsignerverificationmethodlogin.SignRequestSignerVerificationMethodLogin; +import com.box.sdkgen.schemas.signrequestsignerverificationmethodphonesms.SignRequestSignerVerificationMethodPhoneSms; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -117,6 +121,10 @@ public class SignRequestCreateSigner extends SerializableObject { */ @Nullable protected String language; + /** The verification method for the signer. */ + @JsonProperty("verification_method") + protected SignRequestSignerVerificationMethod verificationMethod; + public SignRequestCreateSigner() { super(); } @@ -136,6 +144,7 @@ protected SignRequestCreateSigner(Builder builder) { this.signerGroupId = builder.signerGroupId; this.suppressNotifications = builder.suppressNotifications; this.language = builder.language; + this.verificationMethod = builder.verificationMethod; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -191,6 +200,10 @@ public String getLanguage() { return language; } + public SignRequestSignerVerificationMethod getVerificationMethod() { + return verificationMethod; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -212,7 +225,8 @@ public boolean equals(Object o) { && Objects.equals(password, casted.password) && Objects.equals(signerGroupId, casted.signerGroupId) && Objects.equals(suppressNotifications, casted.suppressNotifications) - && Objects.equals(language, casted.language); + && Objects.equals(language, casted.language) + && Objects.equals(verificationMethod, casted.verificationMethod); } @Override @@ -230,7 +244,8 @@ public int hashCode() { password, signerGroupId, suppressNotifications, - language); + language, + verificationMethod); } @Override @@ -287,6 +302,10 @@ public String toString() { + "language='" + language + '\'' + + ", " + + "verificationMethod='" + + verificationMethod + + '\'' + "}"; } @@ -318,6 +337,8 @@ public static class Builder extends NullableFieldTracker { protected String language; + protected SignRequestSignerVerificationMethod verificationMethod; + public Builder email(String email) { this.email = email; this.markNullableFieldAsSet("email"); @@ -398,6 +419,28 @@ public Builder language(String language) { return this; } + public Builder verificationMethod(SignRequestSignerVerificationMethodLogin verificationMethod) { + this.verificationMethod = new SignRequestSignerVerificationMethod(verificationMethod); + return this; + } + + public Builder verificationMethod( + SignRequestSignerVerificationMethodPhoneSms verificationMethod) { + this.verificationMethod = new SignRequestSignerVerificationMethod(verificationMethod); + return this; + } + + public Builder verificationMethod( + SignRequestSignerVerificationMethodCacPiv verificationMethod) { + this.verificationMethod = new SignRequestSignerVerificationMethod(verificationMethod); + return this; + } + + public Builder verificationMethod(SignRequestSignerVerificationMethod verificationMethod) { + this.verificationMethod = verificationMethod; + return this; + } + public SignRequestCreateSigner build() { return new SignRequestCreateSigner(this); } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java index 546e7954a..58fbb8f1d 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java @@ -5,6 +5,10 @@ import com.box.sdkgen.schemas.signrequestcreatesigner.SignRequestCreateSignerRoleField; import com.box.sdkgen.schemas.signrequestsignerattachment.SignRequestSignerAttachment; import com.box.sdkgen.schemas.signrequestsignerinput.SignRequestSignerInput; +import com.box.sdkgen.schemas.signrequestsignerverificationmethod.SignRequestSignerVerificationMethod; +import com.box.sdkgen.schemas.signrequestsignerverificationmethodcacpiv.SignRequestSignerVerificationMethodCacPiv; +import com.box.sdkgen.schemas.signrequestsignerverificationmethodlogin.SignRequestSignerVerificationMethodLogin; +import com.box.sdkgen.schemas.signrequestsignerverificationmethodphonesms.SignRequestSignerVerificationMethodPhoneSms; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -104,6 +108,7 @@ public boolean equals(Object o) { && Objects.equals(signerGroupId, casted.signerGroupId) && Objects.equals(suppressNotifications, casted.suppressNotifications) && Objects.equals(language, casted.language) + && Objects.equals(verificationMethod, casted.verificationMethod) && Objects.equals(hasViewedDocument, casted.hasViewedDocument) && Objects.equals(signerDecision, casted.signerDecision) && Objects.equals(inputs, casted.inputs) @@ -128,6 +133,7 @@ public int hashCode() { signerGroupId, suppressNotifications, language, + verificationMethod, hasViewedDocument, signerDecision, inputs, @@ -191,6 +197,10 @@ public String toString() { + language + '\'' + ", " + + "verificationMethod='" + + verificationMethod + + '\'' + + ", " + "hasViewedDocument='" + hasViewedDocument + '\'' @@ -359,6 +369,32 @@ public Builder language(String language) { return this; } + @Override + public Builder verificationMethod(SignRequestSignerVerificationMethodLogin verificationMethod) { + this.verificationMethod = new SignRequestSignerVerificationMethod(verificationMethod); + return this; + } + + @Override + public Builder verificationMethod( + SignRequestSignerVerificationMethodPhoneSms verificationMethod) { + this.verificationMethod = new SignRequestSignerVerificationMethod(verificationMethod); + return this; + } + + @Override + public Builder verificationMethod( + SignRequestSignerVerificationMethodCacPiv verificationMethod) { + this.verificationMethod = new SignRequestSignerVerificationMethod(verificationMethod); + return this; + } + + @Override + public Builder verificationMethod(SignRequestSignerVerificationMethod verificationMethod) { + this.verificationMethod = verificationMethod; + return this; + } + public SignRequestSigner build() { return new SignRequestSigner(this); } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethod/SignRequestSignerVerificationMethod.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethod/SignRequestSignerVerificationMethod.java new file mode 100644 index 000000000..42135f147 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethod/SignRequestSignerVerificationMethod.java @@ -0,0 +1,106 @@ +package com.box.sdkgen.schemas.signrequestsignerverificationmethod; + +import com.box.sdkgen.internal.OneOfThree; +import com.box.sdkgen.schemas.signrequestsignerverificationmethodcacpiv.SignRequestSignerVerificationMethodCacPiv; +import com.box.sdkgen.schemas.signrequestsignerverificationmethodlogin.SignRequestSignerVerificationMethodLogin; +import com.box.sdkgen.schemas.signrequestsignerverificationmethodphonesms.SignRequestSignerVerificationMethodPhoneSms; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = + SignRequestSignerVerificationMethod.SignRequestSignerVerificationMethodDeserializer.class) +@JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) +public class SignRequestSignerVerificationMethod + extends OneOfThree< + SignRequestSignerVerificationMethodLogin, + SignRequestSignerVerificationMethodPhoneSms, + SignRequestSignerVerificationMethodCacPiv> { + + protected final String type; + + public SignRequestSignerVerificationMethod( + SignRequestSignerVerificationMethodLogin signRequestSignerVerificationMethodLogin) { + super(signRequestSignerVerificationMethodLogin, null, null); + this.type = EnumWrapper.convertToString(signRequestSignerVerificationMethodLogin.getType()); + } + + public SignRequestSignerVerificationMethod( + SignRequestSignerVerificationMethodPhoneSms signRequestSignerVerificationMethodPhoneSms) { + super(null, signRequestSignerVerificationMethodPhoneSms, null); + this.type = EnumWrapper.convertToString(signRequestSignerVerificationMethodPhoneSms.getType()); + } + + public SignRequestSignerVerificationMethod( + SignRequestSignerVerificationMethodCacPiv signRequestSignerVerificationMethodCacPiv) { + super(null, null, signRequestSignerVerificationMethodCacPiv); + this.type = EnumWrapper.convertToString(signRequestSignerVerificationMethodCacPiv.getType()); + } + + public boolean isSignRequestSignerVerificationMethodLogin() { + return value0 != null; + } + + public SignRequestSignerVerificationMethodLogin getSignRequestSignerVerificationMethodLogin() { + return value0; + } + + public boolean isSignRequestSignerVerificationMethodPhoneSms() { + return value1 != null; + } + + public SignRequestSignerVerificationMethodPhoneSms + getSignRequestSignerVerificationMethodPhoneSms() { + return value1; + } + + public boolean isSignRequestSignerVerificationMethodCacPiv() { + return value2 != null; + } + + public SignRequestSignerVerificationMethodCacPiv getSignRequestSignerVerificationMethodCacPiv() { + return value2; + } + + public String getType() { + return type; + } + + static class SignRequestSignerVerificationMethodDeserializer + extends JsonDeserializer { + + public SignRequestSignerVerificationMethodDeserializer() { + super(); + } + + @Override + public SignRequestSignerVerificationMethod deserialize( + JsonParser jp, DeserializationContext ctxt) throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "login": + return new SignRequestSignerVerificationMethod( + JsonManager.deserialize(node, SignRequestSignerVerificationMethodLogin.class)); + case "phone": + return new SignRequestSignerVerificationMethod( + JsonManager.deserialize(node, SignRequestSignerVerificationMethodPhoneSms.class)); + case "cac_piv": + return new SignRequestSignerVerificationMethod( + JsonManager.deserialize(node, SignRequestSignerVerificationMethodCacPiv.class)); + } + } + throw new JsonMappingException( + jp, "Unable to deserialize SignRequestSignerVerificationMethod"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodcacpiv/SignRequestSignerVerificationMethodCacPiv.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodcacpiv/SignRequestSignerVerificationMethodCacPiv.java new file mode 100644 index 000000000..d4d429161 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodcacpiv/SignRequestSignerVerificationMethodCacPiv.java @@ -0,0 +1,95 @@ +package com.box.sdkgen.schemas.signrequestsignerverificationmethodcacpiv; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * The verification method to be used when user has to verify themselves using a CAC/PIV smart-card. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerVerificationMethodCacPiv extends SerializableObject { + + /** The type of verification method. */ + @JsonDeserialize( + using = + SignRequestSignerVerificationMethodCacPivTypeField + .SignRequestSignerVerificationMethodCacPivTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerVerificationMethodCacPivTypeField + .SignRequestSignerVerificationMethodCacPivTypeFieldSerializer.class) + protected EnumWrapper type; + + public SignRequestSignerVerificationMethodCacPiv() { + super(); + this.type = + new EnumWrapper( + SignRequestSignerVerificationMethodCacPivTypeField.CAC_PIV); + } + + protected SignRequestSignerVerificationMethodCacPiv(Builder builder) { + super(); + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerVerificationMethodCacPiv casted = + (SignRequestSignerVerificationMethodCacPiv) o; + return Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(type); + } + + @Override + public String toString() { + return "SignRequestSignerVerificationMethodCacPiv{" + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + public Builder() { + super(); + } + + public Builder type(SignRequestSignerVerificationMethodCacPivTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public SignRequestSignerVerificationMethodCacPiv build() { + if (this.type == null) { + this.type = + new EnumWrapper( + SignRequestSignerVerificationMethodCacPivTypeField.CAC_PIV); + } + return new SignRequestSignerVerificationMethodCacPiv(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodcacpiv/SignRequestSignerVerificationMethodCacPivTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodcacpiv/SignRequestSignerVerificationMethodCacPivTypeField.java new file mode 100644 index 000000000..f766fc5c6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodcacpiv/SignRequestSignerVerificationMethodCacPivTypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.signrequestsignerverificationmethodcacpiv; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestSignerVerificationMethodCacPivTypeField implements Valuable { + CAC_PIV("cac_piv"); + + private final String value; + + SignRequestSignerVerificationMethodCacPivTypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class SignRequestSignerVerificationMethodCacPivTypeFieldDeserializer + extends JsonDeserializer> { + + public SignRequestSignerVerificationMethodCacPivTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerVerificationMethodCacPivTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignRequestSignerVerificationMethodCacPivTypeFieldSerializer + extends JsonSerializer> { + + public SignRequestSignerVerificationMethodCacPivTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodlogin/SignRequestSignerVerificationMethodLogin.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodlogin/SignRequestSignerVerificationMethodLogin.java new file mode 100644 index 000000000..24636661f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodlogin/SignRequestSignerVerificationMethodLogin.java @@ -0,0 +1,96 @@ +package com.box.sdkgen.schemas.signrequestsignerverificationmethodlogin; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * When used as a verification method the signer will need to log in to a Box account before signing + * the request. If the signer does not have an existing account, they will have the option to create + * a free Box account. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerVerificationMethodLogin extends SerializableObject { + + /** The type of verification method. */ + @JsonDeserialize( + using = + SignRequestSignerVerificationMethodLoginTypeField + .SignRequestSignerVerificationMethodLoginTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerVerificationMethodLoginTypeField + .SignRequestSignerVerificationMethodLoginTypeFieldSerializer.class) + protected EnumWrapper type; + + public SignRequestSignerVerificationMethodLogin() { + super(); + this.type = + new EnumWrapper( + SignRequestSignerVerificationMethodLoginTypeField.LOGIN); + } + + protected SignRequestSignerVerificationMethodLogin(Builder builder) { + super(); + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerVerificationMethodLogin casted = (SignRequestSignerVerificationMethodLogin) o; + return Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(type); + } + + @Override + public String toString() { + return "SignRequestSignerVerificationMethodLogin{" + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + public Builder() { + super(); + } + + public Builder type(SignRequestSignerVerificationMethodLoginTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public SignRequestSignerVerificationMethodLogin build() { + if (this.type == null) { + this.type = + new EnumWrapper( + SignRequestSignerVerificationMethodLoginTypeField.LOGIN); + } + return new SignRequestSignerVerificationMethodLogin(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodlogin/SignRequestSignerVerificationMethodLoginTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodlogin/SignRequestSignerVerificationMethodLoginTypeField.java new file mode 100644 index 000000000..6cbaf3f07 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodlogin/SignRequestSignerVerificationMethodLoginTypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.signrequestsignerverificationmethodlogin; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestSignerVerificationMethodLoginTypeField implements Valuable { + LOGIN("login"); + + private final String value; + + SignRequestSignerVerificationMethodLoginTypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class SignRequestSignerVerificationMethodLoginTypeFieldDeserializer + extends JsonDeserializer> { + + public SignRequestSignerVerificationMethodLoginTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerVerificationMethodLoginTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignRequestSignerVerificationMethodLoginTypeFieldSerializer + extends JsonSerializer> { + + public SignRequestSignerVerificationMethodLoginTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodphonesms/SignRequestSignerVerificationMethodPhoneSms.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodphonesms/SignRequestSignerVerificationMethodPhoneSms.java new file mode 100644 index 000000000..c7c5faef7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodphonesms/SignRequestSignerVerificationMethodPhoneSms.java @@ -0,0 +1,119 @@ +package com.box.sdkgen.schemas.signrequestsignerverificationmethodphonesms; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * When used as a verification method, prior to signing the document, the signer will have to verify + * themselves using two-factor authentication by receiving an SMS message on their phone. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerVerificationMethodPhoneSms extends SerializableObject { + + /** The type of verification method. */ + @JsonDeserialize( + using = + SignRequestSignerVerificationMethodPhoneSmsTypeField + .SignRequestSignerVerificationMethodPhoneSmsTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerVerificationMethodPhoneSmsTypeField + .SignRequestSignerVerificationMethodPhoneSmsTypeFieldSerializer.class) + protected EnumWrapper type; + + /** The phone number to where the message will be sent. */ + @JsonProperty("phone_number") + protected final String phoneNumber; + + public SignRequestSignerVerificationMethodPhoneSms( + @JsonProperty("phone_number") String phoneNumber) { + super(); + this.phoneNumber = phoneNumber; + this.type = + new EnumWrapper( + SignRequestSignerVerificationMethodPhoneSmsTypeField.PHONE); + } + + protected SignRequestSignerVerificationMethodPhoneSms(Builder builder) { + super(); + this.type = builder.type; + this.phoneNumber = builder.phoneNumber; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getPhoneNumber() { + return phoneNumber; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerVerificationMethodPhoneSms casted = + (SignRequestSignerVerificationMethodPhoneSms) o; + return Objects.equals(type, casted.type) && Objects.equals(phoneNumber, casted.phoneNumber); + } + + @Override + public int hashCode() { + return Objects.hash(type, phoneNumber); + } + + @Override + public String toString() { + return "SignRequestSignerVerificationMethodPhoneSms{" + + "type='" + + type + + '\'' + + ", " + + "phoneNumber='" + + phoneNumber + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String phoneNumber; + + public Builder(String phoneNumber) { + super(); + this.phoneNumber = phoneNumber; + } + + public Builder type(SignRequestSignerVerificationMethodPhoneSmsTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public SignRequestSignerVerificationMethodPhoneSms build() { + if (this.type == null) { + this.type = + new EnumWrapper( + SignRequestSignerVerificationMethodPhoneSmsTypeField.PHONE); + } + return new SignRequestSignerVerificationMethodPhoneSms(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodphonesms/SignRequestSignerVerificationMethodPhoneSmsTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodphonesms/SignRequestSignerVerificationMethodPhoneSmsTypeField.java new file mode 100644 index 000000000..03380f17b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerverificationmethodphonesms/SignRequestSignerVerificationMethodPhoneSmsTypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.signrequestsignerverificationmethodphonesms; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestSignerVerificationMethodPhoneSmsTypeField implements Valuable { + PHONE("phone"); + + private final String value; + + SignRequestSignerVerificationMethodPhoneSmsTypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class SignRequestSignerVerificationMethodPhoneSmsTypeFieldDeserializer + extends JsonDeserializer> { + + public SignRequestSignerVerificationMethodPhoneSmsTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerVerificationMethodPhoneSmsTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignRequestSignerVerificationMethodPhoneSmsTypeFieldSerializer + extends JsonSerializer> { + + public SignRequestSignerVerificationMethodPhoneSmsTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSigner.java b/src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSigner.java index d887e8281..ffd56ae9b 100644 --- a/src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSigner.java +++ b/src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSigner.java @@ -4,6 +4,10 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; import com.box.sdkgen.schemas.templatesignerinput.TemplateSignerInput; +import com.box.sdkgen.schemas.templatesignerverificationmethod.TemplateSignerVerificationMethod; +import com.box.sdkgen.schemas.templatesignerverificationmethodcacpiv.TemplateSignerVerificationMethodCacPiv; +import com.box.sdkgen.schemas.templatesignerverificationmethodlogin.TemplateSignerVerificationMethodLogin; +import com.box.sdkgen.schemas.templatesignerverificationmethodphonesms.TemplateSignerVerificationMethodPhoneSms; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -82,6 +86,10 @@ public class TemplateSigner extends SerializableObject { @Nullable protected Boolean loginRequired; + /** The verification method for the signer. */ + @JsonProperty("verification_method") + protected TemplateSignerVerificationMethod verificationMethod; + public TemplateSigner() { super(); } @@ -99,6 +107,7 @@ protected TemplateSigner(Builder builder) { this.isPasswordRequired = builder.isPasswordRequired; this.isPhoneNumberRequired = builder.isPhoneNumberRequired; this.loginRequired = builder.loginRequired; + this.verificationMethod = builder.verificationMethod; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -146,6 +155,10 @@ public Boolean getLoginRequired() { return loginRequired; } + public TemplateSignerVerificationMethod getVerificationMethod() { + return verificationMethod; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -165,7 +178,8 @@ public boolean equals(Object o) { && Objects.equals(publicId, casted.publicId) && Objects.equals(isPasswordRequired, casted.isPasswordRequired) && Objects.equals(isPhoneNumberRequired, casted.isPhoneNumberRequired) - && Objects.equals(loginRequired, casted.loginRequired); + && Objects.equals(loginRequired, casted.loginRequired) + && Objects.equals(verificationMethod, casted.verificationMethod); } @Override @@ -181,7 +195,8 @@ public int hashCode() { publicId, isPasswordRequired, isPhoneNumberRequired, - loginRequired); + loginRequired, + verificationMethod); } @Override @@ -230,6 +245,10 @@ public String toString() { + "loginRequired='" + loginRequired + '\'' + + ", " + + "verificationMethod='" + + verificationMethod + + '\'' + "}"; } @@ -257,6 +276,8 @@ public static class Builder extends NullableFieldTracker { protected Boolean loginRequired; + protected TemplateSignerVerificationMethod verificationMethod; + public Builder inputs(List inputs) { this.inputs = inputs; return this; @@ -323,6 +344,26 @@ public Builder loginRequired(Boolean loginRequired) { return this; } + public Builder verificationMethod(TemplateSignerVerificationMethodLogin verificationMethod) { + this.verificationMethod = new TemplateSignerVerificationMethod(verificationMethod); + return this; + } + + public Builder verificationMethod(TemplateSignerVerificationMethodPhoneSms verificationMethod) { + this.verificationMethod = new TemplateSignerVerificationMethod(verificationMethod); + return this; + } + + public Builder verificationMethod(TemplateSignerVerificationMethodCacPiv verificationMethod) { + this.verificationMethod = new TemplateSignerVerificationMethod(verificationMethod); + return this; + } + + public Builder verificationMethod(TemplateSignerVerificationMethod verificationMethod) { + this.verificationMethod = verificationMethod; + return this; + } + public TemplateSigner build() { return new TemplateSigner(this); } diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethod/TemplateSignerVerificationMethod.java b/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethod/TemplateSignerVerificationMethod.java new file mode 100644 index 000000000..87e98cd1a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethod/TemplateSignerVerificationMethod.java @@ -0,0 +1,103 @@ +package com.box.sdkgen.schemas.templatesignerverificationmethod; + +import com.box.sdkgen.internal.OneOfThree; +import com.box.sdkgen.schemas.templatesignerverificationmethodcacpiv.TemplateSignerVerificationMethodCacPiv; +import com.box.sdkgen.schemas.templatesignerverificationmethodlogin.TemplateSignerVerificationMethodLogin; +import com.box.sdkgen.schemas.templatesignerverificationmethodphonesms.TemplateSignerVerificationMethodPhoneSms; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = TemplateSignerVerificationMethod.TemplateSignerVerificationMethodDeserializer.class) +@JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) +public class TemplateSignerVerificationMethod + extends OneOfThree< + TemplateSignerVerificationMethodLogin, + TemplateSignerVerificationMethodPhoneSms, + TemplateSignerVerificationMethodCacPiv> { + + protected final String type; + + public TemplateSignerVerificationMethod( + TemplateSignerVerificationMethodLogin templateSignerVerificationMethodLogin) { + super(templateSignerVerificationMethodLogin, null, null); + this.type = EnumWrapper.convertToString(templateSignerVerificationMethodLogin.getType()); + } + + public TemplateSignerVerificationMethod( + TemplateSignerVerificationMethodPhoneSms templateSignerVerificationMethodPhoneSms) { + super(null, templateSignerVerificationMethodPhoneSms, null); + this.type = EnumWrapper.convertToString(templateSignerVerificationMethodPhoneSms.getType()); + } + + public TemplateSignerVerificationMethod( + TemplateSignerVerificationMethodCacPiv templateSignerVerificationMethodCacPiv) { + super(null, null, templateSignerVerificationMethodCacPiv); + this.type = EnumWrapper.convertToString(templateSignerVerificationMethodCacPiv.getType()); + } + + public boolean isTemplateSignerVerificationMethodLogin() { + return value0 != null; + } + + public TemplateSignerVerificationMethodLogin getTemplateSignerVerificationMethodLogin() { + return value0; + } + + public boolean isTemplateSignerVerificationMethodPhoneSms() { + return value1 != null; + } + + public TemplateSignerVerificationMethodPhoneSms getTemplateSignerVerificationMethodPhoneSms() { + return value1; + } + + public boolean isTemplateSignerVerificationMethodCacPiv() { + return value2 != null; + } + + public TemplateSignerVerificationMethodCacPiv getTemplateSignerVerificationMethodCacPiv() { + return value2; + } + + public String getType() { + return type; + } + + static class TemplateSignerVerificationMethodDeserializer + extends JsonDeserializer { + + public TemplateSignerVerificationMethodDeserializer() { + super(); + } + + @Override + public TemplateSignerVerificationMethod deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "login": + return new TemplateSignerVerificationMethod( + JsonManager.deserialize(node, TemplateSignerVerificationMethodLogin.class)); + case "phone": + return new TemplateSignerVerificationMethod( + JsonManager.deserialize(node, TemplateSignerVerificationMethodPhoneSms.class)); + case "cac_piv": + return new TemplateSignerVerificationMethod( + JsonManager.deserialize(node, TemplateSignerVerificationMethodCacPiv.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize TemplateSignerVerificationMethod"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodcacpiv/TemplateSignerVerificationMethodCacPiv.java b/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodcacpiv/TemplateSignerVerificationMethodCacPiv.java new file mode 100644 index 000000000..e15639fe2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodcacpiv/TemplateSignerVerificationMethodCacPiv.java @@ -0,0 +1,94 @@ +package com.box.sdkgen.schemas.templatesignerverificationmethodcacpiv; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * The verification method to be used when user has to verify themselves using a CAC/PIV smart-card. + */ +@JsonFilter("nullablePropertyFilter") +public class TemplateSignerVerificationMethodCacPiv extends SerializableObject { + + /** The type of verification method. */ + @JsonDeserialize( + using = + TemplateSignerVerificationMethodCacPivTypeField + .TemplateSignerVerificationMethodCacPivTypeFieldDeserializer.class) + @JsonSerialize( + using = + TemplateSignerVerificationMethodCacPivTypeField + .TemplateSignerVerificationMethodCacPivTypeFieldSerializer.class) + protected EnumWrapper type; + + public TemplateSignerVerificationMethodCacPiv() { + super(); + this.type = + new EnumWrapper( + TemplateSignerVerificationMethodCacPivTypeField.CAC_PIV); + } + + protected TemplateSignerVerificationMethodCacPiv(Builder builder) { + super(); + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TemplateSignerVerificationMethodCacPiv casted = (TemplateSignerVerificationMethodCacPiv) o; + return Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(type); + } + + @Override + public String toString() { + return "TemplateSignerVerificationMethodCacPiv{" + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + public Builder() { + super(); + } + + public Builder type(TemplateSignerVerificationMethodCacPivTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public TemplateSignerVerificationMethodCacPiv build() { + if (this.type == null) { + this.type = + new EnumWrapper( + TemplateSignerVerificationMethodCacPivTypeField.CAC_PIV); + } + return new TemplateSignerVerificationMethodCacPiv(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodcacpiv/TemplateSignerVerificationMethodCacPivTypeField.java b/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodcacpiv/TemplateSignerVerificationMethodCacPivTypeField.java new file mode 100644 index 000000000..11196381e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodcacpiv/TemplateSignerVerificationMethodCacPivTypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.templatesignerverificationmethodcacpiv; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TemplateSignerVerificationMethodCacPivTypeField implements Valuable { + CAC_PIV("cac_piv"); + + private final String value; + + TemplateSignerVerificationMethodCacPivTypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class TemplateSignerVerificationMethodCacPivTypeFieldDeserializer + extends JsonDeserializer> { + + public TemplateSignerVerificationMethodCacPivTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TemplateSignerVerificationMethodCacPivTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TemplateSignerVerificationMethodCacPivTypeFieldSerializer + extends JsonSerializer> { + + public TemplateSignerVerificationMethodCacPivTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodlogin/TemplateSignerVerificationMethodLogin.java b/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodlogin/TemplateSignerVerificationMethodLogin.java new file mode 100644 index 000000000..008e808a3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodlogin/TemplateSignerVerificationMethodLogin.java @@ -0,0 +1,96 @@ +package com.box.sdkgen.schemas.templatesignerverificationmethodlogin; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * When used as a verification method the signer will need to log in to a Box account before signing + * the request. If the signer does not have an existing account, they will have the option to create + * a free Box account. + */ +@JsonFilter("nullablePropertyFilter") +public class TemplateSignerVerificationMethodLogin extends SerializableObject { + + /** The type of verification method. */ + @JsonDeserialize( + using = + TemplateSignerVerificationMethodLoginTypeField + .TemplateSignerVerificationMethodLoginTypeFieldDeserializer.class) + @JsonSerialize( + using = + TemplateSignerVerificationMethodLoginTypeField + .TemplateSignerVerificationMethodLoginTypeFieldSerializer.class) + protected EnumWrapper type; + + public TemplateSignerVerificationMethodLogin() { + super(); + this.type = + new EnumWrapper( + TemplateSignerVerificationMethodLoginTypeField.LOGIN); + } + + protected TemplateSignerVerificationMethodLogin(Builder builder) { + super(); + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TemplateSignerVerificationMethodLogin casted = (TemplateSignerVerificationMethodLogin) o; + return Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(type); + } + + @Override + public String toString() { + return "TemplateSignerVerificationMethodLogin{" + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + public Builder() { + super(); + } + + public Builder type(TemplateSignerVerificationMethodLoginTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public TemplateSignerVerificationMethodLogin build() { + if (this.type == null) { + this.type = + new EnumWrapper( + TemplateSignerVerificationMethodLoginTypeField.LOGIN); + } + return new TemplateSignerVerificationMethodLogin(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodlogin/TemplateSignerVerificationMethodLoginTypeField.java b/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodlogin/TemplateSignerVerificationMethodLoginTypeField.java new file mode 100644 index 000000000..40761b7c5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodlogin/TemplateSignerVerificationMethodLoginTypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.templatesignerverificationmethodlogin; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TemplateSignerVerificationMethodLoginTypeField implements Valuable { + LOGIN("login"); + + private final String value; + + TemplateSignerVerificationMethodLoginTypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class TemplateSignerVerificationMethodLoginTypeFieldDeserializer + extends JsonDeserializer> { + + public TemplateSignerVerificationMethodLoginTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TemplateSignerVerificationMethodLoginTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TemplateSignerVerificationMethodLoginTypeFieldSerializer + extends JsonSerializer> { + + public TemplateSignerVerificationMethodLoginTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodphonesms/TemplateSignerVerificationMethodPhoneSms.java b/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodphonesms/TemplateSignerVerificationMethodPhoneSms.java new file mode 100644 index 000000000..afaf87a7c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodphonesms/TemplateSignerVerificationMethodPhoneSms.java @@ -0,0 +1,95 @@ +package com.box.sdkgen.schemas.templatesignerverificationmethodphonesms; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * When used as a verification method, prior to signing the document, the signer will have to verify + * themselves using two-factor authentication by receiving an SMS message on their phone. + */ +@JsonFilter("nullablePropertyFilter") +public class TemplateSignerVerificationMethodPhoneSms extends SerializableObject { + + /** The type of verification method. */ + @JsonDeserialize( + using = + TemplateSignerVerificationMethodPhoneSmsTypeField + .TemplateSignerVerificationMethodPhoneSmsTypeFieldDeserializer.class) + @JsonSerialize( + using = + TemplateSignerVerificationMethodPhoneSmsTypeField + .TemplateSignerVerificationMethodPhoneSmsTypeFieldSerializer.class) + protected EnumWrapper type; + + public TemplateSignerVerificationMethodPhoneSms() { + super(); + this.type = + new EnumWrapper( + TemplateSignerVerificationMethodPhoneSmsTypeField.PHONE); + } + + protected TemplateSignerVerificationMethodPhoneSms(Builder builder) { + super(); + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TemplateSignerVerificationMethodPhoneSms casted = (TemplateSignerVerificationMethodPhoneSms) o; + return Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(type); + } + + @Override + public String toString() { + return "TemplateSignerVerificationMethodPhoneSms{" + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + public Builder() { + super(); + } + + public Builder type(TemplateSignerVerificationMethodPhoneSmsTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public TemplateSignerVerificationMethodPhoneSms build() { + if (this.type == null) { + this.type = + new EnumWrapper( + TemplateSignerVerificationMethodPhoneSmsTypeField.PHONE); + } + return new TemplateSignerVerificationMethodPhoneSms(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodphonesms/TemplateSignerVerificationMethodPhoneSmsTypeField.java b/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodphonesms/TemplateSignerVerificationMethodPhoneSmsTypeField.java new file mode 100644 index 000000000..8a4565277 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerverificationmethodphonesms/TemplateSignerVerificationMethodPhoneSmsTypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.templatesignerverificationmethodphonesms; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TemplateSignerVerificationMethodPhoneSmsTypeField implements Valuable { + PHONE("phone"); + + private final String value; + + TemplateSignerVerificationMethodPhoneSmsTypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class TemplateSignerVerificationMethodPhoneSmsTypeFieldDeserializer + extends JsonDeserializer> { + + public TemplateSignerVerificationMethodPhoneSmsTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TemplateSignerVerificationMethodPhoneSmsTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TemplateSignerVerificationMethodPhoneSmsTypeFieldSerializer + extends JsonSerializer> { + + public TemplateSignerVerificationMethodPhoneSmsTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +}