diff --git a/.codegen.json b/.codegen.json index 907c8edfa..d6d0fd01a 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "4de40e1", "specHash": "e0ffc4a", "version": "5.11.0" } +{ "engineHash": "4de40e1", "specHash": "8b85e74", "version": "5.11.0" } diff --git a/docs/sdkgen/README.md b/docs/sdkgen/README.md index 627015873..5dd7a610b 100644 --- a/docs/sdkgen/README.md +++ b/docs/sdkgen/README.md @@ -26,6 +26,7 @@ the SDK are available by topic: * [Collaborationallowlistexempttargets](collaborationallowlistexempttargets.md) * [Collections](collections.md) * [Comments](comments.md) +* [Convertmarkdowntoboxnote](convertmarkdowntoboxnote.md) * [Devicepinners](devicepinners.md) * [Docgen](docgen.md) * [Docgentemplate](docgentemplate.md) diff --git a/docs/sdkgen/convertmarkdowntoboxnote.md b/docs/sdkgen/convertmarkdowntoboxnote.md new file mode 100644 index 000000000..b5c040c61 --- /dev/null +++ b/docs/sdkgen/convertmarkdowntoboxnote.md @@ -0,0 +1,31 @@ +# ConvertMarkdownToBoxNoteManager + + +- [Convert content to Box Note](#convert-content-to-box-note) + +## Convert content to Box Note + +Creates a Box Note (`.boxnote` file) from supported source content. See the `content_format` field for supported formats. + +This operation is performed by calling function `createNoteConvertV2026R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2026.0/post-notes-convert/). + +*Currently we don't have an example for calling `createNoteConvertV2026R0` in integration tests* + +### Arguments + +- requestBody `NotesConvertRequestBodyV2026R0` + - Request body of createNoteConvertV2026R0 method +- headers `CreateNoteConvertV2026R0Headers` + - Headers of createNoteConvertV2026R0 method + + +### Returns + +This function returns a value of type `NotesConvertResponseV2026R0`. + +The note was created successfully. + + diff --git a/src/main/java/com/box/sdkgen/client/BoxClient.java b/src/main/java/com/box/sdkgen/client/BoxClient.java index 258a1d7ac..4f50eb527 100644 --- a/src/main/java/com/box/sdkgen/client/BoxClient.java +++ b/src/main/java/com/box/sdkgen/client/BoxClient.java @@ -16,6 +16,7 @@ import com.box.sdkgen.managers.collaborationallowlistexempttargets.CollaborationAllowlistExemptTargetsManager; import com.box.sdkgen.managers.collections.CollectionsManager; import com.box.sdkgen.managers.comments.CommentsManager; +import com.box.sdkgen.managers.convertmarkdowntoboxnote.ConvertMarkdownToBoxNoteManager; import com.box.sdkgen.managers.devicepinners.DevicePinnersManager; import com.box.sdkgen.managers.docgen.DocgenManager; import com.box.sdkgen.managers.docgentemplate.DocgenTemplateManager; @@ -273,6 +274,8 @@ public class BoxClient { public final AutomateWorkflowsManager automateWorkflows; + public final ConvertMarkdownToBoxNoteManager convertMarkdownToBoxNote; + public BoxClient(Authentication auth) { this.auth = auth; this.networkSession = new NetworkSession.Builder().baseUrls(new BaseUrls()).build(); @@ -626,6 +629,11 @@ public BoxClient(Authentication auth) { .auth(this.auth) .networkSession(this.networkSession) .build(); + this.convertMarkdownToBoxNote = + new ConvertMarkdownToBoxNoteManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); } protected BoxClient(Builder builder) { @@ -981,6 +989,11 @@ protected BoxClient(Builder builder) { .auth(this.auth) .networkSession(this.networkSession) .build(); + this.convertMarkdownToBoxNote = + new ConvertMarkdownToBoxNoteManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); } /** @@ -1440,6 +1453,10 @@ public AutomateWorkflowsManager getAutomateWorkflows() { return automateWorkflows; } + public ConvertMarkdownToBoxNoteManager getConvertMarkdownToBoxNote() { + return convertMarkdownToBoxNote; + } + public static class Builder { protected final Authentication auth; diff --git a/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/ConvertMarkdownToBoxNoteManager.java b/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/ConvertMarkdownToBoxNoteManager.java new file mode 100644 index 000000000..e1de9a691 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/ConvertMarkdownToBoxNoteManager.java @@ -0,0 +1,112 @@ +package com.box.sdkgen.managers.convertmarkdowntoboxnote; + +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.v2026r0.notesconvertrequestbodyv2026r0.NotesConvertRequestBodyV2026R0; +import com.box.sdkgen.schemas.v2026r0.notesconvertresponsev2026r0.NotesConvertResponseV2026R0; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class ConvertMarkdownToBoxNoteManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public ConvertMarkdownToBoxNoteManager() { + this.networkSession = new NetworkSession(); + } + + protected ConvertMarkdownToBoxNoteManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + /** + * Creates a Box Note (`.boxnote` file) from supported source content. See the `content_format` + * field for supported formats. + * + * @param requestBody Request body of createNoteConvertV2026R0 method + */ + public NotesConvertResponseV2026R0 createNoteConvertV2026R0( + NotesConvertRequestBodyV2026R0 requestBody) { + return createNoteConvertV2026R0(requestBody, new CreateNoteConvertV2026R0Headers()); + } + + /** + * Creates a Box Note (`.boxnote` file) from supported source content. See the `content_format` + * field for supported formats. + * + * @param requestBody Request body of createNoteConvertV2026R0 method + * @param headers Headers of createNoteConvertV2026R0 method + */ + public NotesConvertResponseV2026R0 createNoteConvertV2026R0( + NotesConvertRequestBodyV2026R0 requestBody, CreateNoteConvertV2026R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/notes/convert"), + "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(), NotesConvertResponseV2026R0.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() {} + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public ConvertMarkdownToBoxNoteManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } + return new ConvertMarkdownToBoxNoteManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/CreateNoteConvertV2026R0Headers.java b/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/CreateNoteConvertV2026R0Headers.java new file mode 100644 index 000000000..32dca19ce --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/CreateNoteConvertV2026R0Headers.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.convertmarkdowntoboxnote; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2026r0.boxversionheaderv2026r0.BoxVersionHeaderV2026R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class CreateNoteConvertV2026R0Headers { + + /** Version header. */ + public EnumWrapper boxVersion; + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public CreateNoteConvertV2026R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2026R0._2026_0); + this.extraHeaders = mapOf(); + } + + protected CreateNoteConvertV2026R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() {} + + public Builder boxVersion(BoxVersionHeaderV2026R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateNoteConvertV2026R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2026R0._2026_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } + return new CreateNoteConvertV2026R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/folderreferencev2026r0/FolderReferenceV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/folderreferencev2026r0/FolderReferenceV2026R0.java new file mode 100644 index 000000000..cfa591ac6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/folderreferencev2026r0/FolderReferenceV2026R0.java @@ -0,0 +1,100 @@ +package com.box.sdkgen.schemas.v2026r0.folderreferencev2026r0; + +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; + +/** Folder reference. */ +@JsonFilter("nullablePropertyFilter") +public class FolderReferenceV2026R0 extends SerializableObject { + + /** The value will always be `folder`. */ + @JsonDeserialize( + using = FolderReferenceV2026R0TypeField.FolderReferenceV2026R0TypeFieldDeserializer.class) + @JsonSerialize( + using = FolderReferenceV2026R0TypeField.FolderReferenceV2026R0TypeFieldSerializer.class) + protected EnumWrapper type; + + /** ID of the folder. */ + protected final String id; + + public FolderReferenceV2026R0(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(FolderReferenceV2026R0TypeField.FOLDER); + } + + protected FolderReferenceV2026R0(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FolderReferenceV2026R0 casted = (FolderReferenceV2026R0) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "FolderReferenceV2026R0{" + "type='" + type + '\'' + ", " + "id='" + id + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + } + + public Builder type(FolderReferenceV2026R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public FolderReferenceV2026R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + FolderReferenceV2026R0TypeField.FOLDER); + } + return new FolderReferenceV2026R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/folderreferencev2026r0/FolderReferenceV2026R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/folderreferencev2026r0/FolderReferenceV2026R0TypeField.java new file mode 100644 index 000000000..679821737 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/folderreferencev2026r0/FolderReferenceV2026R0TypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.v2026r0.folderreferencev2026r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FolderReferenceV2026R0TypeField implements Valuable { + FOLDER("folder"); + + private final String value; + + FolderReferenceV2026R0TypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class FolderReferenceV2026R0TypeFieldDeserializer + extends JsonDeserializer> { + + public FolderReferenceV2026R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FolderReferenceV2026R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FolderReferenceV2026R0TypeFieldSerializer + extends JsonSerializer> { + + public FolderReferenceV2026R0TypeFieldSerializer() { + 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/v2026r0/notesconvertrequestbodyv2026r0/NotesConvertRequestBodyV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertrequestbodyv2026r0/NotesConvertRequestBodyV2026R0.java new file mode 100644 index 000000000..c640c2998 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertrequestbodyv2026r0/NotesConvertRequestBodyV2026R0.java @@ -0,0 +1,154 @@ +package com.box.sdkgen.schemas.v2026r0.notesconvertrequestbodyv2026r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2026r0.folderreferencev2026r0.FolderReferenceV2026R0; +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; + +/** Request body for converting source content into a Box Note file. */ +@JsonFilter("nullablePropertyFilter") +public class NotesConvertRequestBodyV2026R0 extends SerializableObject { + + /** The content to convert to a note. See the `content_format` field for supported formats. */ + protected final String content; + + /** Format of the content to convert. */ + @JsonDeserialize( + using = + NotesConvertRequestBodyV2026R0ContentFormatField + .NotesConvertRequestBodyV2026R0ContentFormatFieldDeserializer.class) + @JsonSerialize( + using = + NotesConvertRequestBodyV2026R0ContentFormatField + .NotesConvertRequestBodyV2026R0ContentFormatFieldSerializer.class) + @JsonProperty("content_format") + protected EnumWrapper contentFormat; + + protected final FolderReferenceV2026R0 parent; + + /** The name for the created note. The `.boxnote` extension is appended automatically. */ + protected final String name; + + public NotesConvertRequestBodyV2026R0( + @JsonProperty("content") String content, + @JsonProperty("parent") FolderReferenceV2026R0 parent, + @JsonProperty("name") String name) { + super(); + this.content = content; + this.parent = parent; + this.name = name; + this.contentFormat = + new EnumWrapper( + NotesConvertRequestBodyV2026R0ContentFormatField.MARKDOWN); + } + + protected NotesConvertRequestBodyV2026R0(Builder builder) { + super(); + this.content = builder.content; + this.contentFormat = builder.contentFormat; + this.parent = builder.parent; + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getContent() { + return content; + } + + public EnumWrapper getContentFormat() { + return contentFormat; + } + + public FolderReferenceV2026R0 getParent() { + return parent; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NotesConvertRequestBodyV2026R0 casted = (NotesConvertRequestBodyV2026R0) o; + return Objects.equals(content, casted.content) + && Objects.equals(contentFormat, casted.contentFormat) + && Objects.equals(parent, casted.parent) + && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(content, contentFormat, parent, name); + } + + @Override + public String toString() { + return "NotesConvertRequestBodyV2026R0{" + + "content='" + + content + + '\'' + + ", " + + "contentFormat='" + + contentFormat + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String content; + + protected EnumWrapper contentFormat; + + protected final FolderReferenceV2026R0 parent; + + protected final String name; + + public Builder(String content, FolderReferenceV2026R0 parent, String name) { + super(); + this.content = content; + this.parent = parent; + this.name = name; + } + + public Builder contentFormat(NotesConvertRequestBodyV2026R0ContentFormatField contentFormat) { + this.contentFormat = + new EnumWrapper(contentFormat); + return this; + } + + public Builder contentFormat( + EnumWrapper contentFormat) { + this.contentFormat = contentFormat; + return this; + } + + public NotesConvertRequestBodyV2026R0 build() { + if (this.contentFormat == null) { + this.contentFormat = + new EnumWrapper( + NotesConvertRequestBodyV2026R0ContentFormatField.MARKDOWN); + } + return new NotesConvertRequestBodyV2026R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertrequestbodyv2026r0/NotesConvertRequestBodyV2026R0ContentFormatField.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertrequestbodyv2026r0/NotesConvertRequestBodyV2026R0ContentFormatField.java new file mode 100644 index 000000000..da797c5b2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertrequestbodyv2026r0/NotesConvertRequestBodyV2026R0ContentFormatField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.v2026r0.notesconvertrequestbodyv2026r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum NotesConvertRequestBodyV2026R0ContentFormatField implements Valuable { + MARKDOWN("markdown"); + + private final String value; + + NotesConvertRequestBodyV2026R0ContentFormatField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class NotesConvertRequestBodyV2026R0ContentFormatFieldDeserializer + extends JsonDeserializer> { + + public NotesConvertRequestBodyV2026R0ContentFormatFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(NotesConvertRequestBodyV2026R0ContentFormatField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class NotesConvertRequestBodyV2026R0ContentFormatFieldSerializer + extends JsonSerializer> { + + public NotesConvertRequestBodyV2026R0ContentFormatFieldSerializer() { + 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/v2026r0/notesconvertresponsev2026r0/NotesConvertResponseV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertresponsev2026r0/NotesConvertResponseV2026R0.java new file mode 100644 index 000000000..d8adbc75b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertresponsev2026r0/NotesConvertResponseV2026R0.java @@ -0,0 +1,112 @@ +package com.box.sdkgen.schemas.v2026r0.notesconvertresponsev2026r0; + +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; + +/** Identifies the created Box Note file. */ +@JsonFilter("nullablePropertyFilter") +public class NotesConvertResponseV2026R0 extends SerializableObject { + + /** The Box resource type; always `file` for a Box file. */ + @JsonDeserialize( + using = + NotesConvertResponseV2026R0TypeField.NotesConvertResponseV2026R0TypeFieldDeserializer + .class) + @JsonSerialize( + using = + NotesConvertResponseV2026R0TypeField.NotesConvertResponseV2026R0TypeFieldSerializer.class) + protected EnumWrapper type; + + /** Box file ID of the created `.boxnote` file. */ + protected final String id; + + public NotesConvertResponseV2026R0(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + NotesConvertResponseV2026R0TypeField.FILE); + } + + protected NotesConvertResponseV2026R0(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NotesConvertResponseV2026R0 casted = (NotesConvertResponseV2026R0) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "NotesConvertResponseV2026R0{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + } + + public Builder type(NotesConvertResponseV2026R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public NotesConvertResponseV2026R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + NotesConvertResponseV2026R0TypeField.FILE); + } + return new NotesConvertResponseV2026R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertresponsev2026r0/NotesConvertResponseV2026R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertresponsev2026r0/NotesConvertResponseV2026R0TypeField.java new file mode 100644 index 000000000..0d277eb3d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertresponsev2026r0/NotesConvertResponseV2026R0TypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.v2026r0.notesconvertresponsev2026r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum NotesConvertResponseV2026R0TypeField implements Valuable { + FILE("file"); + + private final String value; + + NotesConvertResponseV2026R0TypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class NotesConvertResponseV2026R0TypeFieldDeserializer + extends JsonDeserializer> { + + public NotesConvertResponseV2026R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(NotesConvertResponseV2026R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class NotesConvertResponseV2026R0TypeFieldSerializer + extends JsonSerializer> { + + public NotesConvertResponseV2026R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +}