From 81103f17575ba69a890400f25ce941ce0a430183 Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Wed, 10 Dec 2025 06:41:10 -0800 Subject: [PATCH 1/8] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index df51324a7..d1beb0710 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "3d9d391", "specHash": "31c41d5", "version": "5.2.0" } +{ "engineHash": "88d7a7e", "specHash": "31c41d5", "version": "5.2.0" } From 14244b724b77f5c0b1b292af0c66007e511f9864 Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Thu, 11 Dec 2025 03:09:50 -0800 Subject: [PATCH 2/8] fix: fix RetryAfter function when there's no Retry-After header (box/box-codegen#903) --- .codegen.json | 2 +- .../com/box/sdkgen/networking/retries/BoxRetryStrategy.java | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.codegen.json b/.codegen.json index d1beb0710..ac8f8de3b 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "88d7a7e", "specHash": "31c41d5", "version": "5.2.0" } +{ "engineHash": "f97463c", "specHash": "31c41d5", "version": "5.2.0" } diff --git a/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java b/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java index dcba2d307..8ee947fe2 100644 --- a/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java +++ b/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java @@ -67,7 +67,10 @@ public boolean shouldRetry( @Override public double retryAfter( FetchOptions fetchOptions, FetchResponse fetchResponse, int attemptNumber) { - String retryAfterHeader = fetchResponse.getHeaders().get("Retry-After"); + String retryAfterHeader = + (fetchResponse.getHeaders().containsKey("Retry-After") + ? fetchResponse.getHeaders().get("Retry-After") + : null); if (!(retryAfterHeader == null)) { return Double.parseDouble(retryAfterHeader); } From 046758bc9217920e3c80a09aeb620b4c3c6d4920 Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Fri, 12 Dec 2025 03:45:01 -0800 Subject: [PATCH 3/8] feat: text input validation for Box Sign (box/box-openapi#568) --- .codegen.json | 2 +- .../SignRequestSignerInput.java | 104 ++++- ...ignRequestSignerInputCustomValidation.java | 152 +++++++ ...utCustomValidationValidationTypeField.java | 65 +++ ...nRequestSignerInputDateAsiaValidation.java | 95 ++++ ...DateAsiaValidationValidationTypeField.java | 65 +++ ...ignRequestSignerInputDateEuValidation.java | 94 ++++ ...utDateEuValidationValidationTypeField.java | 65 +++ ...gnRequestSignerInputDateIsoValidation.java | 95 ++++ ...tDateIsoValidationValidationTypeField.java | 65 +++ ...ignRequestSignerInputDateUsValidation.java | 94 ++++ ...utDateUsValidationValidationTypeField.java | 65 +++ ...SignRequestSignerInputEmailValidation.java | 102 +++++ ...putEmailValidationValidationTypeField.java | 64 +++ ...tSignerInputNumberWithCommaValidation.java | 101 +++++ ...ithCommaValidationValidationTypeField.java | 67 +++ ...SignerInputNumberWithPeriodValidation.java | 102 +++++ ...thPeriodValidationValidationTypeField.java | 69 +++ .../SignRequestSignerInputSsnValidation.java | 102 +++++ ...InputSsnValidationValidationTypeField.java | 63 +++ .../SignRequestSignerInputValidation.java | 421 ++++++++++++++++++ .../SignRequestSignerInputZip4Validation.java | 102 +++++ ...nputZip4ValidationValidationTypeField.java | 63 +++ .../SignRequestSignerInputZipValidation.java | 102 +++++ ...InputZipValidationValidationTypeField.java | 63 +++ .../TemplateSignerInput.java | 97 +++- 26 files changed, 2472 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputvalidation/SignRequestSignerInputValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4Validation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4ValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidationValidationTypeField.java diff --git a/.codegen.json b/.codegen.json index ac8f8de3b..77fcaa7aa 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "f97463c", "specHash": "31c41d5", "version": "5.2.0" } +{ "engineHash": "f97463c", "specHash": "b7abe0d", "version": "5.2.0" } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java index 88910bc27..9af6c3971 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java @@ -1,6 +1,18 @@ package com.box.sdkgen.schemas.signrequestsignerinput; import com.box.sdkgen.schemas.signrequestprefilltag.SignRequestPrefillTag; +import com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation.SignRequestSignerInputCustomValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateasiavalidation.SignRequestSignerInputDateAsiaValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateeuvalidation.SignRequestSignerInputDateEuValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateisovalidation.SignRequestSignerInputDateIsoValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateusvalidation.SignRequestSignerInputDateUsValidation; +import com.box.sdkgen.schemas.signrequestsignerinputemailvalidation.SignRequestSignerInputEmailValidation; +import com.box.sdkgen.schemas.signrequestsignerinputnumberwithcommavalidation.SignRequestSignerInputNumberWithCommaValidation; +import com.box.sdkgen.schemas.signrequestsignerinputnumberwithperiodvalidation.SignRequestSignerInputNumberWithPeriodValidation; +import com.box.sdkgen.schemas.signrequestsignerinputssnvalidation.SignRequestSignerInputSsnValidation; +import com.box.sdkgen.schemas.signrequestsignerinputvalidation.SignRequestSignerInputValidation; +import com.box.sdkgen.schemas.signrequestsignerinputzip4validation.SignRequestSignerInputZip4Validation; +import com.box.sdkgen.schemas.signrequestsignerinputzipvalidation.SignRequestSignerInputZipValidation; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -36,10 +48,16 @@ public class SignRequestSignerInput extends SignRequestPrefillTag { @JsonProperty("page_index") protected final long pageIndex; - /** Whether this input was defined as read-only(immutable by signers) or not. */ + /** Indicates whether this input is read-only (cannot be modified by signers). */ @JsonProperty("read_only") protected Boolean readOnly; + /** + * Specifies the formatting rules that signers must follow for text field inputs. If set, this + * validation is mandatory. + */ + protected SignRequestSignerInputValidation validation; + public SignRequestSignerInput(@JsonProperty("page_index") long pageIndex) { super(); this.pageIndex = pageIndex; @@ -51,6 +69,7 @@ protected SignRequestSignerInput(Builder builder) { this.contentType = builder.contentType; this.pageIndex = builder.pageIndex; this.readOnly = builder.readOnly; + this.validation = builder.validation; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -70,6 +89,10 @@ public Boolean getReadOnly() { return readOnly; } + public SignRequestSignerInputValidation getValidation() { + return validation; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -86,13 +109,22 @@ public boolean equals(Object o) { && Objects.equals(type, casted.type) && Objects.equals(contentType, casted.contentType) && Objects.equals(pageIndex, casted.pageIndex) - && Objects.equals(readOnly, casted.readOnly); + && Objects.equals(readOnly, casted.readOnly) + && Objects.equals(validation, casted.validation); } @Override public int hashCode() { return Objects.hash( - documentTagId, textValue, checkboxValue, dateValue, type, contentType, pageIndex, readOnly); + documentTagId, + textValue, + checkboxValue, + dateValue, + type, + contentType, + pageIndex, + readOnly, + validation); } @Override @@ -129,6 +161,10 @@ public String toString() { + "readOnly='" + readOnly + '\'' + + ", " + + "validation='" + + validation + + '\'' + "}"; } @@ -142,6 +178,8 @@ public static class Builder extends SignRequestPrefillTag.Builder { protected Boolean readOnly; + protected SignRequestSignerInputValidation validation; + public Builder(long pageIndex) { super(); this.pageIndex = pageIndex; @@ -172,6 +210,66 @@ public Builder readOnly(Boolean readOnly) { return this; } + public Builder validation(SignRequestSignerInputEmailValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputCustomValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputZipValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputZip4Validation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputSsnValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputNumberWithPeriodValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputNumberWithCommaValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputDateIsoValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputDateUsValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputDateEuValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputDateAsiaValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputValidation validation) { + this.validation = validation; + return this; + } + @Override public Builder documentTagId(String documentTagId) { this.documentTagId = documentTagId; diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java new file mode 100644 index 000000000..031e6af69 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java @@ -0,0 +1,152 @@ +package com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation; + +import static com.box.sdkgen.internal.utils.UtilsManager.setOf; + +import com.box.sdkgen.internal.Nullable; +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; + +/** + * Specifies the custom validation rules for a text field input by the signer. If set, this + * validation is mandatory. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputCustomValidation extends SerializableObject { + + /** + * Defines the validation format for the text input as custom. A custom regular expression is used + * for validation. + */ + @JsonDeserialize( + using = + SignRequestSignerInputCustomValidationValidationTypeField + .SignRequestSignerInputCustomValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputCustomValidationValidationTypeField + .SignRequestSignerInputCustomValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper validationType; + + /** Regular expression used for validation. */ + @JsonProperty("custom_regex") + @Nullable + protected final String customRegex; + + /** Error message shown if input fails custom regular expression validation. */ + @JsonProperty("custom_error_message") + @Nullable + protected final String customErrorMessage; + + public SignRequestSignerInputCustomValidation( + @JsonProperty("custom_regex") String customRegex, + @JsonProperty("custom_error_message") String customErrorMessage) { + super(); + this.customRegex = customRegex; + this.customErrorMessage = customErrorMessage; + this.validationType = + new EnumWrapper( + SignRequestSignerInputCustomValidationValidationTypeField.CUSTOM); + markNullableFieldsAsSet(setOf("custom_regex", "custom_error_message")); + } + + protected SignRequestSignerInputCustomValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + this.customRegex = builder.customRegex; + this.customErrorMessage = builder.customErrorMessage; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper + getValidationType() { + return validationType; + } + + public String getCustomRegex() { + return customRegex; + } + + public String getCustomErrorMessage() { + return customErrorMessage; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputCustomValidation casted = (SignRequestSignerInputCustomValidation) o; + return Objects.equals(validationType, casted.validationType) + && Objects.equals(customRegex, casted.customRegex) + && Objects.equals(customErrorMessage, casted.customErrorMessage); + } + + @Override + public int hashCode() { + return Objects.hash(validationType, customRegex, customErrorMessage); + } + + @Override + public String toString() { + return "SignRequestSignerInputCustomValidation{" + + "validationType='" + + validationType + + '\'' + + ", " + + "customRegex='" + + customRegex + + '\'' + + ", " + + "customErrorMessage='" + + customErrorMessage + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper validationType; + + protected final String customRegex; + + protected final String customErrorMessage; + + public Builder(String customRegex, String customErrorMessage) { + super(); + this.customRegex = customRegex; + this.customErrorMessage = customErrorMessage; + this.validationType = + new EnumWrapper( + SignRequestSignerInputCustomValidationValidationTypeField.CUSTOM); + markNullableFieldsAsSet(setOf("custom_regex", "custom_error_message")); + } + + public Builder validationType( + SignRequestSignerInputCustomValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper( + validationType); + return this; + } + + public Builder validationType( + EnumWrapper validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputCustomValidation build() { + return new SignRequestSignerInputCustomValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidationValidationTypeField.java new file mode 100644 index 000000000..81d2c290b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidationValidationTypeField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +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 SignRequestSignerInputCustomValidationValidationTypeField implements Valuable { + CUSTOM("custom"); + + private final String value; + + SignRequestSignerInputCustomValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputCustomValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputCustomValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputCustomValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputCustomValidationValidationTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public SignRequestSignerInputCustomValidationValidationTypeFieldSerializer() { + 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/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidation.java new file mode 100644 index 000000000..efef8f489 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidation.java @@ -0,0 +1,95 @@ +package com.box.sdkgen.schemas.signrequestsignerinputdateasiavalidation; + +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; + +/** + * Specifies the date formatting rules used in Asia for a text field input by the signer. If set, + * this validation is mandatory. The date format follows `YYYY/MM/DD` pattern. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputDateAsiaValidation extends SerializableObject { + + /** Validates that the text input uses the Asian date format `YYYY/MM/DD`. */ + @JsonDeserialize( + using = + SignRequestSignerInputDateAsiaValidationValidationTypeField + .SignRequestSignerInputDateAsiaValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputDateAsiaValidationValidationTypeField + .SignRequestSignerInputDateAsiaValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper validationType; + + public SignRequestSignerInputDateAsiaValidation() { + super(); + } + + protected SignRequestSignerInputDateAsiaValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper + getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputDateAsiaValidation casted = (SignRequestSignerInputDateAsiaValidation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputDateAsiaValidation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper + validationType; + + public Builder validationType( + SignRequestSignerInputDateAsiaValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper( + validationType); + return this; + } + + public Builder validationType( + EnumWrapper validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputDateAsiaValidation build() { + return new SignRequestSignerInputDateAsiaValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidationValidationTypeField.java new file mode 100644 index 000000000..a6dd68a18 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidationValidationTypeField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.signrequestsignerinputdateasiavalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +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 SignRequestSignerInputDateAsiaValidationValidationTypeField implements Valuable { + DATE_ASIA("date_asia"); + + private final String value; + + SignRequestSignerInputDateAsiaValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputDateAsiaValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputDateAsiaValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputDateAsiaValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputDateAsiaValidationValidationTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public SignRequestSignerInputDateAsiaValidationValidationTypeFieldSerializer() { + 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/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidation.java new file mode 100644 index 000000000..d0d802f89 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidation.java @@ -0,0 +1,94 @@ +package com.box.sdkgen.schemas.signrequestsignerinputdateeuvalidation; + +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; + +/** + * Specifies the date formatting rules used in Europe for a text field input by the signer. If set, + * this validation is mandatory. The date format follows `DD/MM/YYYY` pattern. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputDateEuValidation extends SerializableObject { + + /** Validates that the text input uses the European date format `DD/MM/YYYY`. */ + @JsonDeserialize( + using = + SignRequestSignerInputDateEuValidationValidationTypeField + .SignRequestSignerInputDateEuValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputDateEuValidationValidationTypeField + .SignRequestSignerInputDateEuValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper validationType; + + public SignRequestSignerInputDateEuValidation() { + super(); + } + + protected SignRequestSignerInputDateEuValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper + getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputDateEuValidation casted = (SignRequestSignerInputDateEuValidation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputDateEuValidation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper validationType; + + public Builder validationType( + SignRequestSignerInputDateEuValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper( + validationType); + return this; + } + + public Builder validationType( + EnumWrapper validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputDateEuValidation build() { + return new SignRequestSignerInputDateEuValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidationValidationTypeField.java new file mode 100644 index 000000000..9c2f7cefd --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidationValidationTypeField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.signrequestsignerinputdateeuvalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +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 SignRequestSignerInputDateEuValidationValidationTypeField implements Valuable { + DATE_EU("date_eu"); + + private final String value; + + SignRequestSignerInputDateEuValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputDateEuValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputDateEuValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputDateEuValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputDateEuValidationValidationTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public SignRequestSignerInputDateEuValidationValidationTypeFieldSerializer() { + 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/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidation.java new file mode 100644 index 000000000..a25bc636f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidation.java @@ -0,0 +1,95 @@ +package com.box.sdkgen.schemas.signrequestsignerinputdateisovalidation; + +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; + +/** + * Specifies the ISO date formatting rules for a text field input by the signer. If set, this + * validation is mandatory. The date format follows `YYYY-MM-DD` pattern. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputDateIsoValidation extends SerializableObject { + + /** Validates that the text input uses the ISO date format `YYYY-MM-DD`. */ + @JsonDeserialize( + using = + SignRequestSignerInputDateIsoValidationValidationTypeField + .SignRequestSignerInputDateIsoValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputDateIsoValidationValidationTypeField + .SignRequestSignerInputDateIsoValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper validationType; + + public SignRequestSignerInputDateIsoValidation() { + super(); + } + + protected SignRequestSignerInputDateIsoValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper + getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputDateIsoValidation casted = (SignRequestSignerInputDateIsoValidation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputDateIsoValidation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper + validationType; + + public Builder validationType( + SignRequestSignerInputDateIsoValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper( + validationType); + return this; + } + + public Builder validationType( + EnumWrapper validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputDateIsoValidation build() { + return new SignRequestSignerInputDateIsoValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidationValidationTypeField.java new file mode 100644 index 000000000..6415ff565 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidationValidationTypeField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.signrequestsignerinputdateisovalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +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 SignRequestSignerInputDateIsoValidationValidationTypeField implements Valuable { + DATE_ISO("date_iso"); + + private final String value; + + SignRequestSignerInputDateIsoValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputDateIsoValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputDateIsoValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputDateIsoValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputDateIsoValidationValidationTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public SignRequestSignerInputDateIsoValidationValidationTypeFieldSerializer() { + 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/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidation.java new file mode 100644 index 000000000..6deef0992 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidation.java @@ -0,0 +1,94 @@ +package com.box.sdkgen.schemas.signrequestsignerinputdateusvalidation; + +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; + +/** + * Specifies the US date formatting rules for a text field input by the signer. If set, this + * validation is mandatory. The date format follows `MM/DD/YYYY` pattern. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputDateUsValidation extends SerializableObject { + + /** Validates that the text input uses the US date format `MM/DD/YYYY`. */ + @JsonDeserialize( + using = + SignRequestSignerInputDateUsValidationValidationTypeField + .SignRequestSignerInputDateUsValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputDateUsValidationValidationTypeField + .SignRequestSignerInputDateUsValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper validationType; + + public SignRequestSignerInputDateUsValidation() { + super(); + } + + protected SignRequestSignerInputDateUsValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper + getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputDateUsValidation casted = (SignRequestSignerInputDateUsValidation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputDateUsValidation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper validationType; + + public Builder validationType( + SignRequestSignerInputDateUsValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper( + validationType); + return this; + } + + public Builder validationType( + EnumWrapper validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputDateUsValidation build() { + return new SignRequestSignerInputDateUsValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidationValidationTypeField.java new file mode 100644 index 000000000..528b4ca77 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidationValidationTypeField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.signrequestsignerinputdateusvalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +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 SignRequestSignerInputDateUsValidationValidationTypeField implements Valuable { + DATE_US("date_us"); + + private final String value; + + SignRequestSignerInputDateUsValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputDateUsValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputDateUsValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputDateUsValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputDateUsValidationValidationTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public SignRequestSignerInputDateUsValidationValidationTypeFieldSerializer() { + 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/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidation.java new file mode 100644 index 000000000..f4f16f51e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidation.java @@ -0,0 +1,102 @@ +package com.box.sdkgen.schemas.signrequestsignerinputemailvalidation; + +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; + +/** + * Specifies the formatting rules that signers must follow for text field inputs. If set, this + * validation is mandatory. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputEmailValidation extends SerializableObject { + + /** Validates that the text input is an email address. */ + @JsonDeserialize( + using = + SignRequestSignerInputEmailValidationValidationTypeField + .SignRequestSignerInputEmailValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputEmailValidationValidationTypeField + .SignRequestSignerInputEmailValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper validationType; + + public SignRequestSignerInputEmailValidation() { + super(); + this.validationType = + new EnumWrapper( + SignRequestSignerInputEmailValidationValidationTypeField.EMAIL); + } + + protected SignRequestSignerInputEmailValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputEmailValidation casted = (SignRequestSignerInputEmailValidation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputEmailValidation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper validationType; + + public Builder() { + super(); + this.validationType = + new EnumWrapper( + SignRequestSignerInputEmailValidationValidationTypeField.EMAIL); + } + + public Builder validationType( + SignRequestSignerInputEmailValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper(validationType); + return this; + } + + public Builder validationType( + EnumWrapper validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputEmailValidation build() { + return new SignRequestSignerInputEmailValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidationValidationTypeField.java new file mode 100644 index 000000000..c2ca1b18e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidationValidationTypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.signrequestsignerinputemailvalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +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 SignRequestSignerInputEmailValidationValidationTypeField implements Valuable { + EMAIL("email"); + + private final String value; + + SignRequestSignerInputEmailValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputEmailValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputEmailValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputEmailValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputEmailValidationValidationTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public SignRequestSignerInputEmailValidationValidationTypeFieldSerializer() { + 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/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidation.java new file mode 100644 index 000000000..5b7474b78 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidation.java @@ -0,0 +1,101 @@ +package com.box.sdkgen.schemas.signrequestsignerinputnumberwithcommavalidation; + +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; + +/** + * Specifies the number with comma formatting rules for a text field input by the signer. If set, + * this validation is mandatory. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputNumberWithCommaValidation extends SerializableObject { + + /** + * Validates that the text input uses a number format with a comma as the decimal separator (for + * example, 1,23). + */ + @JsonDeserialize( + using = + SignRequestSignerInputNumberWithCommaValidationValidationTypeField + .SignRequestSignerInputNumberWithCommaValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputNumberWithCommaValidationValidationTypeField + .SignRequestSignerInputNumberWithCommaValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper + validationType; + + public SignRequestSignerInputNumberWithCommaValidation() { + super(); + } + + protected SignRequestSignerInputNumberWithCommaValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper + getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputNumberWithCommaValidation casted = + (SignRequestSignerInputNumberWithCommaValidation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputNumberWithCommaValidation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper + validationType; + + public Builder validationType( + SignRequestSignerInputNumberWithCommaValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper( + validationType); + return this; + } + + public Builder validationType( + EnumWrapper + validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputNumberWithCommaValidation build() { + return new SignRequestSignerInputNumberWithCommaValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidationValidationTypeField.java new file mode 100644 index 000000000..682d5028d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidationValidationTypeField.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.schemas.signrequestsignerinputnumberwithcommavalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +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 SignRequestSignerInputNumberWithCommaValidationValidationTypeField implements Valuable { + NUMBER_WITH_COMMA("number_with_comma"); + + private final String value; + + SignRequestSignerInputNumberWithCommaValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputNumberWithCommaValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputNumberWithCommaValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper + deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream( + SignRequestSignerInputNumberWithCommaValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper( + value)); + } + } + + public static class SignRequestSignerInputNumberWithCommaValidationValidationTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public SignRequestSignerInputNumberWithCommaValidationValidationTypeFieldSerializer() { + 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/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidation.java new file mode 100644 index 000000000..4fd228626 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidation.java @@ -0,0 +1,102 @@ +package com.box.sdkgen.schemas.signrequestsignerinputnumberwithperiodvalidation; + +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; + +/** + * Specifies the number with period formatting rules for a text field input by the signer. If set, + * this validation is mandatory. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputNumberWithPeriodValidation extends SerializableObject { + + /** + * Validates that the text input uses a number format with a period as the decimal separator (for + * example, 1.23). + */ + @JsonDeserialize( + using = + SignRequestSignerInputNumberWithPeriodValidationValidationTypeField + .SignRequestSignerInputNumberWithPeriodValidationValidationTypeFieldDeserializer + .class) + @JsonSerialize( + using = + SignRequestSignerInputNumberWithPeriodValidationValidationTypeField + .SignRequestSignerInputNumberWithPeriodValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper + validationType; + + public SignRequestSignerInputNumberWithPeriodValidation() { + super(); + } + + protected SignRequestSignerInputNumberWithPeriodValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper + getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputNumberWithPeriodValidation casted = + (SignRequestSignerInputNumberWithPeriodValidation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputNumberWithPeriodValidation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper + validationType; + + public Builder validationType( + SignRequestSignerInputNumberWithPeriodValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper( + validationType); + return this; + } + + public Builder validationType( + EnumWrapper + validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputNumberWithPeriodValidation build() { + return new SignRequestSignerInputNumberWithPeriodValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidationValidationTypeField.java new file mode 100644 index 000000000..6e9d358e3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidationValidationTypeField.java @@ -0,0 +1,69 @@ +package com.box.sdkgen.schemas.signrequestsignerinputnumberwithperiodvalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +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 SignRequestSignerInputNumberWithPeriodValidationValidationTypeField + implements Valuable { + NUMBER_WITH_PERIOD("number_with_period"); + + private final String value; + + SignRequestSignerInputNumberWithPeriodValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static + class SignRequestSignerInputNumberWithPeriodValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputNumberWithPeriodValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper + deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream( + SignRequestSignerInputNumberWithPeriodValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper( + value)); + } + } + + public static class SignRequestSignerInputNumberWithPeriodValidationValidationTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public SignRequestSignerInputNumberWithPeriodValidationValidationTypeFieldSerializer() { + 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/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidation.java new file mode 100644 index 000000000..b5a94bd7e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidation.java @@ -0,0 +1,102 @@ +package com.box.sdkgen.schemas.signrequestsignerinputssnvalidation; + +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; + +/** + * Specifies the validation rules for a text field input by the signer. If set, this validation is + * mandatory. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputSsnValidation extends SerializableObject { + + /** Validates that the text input is a Social Security Number (SSN). */ + @JsonDeserialize( + using = + SignRequestSignerInputSsnValidationValidationTypeField + .SignRequestSignerInputSsnValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputSsnValidationValidationTypeField + .SignRequestSignerInputSsnValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper validationType; + + public SignRequestSignerInputSsnValidation() { + super(); + this.validationType = + new EnumWrapper( + SignRequestSignerInputSsnValidationValidationTypeField.SSN); + } + + protected SignRequestSignerInputSsnValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputSsnValidation casted = (SignRequestSignerInputSsnValidation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputSsnValidation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper validationType; + + public Builder() { + super(); + this.validationType = + new EnumWrapper( + SignRequestSignerInputSsnValidationValidationTypeField.SSN); + } + + public Builder validationType( + SignRequestSignerInputSsnValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper(validationType); + return this; + } + + public Builder validationType( + EnumWrapper validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputSsnValidation build() { + return new SignRequestSignerInputSsnValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidationValidationTypeField.java new file mode 100644 index 000000000..b27d71d42 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidationValidationTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.signrequestsignerinputssnvalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +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 SignRequestSignerInputSsnValidationValidationTypeField implements Valuable { + SSN("ssn"); + + private final String value; + + SignRequestSignerInputSsnValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputSsnValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputSsnValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputSsnValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputSsnValidationValidationTypeFieldSerializer + extends JsonSerializer> { + + public SignRequestSignerInputSsnValidationValidationTypeFieldSerializer() { + 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/signrequestsignerinputvalidation/SignRequestSignerInputValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputvalidation/SignRequestSignerInputValidation.java new file mode 100644 index 000000000..5468866ab --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputvalidation/SignRequestSignerInputValidation.java @@ -0,0 +1,421 @@ +package com.box.sdkgen.schemas.signrequestsignerinputvalidation; + +import com.box.sdkgen.internal.OneOfundefined; +import com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation.SignRequestSignerInputCustomValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateasiavalidation.SignRequestSignerInputDateAsiaValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateeuvalidation.SignRequestSignerInputDateEuValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateisovalidation.SignRequestSignerInputDateIsoValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateusvalidation.SignRequestSignerInputDateUsValidation; +import com.box.sdkgen.schemas.signrequestsignerinputemailvalidation.SignRequestSignerInputEmailValidation; +import com.box.sdkgen.schemas.signrequestsignerinputnumberwithcommavalidation.SignRequestSignerInputNumberWithCommaValidation; +import com.box.sdkgen.schemas.signrequestsignerinputnumberwithperiodvalidation.SignRequestSignerInputNumberWithPeriodValidation; +import com.box.sdkgen.schemas.signrequestsignerinputssnvalidation.SignRequestSignerInputSsnValidation; +import com.box.sdkgen.schemas.signrequestsignerinputzip4validation.SignRequestSignerInputZip4Validation; +import com.box.sdkgen.schemas.signrequestsignerinputzipvalidation.SignRequestSignerInputZipValidation; +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 = SignRequestSignerInputValidation.SignRequestSignerInputValidationDeserializer.class) +@JsonSerialize(using = OneOfundefined.OneOfundefinedSerializer.class) +public class SignRequestSignerInputValidation + extends OneOfundefined< + SignRequestSignerInputEmailValidation, + SignRequestSignerInputCustomValidation, + SignRequestSignerInputZipValidation, + SignRequestSignerInputZip4Validation, + SignRequestSignerInputSsnValidation, + SignRequestSignerInputNumberWithPeriodValidation, + SignRequestSignerInputNumberWithCommaValidation, + SignRequestSignerInputDateIsoValidation, + SignRequestSignerInputDateUsValidation, + SignRequestSignerInputDateEuValidation, + SignRequestSignerInputDateAsiaValidation> { + + protected final String validationType; + + public SignRequestSignerInputValidation( + SignRequestSignerInputEmailValidation signRequestSignerInputEmailValidation) { + super( + signRequestSignerInputEmailValidation, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null); + this.validationType = + EnumWrapper.convertToString(signRequestSignerInputEmailValidation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputCustomValidation signRequestSignerInputCustomValidation) { + super( + null, + signRequestSignerInputCustomValidation, + null, + null, + null, + null, + null, + null, + null, + null, + null); + this.validationType = + EnumWrapper.convertToString(signRequestSignerInputCustomValidation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputZipValidation signRequestSignerInputZipValidation) { + super( + null, + null, + signRequestSignerInputZipValidation, + null, + null, + null, + null, + null, + null, + null, + null); + this.validationType = + EnumWrapper.convertToString(signRequestSignerInputZipValidation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputZip4Validation signRequestSignerInputZip4Validation) { + super( + null, + null, + null, + signRequestSignerInputZip4Validation, + null, + null, + null, + null, + null, + null, + null); + this.validationType = + EnumWrapper.convertToString(signRequestSignerInputZip4Validation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputSsnValidation signRequestSignerInputSsnValidation) { + super( + null, + null, + null, + null, + signRequestSignerInputSsnValidation, + null, + null, + null, + null, + null, + null); + this.validationType = + EnumWrapper.convertToString(signRequestSignerInputSsnValidation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputNumberWithPeriodValidation + signRequestSignerInputNumberWithPeriodValidation) { + super( + null, + null, + null, + null, + null, + signRequestSignerInputNumberWithPeriodValidation, + null, + null, + null, + null, + null); + this.validationType = + EnumWrapper.convertToString( + signRequestSignerInputNumberWithPeriodValidation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputNumberWithCommaValidation + signRequestSignerInputNumberWithCommaValidation) { + super( + null, + null, + null, + null, + null, + null, + signRequestSignerInputNumberWithCommaValidation, + null, + null, + null, + null); + this.validationType = + EnumWrapper.convertToString( + signRequestSignerInputNumberWithCommaValidation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputDateIsoValidation signRequestSignerInputDateIsoValidation) { + super( + null, + null, + null, + null, + null, + null, + null, + signRequestSignerInputDateIsoValidation, + null, + null, + null); + this.validationType = + EnumWrapper.convertToString(signRequestSignerInputDateIsoValidation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputDateUsValidation signRequestSignerInputDateUsValidation) { + super( + null, + null, + null, + null, + null, + null, + null, + null, + signRequestSignerInputDateUsValidation, + null, + null); + this.validationType = + EnumWrapper.convertToString(signRequestSignerInputDateUsValidation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputDateEuValidation signRequestSignerInputDateEuValidation) { + super( + null, + null, + null, + null, + null, + null, + null, + null, + null, + signRequestSignerInputDateEuValidation, + null); + this.validationType = + EnumWrapper.convertToString(signRequestSignerInputDateEuValidation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputDateAsiaValidation signRequestSignerInputDateAsiaValidation) { + super( + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + signRequestSignerInputDateAsiaValidation); + this.validationType = + EnumWrapper.convertToString(signRequestSignerInputDateAsiaValidation.getValidationType()); + } + + public boolean isSignRequestSignerInputEmailValidation() { + return value0 != null; + } + + public SignRequestSignerInputEmailValidation getSignRequestSignerInputEmailValidation() { + return value0; + } + + public boolean isSignRequestSignerInputCustomValidation() { + return value1 != null; + } + + public SignRequestSignerInputCustomValidation getSignRequestSignerInputCustomValidation() { + return value1; + } + + public boolean isSignRequestSignerInputZipValidation() { + return value2 != null; + } + + public SignRequestSignerInputZipValidation getSignRequestSignerInputZipValidation() { + return value2; + } + + public boolean isSignRequestSignerInputZip4Validation() { + return value3 != null; + } + + public SignRequestSignerInputZip4Validation getSignRequestSignerInputZip4Validation() { + return value3; + } + + public boolean isSignRequestSignerInputSsnValidation() { + return value4 != null; + } + + public SignRequestSignerInputSsnValidation getSignRequestSignerInputSsnValidation() { + return value4; + } + + public boolean isSignRequestSignerInputNumberWithPeriodValidation() { + return value5 != null; + } + + public SignRequestSignerInputNumberWithPeriodValidation + getSignRequestSignerInputNumberWithPeriodValidation() { + return value5; + } + + public boolean isSignRequestSignerInputNumberWithCommaValidation() { + return value6 != null; + } + + public SignRequestSignerInputNumberWithCommaValidation + getSignRequestSignerInputNumberWithCommaValidation() { + return value6; + } + + public boolean isSignRequestSignerInputDateIsoValidation() { + return value7 != null; + } + + public SignRequestSignerInputDateIsoValidation getSignRequestSignerInputDateIsoValidation() { + return value7; + } + + public boolean isSignRequestSignerInputDateUsValidation() { + return value8 != null; + } + + public SignRequestSignerInputDateUsValidation getSignRequestSignerInputDateUsValidation() { + return value8; + } + + public boolean isSignRequestSignerInputDateEuValidation() { + return value9 != null; + } + + public SignRequestSignerInputDateEuValidation getSignRequestSignerInputDateEuValidation() { + return value9; + } + + public boolean isSignRequestSignerInputDateAsiaValidation() { + return value10 != null; + } + + public SignRequestSignerInputDateAsiaValidation getSignRequestSignerInputDateAsiaValidation() { + return value10; + } + + public String getValidationType() { + return validationType; + } + + static class SignRequestSignerInputValidationDeserializer + extends JsonDeserializer { + + public SignRequestSignerInputValidationDeserializer() { + super(); + } + + @Override + public SignRequestSignerInputValidation deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputEmailValidation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputCustomValidation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputZipValidation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputZip4Validation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputSsnValidation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputNumberWithPeriodValidation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputNumberWithCommaValidation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputDateIsoValidation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputDateUsValidation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputDateEuValidation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputDateAsiaValidation.class)); + } catch (Exception ignored) { + } + throw new JsonMappingException(jp, "Unable to deserialize SignRequestSignerInputValidation"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4Validation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4Validation.java new file mode 100644 index 000000000..2c9964bf2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4Validation.java @@ -0,0 +1,102 @@ +package com.box.sdkgen.schemas.signrequestsignerinputzip4validation; + +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; + +/** + * Specifies the validation rules for a text field input by the signer. If set, this validation is + * mandatory. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputZip4Validation extends SerializableObject { + + /** Validates that the text input is a ZIP+4 code. */ + @JsonDeserialize( + using = + SignRequestSignerInputZip4ValidationValidationTypeField + .SignRequestSignerInputZip4ValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputZip4ValidationValidationTypeField + .SignRequestSignerInputZip4ValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper validationType; + + public SignRequestSignerInputZip4Validation() { + super(); + this.validationType = + new EnumWrapper( + SignRequestSignerInputZip4ValidationValidationTypeField.ZIP_4); + } + + protected SignRequestSignerInputZip4Validation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputZip4Validation casted = (SignRequestSignerInputZip4Validation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputZip4Validation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper validationType; + + public Builder() { + super(); + this.validationType = + new EnumWrapper( + SignRequestSignerInputZip4ValidationValidationTypeField.ZIP_4); + } + + public Builder validationType( + SignRequestSignerInputZip4ValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper(validationType); + return this; + } + + public Builder validationType( + EnumWrapper validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputZip4Validation build() { + return new SignRequestSignerInputZip4Validation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4ValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4ValidationValidationTypeField.java new file mode 100644 index 000000000..010aa0bc4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4ValidationValidationTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.signrequestsignerinputzip4validation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +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 SignRequestSignerInputZip4ValidationValidationTypeField implements Valuable { + ZIP_4("zip_4"); + + private final String value; + + SignRequestSignerInputZip4ValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputZip4ValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputZip4ValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputZip4ValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputZip4ValidationValidationTypeFieldSerializer + extends JsonSerializer> { + + public SignRequestSignerInputZip4ValidationValidationTypeFieldSerializer() { + 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/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidation.java new file mode 100644 index 000000000..c805d142a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidation.java @@ -0,0 +1,102 @@ +package com.box.sdkgen.schemas.signrequestsignerinputzipvalidation; + +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; + +/** + * Specifies the validation rules for a text field input by the signer. If set, this validation is + * mandatory. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputZipValidation extends SerializableObject { + + /** Validates that the text input is a ZIP code. */ + @JsonDeserialize( + using = + SignRequestSignerInputZipValidationValidationTypeField + .SignRequestSignerInputZipValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputZipValidationValidationTypeField + .SignRequestSignerInputZipValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper validationType; + + public SignRequestSignerInputZipValidation() { + super(); + this.validationType = + new EnumWrapper( + SignRequestSignerInputZipValidationValidationTypeField.ZIP); + } + + protected SignRequestSignerInputZipValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputZipValidation casted = (SignRequestSignerInputZipValidation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputZipValidation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper validationType; + + public Builder() { + super(); + this.validationType = + new EnumWrapper( + SignRequestSignerInputZipValidationValidationTypeField.ZIP); + } + + public Builder validationType( + SignRequestSignerInputZipValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper(validationType); + return this; + } + + public Builder validationType( + EnumWrapper validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputZipValidation build() { + return new SignRequestSignerInputZipValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidationValidationTypeField.java new file mode 100644 index 000000000..84b134ff5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidationValidationTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.signrequestsignerinputzipvalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +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 SignRequestSignerInputZipValidationValidationTypeField implements Valuable { + ZIP("zip"); + + private final String value; + + SignRequestSignerInputZipValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputZipValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputZipValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputZipValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputZipValidationValidationTypeFieldSerializer + extends JsonSerializer> { + + public SignRequestSignerInputZipValidationValidationTypeFieldSerializer() { + 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/templatesignerinput/TemplateSignerInput.java b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java index 62278af09..0728765e2 100644 --- a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java @@ -2,6 +2,18 @@ import com.box.sdkgen.internal.Nullable; import com.box.sdkgen.schemas.signrequestprefilltag.SignRequestPrefillTag; +import com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation.SignRequestSignerInputCustomValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateasiavalidation.SignRequestSignerInputDateAsiaValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateeuvalidation.SignRequestSignerInputDateEuValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateisovalidation.SignRequestSignerInputDateIsoValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateusvalidation.SignRequestSignerInputDateUsValidation; +import com.box.sdkgen.schemas.signrequestsignerinputemailvalidation.SignRequestSignerInputEmailValidation; +import com.box.sdkgen.schemas.signrequestsignerinputnumberwithcommavalidation.SignRequestSignerInputNumberWithCommaValidation; +import com.box.sdkgen.schemas.signrequestsignerinputnumberwithperiodvalidation.SignRequestSignerInputNumberWithPeriodValidation; +import com.box.sdkgen.schemas.signrequestsignerinputssnvalidation.SignRequestSignerInputSsnValidation; +import com.box.sdkgen.schemas.signrequestsignerinputvalidation.SignRequestSignerInputValidation; +import com.box.sdkgen.schemas.signrequestsignerinputzip4validation.SignRequestSignerInputZip4Validation; +import com.box.sdkgen.schemas.signrequestsignerinputzipvalidation.SignRequestSignerInputZipValidation; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -66,10 +78,16 @@ public class TemplateSignerInput extends SignRequestPrefillTag { /** The label field is used especially for text, attachment, radio, and checkbox type inputs. */ @Nullable protected String label; - /** Whether this input was defined as read-only(immutable by signers) or not. */ + /** Indicates whether this input is read-only (cannot be modified by signers). */ @JsonProperty("read_only") protected Boolean readOnly; + /** + * Specifies the formatting rules that signers must follow for text field inputs. If set, this + * validation is mandatory. + */ + protected SignRequestSignerInputValidation validation; + public TemplateSignerInput(@JsonProperty("page_index") long pageIndex) { super(); this.pageIndex = pageIndex; @@ -88,6 +106,7 @@ protected TemplateSignerInput(Builder builder) { this.dimensions = builder.dimensions; this.label = builder.label; this.readOnly = builder.readOnly; + this.validation = builder.validation; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -135,6 +154,10 @@ public Boolean getReadOnly() { return readOnly; } + public SignRequestSignerInputValidation getValidation() { + return validation; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -158,7 +181,8 @@ public boolean equals(Object o) { && Objects.equals(coordinates, casted.coordinates) && Objects.equals(dimensions, casted.dimensions) && Objects.equals(label, casted.label) - && Objects.equals(readOnly, casted.readOnly); + && Objects.equals(readOnly, casted.readOnly) + && Objects.equals(validation, casted.validation); } @Override @@ -178,7 +202,8 @@ public int hashCode() { coordinates, dimensions, label, - readOnly); + readOnly, + validation); } @Override @@ -243,6 +268,10 @@ public String toString() { + "readOnly='" + readOnly + '\'' + + ", " + + "validation='" + + validation + + '\'' + "}"; } @@ -270,6 +299,8 @@ public static class Builder extends SignRequestPrefillTag.Builder { protected Boolean readOnly; + protected SignRequestSignerInputValidation validation; + public Builder(long pageIndex) { super(); this.pageIndex = pageIndex; @@ -339,6 +370,66 @@ public Builder readOnly(Boolean readOnly) { return this; } + public Builder validation(SignRequestSignerInputEmailValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputCustomValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputZipValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputZip4Validation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputSsnValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputNumberWithPeriodValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputNumberWithCommaValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputDateIsoValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputDateUsValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputDateEuValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputDateAsiaValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputValidation validation) { + this.validation = validation; + return this; + } + @Override public Builder documentTagId(String documentTagId) { this.documentTagId = documentTagId; From 586a7851ba91f7dd18442e53a14f636f2305a8b2 Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Fri, 12 Dec 2025 04:45:45 -0800 Subject: [PATCH 4/8] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index 77fcaa7aa..2fcac8536 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "f97463c", "specHash": "b7abe0d", "version": "5.2.0" } +{ "engineHash": "e2e3c06", "specHash": "b7abe0d", "version": "5.2.0" } From e204810bd48c291fcb279fd4aa4787e2189ba510 Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Fri, 12 Dec 2025 08:15:12 -0800 Subject: [PATCH 5/8] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index 2fcac8536..754a7882c 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "e2e3c06", "specHash": "b7abe0d", "version": "5.2.0" } +{ "engineHash": "b5860f1", "specHash": "b7abe0d", "version": "5.2.0" } From 316d569d414e48d0130fba95f1ae887413362ad3 Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Mon, 15 Dec 2025 12:15:30 -0800 Subject: [PATCH 6/8] feat: add Metadata Taxonomies api (box/box-openapi#569) --- .codegen.json | 2 +- docs/sdkgen/README.md | 1 + docs/sdkgen/filemetadata.md | 4 + docs/sdkgen/foldermetadata.md | 2 + docs/sdkgen/metadatataxonomies.md | 474 +++++++++ .../java/com/box/sdkgen/client/BoxClient.java | 17 + .../filemetadata/FileMetadataManager.java | 86 +- .../GetFileMetadataByIdQueryParams.java | 36 + .../GetFileMetadataQueryParams.java | 36 + .../foldermetadata/FolderMetadataManager.java | 37 +- .../GetFolderMetadataQueryParams.java | 36 + .../AddMetadataTaxonomyLevelHeaders.java | 41 + .../AddMetadataTaxonomyLevelRequestBody.java | 89 ++ .../CreateMetadataTaxonomyHeaders.java | 41 + .../CreateMetadataTaxonomyLevelHeaders.java | 41 + .../CreateMetadataTaxonomyNodeHeaders.java | 41 + ...CreateMetadataTaxonomyNodeRequestBody.java | 107 ++ .../CreateMetadataTaxonomyRequestBody.java | 112 ++ .../DeleteMetadataTaxonomyHeaders.java | 41 + .../DeleteMetadataTaxonomyLevelHeaders.java | 41 + .../DeleteMetadataTaxonomyNodeHeaders.java | 41 + .../GetMetadataTaxonomiesHeaders.java | 41 + .../GetMetadataTaxonomiesQueryParams.java | 51 + .../GetMetadataTaxonomyByKeyHeaders.java | 41 + .../GetMetadataTaxonomyNodeByIdHeaders.java | 41 + .../GetMetadataTaxonomyNodesHeaders.java | 41 + .../GetMetadataTaxonomyNodesQueryParams.java | 140 +++ ...etMetadataTemplateFieldOptionsHeaders.java | 41 + ...tadataTemplateFieldOptionsQueryParams.java | 159 +++ .../GetMetadataTemplateFieldOptionsScope.java | 63 ++ .../MetadataTaxonomiesManager.java | 985 ++++++++++++++++++ ...MetadataTaxonomiesIdIdLevelsIdHeaders.java | 41 + ...dataTaxonomiesIdIdLevelsIdRequestBody.java | 91 ++ .../UpdateMetadataTaxonomyHeaders.java | 41 + .../UpdateMetadataTaxonomyNodeHeaders.java | 41 + ...UpdateMetadataTaxonomyNodeRequestBody.java | 63 ++ .../UpdateMetadataTaxonomyRequestBody.java | 44 + ...etadataTemplateRequestBodyFieldsField.java | 80 +- ...ateRequestBodyFieldsOptionsRulesField.java | 89 ++ ...ataTemplateRequestBodyFieldsTypeField.java | 3 +- .../MetadataTaxonomies.java | 141 +++ .../metadatataxonomy/MetadataTaxonomy.java | 152 +++ .../MetadataTaxonomyAncestor.java | 108 ++ .../MetadataTaxonomyLevel.java | 111 ++ .../MetadataTaxonomyLevels.java | 68 ++ .../MetadataTaxonomyNode.java | 169 +++ .../MetadataTaxonomyNodes.java | 141 +++ 47 files changed, 4304 insertions(+), 8 deletions(-) create mode 100644 docs/sdkgen/metadatataxonomies.md create mode 100644 src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyLevelHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyLevelHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyNodeHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyByKeyHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodeByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsScope.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsOptionsRulesField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatataxonomies/MetadataTaxonomies.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatataxonomy/MetadataTaxonomy.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatataxonomyancestor/MetadataTaxonomyAncestor.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatataxonomylevel/MetadataTaxonomyLevel.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatataxonomylevels/MetadataTaxonomyLevels.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatataxonomynode/MetadataTaxonomyNode.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatataxonomynodes/MetadataTaxonomyNodes.java diff --git a/.codegen.json b/.codegen.json index 754a7882c..56a55aeb8 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "b5860f1", "specHash": "b7abe0d", "version": "5.2.0" } +{ "engineHash": "b5860f1", "specHash": "1e0848d", "version": "5.2.0" } diff --git a/docs/sdkgen/README.md b/docs/sdkgen/README.md index ebdc4844d..308c5699b 100644 --- a/docs/sdkgen/README.md +++ b/docs/sdkgen/README.md @@ -49,6 +49,7 @@ the SDK are available by topic: * [Listcollaborations](listcollaborations.md) * [Memberships](memberships.md) * [Metadatacascadepolicies](metadatacascadepolicies.md) +* [Metadatataxonomies](metadatataxonomies.md) * [Metadatatemplates](metadatatemplates.md) * [Recentitems](recentitems.md) * [Retentionpolicies](retentionpolicies.md) diff --git a/docs/sdkgen/filemetadata.md b/docs/sdkgen/filemetadata.md index 4a55f9c32..2ccd505b5 100644 --- a/docs/sdkgen/filemetadata.md +++ b/docs/sdkgen/filemetadata.md @@ -25,6 +25,8 @@ client.getFileMetadata().getFileMetadata(file.getId()) - fileId `String` - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- queryParams `GetFileMetadataQueryParams` + - Query parameters of getFileMetadata method - headers `GetFileMetadataHeaders` - Headers of getFileMetadata method @@ -62,6 +64,8 @@ client.getFileMetadata().getFileMetadataById(file.getId(), GetFileMetadataByIdSc - The scope of the metadata template. Example: "global" - templateKey `String` - The name of the metadata template. Example: "properties" +- queryParams `GetFileMetadataByIdQueryParams` + - Query parameters of getFileMetadataById method - headers `GetFileMetadataByIdHeaders` - Headers of getFileMetadataById method diff --git a/docs/sdkgen/foldermetadata.md b/docs/sdkgen/foldermetadata.md index 307d252f7..02bb0146e 100644 --- a/docs/sdkgen/foldermetadata.md +++ b/docs/sdkgen/foldermetadata.md @@ -26,6 +26,8 @@ client.getFolderMetadata().getFolderMetadata(folder.getId()) - folderId `String` - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- queryParams `GetFolderMetadataQueryParams` + - Query parameters of getFolderMetadata method - headers `GetFolderMetadataHeaders` - Headers of getFolderMetadata method diff --git a/docs/sdkgen/metadatataxonomies.md b/docs/sdkgen/metadatataxonomies.md new file mode 100644 index 000000000..cf19c1178 --- /dev/null +++ b/docs/sdkgen/metadatataxonomies.md @@ -0,0 +1,474 @@ +# MetadataTaxonomiesManager + + +- [Create metadata taxonomy](#create-metadata-taxonomy) +- [Get metadata taxonomies for namespace](#get-metadata-taxonomies-for-namespace) +- [Get metadata taxonomy by taxonomy key](#get-metadata-taxonomy-by-taxonomy-key) +- [Update metadata taxonomy](#update-metadata-taxonomy) +- [Remove metadata taxonomy](#remove-metadata-taxonomy) +- [Create metadata taxonomy levels](#create-metadata-taxonomy-levels) +- [Update metadata taxonomy level](#update-metadata-taxonomy-level) +- [Add metadata taxonomy level](#add-metadata-taxonomy-level) +- [Delete metadata taxonomy level](#delete-metadata-taxonomy-level) +- [List metadata taxonomy nodes](#list-metadata-taxonomy-nodes) +- [Create metadata taxonomy node](#create-metadata-taxonomy-node) +- [Get metadata taxonomy node by ID](#get-metadata-taxonomy-node-by-id) +- [Update metadata taxonomy node](#update-metadata-taxonomy-node) +- [Remove metadata taxonomy node](#remove-metadata-taxonomy-node) +- [List metadata template's options for taxonomy field](#list-metadata-templates-options-for-taxonomy-field) + +## Create metadata taxonomy + +Creates a new metadata taxonomy that can be used in +metadata templates. + +This operation is performed by calling function `createMetadataTaxonomy`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-metadata-taxonomies/). + +*Currently we don't have an example for calling `createMetadataTaxonomy` in integration tests* + +### Arguments + +- requestBody `CreateMetadataTaxonomyRequestBody` + - Request body of createMetadataTaxonomy method +- headers `CreateMetadataTaxonomyHeaders` + - Headers of createMetadataTaxonomy method + + +### Returns + +This function returns a value of type `MetadataTaxonomy`. + +The schema representing the metadata taxonomy created. + + +## Get metadata taxonomies for namespace + +Used to retrieve all metadata taxonomies in a namespace. + +This operation is performed by calling function `getMetadataTaxonomies`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-metadata-taxonomies-id/). + +*Currently we don't have an example for calling `getMetadataTaxonomies` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- queryParams `GetMetadataTaxonomiesQueryParams` + - Query parameters of getMetadataTaxonomies method +- headers `GetMetadataTaxonomiesHeaders` + - Headers of getMetadataTaxonomies method + + +### Returns + +This function returns a value of type `MetadataTaxonomies`. + +Returns all of the metadata taxonomies within a namespace +and their corresponding schema. + + +## Get metadata taxonomy by taxonomy key + +Used to retrieve a metadata taxonomy by taxonomy key. + +This operation is performed by calling function `getMetadataTaxonomyByKey`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-metadata-taxonomies-id-id/). + +*Currently we don't have an example for calling `getMetadataTaxonomyByKey` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- headers `GetMetadataTaxonomyByKeyHeaders` + - Headers of getMetadataTaxonomyByKey method + + +### Returns + +This function returns a value of type `MetadataTaxonomy`. + +Returns the metadata taxonomy identified by the taxonomy key. + + +## Update metadata taxonomy + +Updates an existing metadata taxonomy. + +This operation is performed by calling function `updateMetadataTaxonomy`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/patch-metadata-taxonomies-id-id/). + +*Currently we don't have an example for calling `updateMetadataTaxonomy` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- requestBody `UpdateMetadataTaxonomyRequestBody` + - Request body of updateMetadataTaxonomy method +- headers `UpdateMetadataTaxonomyHeaders` + - Headers of updateMetadataTaxonomy method + + +### Returns + +This function returns a value of type `MetadataTaxonomy`. + +The schema representing the updated metadata taxonomy. + + +## Remove metadata taxonomy + +Delete a metadata taxonomy. +This deletion is permanent and cannot be reverted. + +This operation is performed by calling function `deleteMetadataTaxonomy`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-metadata-taxonomies-id-id/). + +*Currently we don't have an example for calling `deleteMetadataTaxonomy` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- headers `DeleteMetadataTaxonomyHeaders` + - Headers of deleteMetadataTaxonomy method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the metadata taxonomy is successfully deleted. + + +## Create metadata taxonomy levels + +Creates new metadata taxonomy levels. + +This operation is performed by calling function `createMetadataTaxonomyLevel`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-metadata-taxonomies-id-id-levels/). + +*Currently we don't have an example for calling `createMetadataTaxonomyLevel` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- requestBody `List` + - Request body of createMetadataTaxonomyLevel method +- headers `CreateMetadataTaxonomyLevelHeaders` + - Headers of createMetadataTaxonomyLevel method + + +### Returns + +This function returns a value of type `MetadataTaxonomyLevels`. + +Returns an array of all taxonomy levels. + + +## Update metadata taxonomy level + +Updates an existing metadata taxonomy level. + +This operation is performed by calling function `patchMetadataTaxonomiesIdIdLevelsId`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/patch-metadata-taxonomies-id-id-levels-id/). + +*Currently we don't have an example for calling `patchMetadataTaxonomiesIdIdLevelsId` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- levelIndex `long` + - The index of the metadata taxonomy level. Example: 1 +- requestBody `PatchMetadataTaxonomiesIdIdLevelsIdRequestBody` + - Request body of patchMetadataTaxonomiesIdIdLevelsId method +- headers `PatchMetadataTaxonomiesIdIdLevelsIdHeaders` + - Headers of patchMetadataTaxonomiesIdIdLevelsId method + + +### Returns + +This function returns a value of type `MetadataTaxonomyLevel`. + +The updated taxonomy level. + + +## Add metadata taxonomy level + +Creates a new metadata taxonomy level and appends it to the existing levels. +If there are no levels defined yet, this will create the first level. + +This operation is performed by calling function `addMetadataTaxonomyLevel`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-metadata-taxonomies-id-id-levels:append/). + +*Currently we don't have an example for calling `addMetadataTaxonomyLevel` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- requestBody `AddMetadataTaxonomyLevelRequestBody` + - Request body of addMetadataTaxonomyLevel method +- headers `AddMetadataTaxonomyLevelHeaders` + - Headers of addMetadataTaxonomyLevel method + + +### Returns + +This function returns a value of type `MetadataTaxonomyLevels`. + +Returns an array of all taxonomy levels. + + +## Delete metadata taxonomy level + +Deletes the last level of the metadata taxonomy. + +This operation is performed by calling function `deleteMetadataTaxonomyLevel`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-metadata-taxonomies-id-id-levels:trim/). + +*Currently we don't have an example for calling `deleteMetadataTaxonomyLevel` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- headers `DeleteMetadataTaxonomyLevelHeaders` + - Headers of deleteMetadataTaxonomyLevel method + + +### Returns + +This function returns a value of type `MetadataTaxonomyLevels`. + +Returns an array of all taxonomy levels. + + +## List metadata taxonomy nodes + +Used to retrieve metadata taxonomy nodes based on the parameters specified. +Results are sorted in lexicographic order unless a `query` parameter is passed. +With a `query` parameter specified, results are sorted in order of relevance. + +This operation is performed by calling function `getMetadataTaxonomyNodes`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-metadata-taxonomies-id-id-nodes/). + +*Currently we don't have an example for calling `getMetadataTaxonomyNodes` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- queryParams `GetMetadataTaxonomyNodesQueryParams` + - Query parameters of getMetadataTaxonomyNodes method +- headers `GetMetadataTaxonomyNodesHeaders` + - Headers of getMetadataTaxonomyNodes method + + +### Returns + +This function returns a value of type `MetadataTaxonomyNodes`. + +Returns a list of the taxonomy nodes that match the specified parameters. + + +## Create metadata taxonomy node + +Creates a new metadata taxonomy node. + +This operation is performed by calling function `createMetadataTaxonomyNode`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-metadata-taxonomies-id-id-nodes/). + +*Currently we don't have an example for calling `createMetadataTaxonomyNode` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- requestBody `CreateMetadataTaxonomyNodeRequestBody` + - Request body of createMetadataTaxonomyNode method +- headers `CreateMetadataTaxonomyNodeHeaders` + - Headers of createMetadataTaxonomyNode method + + +### Returns + +This function returns a value of type `MetadataTaxonomyNode`. + +The schema representing the taxonomy node created. + + +## Get metadata taxonomy node by ID + +Retrieves a metadata taxonomy node by its identifier. + +This operation is performed by calling function `getMetadataTaxonomyNodeById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-metadata-taxonomies-id-id-nodes-id/). + +*Currently we don't have an example for calling `getMetadataTaxonomyNodeById` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- nodeId `String` + - The identifier of the metadata taxonomy node. Example: "14d3d433-c77f-49c5-b146-9dea370f6e32" +- headers `GetMetadataTaxonomyNodeByIdHeaders` + - Headers of getMetadataTaxonomyNodeById method + + +### Returns + +This function returns a value of type `MetadataTaxonomyNode`. + +Returns the metadata taxonomy node that matches the identifier. + + +## Update metadata taxonomy node + +Updates an existing metadata taxonomy node. + +This operation is performed by calling function `updateMetadataTaxonomyNode`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/patch-metadata-taxonomies-id-id-nodes-id/). + +*Currently we don't have an example for calling `updateMetadataTaxonomyNode` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- nodeId `String` + - The identifier of the metadata taxonomy node. Example: "14d3d433-c77f-49c5-b146-9dea370f6e32" +- requestBody `UpdateMetadataTaxonomyNodeRequestBody` + - Request body of updateMetadataTaxonomyNode method +- headers `UpdateMetadataTaxonomyNodeHeaders` + - Headers of updateMetadataTaxonomyNode method + + +### Returns + +This function returns a value of type `MetadataTaxonomyNode`. + +The schema representing the updated taxonomy node. + + +## Remove metadata taxonomy node + +Delete a metadata taxonomy node. +This deletion is permanent and cannot be reverted. +Only metadata taxonomy nodes without any children can be deleted. + +This operation is performed by calling function `deleteMetadataTaxonomyNode`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-metadata-taxonomies-id-id-nodes-id/). + +*Currently we don't have an example for calling `deleteMetadataTaxonomyNode` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- nodeId `String` + - The identifier of the metadata taxonomy node. Example: "14d3d433-c77f-49c5-b146-9dea370f6e32" +- headers `DeleteMetadataTaxonomyNodeHeaders` + - Headers of deleteMetadataTaxonomyNode method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the metadata taxonomy node is successfully deleted. + + +## List metadata template's options for taxonomy field + +Used to retrieve metadata taxonomy nodes which are available for the taxonomy field based +on its configuration and the parameters specified. +Results are sorted in lexicographic order unless a `query` parameter is passed. +With a `query` parameter specified, results are sorted in order of relevance. + +This operation is performed by calling function `getMetadataTemplateFieldOptions`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-metadata-templates-id-id-fields-id-options/). + +*Currently we don't have an example for calling `getMetadataTemplateFieldOptions` in integration tests* + +### Arguments + +- scope `GetMetadataTemplateFieldOptionsScope` + - The scope of the metadata template. Example: "global" +- templateKey `String` + - The name of the metadata template. Example: "properties" +- fieldKey `String` + - The key of the metadata taxonomy field in the template. Example: "geography" +- queryParams `GetMetadataTemplateFieldOptionsQueryParams` + - Query parameters of getMetadataTemplateFieldOptions method +- headers `GetMetadataTemplateFieldOptionsHeaders` + - Headers of getMetadataTemplateFieldOptions method + + +### Returns + +This function returns a value of type `MetadataTaxonomyNodes`. + +Returns a list of the taxonomy nodes that match the specified parameters. + + diff --git a/src/main/java/com/box/sdkgen/client/BoxClient.java b/src/main/java/com/box/sdkgen/client/BoxClient.java index ddaa620af..8c3b1f25a 100644 --- a/src/main/java/com/box/sdkgen/client/BoxClient.java +++ b/src/main/java/com/box/sdkgen/client/BoxClient.java @@ -47,6 +47,7 @@ import com.box.sdkgen.managers.listcollaborations.ListCollaborationsManager; import com.box.sdkgen.managers.memberships.MembershipsManager; import com.box.sdkgen.managers.metadatacascadepolicies.MetadataCascadePoliciesManager; +import com.box.sdkgen.managers.metadatataxonomies.MetadataTaxonomiesManager; import com.box.sdkgen.managers.metadatatemplates.MetadataTemplatesManager; import com.box.sdkgen.managers.recentitems.RecentItemsManager; import com.box.sdkgen.managers.retentionpolicies.RetentionPoliciesManager; @@ -245,6 +246,8 @@ public class BoxClient { public final AiStudioManager aiStudio; + public final MetadataTaxonomiesManager metadataTaxonomies; + public final DocgenTemplateManager docgenTemplate; public final DocgenManager docgen; @@ -568,6 +571,11 @@ public BoxClient(Authentication auth) { this.ai = new AiManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); this.aiStudio = new AiStudioManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.metadataTaxonomies = + new MetadataTaxonomiesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); this.docgenTemplate = new DocgenTemplateManager.Builder() .auth(this.auth) @@ -908,6 +916,11 @@ protected BoxClient(Builder builder) { this.ai = new AiManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); this.aiStudio = new AiStudioManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.metadataTaxonomies = + new MetadataTaxonomiesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); this.docgenTemplate = new DocgenTemplateManager.Builder() .auth(this.auth) @@ -1341,6 +1354,10 @@ public AiStudioManager getAiStudio() { return aiStudio; } + public MetadataTaxonomiesManager getMetadataTaxonomies() { + return metadataTaxonomies; + } + public DocgenTemplateManager getDocgenTemplate() { return docgenTemplate; } diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java b/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java index 190f8bf37..25ae5f748 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java @@ -1,6 +1,7 @@ package com.box.sdkgen.managers.filemetadata; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; @@ -40,7 +41,20 @@ protected FileMetadataManager(Builder builder) { * `file_id` is `123`. Example: "12345" */ public Metadatas getFileMetadata(String fileId) { - return getFileMetadata(fileId, new GetFileMetadataHeaders()); + return getFileMetadata(fileId, new GetFileMetadataQueryParams(), new GetFileMetadataHeaders()); + } + + /** + * Retrieves all metadata for a given file. + * + * @param fileId The unique identifier that represents a file. + *

The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getFileMetadata method + */ + public Metadatas getFileMetadata(String fileId, GetFileMetadataQueryParams queryParams) { + return getFileMetadata(fileId, queryParams, new GetFileMetadataHeaders()); } /** @@ -53,6 +67,23 @@ public Metadatas getFileMetadata(String fileId) { * @param headers Headers of getFileMetadata method */ public Metadatas getFileMetadata(String fileId, GetFileMetadataHeaders headers) { + return getFileMetadata(fileId, new GetFileMetadataQueryParams(), headers); + } + + /** + * Retrieves all metadata for a given file. + * + * @param fileId The unique identifier that represents a file. + *

The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getFileMetadata method + * @param headers Headers of getFileMetadata method + */ + public Metadatas getFileMetadata( + String fileId, GetFileMetadataQueryParams queryParams, GetFileMetadataHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("view", convertToString(queryParams.getView())))); Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = this.networkSession @@ -66,6 +97,7 @@ public Metadatas getFileMetadata(String fileId, GetFileMetadataHeaders headers) convertToString(fileId), "/metadata"), "GET") + .params(queryParamsMap) .headers(headersMap) .responseFormat(ResponseFormat.JSON) .auth(this.auth) @@ -86,7 +118,52 @@ public Metadatas getFileMetadata(String fileId, GetFileMetadataHeaders headers) */ public MetadataFull getFileMetadataById( String fileId, GetFileMetadataByIdScope scope, String templateKey) { - return getFileMetadataById(fileId, scope, templateKey, new GetFileMetadataByIdHeaders()); + return getFileMetadataById( + fileId, + scope, + templateKey, + new GetFileMetadataByIdQueryParams(), + new GetFileMetadataByIdHeaders()); + } + + /** + * Retrieves the instance of a metadata template that has been applied to a file. + * + * @param fileId The unique identifier that represents a file. + *

The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param queryParams Query parameters of getFileMetadataById method + */ + public MetadataFull getFileMetadataById( + String fileId, + GetFileMetadataByIdScope scope, + String templateKey, + GetFileMetadataByIdQueryParams queryParams) { + return getFileMetadataById( + fileId, scope, templateKey, queryParams, new GetFileMetadataByIdHeaders()); + } + + /** + * Retrieves the instance of a metadata template that has been applied to a file. + * + * @param fileId The unique identifier that represents a file. + *

The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param headers Headers of getFileMetadataById method + */ + public MetadataFull getFileMetadataById( + String fileId, + GetFileMetadataByIdScope scope, + String templateKey, + GetFileMetadataByIdHeaders headers) { + return getFileMetadataById( + fileId, scope, templateKey, new GetFileMetadataByIdQueryParams(), headers); } /** @@ -98,13 +175,17 @@ public MetadataFull getFileMetadataById( * `file_id` is `123`. Example: "12345" * @param scope The scope of the metadata template. Example: "global" * @param templateKey The name of the metadata template. Example: "properties" + * @param queryParams Query parameters of getFileMetadataById method * @param headers Headers of getFileMetadataById method */ public MetadataFull getFileMetadataById( String fileId, GetFileMetadataByIdScope scope, String templateKey, + GetFileMetadataByIdQueryParams queryParams, GetFileMetadataByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("view", convertToString(queryParams.getView())))); Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = this.networkSession @@ -121,6 +202,7 @@ public MetadataFull getFileMetadataById( "/", convertToString(templateKey)), "GET") + .params(queryParamsMap) .headers(headersMap) .responseFormat(ResponseFormat.JSON) .auth(this.auth) diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdQueryParams.java new file mode 100644 index 000000000..e7f810882 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdQueryParams.java @@ -0,0 +1,36 @@ +package com.box.sdkgen.managers.filemetadata; + +public class GetFileMetadataByIdQueryParams { + + /** + * Taxonomy field values are returned in `API view` by default, meaning the value is represented + * with a taxonomy node identifier. To retrieve the `Hydrated view`, where taxonomy values are + * represented with the full taxonomy node information, set this parameter to `hydrated`. This is + * the only supported value for this parameter. + */ + public String view; + + public GetFileMetadataByIdQueryParams() {} + + protected GetFileMetadataByIdQueryParams(Builder builder) { + this.view = builder.view; + } + + public String getView() { + return view; + } + + public static class Builder { + + protected String view; + + public Builder view(String view) { + this.view = view; + return this; + } + + public GetFileMetadataByIdQueryParams build() { + return new GetFileMetadataByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataQueryParams.java b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataQueryParams.java new file mode 100644 index 000000000..b4cd334a1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataQueryParams.java @@ -0,0 +1,36 @@ +package com.box.sdkgen.managers.filemetadata; + +public class GetFileMetadataQueryParams { + + /** + * Taxonomy field values are returned in `API view` by default, meaning the value is represented + * with a taxonomy node identifier. To retrieve the `Hydrated view`, where taxonomy values are + * represented with the full taxonomy node information, set this parameter to `hydrated`. This is + * the only supported value for this parameter. + */ + public String view; + + public GetFileMetadataQueryParams() {} + + protected GetFileMetadataQueryParams(Builder builder) { + this.view = builder.view; + } + + public String getView() { + return view; + } + + public static class Builder { + + protected String view; + + public Builder view(String view) { + this.view = view; + return this; + } + + public GetFileMetadataQueryParams build() { + return new GetFileMetadataQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java index 061351ca0..781d380e6 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java @@ -1,6 +1,7 @@ package com.box.sdkgen.managers.foldermetadata; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; @@ -41,7 +42,22 @@ protected FolderMetadataManager(Builder builder) { *

The root folder of a Box account is always represented by the ID `0`. Example: "12345" */ public Metadatas getFolderMetadata(String folderId) { - return getFolderMetadata(folderId, new GetFolderMetadataHeaders()); + return getFolderMetadata( + folderId, new GetFolderMetadataQueryParams(), new GetFolderMetadataHeaders()); + } + + /** + * Retrieves all metadata for a given folder. This can not be used on the root folder with ID `0`. + * + * @param folderId The unique identifier that represent a folder. + *

The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of getFolderMetadata method + */ + public Metadatas getFolderMetadata(String folderId, GetFolderMetadataQueryParams queryParams) { + return getFolderMetadata(folderId, queryParams, new GetFolderMetadataHeaders()); } /** @@ -55,6 +71,24 @@ public Metadatas getFolderMetadata(String folderId) { * @param headers Headers of getFolderMetadata method */ public Metadatas getFolderMetadata(String folderId, GetFolderMetadataHeaders headers) { + return getFolderMetadata(folderId, new GetFolderMetadataQueryParams(), headers); + } + + /** + * Retrieves all metadata for a given folder. This can not be used on the root folder with ID `0`. + * + * @param folderId The unique identifier that represent a folder. + *

The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of getFolderMetadata method + * @param headers Headers of getFolderMetadata method + */ + public Metadatas getFolderMetadata( + String folderId, GetFolderMetadataQueryParams queryParams, GetFolderMetadataHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("view", convertToString(queryParams.getView())))); Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = this.networkSession @@ -68,6 +102,7 @@ public Metadatas getFolderMetadata(String folderId, GetFolderMetadataHeaders hea convertToString(folderId), "/metadata"), "GET") + .params(queryParamsMap) .headers(headersMap) .responseFormat(ResponseFormat.JSON) .auth(this.auth) diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataQueryParams.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataQueryParams.java new file mode 100644 index 000000000..4dae87218 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataQueryParams.java @@ -0,0 +1,36 @@ +package com.box.sdkgen.managers.foldermetadata; + +public class GetFolderMetadataQueryParams { + + /** + * Taxonomy field values are returned in `API view` by default, meaning the value is represented + * with a taxonomy node identifier. To retrieve the `Hydrated view`, where taxonomy values are + * represented with the full taxonomy node information, set this parameter to `hydrated`. This is + * the only supported value for this parameter. + */ + public String view; + + public GetFolderMetadataQueryParams() {} + + protected GetFolderMetadataQueryParams(Builder builder) { + this.view = builder.view; + } + + public String getView() { + return view; + } + + public static class Builder { + + protected String view; + + public Builder view(String view) { + this.view = view; + return this; + } + + public GetFolderMetadataQueryParams build() { + return new GetFolderMetadataQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelHeaders.java new file mode 100644 index 000000000..26a90477e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class AddMetadataTaxonomyLevelHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public AddMetadataTaxonomyLevelHeaders() { + this.extraHeaders = mapOf(); + } + + protected AddMetadataTaxonomyLevelHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public AddMetadataTaxonomyLevelHeaders build() { + return new AddMetadataTaxonomyLevelHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelRequestBody.java new file mode 100644 index 000000000..65ef7ebd5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelRequestBody.java @@ -0,0 +1,89 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AddMetadataTaxonomyLevelRequestBody extends SerializableObject { + + /** The display name of the taxonomy level. */ + protected final String displayName; + + /** The description of the taxonomy level. */ + protected String description; + + public AddMetadataTaxonomyLevelRequestBody(@JsonProperty("displayName") String displayName) { + super(); + this.displayName = displayName; + } + + protected AddMetadataTaxonomyLevelRequestBody(Builder builder) { + super(); + this.displayName = builder.displayName; + this.description = builder.description; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getDisplayName() { + return displayName; + } + + public String getDescription() { + return description; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddMetadataTaxonomyLevelRequestBody casted = (AddMetadataTaxonomyLevelRequestBody) o; + return Objects.equals(displayName, casted.displayName) + && Objects.equals(description, casted.description); + } + + @Override + public int hashCode() { + return Objects.hash(displayName, description); + } + + @Override + public String toString() { + return "AddMetadataTaxonomyLevelRequestBody{" + + "displayName='" + + displayName + + '\'' + + ", " + + "description='" + + description + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String displayName; + + protected String description; + + public Builder(String displayName) { + super(); + this.displayName = displayName; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public AddMetadataTaxonomyLevelRequestBody build() { + return new AddMetadataTaxonomyLevelRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyHeaders.java new file mode 100644 index 000000000..48539fceb --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateMetadataTaxonomyHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public CreateMetadataTaxonomyHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateMetadataTaxonomyHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateMetadataTaxonomyHeaders build() { + return new CreateMetadataTaxonomyHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyLevelHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyLevelHeaders.java new file mode 100644 index 000000000..1acebea77 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyLevelHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateMetadataTaxonomyLevelHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public CreateMetadataTaxonomyLevelHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateMetadataTaxonomyLevelHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateMetadataTaxonomyLevelHeaders build() { + return new CreateMetadataTaxonomyLevelHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeHeaders.java new file mode 100644 index 000000000..70053593b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateMetadataTaxonomyNodeHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public CreateMetadataTaxonomyNodeHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateMetadataTaxonomyNodeHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateMetadataTaxonomyNodeHeaders build() { + return new CreateMetadataTaxonomyNodeHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeRequestBody.java new file mode 100644 index 000000000..46ee9254f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeRequestBody.java @@ -0,0 +1,107 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateMetadataTaxonomyNodeRequestBody extends SerializableObject { + + /** The display name of the taxonomy node. */ + protected final String displayName; + + /** The level of the taxonomy node. */ + protected final long level; + + /** The identifier of the parent taxonomy node. Omit this field for root-level nodes. */ + protected String parentId; + + public CreateMetadataTaxonomyNodeRequestBody( + @JsonProperty("displayName") String displayName, @JsonProperty("level") long level) { + super(); + this.displayName = displayName; + this.level = level; + } + + protected CreateMetadataTaxonomyNodeRequestBody(Builder builder) { + super(); + this.displayName = builder.displayName; + this.level = builder.level; + this.parentId = builder.parentId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getDisplayName() { + return displayName; + } + + public long getLevel() { + return level; + } + + public String getParentId() { + return parentId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateMetadataTaxonomyNodeRequestBody casted = (CreateMetadataTaxonomyNodeRequestBody) o; + return Objects.equals(displayName, casted.displayName) + && Objects.equals(level, casted.level) + && Objects.equals(parentId, casted.parentId); + } + + @Override + public int hashCode() { + return Objects.hash(displayName, level, parentId); + } + + @Override + public String toString() { + return "CreateMetadataTaxonomyNodeRequestBody{" + + "displayName='" + + displayName + + '\'' + + ", " + + "level='" + + level + + '\'' + + ", " + + "parentId='" + + parentId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String displayName; + + protected final long level; + + protected String parentId; + + public Builder(String displayName, long level) { + super(); + this.displayName = displayName; + this.level = level; + } + + public Builder parentId(String parentId) { + this.parentId = parentId; + return this; + } + + public CreateMetadataTaxonomyNodeRequestBody build() { + return new CreateMetadataTaxonomyNodeRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyRequestBody.java new file mode 100644 index 000000000..a860ca86e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyRequestBody.java @@ -0,0 +1,112 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateMetadataTaxonomyRequestBody extends SerializableObject { + + /** + * The taxonomy key. If it is not provided in the request body, it will be generated from the + * `displayName`. The `displayName` would be converted to lower case, and all spaces and + * non-alphanumeric characters replaced with underscores. + */ + protected String key; + + /** The display name of the taxonomy. */ + protected final String displayName; + + /** The namespace of the metadata taxonomy to create. */ + protected final String namespace; + + public CreateMetadataTaxonomyRequestBody( + @JsonProperty("displayName") String displayName, + @JsonProperty("namespace") String namespace) { + super(); + this.displayName = displayName; + this.namespace = namespace; + } + + protected CreateMetadataTaxonomyRequestBody(Builder builder) { + super(); + this.key = builder.key; + this.displayName = builder.displayName; + this.namespace = builder.namespace; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getKey() { + return key; + } + + public String getDisplayName() { + return displayName; + } + + public String getNamespace() { + return namespace; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateMetadataTaxonomyRequestBody casted = (CreateMetadataTaxonomyRequestBody) o; + return Objects.equals(key, casted.key) + && Objects.equals(displayName, casted.displayName) + && Objects.equals(namespace, casted.namespace); + } + + @Override + public int hashCode() { + return Objects.hash(key, displayName, namespace); + } + + @Override + public String toString() { + return "CreateMetadataTaxonomyRequestBody{" + + "key='" + + key + + '\'' + + ", " + + "displayName='" + + displayName + + '\'' + + ", " + + "namespace='" + + namespace + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String key; + + protected final String displayName; + + protected final String namespace; + + public Builder(String displayName, String namespace) { + super(); + this.displayName = displayName; + this.namespace = namespace; + } + + public Builder key(String key) { + this.key = key; + return this; + } + + public CreateMetadataTaxonomyRequestBody build() { + return new CreateMetadataTaxonomyRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyHeaders.java new file mode 100644 index 000000000..894858888 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteMetadataTaxonomyHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public DeleteMetadataTaxonomyHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteMetadataTaxonomyHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteMetadataTaxonomyHeaders build() { + return new DeleteMetadataTaxonomyHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyLevelHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyLevelHeaders.java new file mode 100644 index 000000000..b2e81cfa4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyLevelHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteMetadataTaxonomyLevelHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public DeleteMetadataTaxonomyLevelHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteMetadataTaxonomyLevelHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteMetadataTaxonomyLevelHeaders build() { + return new DeleteMetadataTaxonomyLevelHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyNodeHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyNodeHeaders.java new file mode 100644 index 000000000..e8e4de6c5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyNodeHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteMetadataTaxonomyNodeHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public DeleteMetadataTaxonomyNodeHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteMetadataTaxonomyNodeHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteMetadataTaxonomyNodeHeaders build() { + return new DeleteMetadataTaxonomyNodeHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesHeaders.java new file mode 100644 index 000000000..db3c7475b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetMetadataTaxonomiesHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public GetMetadataTaxonomiesHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetMetadataTaxonomiesHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetMetadataTaxonomiesHeaders build() { + return new GetMetadataTaxonomiesHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesQueryParams.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesQueryParams.java new file mode 100644 index 000000000..472490489 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesQueryParams.java @@ -0,0 +1,51 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +public class GetMetadataTaxonomiesQueryParams { + + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

This requires `usemarker` to be set to `true`. + */ + public String marker; + + /** The maximum number of items to return per page. */ + public Long limit; + + public GetMetadataTaxonomiesQueryParams() {} + + protected GetMetadataTaxonomiesQueryParams(Builder builder) { + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected String marker; + + protected Long limit; + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetMetadataTaxonomiesQueryParams build() { + return new GetMetadataTaxonomiesQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyByKeyHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyByKeyHeaders.java new file mode 100644 index 000000000..8e96b5050 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyByKeyHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetMetadataTaxonomyByKeyHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public GetMetadataTaxonomyByKeyHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetMetadataTaxonomyByKeyHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetMetadataTaxonomyByKeyHeaders build() { + return new GetMetadataTaxonomyByKeyHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodeByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodeByIdHeaders.java new file mode 100644 index 000000000..48d751672 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodeByIdHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetMetadataTaxonomyNodeByIdHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public GetMetadataTaxonomyNodeByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetMetadataTaxonomyNodeByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetMetadataTaxonomyNodeByIdHeaders build() { + return new GetMetadataTaxonomyNodeByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesHeaders.java new file mode 100644 index 000000000..6c5b5b4d9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetMetadataTaxonomyNodesHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public GetMetadataTaxonomyNodesHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetMetadataTaxonomyNodesHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetMetadataTaxonomyNodesHeaders build() { + return new GetMetadataTaxonomyNodesHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesQueryParams.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesQueryParams.java new file mode 100644 index 000000000..455c9a272 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesQueryParams.java @@ -0,0 +1,140 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import java.util.List; + +public class GetMetadataTaxonomyNodesQueryParams { + + /** + * Filters results by taxonomy level. Multiple values can be provided. Results include nodes that + * match any of the specified values. + */ + public List level; + + /** + * Node identifier of a direct parent node. Multiple values can be provided. Results include nodes + * that match any of the specified values. + */ + public List parent; + + /** + * Node identifier of any ancestor node. Multiple values can be provided. Results include nodes + * that match any of the specified values. + */ + public List ancestor; + + /** Query text to search for the taxonomy nodes. */ + public String query; + + /** + * When set to `true` this provides the total number of nodes that matched the query. The response + * will compute counts of up to 10,000 elements. Defaults to `false`. + */ + public Boolean includeTotalResultCount; + + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

This requires `usemarker` to be set to `true`. + */ + public String marker; + + /** The maximum number of items to return per page. */ + public Long limit; + + public GetMetadataTaxonomyNodesQueryParams() {} + + protected GetMetadataTaxonomyNodesQueryParams(Builder builder) { + this.level = builder.level; + this.parent = builder.parent; + this.ancestor = builder.ancestor; + this.query = builder.query; + this.includeTotalResultCount = builder.includeTotalResultCount; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public List getLevel() { + return level; + } + + public List getParent() { + return parent; + } + + public List getAncestor() { + return ancestor; + } + + public String getQuery() { + return query; + } + + public Boolean getIncludeTotalResultCount() { + return includeTotalResultCount; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected List level; + + protected List parent; + + protected List ancestor; + + protected String query; + + protected Boolean includeTotalResultCount; + + protected String marker; + + protected Long limit; + + public Builder level(List level) { + this.level = level; + return this; + } + + public Builder parent(List parent) { + this.parent = parent; + return this; + } + + public Builder ancestor(List ancestor) { + this.ancestor = ancestor; + return this; + } + + public Builder query(String query) { + this.query = query; + return this; + } + + public Builder includeTotalResultCount(Boolean includeTotalResultCount) { + this.includeTotalResultCount = includeTotalResultCount; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetMetadataTaxonomyNodesQueryParams build() { + return new GetMetadataTaxonomyNodesQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsHeaders.java new file mode 100644 index 000000000..93a0bdb15 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetMetadataTemplateFieldOptionsHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public GetMetadataTemplateFieldOptionsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetMetadataTemplateFieldOptionsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetMetadataTemplateFieldOptionsHeaders build() { + return new GetMetadataTemplateFieldOptionsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsQueryParams.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsQueryParams.java new file mode 100644 index 000000000..db9d4eb26 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsQueryParams.java @@ -0,0 +1,159 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import java.util.List; + +public class GetMetadataTemplateFieldOptionsQueryParams { + + /** + * Filters results by taxonomy level. Multiple values can be provided. Results include nodes that + * match any of the specified values. + */ + public List level; + + /** + * Node identifier of a direct parent node. Multiple values can be provided. Results include nodes + * that match any of the specified values. + */ + public List parent; + + /** + * Node identifier of any ancestor node. Multiple values can be provided. Results include nodes + * that match any of the specified values. + */ + public List ancestor; + + /** Query text to search for the taxonomy nodes. */ + public String query; + + /** + * When set to `true` this provides the total number of nodes that matched the query. The response + * will compute counts of up to 10,000 elements. Defaults to `false`. + */ + public Boolean includeTotalResultCount; + + /** + * When set to `true`, this only returns valid selectable options for this template taxonomy + * field. Otherwise, it returns all taxonomy nodes, whether or not they are selectable. Defaults + * to `true`. + */ + public Boolean onlySelectableOptions; + + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

This requires `usemarker` to be set to `true`. + */ + public String marker; + + /** The maximum number of items to return per page. */ + public Long limit; + + public GetMetadataTemplateFieldOptionsQueryParams() {} + + protected GetMetadataTemplateFieldOptionsQueryParams(Builder builder) { + this.level = builder.level; + this.parent = builder.parent; + this.ancestor = builder.ancestor; + this.query = builder.query; + this.includeTotalResultCount = builder.includeTotalResultCount; + this.onlySelectableOptions = builder.onlySelectableOptions; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public List getLevel() { + return level; + } + + public List getParent() { + return parent; + } + + public List getAncestor() { + return ancestor; + } + + public String getQuery() { + return query; + } + + public Boolean getIncludeTotalResultCount() { + return includeTotalResultCount; + } + + public Boolean getOnlySelectableOptions() { + return onlySelectableOptions; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected List level; + + protected List parent; + + protected List ancestor; + + protected String query; + + protected Boolean includeTotalResultCount; + + protected Boolean onlySelectableOptions; + + protected String marker; + + protected Long limit; + + public Builder level(List level) { + this.level = level; + return this; + } + + public Builder parent(List parent) { + this.parent = parent; + return this; + } + + public Builder ancestor(List ancestor) { + this.ancestor = ancestor; + return this; + } + + public Builder query(String query) { + this.query = query; + return this; + } + + public Builder includeTotalResultCount(Boolean includeTotalResultCount) { + this.includeTotalResultCount = includeTotalResultCount; + return this; + } + + public Builder onlySelectableOptions(Boolean onlySelectableOptions) { + this.onlySelectableOptions = onlySelectableOptions; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetMetadataTemplateFieldOptionsQueryParams build() { + return new GetMetadataTemplateFieldOptionsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsScope.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsScope.java new file mode 100644 index 000000000..1e6b3e0f8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsScope.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +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 GetMetadataTemplateFieldOptionsScope implements Valuable { + GLOBAL("global"), + ENTERPRISE("enterprise"); + + private final String value; + + GetMetadataTemplateFieldOptionsScope(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetMetadataTemplateFieldOptionsScopeDeserializer + extends JsonDeserializer> { + + public GetMetadataTemplateFieldOptionsScopeDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetMetadataTemplateFieldOptionsScope.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetMetadataTemplateFieldOptionsScopeSerializer + extends JsonSerializer> { + + public GetMetadataTemplateFieldOptionsScopeSerializer() { + 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/managers/metadatataxonomies/MetadataTaxonomiesManager.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java new file mode 100644 index 000000000..c4bb657b4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java @@ -0,0 +1,985 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.metadatataxonomies.MetadataTaxonomies; +import com.box.sdkgen.schemas.metadatataxonomy.MetadataTaxonomy; +import com.box.sdkgen.schemas.metadatataxonomylevel.MetadataTaxonomyLevel; +import com.box.sdkgen.schemas.metadatataxonomylevels.MetadataTaxonomyLevels; +import com.box.sdkgen.schemas.metadatataxonomynode.MetadataTaxonomyNode; +import com.box.sdkgen.schemas.metadatataxonomynodes.MetadataTaxonomyNodes; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.List; +import java.util.Map; + +public class MetadataTaxonomiesManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public MetadataTaxonomiesManager() { + this.networkSession = new NetworkSession(); + } + + protected MetadataTaxonomiesManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + /** + * Creates a new metadata taxonomy that can be used in metadata templates. + * + * @param requestBody Request body of createMetadataTaxonomy method + */ + public MetadataTaxonomy createMetadataTaxonomy(CreateMetadataTaxonomyRequestBody requestBody) { + return createMetadataTaxonomy(requestBody, new CreateMetadataTaxonomyHeaders()); + } + + /** + * Creates a new metadata taxonomy that can be used in metadata templates. + * + * @param requestBody Request body of createMetadataTaxonomy method + * @param headers Headers of createMetadataTaxonomy method + */ + public MetadataTaxonomy createMetadataTaxonomy( + CreateMetadataTaxonomyRequestBody requestBody, CreateMetadataTaxonomyHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomy.class); + } + + /** + * Used to retrieve all metadata taxonomies in a namespace. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + */ + public MetadataTaxonomies getMetadataTaxonomies(String namespace) { + return getMetadataTaxonomies( + namespace, new GetMetadataTaxonomiesQueryParams(), new GetMetadataTaxonomiesHeaders()); + } + + /** + * Used to retrieve all metadata taxonomies in a namespace. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param queryParams Query parameters of getMetadataTaxonomies method + */ + public MetadataTaxonomies getMetadataTaxonomies( + String namespace, GetMetadataTaxonomiesQueryParams queryParams) { + return getMetadataTaxonomies(namespace, queryParams, new GetMetadataTaxonomiesHeaders()); + } + + /** + * Used to retrieve all metadata taxonomies in a namespace. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param headers Headers of getMetadataTaxonomies method + */ + public MetadataTaxonomies getMetadataTaxonomies( + String namespace, GetMetadataTaxonomiesHeaders headers) { + return getMetadataTaxonomies(namespace, new GetMetadataTaxonomiesQueryParams(), headers); + } + + /** + * Used to retrieve all metadata taxonomies in a namespace. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param queryParams Query parameters of getMetadataTaxonomies method + * @param headers Headers of getMetadataTaxonomies method + */ + public MetadataTaxonomies getMetadataTaxonomies( + String namespace, + GetMetadataTaxonomiesQueryParams queryParams, + GetMetadataTaxonomiesHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomies.class); + } + + /** + * Used to retrieve a metadata taxonomy by taxonomy key. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + */ + public MetadataTaxonomy getMetadataTaxonomyByKey(String namespace, String taxonomyKey) { + return getMetadataTaxonomyByKey(namespace, taxonomyKey, new GetMetadataTaxonomyByKeyHeaders()); + } + + /** + * Used to retrieve a metadata taxonomy by taxonomy key. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param headers Headers of getMetadataTaxonomyByKey method + */ + public MetadataTaxonomy getMetadataTaxonomyByKey( + String namespace, String taxonomyKey, GetMetadataTaxonomyByKeyHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomy.class); + } + + /** + * Updates an existing metadata taxonomy. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param requestBody Request body of updateMetadataTaxonomy method + */ + public MetadataTaxonomy updateMetadataTaxonomy( + String namespace, String taxonomyKey, UpdateMetadataTaxonomyRequestBody requestBody) { + return updateMetadataTaxonomy( + namespace, taxonomyKey, requestBody, new UpdateMetadataTaxonomyHeaders()); + } + + /** + * Updates an existing metadata taxonomy. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param requestBody Request body of updateMetadataTaxonomy method + * @param headers Headers of updateMetadataTaxonomy method + */ + public MetadataTaxonomy updateMetadataTaxonomy( + String namespace, + String taxonomyKey, + UpdateMetadataTaxonomyRequestBody requestBody, + UpdateMetadataTaxonomyHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey)), + "PATCH") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomy.class); + } + + /** + * Delete a metadata taxonomy. This deletion is permanent and cannot be reverted. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + */ + public void deleteMetadataTaxonomy(String namespace, String taxonomyKey) { + deleteMetadataTaxonomy(namespace, taxonomyKey, new DeleteMetadataTaxonomyHeaders()); + } + + /** + * Delete a metadata taxonomy. This deletion is permanent and cannot be reverted. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param headers Headers of deleteMetadataTaxonomy method + */ + public void deleteMetadataTaxonomy( + String namespace, String taxonomyKey, DeleteMetadataTaxonomyHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + /** + * Creates new metadata taxonomy levels. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param requestBody Request body of createMetadataTaxonomyLevel method + */ + public MetadataTaxonomyLevels createMetadataTaxonomyLevel( + String namespace, String taxonomyKey, List requestBody) { + return createMetadataTaxonomyLevel( + namespace, taxonomyKey, requestBody, new CreateMetadataTaxonomyLevelHeaders()); + } + + /** + * Creates new metadata taxonomy levels. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param requestBody Request body of createMetadataTaxonomyLevel method + * @param headers Headers of createMetadataTaxonomyLevel method + */ + public MetadataTaxonomyLevels createMetadataTaxonomyLevel( + String namespace, + String taxonomyKey, + List requestBody, + CreateMetadataTaxonomyLevelHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey), + "/levels"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomyLevels.class); + } + + /** + * Updates an existing metadata taxonomy level. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param levelIndex The index of the metadata taxonomy level. Example: 1 + * @param requestBody Request body of patchMetadataTaxonomiesIdIdLevelsId method + */ + public MetadataTaxonomyLevel patchMetadataTaxonomiesIdIdLevelsId( + String namespace, + String taxonomyKey, + long levelIndex, + PatchMetadataTaxonomiesIdIdLevelsIdRequestBody requestBody) { + return patchMetadataTaxonomiesIdIdLevelsId( + namespace, + taxonomyKey, + levelIndex, + requestBody, + new PatchMetadataTaxonomiesIdIdLevelsIdHeaders()); + } + + /** + * Updates an existing metadata taxonomy level. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param levelIndex The index of the metadata taxonomy level. Example: 1 + * @param requestBody Request body of patchMetadataTaxonomiesIdIdLevelsId method + * @param headers Headers of patchMetadataTaxonomiesIdIdLevelsId method + */ + public MetadataTaxonomyLevel patchMetadataTaxonomiesIdIdLevelsId( + String namespace, + String taxonomyKey, + long levelIndex, + PatchMetadataTaxonomiesIdIdLevelsIdRequestBody requestBody, + PatchMetadataTaxonomiesIdIdLevelsIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey), + "/levels/", + convertToString(levelIndex)), + "PATCH") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomyLevel.class); + } + + /** + * Creates a new metadata taxonomy level and appends it to the existing levels. If there are no + * levels defined yet, this will create the first level. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param requestBody Request body of addMetadataTaxonomyLevel method + */ + public MetadataTaxonomyLevels addMetadataTaxonomyLevel( + String namespace, String taxonomyKey, AddMetadataTaxonomyLevelRequestBody requestBody) { + return addMetadataTaxonomyLevel( + namespace, taxonomyKey, requestBody, new AddMetadataTaxonomyLevelHeaders()); + } + + /** + * Creates a new metadata taxonomy level and appends it to the existing levels. If there are no + * levels defined yet, this will create the first level. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param requestBody Request body of addMetadataTaxonomyLevel method + * @param headers Headers of addMetadataTaxonomyLevel method + */ + public MetadataTaxonomyLevels addMetadataTaxonomyLevel( + String namespace, + String taxonomyKey, + AddMetadataTaxonomyLevelRequestBody requestBody, + AddMetadataTaxonomyLevelHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey), + "/levels:append"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomyLevels.class); + } + + /** + * Deletes the last level of the metadata taxonomy. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + */ + public MetadataTaxonomyLevels deleteMetadataTaxonomyLevel(String namespace, String taxonomyKey) { + return deleteMetadataTaxonomyLevel( + namespace, taxonomyKey, new DeleteMetadataTaxonomyLevelHeaders()); + } + + /** + * Deletes the last level of the metadata taxonomy. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param headers Headers of deleteMetadataTaxonomyLevel method + */ + public MetadataTaxonomyLevels deleteMetadataTaxonomyLevel( + String namespace, String taxonomyKey, DeleteMetadataTaxonomyLevelHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey), + "/levels:trim"), + "POST") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomyLevels.class); + } + + /** + * Used to retrieve metadata taxonomy nodes based on the parameters specified. Results are sorted + * in lexicographic order unless a `query` parameter is passed. With a `query` parameter + * specified, results are sorted in order of relevance. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + */ + public MetadataTaxonomyNodes getMetadataTaxonomyNodes(String namespace, String taxonomyKey) { + return getMetadataTaxonomyNodes( + namespace, + taxonomyKey, + new GetMetadataTaxonomyNodesQueryParams(), + new GetMetadataTaxonomyNodesHeaders()); + } + + /** + * Used to retrieve metadata taxonomy nodes based on the parameters specified. Results are sorted + * in lexicographic order unless a `query` parameter is passed. With a `query` parameter + * specified, results are sorted in order of relevance. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param queryParams Query parameters of getMetadataTaxonomyNodes method + */ + public MetadataTaxonomyNodes getMetadataTaxonomyNodes( + String namespace, String taxonomyKey, GetMetadataTaxonomyNodesQueryParams queryParams) { + return getMetadataTaxonomyNodes( + namespace, taxonomyKey, queryParams, new GetMetadataTaxonomyNodesHeaders()); + } + + /** + * Used to retrieve metadata taxonomy nodes based on the parameters specified. Results are sorted + * in lexicographic order unless a `query` parameter is passed. With a `query` parameter + * specified, results are sorted in order of relevance. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param headers Headers of getMetadataTaxonomyNodes method + */ + public MetadataTaxonomyNodes getMetadataTaxonomyNodes( + String namespace, String taxonomyKey, GetMetadataTaxonomyNodesHeaders headers) { + return getMetadataTaxonomyNodes( + namespace, taxonomyKey, new GetMetadataTaxonomyNodesQueryParams(), headers); + } + + /** + * Used to retrieve metadata taxonomy nodes based on the parameters specified. Results are sorted + * in lexicographic order unless a `query` parameter is passed. With a `query` parameter + * specified, results are sorted in order of relevance. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param queryParams Query parameters of getMetadataTaxonomyNodes method + * @param headers Headers of getMetadataTaxonomyNodes method + */ + public MetadataTaxonomyNodes getMetadataTaxonomyNodes( + String namespace, + String taxonomyKey, + GetMetadataTaxonomyNodesQueryParams queryParams, + GetMetadataTaxonomyNodesHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("level", convertToString(queryParams.getLevel())), + entryOf("parent", convertToString(queryParams.getParent())), + entryOf("ancestor", convertToString(queryParams.getAncestor())), + entryOf("query", convertToString(queryParams.getQuery())), + entryOf( + "include-total-result-count", + convertToString(queryParams.getIncludeTotalResultCount())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey), + "/nodes"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomyNodes.class); + } + + /** + * Creates a new metadata taxonomy node. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param requestBody Request body of createMetadataTaxonomyNode method + */ + public MetadataTaxonomyNode createMetadataTaxonomyNode( + String namespace, String taxonomyKey, CreateMetadataTaxonomyNodeRequestBody requestBody) { + return createMetadataTaxonomyNode( + namespace, taxonomyKey, requestBody, new CreateMetadataTaxonomyNodeHeaders()); + } + + /** + * Creates a new metadata taxonomy node. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param requestBody Request body of createMetadataTaxonomyNode method + * @param headers Headers of createMetadataTaxonomyNode method + */ + public MetadataTaxonomyNode createMetadataTaxonomyNode( + String namespace, + String taxonomyKey, + CreateMetadataTaxonomyNodeRequestBody requestBody, + CreateMetadataTaxonomyNodeHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey), + "/nodes"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomyNode.class); + } + + /** + * Retrieves a metadata taxonomy node by its identifier. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param nodeId The identifier of the metadata taxonomy node. Example: + * "14d3d433-c77f-49c5-b146-9dea370f6e32" + */ + public MetadataTaxonomyNode getMetadataTaxonomyNodeById( + String namespace, String taxonomyKey, String nodeId) { + return getMetadataTaxonomyNodeById( + namespace, taxonomyKey, nodeId, new GetMetadataTaxonomyNodeByIdHeaders()); + } + + /** + * Retrieves a metadata taxonomy node by its identifier. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param nodeId The identifier of the metadata taxonomy node. Example: + * "14d3d433-c77f-49c5-b146-9dea370f6e32" + * @param headers Headers of getMetadataTaxonomyNodeById method + */ + public MetadataTaxonomyNode getMetadataTaxonomyNodeById( + String namespace, + String taxonomyKey, + String nodeId, + GetMetadataTaxonomyNodeByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey), + "/nodes/", + convertToString(nodeId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomyNode.class); + } + + /** + * Updates an existing metadata taxonomy node. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param nodeId The identifier of the metadata taxonomy node. Example: + * "14d3d433-c77f-49c5-b146-9dea370f6e32" + */ + public MetadataTaxonomyNode updateMetadataTaxonomyNode( + String namespace, String taxonomyKey, String nodeId) { + return updateMetadataTaxonomyNode( + namespace, + taxonomyKey, + nodeId, + new UpdateMetadataTaxonomyNodeRequestBody(), + new UpdateMetadataTaxonomyNodeHeaders()); + } + + /** + * Updates an existing metadata taxonomy node. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param nodeId The identifier of the metadata taxonomy node. Example: + * "14d3d433-c77f-49c5-b146-9dea370f6e32" + * @param requestBody Request body of updateMetadataTaxonomyNode method + */ + public MetadataTaxonomyNode updateMetadataTaxonomyNode( + String namespace, + String taxonomyKey, + String nodeId, + UpdateMetadataTaxonomyNodeRequestBody requestBody) { + return updateMetadataTaxonomyNode( + namespace, taxonomyKey, nodeId, requestBody, new UpdateMetadataTaxonomyNodeHeaders()); + } + + /** + * Updates an existing metadata taxonomy node. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param nodeId The identifier of the metadata taxonomy node. Example: + * "14d3d433-c77f-49c5-b146-9dea370f6e32" + * @param headers Headers of updateMetadataTaxonomyNode method + */ + public MetadataTaxonomyNode updateMetadataTaxonomyNode( + String namespace, + String taxonomyKey, + String nodeId, + UpdateMetadataTaxonomyNodeHeaders headers) { + return updateMetadataTaxonomyNode( + namespace, taxonomyKey, nodeId, new UpdateMetadataTaxonomyNodeRequestBody(), headers); + } + + /** + * Updates an existing metadata taxonomy node. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param nodeId The identifier of the metadata taxonomy node. Example: + * "14d3d433-c77f-49c5-b146-9dea370f6e32" + * @param requestBody Request body of updateMetadataTaxonomyNode method + * @param headers Headers of updateMetadataTaxonomyNode method + */ + public MetadataTaxonomyNode updateMetadataTaxonomyNode( + String namespace, + String taxonomyKey, + String nodeId, + UpdateMetadataTaxonomyNodeRequestBody requestBody, + UpdateMetadataTaxonomyNodeHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey), + "/nodes/", + convertToString(nodeId)), + "PATCH") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomyNode.class); + } + + /** + * Delete a metadata taxonomy node. This deletion is permanent and cannot be reverted. Only + * metadata taxonomy nodes without any children can be deleted. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param nodeId The identifier of the metadata taxonomy node. Example: + * "14d3d433-c77f-49c5-b146-9dea370f6e32" + */ + public void deleteMetadataTaxonomyNode(String namespace, String taxonomyKey, String nodeId) { + deleteMetadataTaxonomyNode( + namespace, taxonomyKey, nodeId, new DeleteMetadataTaxonomyNodeHeaders()); + } + + /** + * Delete a metadata taxonomy node. This deletion is permanent and cannot be reverted. Only + * metadata taxonomy nodes without any children can be deleted. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param nodeId The identifier of the metadata taxonomy node. Example: + * "14d3d433-c77f-49c5-b146-9dea370f6e32" + * @param headers Headers of deleteMetadataTaxonomyNode method + */ + public void deleteMetadataTaxonomyNode( + String namespace, + String taxonomyKey, + String nodeId, + DeleteMetadataTaxonomyNodeHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey), + "/nodes/", + convertToString(nodeId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + /** + * Used to retrieve metadata taxonomy nodes which are available for the taxonomy field based on + * its configuration and the parameters specified. Results are sorted in lexicographic order + * unless a `query` parameter is passed. With a `query` parameter specified, results are sorted in + * order of relevance. + * + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param fieldKey The key of the metadata taxonomy field in the template. Example: "geography" + */ + public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( + GetMetadataTemplateFieldOptionsScope scope, String templateKey, String fieldKey) { + return getMetadataTemplateFieldOptions( + scope, + templateKey, + fieldKey, + new GetMetadataTemplateFieldOptionsQueryParams(), + new GetMetadataTemplateFieldOptionsHeaders()); + } + + /** + * Used to retrieve metadata taxonomy nodes which are available for the taxonomy field based on + * its configuration and the parameters specified. Results are sorted in lexicographic order + * unless a `query` parameter is passed. With a `query` parameter specified, results are sorted in + * order of relevance. + * + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param fieldKey The key of the metadata taxonomy field in the template. Example: "geography" + * @param queryParams Query parameters of getMetadataTemplateFieldOptions method + */ + public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( + GetMetadataTemplateFieldOptionsScope scope, + String templateKey, + String fieldKey, + GetMetadataTemplateFieldOptionsQueryParams queryParams) { + return getMetadataTemplateFieldOptions( + scope, templateKey, fieldKey, queryParams, new GetMetadataTemplateFieldOptionsHeaders()); + } + + /** + * Used to retrieve metadata taxonomy nodes which are available for the taxonomy field based on + * its configuration and the parameters specified. Results are sorted in lexicographic order + * unless a `query` parameter is passed. With a `query` parameter specified, results are sorted in + * order of relevance. + * + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param fieldKey The key of the metadata taxonomy field in the template. Example: "geography" + * @param headers Headers of getMetadataTemplateFieldOptions method + */ + public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( + GetMetadataTemplateFieldOptionsScope scope, + String templateKey, + String fieldKey, + GetMetadataTemplateFieldOptionsHeaders headers) { + return getMetadataTemplateFieldOptions( + scope, templateKey, fieldKey, new GetMetadataTemplateFieldOptionsQueryParams(), headers); + } + + /** + * Used to retrieve metadata taxonomy nodes which are available for the taxonomy field based on + * its configuration and the parameters specified. Results are sorted in lexicographic order + * unless a `query` parameter is passed. With a `query` parameter specified, results are sorted in + * order of relevance. + * + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param fieldKey The key of the metadata taxonomy field in the template. Example: "geography" + * @param queryParams Query parameters of getMetadataTemplateFieldOptions method + * @param headers Headers of getMetadataTemplateFieldOptions method + */ + public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( + GetMetadataTemplateFieldOptionsScope scope, + String templateKey, + String fieldKey, + GetMetadataTemplateFieldOptionsQueryParams queryParams, + GetMetadataTemplateFieldOptionsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("level", convertToString(queryParams.getLevel())), + entryOf("parent", convertToString(queryParams.getParent())), + entryOf("ancestor", convertToString(queryParams.getAncestor())), + entryOf("query", convertToString(queryParams.getQuery())), + entryOf( + "include-total-result-count", + convertToString(queryParams.getIncludeTotalResultCount())), + entryOf( + "only-selectable-options", + convertToString(queryParams.getOnlySelectableOptions())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_templates/", + convertToString(scope), + "/", + convertToString(templateKey), + "/fields/", + convertToString(fieldKey), + "/options"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomyNodes.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public MetadataTaxonomiesManager build() { + return new MetadataTaxonomiesManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdHeaders.java new file mode 100644 index 000000000..ec8f7eba3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class PatchMetadataTaxonomiesIdIdLevelsIdHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public PatchMetadataTaxonomiesIdIdLevelsIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected PatchMetadataTaxonomiesIdIdLevelsIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public PatchMetadataTaxonomiesIdIdLevelsIdHeaders build() { + return new PatchMetadataTaxonomiesIdIdLevelsIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdRequestBody.java new file mode 100644 index 000000000..abea43114 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdRequestBody.java @@ -0,0 +1,91 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class PatchMetadataTaxonomiesIdIdLevelsIdRequestBody extends SerializableObject { + + /** The display name of the taxonomy level. */ + protected final String displayName; + + /** The description of the taxonomy level. */ + protected String description; + + public PatchMetadataTaxonomiesIdIdLevelsIdRequestBody( + @JsonProperty("displayName") String displayName) { + super(); + this.displayName = displayName; + } + + protected PatchMetadataTaxonomiesIdIdLevelsIdRequestBody(Builder builder) { + super(); + this.displayName = builder.displayName; + this.description = builder.description; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getDisplayName() { + return displayName; + } + + public String getDescription() { + return description; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PatchMetadataTaxonomiesIdIdLevelsIdRequestBody casted = + (PatchMetadataTaxonomiesIdIdLevelsIdRequestBody) o; + return Objects.equals(displayName, casted.displayName) + && Objects.equals(description, casted.description); + } + + @Override + public int hashCode() { + return Objects.hash(displayName, description); + } + + @Override + public String toString() { + return "PatchMetadataTaxonomiesIdIdLevelsIdRequestBody{" + + "displayName='" + + displayName + + '\'' + + ", " + + "description='" + + description + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String displayName; + + protected String description; + + public Builder(String displayName) { + super(); + this.displayName = displayName; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public PatchMetadataTaxonomiesIdIdLevelsIdRequestBody build() { + return new PatchMetadataTaxonomiesIdIdLevelsIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyHeaders.java new file mode 100644 index 000000000..3b007ed71 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateMetadataTaxonomyHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public UpdateMetadataTaxonomyHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateMetadataTaxonomyHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateMetadataTaxonomyHeaders build() { + return new UpdateMetadataTaxonomyHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeHeaders.java new file mode 100644 index 000000000..a5bb0313c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateMetadataTaxonomyNodeHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public UpdateMetadataTaxonomyNodeHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateMetadataTaxonomyNodeHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateMetadataTaxonomyNodeHeaders build() { + return new UpdateMetadataTaxonomyNodeHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeRequestBody.java new file mode 100644 index 000000000..d112544b4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeRequestBody.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateMetadataTaxonomyNodeRequestBody extends SerializableObject { + + /** The display name of the taxonomy node. */ + protected String displayName; + + public UpdateMetadataTaxonomyNodeRequestBody() { + super(); + } + + protected UpdateMetadataTaxonomyNodeRequestBody(Builder builder) { + super(); + this.displayName = builder.displayName; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getDisplayName() { + return displayName; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateMetadataTaxonomyNodeRequestBody casted = (UpdateMetadataTaxonomyNodeRequestBody) o; + return Objects.equals(displayName, casted.displayName); + } + + @Override + public int hashCode() { + return Objects.hash(displayName); + } + + @Override + public String toString() { + return "UpdateMetadataTaxonomyNodeRequestBody{" + "displayName='" + displayName + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String displayName; + + public Builder displayName(String displayName) { + this.displayName = displayName; + return this; + } + + public UpdateMetadataTaxonomyNodeRequestBody build() { + return new UpdateMetadataTaxonomyNodeRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyRequestBody.java new file mode 100644 index 000000000..b40189c1c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyRequestBody.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateMetadataTaxonomyRequestBody extends SerializableObject { + + /** The display name of the taxonomy. */ + protected final String displayName; + + public UpdateMetadataTaxonomyRequestBody(@JsonProperty("displayName") String displayName) { + super(); + this.displayName = displayName; + } + + public String getDisplayName() { + return displayName; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateMetadataTaxonomyRequestBody casted = (UpdateMetadataTaxonomyRequestBody) o; + return Objects.equals(displayName, casted.displayName); + } + + @Override + public int hashCode() { + return Objects.hash(displayName); + } + + @Override + public String toString() { + return "UpdateMetadataTaxonomyRequestBody{" + "displayName='" + displayName + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java index 985f90911..b72968c5e 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java @@ -15,10 +15,13 @@ public class CreateMetadataTemplateRequestBodyFieldsField extends SerializableOb /** * The type of field. The basic fields are a `string` field for text, a `float` field for numbers, - * and a `date` fields to present the user with a date-time picker. + * and a `date` field to present the user with a date-time picker. * *

Additionally, metadata templates support an `enum` field for a basic list of items, and ` * multiSelect` field for a similar list of items where the user can select more than one value. + * + *

Metadata taxonomies are also supported as a `taxonomy` field type with a specific set of + * additional properties, which describe its structure. */ @JsonDeserialize( using = @@ -54,6 +57,24 @@ public class CreateMetadataTemplateRequestBodyFieldsField extends SerializableOb */ protected List options; + /** + * The unique key of the metadata taxonomy to use for this taxonomy field. This property is + * required when the field `type` is set to `taxonomy`. + */ + protected String taxonomyKey; + + /** + * The namespace of the metadata taxonomy to use for this taxonomy field. This property is + * required when the field `type` is set to `taxonomy`. + */ + protected String namespace; + + /** + * An object defining additional rules for the options of the taxonomy field. This property is + * required when the field `type` is set to `taxonomy`. + */ + protected CreateMetadataTemplateRequestBodyFieldsOptionsRulesField optionsRules; + public CreateMetadataTemplateRequestBodyFieldsField( CreateMetadataTemplateRequestBodyFieldsTypeField type, String key, String displayName) { super(); @@ -80,6 +101,9 @@ protected CreateMetadataTemplateRequestBodyFieldsField(Builder builder) { this.description = builder.description; this.hidden = builder.hidden; this.options = builder.options; + this.taxonomyKey = builder.taxonomyKey; + this.namespace = builder.namespace; + this.optionsRules = builder.optionsRules; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -107,6 +131,18 @@ public List getOptions() { return options; } + public String getTaxonomyKey() { + return taxonomyKey; + } + + public String getNamespace() { + return namespace; + } + + public CreateMetadataTemplateRequestBodyFieldsOptionsRulesField getOptionsRules() { + return optionsRules; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -122,12 +158,16 @@ public boolean equals(Object o) { && Objects.equals(displayName, casted.displayName) && Objects.equals(description, casted.description) && Objects.equals(hidden, casted.hidden) - && Objects.equals(options, casted.options); + && Objects.equals(options, casted.options) + && Objects.equals(taxonomyKey, casted.taxonomyKey) + && Objects.equals(namespace, casted.namespace) + && Objects.equals(optionsRules, casted.optionsRules); } @Override public int hashCode() { - return Objects.hash(type, key, displayName, description, hidden, options); + return Objects.hash( + type, key, displayName, description, hidden, options, taxonomyKey, namespace, optionsRules); } @Override @@ -156,6 +196,18 @@ public String toString() { + "options='" + options + '\'' + + ", " + + "taxonomyKey='" + + taxonomyKey + + '\'' + + ", " + + "namespace='" + + namespace + + '\'' + + ", " + + "optionsRules='" + + optionsRules + + '\'' + "}"; } @@ -173,6 +225,12 @@ public static class Builder extends NullableFieldTracker { protected List options; + protected String taxonomyKey; + + protected String namespace; + + protected CreateMetadataTemplateRequestBodyFieldsOptionsRulesField optionsRules; + public Builder( CreateMetadataTemplateRequestBodyFieldsTypeField type, String key, String displayName) { super(); @@ -206,6 +264,22 @@ public Builder options(List return this; } + public Builder taxonomyKey(String taxonomyKey) { + this.taxonomyKey = taxonomyKey; + return this; + } + + public Builder namespace(String namespace) { + this.namespace = namespace; + return this; + } + + public Builder optionsRules( + CreateMetadataTemplateRequestBodyFieldsOptionsRulesField optionsRules) { + this.optionsRules = optionsRules; + return this; + } + public CreateMetadataTemplateRequestBodyFieldsField build() { return new CreateMetadataTemplateRequestBodyFieldsField(this); } diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsOptionsRulesField.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsOptionsRulesField.java new file mode 100644 index 000000000..2df9946a1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsOptionsRulesField.java @@ -0,0 +1,89 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateMetadataTemplateRequestBodyFieldsOptionsRulesField extends SerializableObject { + + /** Whether to allow users to select multiple values. */ + protected Boolean multiSelect; + + /** An array of integers defining which levels of the taxonomy are selectable by users. */ + protected List selectableLevels; + + public CreateMetadataTemplateRequestBodyFieldsOptionsRulesField() { + super(); + } + + protected CreateMetadataTemplateRequestBodyFieldsOptionsRulesField(Builder builder) { + super(); + this.multiSelect = builder.multiSelect; + this.selectableLevels = builder.selectableLevels; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getMultiSelect() { + return multiSelect; + } + + public List getSelectableLevels() { + return selectableLevels; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateMetadataTemplateRequestBodyFieldsOptionsRulesField casted = + (CreateMetadataTemplateRequestBodyFieldsOptionsRulesField) o; + return Objects.equals(multiSelect, casted.multiSelect) + && Objects.equals(selectableLevels, casted.selectableLevels); + } + + @Override + public int hashCode() { + return Objects.hash(multiSelect, selectableLevels); + } + + @Override + public String toString() { + return "CreateMetadataTemplateRequestBodyFieldsOptionsRulesField{" + + "multiSelect='" + + multiSelect + + '\'' + + ", " + + "selectableLevels='" + + selectableLevels + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean multiSelect; + + protected List selectableLevels; + + public Builder multiSelect(Boolean multiSelect) { + this.multiSelect = multiSelect; + return this; + } + + public Builder selectableLevels(List selectableLevels) { + this.selectableLevels = selectableLevels; + return this; + } + + public CreateMetadataTemplateRequestBodyFieldsOptionsRulesField build() { + return new CreateMetadataTemplateRequestBodyFieldsOptionsRulesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsTypeField.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsTypeField.java index b4d3bc111..851e8b110 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsTypeField.java @@ -16,7 +16,8 @@ public enum CreateMetadataTemplateRequestBodyFieldsTypeField implements Valuable FLOAT("float"), DATE("date"), ENUM("enum"), - MULTISELECT("multiSelect"); + MULTISELECT("multiSelect"), + TAXONOMY("taxonomy"); private final String value; diff --git a/src/main/java/com/box/sdkgen/schemas/metadatataxonomies/MetadataTaxonomies.java b/src/main/java/com/box/sdkgen/schemas/metadatataxonomies/MetadataTaxonomies.java new file mode 100644 index 000000000..1288dcd71 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatataxonomies/MetadataTaxonomies.java @@ -0,0 +1,141 @@ +package com.box.sdkgen.schemas.metadatataxonomies; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.metadatataxonomy.MetadataTaxonomy; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** A list of metadata taxonomies. */ +@JsonFilter("nullablePropertyFilter") +public class MetadataTaxonomies extends SerializableObject { + + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ + protected Long limit; + + /** The marker for the start of the next page of results. */ + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + /** The marker for the start of the previous page of results. */ + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + /** A list of metadata taxonomies. */ + protected List entries; + + public MetadataTaxonomies() { + super(); + } + + protected MetadataTaxonomies(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTaxonomies casted = (MetadataTaxonomies) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "MetadataTaxonomies{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public MetadataTaxonomies build() { + return new MetadataTaxonomies(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatataxonomy/MetadataTaxonomy.java b/src/main/java/com/box/sdkgen/schemas/metadatataxonomy/MetadataTaxonomy.java new file mode 100644 index 000000000..58cfad5cf --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatataxonomy/MetadataTaxonomy.java @@ -0,0 +1,152 @@ +package com.box.sdkgen.schemas.metadatataxonomy; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.metadatataxonomylevel.MetadataTaxonomyLevel; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** A taxonomy object for metadata that can be used in metadata templates. */ +@JsonFilter("nullablePropertyFilter") +public class MetadataTaxonomy extends SerializableObject { + + /** A unique identifier of the metadata taxonomy. */ + protected final String id; + + /** + * A unique identifier of the metadata taxonomy. The identifier must be unique within the + * namespace to which it belongs. + */ + protected String key; + + /** The display name of the metadata taxonomy. This can be seen in the Box web app. */ + protected final String displayName; + + /** A namespace that the metadata taxonomy is associated with. */ + protected final String namespace; + + /** Levels of the metadata taxonomy. */ + protected List levels; + + public MetadataTaxonomy( + @JsonProperty("id") String id, + @JsonProperty("displayName") String displayName, + @JsonProperty("namespace") String namespace) { + super(); + this.id = id; + this.displayName = displayName; + this.namespace = namespace; + } + + protected MetadataTaxonomy(Builder builder) { + super(); + this.id = builder.id; + this.key = builder.key; + this.displayName = builder.displayName; + this.namespace = builder.namespace; + this.levels = builder.levels; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getKey() { + return key; + } + + public String getDisplayName() { + return displayName; + } + + public String getNamespace() { + return namespace; + } + + public List getLevels() { + return levels; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTaxonomy casted = (MetadataTaxonomy) o; + return Objects.equals(id, casted.id) + && Objects.equals(key, casted.key) + && Objects.equals(displayName, casted.displayName) + && Objects.equals(namespace, casted.namespace) + && Objects.equals(levels, casted.levels); + } + + @Override + public int hashCode() { + return Objects.hash(id, key, displayName, namespace, levels); + } + + @Override + public String toString() { + return "MetadataTaxonomy{" + + "id='" + + id + + '\'' + + ", " + + "key='" + + key + + '\'' + + ", " + + "displayName='" + + displayName + + '\'' + + ", " + + "namespace='" + + namespace + + '\'' + + ", " + + "levels='" + + levels + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected String key; + + protected final String displayName; + + protected final String namespace; + + protected List levels; + + public Builder(String id, String displayName, String namespace) { + super(); + this.id = id; + this.displayName = displayName; + this.namespace = namespace; + } + + public Builder key(String key) { + this.key = key; + return this; + } + + public Builder levels(List levels) { + this.levels = levels; + return this; + } + + public MetadataTaxonomy build() { + return new MetadataTaxonomy(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatataxonomyancestor/MetadataTaxonomyAncestor.java b/src/main/java/com/box/sdkgen/schemas/metadatataxonomyancestor/MetadataTaxonomyAncestor.java new file mode 100644 index 000000000..429f3facb --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatataxonomyancestor/MetadataTaxonomyAncestor.java @@ -0,0 +1,108 @@ +package com.box.sdkgen.schemas.metadatataxonomyancestor; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +/** A node object in the metadata taxonomy that represents an ancestor. */ +@JsonFilter("nullablePropertyFilter") +public class MetadataTaxonomyAncestor extends SerializableObject { + + /** A unique identifier of the metadata taxonomy node. */ + protected String id; + + /** The display name of the metadata taxonomy node. */ + protected String displayName; + + /** An index of the level to which the node belongs. */ + protected Long level; + + public MetadataTaxonomyAncestor() { + super(); + } + + protected MetadataTaxonomyAncestor(Builder builder) { + super(); + this.id = builder.id; + this.displayName = builder.displayName; + this.level = builder.level; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getDisplayName() { + return displayName; + } + + public Long getLevel() { + return level; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTaxonomyAncestor casted = (MetadataTaxonomyAncestor) o; + return Objects.equals(id, casted.id) + && Objects.equals(displayName, casted.displayName) + && Objects.equals(level, casted.level); + } + + @Override + public int hashCode() { + return Objects.hash(id, displayName, level); + } + + @Override + public String toString() { + return "MetadataTaxonomyAncestor{" + + "id='" + + id + + '\'' + + ", " + + "displayName='" + + displayName + + '\'' + + ", " + + "level='" + + level + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected String displayName; + + protected Long level; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder displayName(String displayName) { + this.displayName = displayName; + return this; + } + + public Builder level(Long level) { + this.level = level; + return this; + } + + public MetadataTaxonomyAncestor build() { + return new MetadataTaxonomyAncestor(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatataxonomylevel/MetadataTaxonomyLevel.java b/src/main/java/com/box/sdkgen/schemas/metadatataxonomylevel/MetadataTaxonomyLevel.java new file mode 100644 index 000000000..52fe23956 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatataxonomylevel/MetadataTaxonomyLevel.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.schemas.metadatataxonomylevel; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +/** + * A level in the metadata taxonomy represents a hierarchical category within the taxonomy + * structure. + */ +@JsonFilter("nullablePropertyFilter") +public class MetadataTaxonomyLevel extends SerializableObject { + + /** The display name of the level as it is shown to the user. */ + protected String displayName; + + /** A description of the level. */ + protected String description; + + /** An index of the level within the taxonomy. Levels are indexed starting from 1. */ + protected Integer level; + + public MetadataTaxonomyLevel() { + super(); + } + + protected MetadataTaxonomyLevel(Builder builder) { + super(); + this.displayName = builder.displayName; + this.description = builder.description; + this.level = builder.level; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getDisplayName() { + return displayName; + } + + public String getDescription() { + return description; + } + + public Integer getLevel() { + return level; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTaxonomyLevel casted = (MetadataTaxonomyLevel) o; + return Objects.equals(displayName, casted.displayName) + && Objects.equals(description, casted.description) + && Objects.equals(level, casted.level); + } + + @Override + public int hashCode() { + return Objects.hash(displayName, description, level); + } + + @Override + public String toString() { + return "MetadataTaxonomyLevel{" + + "displayName='" + + displayName + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "level='" + + level + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String displayName; + + protected String description; + + protected Integer level; + + public Builder displayName(String displayName) { + this.displayName = displayName; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder level(Integer level) { + this.level = level; + return this; + } + + public MetadataTaxonomyLevel build() { + return new MetadataTaxonomyLevel(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatataxonomylevels/MetadataTaxonomyLevels.java b/src/main/java/com/box/sdkgen/schemas/metadatataxonomylevels/MetadataTaxonomyLevels.java new file mode 100644 index 000000000..9cc982a8f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatataxonomylevels/MetadataTaxonomyLevels.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.schemas.metadatataxonomylevels; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.metadatataxonomylevel.MetadataTaxonomyLevel; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +/** + * Levels in the metadata taxonomy represent hierarchical categories within the taxonomy structure. + */ +@JsonFilter("nullablePropertyFilter") +public class MetadataTaxonomyLevels extends SerializableObject { + + /** An array of all taxonomy levels. */ + protected List entries; + + public MetadataTaxonomyLevels() { + super(); + } + + protected MetadataTaxonomyLevels(Builder builder) { + super(); + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTaxonomyLevels casted = (MetadataTaxonomyLevels) o; + return Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(entries); + } + + @Override + public String toString() { + return "MetadataTaxonomyLevels{" + "entries='" + entries + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List entries; + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public MetadataTaxonomyLevels build() { + return new MetadataTaxonomyLevels(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatataxonomynode/MetadataTaxonomyNode.java b/src/main/java/com/box/sdkgen/schemas/metadatataxonomynode/MetadataTaxonomyNode.java new file mode 100644 index 000000000..dffaa3c91 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatataxonomynode/MetadataTaxonomyNode.java @@ -0,0 +1,169 @@ +package com.box.sdkgen.schemas.metadatataxonomynode; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.metadatataxonomyancestor.MetadataTaxonomyAncestor; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** A node object for metadata taxonomy that can be used in metadata templates. */ +@JsonFilter("nullablePropertyFilter") +public class MetadataTaxonomyNode extends SerializableObject { + + /** A unique identifier of the metadata taxonomy node. */ + protected final String id; + + /** The display name of the metadata taxonomy node. */ + protected final String displayName; + + /** An index of the level to which the node belongs. */ + protected final long level; + + /** The identifier of the parent node. */ + protected String parentId; + + /** An array of identifiers for all ancestor nodes. Not returned for root-level nodes. */ + protected List nodePath; + + /** An array of objects for all ancestor nodes. Not returned for root-level nodes. */ + protected List ancestors; + + public MetadataTaxonomyNode( + @JsonProperty("id") String id, + @JsonProperty("displayName") String displayName, + @JsonProperty("level") long level) { + super(); + this.id = id; + this.displayName = displayName; + this.level = level; + } + + protected MetadataTaxonomyNode(Builder builder) { + super(); + this.id = builder.id; + this.displayName = builder.displayName; + this.level = builder.level; + this.parentId = builder.parentId; + this.nodePath = builder.nodePath; + this.ancestors = builder.ancestors; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getDisplayName() { + return displayName; + } + + public long getLevel() { + return level; + } + + public String getParentId() { + return parentId; + } + + public List getNodePath() { + return nodePath; + } + + public List getAncestors() { + return ancestors; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTaxonomyNode casted = (MetadataTaxonomyNode) o; + return Objects.equals(id, casted.id) + && Objects.equals(displayName, casted.displayName) + && Objects.equals(level, casted.level) + && Objects.equals(parentId, casted.parentId) + && Objects.equals(nodePath, casted.nodePath) + && Objects.equals(ancestors, casted.ancestors); + } + + @Override + public int hashCode() { + return Objects.hash(id, displayName, level, parentId, nodePath, ancestors); + } + + @Override + public String toString() { + return "MetadataTaxonomyNode{" + + "id='" + + id + + '\'' + + ", " + + "displayName='" + + displayName + + '\'' + + ", " + + "level='" + + level + + '\'' + + ", " + + "parentId='" + + parentId + + '\'' + + ", " + + "nodePath='" + + nodePath + + '\'' + + ", " + + "ancestors='" + + ancestors + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected final String displayName; + + protected final long level; + + protected String parentId; + + protected List nodePath; + + protected List ancestors; + + public Builder(String id, String displayName, long level) { + super(); + this.id = id; + this.displayName = displayName; + this.level = level; + } + + public Builder parentId(String parentId) { + this.parentId = parentId; + return this; + } + + public Builder nodePath(List nodePath) { + this.nodePath = nodePath; + return this; + } + + public Builder ancestors(List ancestors) { + this.ancestors = ancestors; + return this; + } + + public MetadataTaxonomyNode build() { + return new MetadataTaxonomyNode(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatataxonomynodes/MetadataTaxonomyNodes.java b/src/main/java/com/box/sdkgen/schemas/metadatataxonomynodes/MetadataTaxonomyNodes.java new file mode 100644 index 000000000..c1f94ec15 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatataxonomynodes/MetadataTaxonomyNodes.java @@ -0,0 +1,141 @@ +package com.box.sdkgen.schemas.metadatataxonomynodes; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.metadatataxonomynode.MetadataTaxonomyNode; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** A list of metadata taxonomy nodes. */ +@JsonFilter("nullablePropertyFilter") +public class MetadataTaxonomyNodes extends SerializableObject { + + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ + protected Long limit; + + /** The marker for the start of the next page of results. */ + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + /** The marker for the start of the previous page of results. */ + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + /** A list of metadata taxonomy nodes. */ + protected List entries; + + public MetadataTaxonomyNodes() { + super(); + } + + protected MetadataTaxonomyNodes(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTaxonomyNodes casted = (MetadataTaxonomyNodes) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "MetadataTaxonomyNodes{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public MetadataTaxonomyNodes build() { + return new MetadataTaxonomyNodes(this); + } + } +} From 5243280e612c332a3e0d330a13c3eac98b7d6b52 Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Tue, 16 Dec 2025 04:45:01 -0800 Subject: [PATCH 7/8] test: fix DocGen itest (box/box-codegen#907) --- .codegen.json | 2 +- docs/sdkgen/docgen.md | 2 +- .../com/box/sdkgen/docgen/DocgenITest.java | 19 ++++++++++++++----- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/.codegen.json b/.codegen.json index 56a55aeb8..8bffd2660 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "b5860f1", "specHash": "1e0848d", "version": "5.2.0" } +{ "engineHash": "576c827", "specHash": "1e0848d", "version": "5.2.0" } diff --git a/docs/sdkgen/docgen.md b/docs/sdkgen/docgen.md index ad7ad936f..b92087491 100644 --- a/docs/sdkgen/docgen.md +++ b/docs/sdkgen/docgen.md @@ -106,7 +106,7 @@ See the endpoint docs at ``` -client.getDocgen().createDocgenBatchV2025R0(new DocGenBatchCreateRequestV2025R0(new FileReferenceV2025R0(uploadedFile.getId()), "api", new DocGenBatchCreateRequestV2025R0DestinationFolderField(folder.getId()), "pdf", Arrays.asList(new DocGenDocumentGenerationDataV2025R0("test", mapOf(entryOf("abc", "xyz")))))) +client.getDocgen().createDocgenBatchV2025R0(new DocGenBatchCreateRequestV2025R0(new FileReferenceV2025R0(uploadedFileDocx.getId()), "api", new DocGenBatchCreateRequestV2025R0DestinationFolderField(folder.getId()), "pdf", Arrays.asList(new DocGenDocumentGenerationDataV2025R0("test", mapOf(entryOf("abc", "xyz")))))) ``` ### Arguments diff --git a/src/intTest/java/com/box/sdkgen/docgen/DocgenITest.java b/src/intTest/java/com/box/sdkgen/docgen/DocgenITest.java index 264b139c1..e37da7e37 100644 --- a/src/intTest/java/com/box/sdkgen/docgen/DocgenITest.java +++ b/src/intTest/java/com/box/sdkgen/docgen/DocgenITest.java @@ -9,6 +9,7 @@ import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.docgen.GetDocgenJobsV2025R0QueryParams; +import com.box.sdkgen.managers.files.UpdateFileByIdRequestBody; import com.box.sdkgen.schemas.filefull.FileFull; import com.box.sdkgen.schemas.folderfull.FolderFull; import com.box.sdkgen.schemas.v2025r0.docgenbatchbasev2025r0.DocGenBatchBaseV2025R0; @@ -31,20 +32,28 @@ public class DocgenITest { @Test public void testDocgenBatchAndJobs() { - FileFull uploadedFile = uploadNewFile(); + FileFull uploadedFilePdf = uploadNewFile(); + FileFull uploadedFileDocx = + client + .getFiles() + .updateFileById( + uploadedFilePdf.getId(), + new UpdateFileByIdRequestBody.Builder() + .name(String.join("", uploadedFilePdf.getName(), ".docx")) + .build()); FolderFull folder = createNewFolder(); DocGenTemplateBaseV2025R0 createdDocgenTemplate = client .getDocgenTemplate() .createDocgenTemplateV2025R0( new DocGenTemplateCreateRequestV2025R0( - new FileReferenceV2025R0(uploadedFile.getId()))); + new FileReferenceV2025R0(uploadedFileDocx.getId()))); DocGenBatchBaseV2025R0 docgenBatch = client .getDocgen() .createDocgenBatchV2025R0( new DocGenBatchCreateRequestV2025R0( - new FileReferenceV2025R0(uploadedFile.getId()), + new FileReferenceV2025R0(uploadedFileDocx.getId()), "api", new DocGenBatchCreateRequestV2025R0DestinationFolderField(folder.getId()), "pdf", @@ -65,7 +74,7 @@ public void testDocgenBatchAndJobs() { .get(0) .getTemplateFile() .getId() - .equals(uploadedFile.getId()); + .equals(uploadedFileDocx.getId()); assert docgenBatchJobs.getEntries().get(0).getBatch().getId().equals(docgenBatch.getId()); DocGenJobsFullV2025R0 docgenJobs = client @@ -101,6 +110,6 @@ assert convertToString(docgenJobs.getEntries().get(0).getTemplateFileVersion().g assert !(docgenJob.getTemplateFileVersion().getId().equals("")); assert convertToString(docgenJob.getType()).equals("docgen_job"); client.getFolders().deleteFolderById(folder.getId()); - client.getFiles().deleteFileById(uploadedFile.getId()); + client.getFiles().deleteFileById(uploadedFileDocx.getId()); } } From 39eadee310d11bcdfa712264d8ce675a9ec1e66a Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Tue, 16 Dec 2025 05:57:28 -0800 Subject: [PATCH 8/8] feat: Treat nullable fields as Optional (box/box-codegen#906) --- .codegen.json | 2 +- .../com/box/sdkgen/internal/OneOfEight.java | 72 ++++++++++++ .../com/box/sdkgen/internal/OneOfEleven.java | 97 ++++++++++++++++ .../com/box/sdkgen/internal/OneOfNine.java | 85 ++++++++++++++ .../com/box/sdkgen/internal/OneOfSeven.java | 65 +++++++++++ .../com/box/sdkgen/internal/OneOfTen.java | 91 +++++++++++++++ .../com/box/sdkgen/internal/OneOfTwelve.java | 104 ++++++++++++++++++ ...ignRequestSignerInputCustomValidation.java | 34 +++--- .../SignRequestSignerInputValidation.java | 28 ++--- 9 files changed, 547 insertions(+), 31 deletions(-) create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfEight.java create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfEleven.java create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfNine.java create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfSeven.java create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfTen.java create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfTwelve.java diff --git a/.codegen.json b/.codegen.json index 8bffd2660..3940f25c0 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "576c827", "specHash": "1e0848d", "version": "5.2.0" } +{ "engineHash": "de55410", "specHash": "1e0848d", "version": "5.2.0" } diff --git a/src/main/java/com/box/sdkgen/internal/OneOfEight.java b/src/main/java/com/box/sdkgen/internal/OneOfEight.java new file mode 100644 index 000000000..a20e86ec1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfEight.java @@ -0,0 +1,72 @@ +package com.box.sdkgen.internal; + +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; + +public class OneOfEight extends SerializableObject { + protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + protected T0 value0; + protected T1 value1; + protected T2 value2; + protected T3 value3; + protected T4 value4; + protected T5 value5; + protected T6 value6; + protected T7 value7; + + public OneOfEight( + T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + this.value4 = value4; + this.value5 = value5; + this.value6 = value6; + this.value7 = value7; + } + + public static class OneOfEightSerializer + extends JsonSerializer> { + + public OneOfEightSerializer() { + super(); + } + + @Override + public void serialize( + OneOfEight itemEntryField, + JsonGenerator gen, + SerializerProvider provider) + throws IOException { + if (itemEntryField.value0 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + } + if (itemEntryField.value1 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + } + if (itemEntryField.value2 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + } + if (itemEntryField.value3 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + } + if (itemEntryField.value4 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + } + if (itemEntryField.value5 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + } + if (itemEntryField.value6 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value6); + } + if (itemEntryField.value7 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value7); + } + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/OneOfEleven.java b/src/main/java/com/box/sdkgen/internal/OneOfEleven.java new file mode 100644 index 000000000..5b5485d24 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfEleven.java @@ -0,0 +1,97 @@ +package com.box.sdkgen.internal; + +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; + +public class OneOfEleven extends SerializableObject { + protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + protected T0 value0; + protected T1 value1; + protected T2 value2; + protected T3 value3; + protected T4 value4; + protected T5 value5; + protected T6 value6; + protected T7 value7; + protected T8 value8; + protected T9 value9; + protected T10 value10; + + public OneOfEleven( + T0 value0, + T1 value1, + T2 value2, + T3 value3, + T4 value4, + T5 value5, + T6 value6, + T7 value7, + T8 value8, + T9 value9, + T10 value10) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + this.value4 = value4; + this.value5 = value5; + this.value6 = value6; + this.value7 = value7; + this.value8 = value8; + this.value9 = value9; + this.value10 = value10; + } + + public static class OneOfElevenSerializer + extends JsonSerializer> { + + public OneOfElevenSerializer() { + super(); + } + + @Override + public void serialize( + OneOfEleven itemEntryField, + JsonGenerator gen, + SerializerProvider provider) + throws IOException { + if (itemEntryField.value0 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + } + if (itemEntryField.value1 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + } + if (itemEntryField.value2 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + } + if (itemEntryField.value3 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + } + if (itemEntryField.value4 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + } + if (itemEntryField.value5 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + } + if (itemEntryField.value6 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value6); + } + if (itemEntryField.value7 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value7); + } + if (itemEntryField.value8 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value8); + } + if (itemEntryField.value9 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value9); + } + if (itemEntryField.value10 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value10); + } + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/OneOfNine.java b/src/main/java/com/box/sdkgen/internal/OneOfNine.java new file mode 100644 index 000000000..6da57f0bc --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfNine.java @@ -0,0 +1,85 @@ +package com.box.sdkgen.internal; + +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; + +public class OneOfNine extends SerializableObject { + protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + protected T0 value0; + protected T1 value1; + protected T2 value2; + protected T3 value3; + protected T4 value4; + protected T5 value5; + protected T6 value6; + protected T7 value7; + protected T8 value8; + + public OneOfNine( + T0 value0, + T1 value1, + T2 value2, + T3 value3, + T4 value4, + T5 value5, + T6 value6, + T7 value7, + T8 value8) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + this.value4 = value4; + this.value5 = value5; + this.value6 = value6; + this.value7 = value7; + this.value8 = value8; + } + + public static class OneOfNineSerializer + extends JsonSerializer> { + + public OneOfNineSerializer() { + super(); + } + + @Override + public void serialize( + OneOfNine itemEntryField, + JsonGenerator gen, + SerializerProvider provider) + throws IOException { + if (itemEntryField.value0 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + } + if (itemEntryField.value1 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + } + if (itemEntryField.value2 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + } + if (itemEntryField.value3 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + } + if (itemEntryField.value4 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + } + if (itemEntryField.value5 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + } + if (itemEntryField.value6 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value6); + } + if (itemEntryField.value7 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value7); + } + if (itemEntryField.value8 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value8); + } + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/OneOfSeven.java b/src/main/java/com/box/sdkgen/internal/OneOfSeven.java new file mode 100644 index 000000000..e07226eba --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfSeven.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.internal; + +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; + +public class OneOfSeven extends SerializableObject { + protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + protected T0 value0; + protected T1 value1; + protected T2 value2; + protected T3 value3; + protected T4 value4; + protected T5 value5; + protected T6 value6; + + public OneOfSeven(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + this.value4 = value4; + this.value5 = value5; + this.value6 = value6; + } + + public static class OneOfSevenSerializer extends JsonSerializer> { + + public OneOfSevenSerializer() { + super(); + } + + @Override + public void serialize( + OneOfSeven itemEntryField, + JsonGenerator gen, + SerializerProvider provider) + throws IOException { + if (itemEntryField.value0 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + } + if (itemEntryField.value1 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + } + if (itemEntryField.value2 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + } + if (itemEntryField.value3 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + } + if (itemEntryField.value4 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + } + if (itemEntryField.value5 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + } + if (itemEntryField.value6 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value6); + } + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/OneOfTen.java b/src/main/java/com/box/sdkgen/internal/OneOfTen.java new file mode 100644 index 000000000..6af089e2a --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfTen.java @@ -0,0 +1,91 @@ +package com.box.sdkgen.internal; + +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; + +public class OneOfTen extends SerializableObject { + protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + protected T0 value0; + protected T1 value1; + protected T2 value2; + protected T3 value3; + protected T4 value4; + protected T5 value5; + protected T6 value6; + protected T7 value7; + protected T8 value8; + protected T9 value9; + + public OneOfTen( + T0 value0, + T1 value1, + T2 value2, + T3 value3, + T4 value4, + T5 value5, + T6 value6, + T7 value7, + T8 value8, + T9 value9) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + this.value4 = value4; + this.value5 = value5; + this.value6 = value6; + this.value7 = value7; + this.value8 = value8; + this.value9 = value9; + } + + public static class OneOfTenSerializer + extends JsonSerializer> { + + public OneOfTenSerializer() { + super(); + } + + @Override + public void serialize( + OneOfTen itemEntryField, + JsonGenerator gen, + SerializerProvider provider) + throws IOException { + if (itemEntryField.value0 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + } + if (itemEntryField.value1 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + } + if (itemEntryField.value2 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + } + if (itemEntryField.value3 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + } + if (itemEntryField.value4 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + } + if (itemEntryField.value5 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + } + if (itemEntryField.value6 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value6); + } + if (itemEntryField.value7 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value7); + } + if (itemEntryField.value8 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value8); + } + if (itemEntryField.value9 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value9); + } + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/OneOfTwelve.java b/src/main/java/com/box/sdkgen/internal/OneOfTwelve.java new file mode 100644 index 000000000..a411e9cc6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfTwelve.java @@ -0,0 +1,104 @@ +package com.box.sdkgen.internal; + +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; + +public class OneOfTwelve + extends SerializableObject { + protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + protected T0 value0; + protected T1 value1; + protected T2 value2; + protected T3 value3; + protected T4 value4; + protected T5 value5; + protected T6 value6; + protected T7 value7; + protected T8 value8; + protected T9 value9; + protected T10 value10; + protected T11 value11; + + public OneOfTwelve( + T0 value0, + T1 value1, + T2 value2, + T3 value3, + T4 value4, + T5 value5, + T6 value6, + T7 value7, + T8 value8, + T9 value9, + T10 value10, + T11 value11) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + this.value4 = value4; + this.value5 = value5; + this.value6 = value6; + this.value7 = value7; + this.value8 = value8; + this.value9 = value9; + this.value10 = value10; + this.value11 = value11; + } + + public static class OneOfTwelveSerializer + extends JsonSerializer> { + + public OneOfTwelveSerializer() { + super(); + } + + @Override + public void serialize( + OneOfTwelve itemEntryField, + JsonGenerator gen, + SerializerProvider provider) + throws IOException { + if (itemEntryField.value0 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + } + if (itemEntryField.value1 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + } + if (itemEntryField.value2 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + } + if (itemEntryField.value3 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + } + if (itemEntryField.value4 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + } + if (itemEntryField.value5 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + } + if (itemEntryField.value6 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value6); + } + if (itemEntryField.value7 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value7); + } + if (itemEntryField.value8 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value8); + } + if (itemEntryField.value9 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value9); + } + if (itemEntryField.value10 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value10); + } + if (itemEntryField.value11 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value11); + } + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java index 031e6af69..c6cb1e5a9 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java @@ -1,7 +1,5 @@ package com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation; -import static com.box.sdkgen.internal.utils.UtilsManager.setOf; - import com.box.sdkgen.internal.Nullable; import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; @@ -37,23 +35,18 @@ public class SignRequestSignerInputCustomValidation extends SerializableObject { /** Regular expression used for validation. */ @JsonProperty("custom_regex") @Nullable - protected final String customRegex; + protected String customRegex; /** Error message shown if input fails custom regular expression validation. */ @JsonProperty("custom_error_message") @Nullable - protected final String customErrorMessage; + protected String customErrorMessage; - public SignRequestSignerInputCustomValidation( - @JsonProperty("custom_regex") String customRegex, - @JsonProperty("custom_error_message") String customErrorMessage) { + public SignRequestSignerInputCustomValidation() { super(); - this.customRegex = customRegex; - this.customErrorMessage = customErrorMessage; this.validationType = new EnumWrapper( SignRequestSignerInputCustomValidationValidationTypeField.CUSTOM); - markNullableFieldsAsSet(setOf("custom_regex", "custom_error_message")); } protected SignRequestSignerInputCustomValidation(Builder builder) { @@ -117,18 +110,15 @@ public static class Builder extends NullableFieldTracker { protected EnumWrapper validationType; - protected final String customRegex; + protected String customRegex; - protected final String customErrorMessage; + protected String customErrorMessage; - public Builder(String customRegex, String customErrorMessage) { + public Builder() { super(); - this.customRegex = customRegex; - this.customErrorMessage = customErrorMessage; this.validationType = new EnumWrapper( SignRequestSignerInputCustomValidationValidationTypeField.CUSTOM); - markNullableFieldsAsSet(setOf("custom_regex", "custom_error_message")); } public Builder validationType( @@ -145,6 +135,18 @@ public Builder validationType( return this; } + public Builder customRegex(String customRegex) { + this.customRegex = customRegex; + this.markNullableFieldAsSet("custom_regex"); + return this; + } + + public Builder customErrorMessage(String customErrorMessage) { + this.customErrorMessage = customErrorMessage; + this.markNullableFieldAsSet("custom_error_message"); + return this; + } + public SignRequestSignerInputCustomValidation build() { return new SignRequestSignerInputCustomValidation(this); } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputvalidation/SignRequestSignerInputValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputvalidation/SignRequestSignerInputValidation.java index 5468866ab..03eeca027 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputvalidation/SignRequestSignerInputValidation.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputvalidation/SignRequestSignerInputValidation.java @@ -1,6 +1,6 @@ package com.box.sdkgen.schemas.signrequestsignerinputvalidation; -import com.box.sdkgen.internal.OneOfundefined; +import com.box.sdkgen.internal.OneOfEleven; import com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation.SignRequestSignerInputCustomValidation; import com.box.sdkgen.schemas.signrequestsignerinputdateasiavalidation.SignRequestSignerInputDateAsiaValidation; import com.box.sdkgen.schemas.signrequestsignerinputdateeuvalidation.SignRequestSignerInputDateEuValidation; @@ -25,9 +25,9 @@ @JsonDeserialize( using = SignRequestSignerInputValidation.SignRequestSignerInputValidationDeserializer.class) -@JsonSerialize(using = OneOfundefined.OneOfundefinedSerializer.class) +@JsonSerialize(using = OneOfEleven.OneOfElevenSerializer.class) public class SignRequestSignerInputValidation - extends OneOfundefined< + extends OneOfEleven< SignRequestSignerInputEmailValidation, SignRequestSignerInputCustomValidation, SignRequestSignerInputZipValidation, @@ -351,67 +351,67 @@ public SignRequestSignerInputValidation deserialize(JsonParser jp, Deserializati JsonNode node = JsonManager.jsonToSerializedData(jp); try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputEmailValidation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputCustomValidation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputZipValidation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputZip4Validation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputSsnValidation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputNumberWithPeriodValidation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputNumberWithCommaValidation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputDateIsoValidation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputDateUsValidation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputDateEuValidation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputDateAsiaValidation.class)); } catch (Exception ignored) { }