From 2e96c7d174559b9ea7963f752d9bb5c62bd9848f Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Wed, 20 May 2026 09:37:22 -0700 Subject: [PATCH 1/4] feat: Convert Note Public API (box/box-openapi#599) --- .codegen.json | 2 +- docs/README.md | 1 + docs/convertmarkdowntoboxnote.md | 31 ++++ .../java/com/box/sdkgen/client/BoxClient.java | 17 ++ .../ConvertMarkdownToBoxNoteManager.java | 112 +++++++++++++ .../CreateNoteConvertV2026R0Headers.java | 68 ++++++++ .../FolderReferenceV2026R0.java | 100 ++++++++++++ .../FolderReferenceV2026R0TypeField.java | 64 ++++++++ .../NotesConvertRequestBodyV2026R0.java | 154 ++++++++++++++++++ ...tRequestBodyV2026R0ContentFormatField.java | 64 ++++++++ .../NotesConvertResponseV2026R0.java | 112 +++++++++++++ .../NotesConvertResponseV2026R0TypeField.java | 64 ++++++++ 12 files changed, 788 insertions(+), 1 deletion(-) create mode 100644 docs/convertmarkdowntoboxnote.md create mode 100644 src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/ConvertMarkdownToBoxNoteManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/CreateNoteConvertV2026R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/folderreferencev2026r0/FolderReferenceV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/folderreferencev2026r0/FolderReferenceV2026R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertrequestbodyv2026r0/NotesConvertRequestBodyV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertrequestbodyv2026r0/NotesConvertRequestBodyV2026R0ContentFormatField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertresponsev2026r0/NotesConvertResponseV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertresponsev2026r0/NotesConvertResponseV2026R0TypeField.java diff --git a/.codegen.json b/.codegen.json index bee5a75a0..8aafd761f 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "4de40e1", "specHash": "e0ffc4a", "version": "10.12.0" } +{ "engineHash": "4de40e1", "specHash": "8b85e74", "version": "10.12.0" } diff --git a/docs/README.md b/docs/README.md index 627015873..5dd7a610b 100644 --- a/docs/README.md +++ b/docs/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/convertmarkdowntoboxnote.md b/docs/convertmarkdowntoboxnote.md new file mode 100644 index 000000000..b5c040c61 --- /dev/null +++ b/docs/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()); + } + } +} From 7c2eab9d55a28e8358a677c746978c309454bfe0 Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Wed, 20 May 2026 09:39:51 -0700 Subject: [PATCH 2/4] 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 8aafd761f..c5da527a6 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "4de40e1", "specHash": "8b85e74", "version": "10.12.0" } +{ "engineHash": "8196e61", "specHash": "8b85e74", "version": "10.12.0" } From 5687fac36cf3e5d9a2ee982a9482cc82b87ab551 Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Thu, 21 May 2026 03:20:24 -0700 Subject: [PATCH 3/4] 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 c5da527a6..a59ac8a76 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "8196e61", "specHash": "8b85e74", "version": "10.12.0" } +{ "engineHash": "5e9332b", "specHash": "8b85e74", "version": "10.12.0" } From 7fedff8d2ce3964c5a9f20a8de7c5d34fdabdb88 Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Thu, 21 May 2026 08:20:38 -0700 Subject: [PATCH 4/4] fix: rename tag for notes API (box/box-openapi#600) --- .codegen.json | 2 +- docs/README.md | 2 +- .../{convertmarkdowntoboxnote.md => notes.md} | 2 +- .../java/com/box/sdkgen/client/BoxClient.java | 22 +++++++------------ .../CreateNoteConvertV2026R0Headers.java | 2 +- .../NotesManager.java} | 12 +++++----- .../signrequest/SignRequestStatusField.java | 1 + 7 files changed, 19 insertions(+), 24 deletions(-) rename docs/{convertmarkdowntoboxnote.md => notes.md} (96%) rename src/main/java/com/box/sdkgen/managers/{convertmarkdowntoboxnote => notes}/CreateNoteConvertV2026R0Headers.java (97%) rename src/main/java/com/box/sdkgen/managers/{convertmarkdowntoboxnote/ConvertMarkdownToBoxNoteManager.java => notes/NotesManager.java} (91%) diff --git a/.codegen.json b/.codegen.json index a59ac8a76..7dae9444c 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "5e9332b", "specHash": "8b85e74", "version": "10.12.0" } +{ "engineHash": "5e9332b", "specHash": "d028758", "version": "10.12.0" } diff --git a/docs/README.md b/docs/README.md index 5dd7a610b..1257ffc42 100644 --- a/docs/README.md +++ b/docs/README.md @@ -26,7 +26,6 @@ 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) @@ -62,6 +61,7 @@ the SDK are available by topic: * [Metadatacascadepolicies](metadatacascadepolicies.md) * [Metadatataxonomies](metadatataxonomies.md) * [Metadatatemplates](metadatatemplates.md) +* [Notes](notes.md) * [Recentitems](recentitems.md) * [Retentionpolicies](retentionpolicies.md) * [Retentionpolicyassignments](retentionpolicyassignments.md) diff --git a/docs/convertmarkdowntoboxnote.md b/docs/notes.md similarity index 96% rename from docs/convertmarkdowntoboxnote.md rename to docs/notes.md index b5c040c61..b129369ff 100644 --- a/docs/convertmarkdowntoboxnote.md +++ b/docs/notes.md @@ -1,4 +1,4 @@ -# ConvertMarkdownToBoxNoteManager +# NotesManager - [Convert content to Box Note](#convert-content-to-box-note) diff --git a/src/main/java/com/box/sdkgen/client/BoxClient.java b/src/main/java/com/box/sdkgen/client/BoxClient.java index 4f50eb527..9988474df 100644 --- a/src/main/java/com/box/sdkgen/client/BoxClient.java +++ b/src/main/java/com/box/sdkgen/client/BoxClient.java @@ -16,7 +16,6 @@ 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; @@ -52,6 +51,7 @@ 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.notes.NotesManager; import com.box.sdkgen.managers.recentitems.RecentItemsManager; import com.box.sdkgen.managers.retentionpolicies.RetentionPoliciesManager; import com.box.sdkgen.managers.retentionpolicyassignments.RetentionPolicyAssignmentsManager; @@ -274,7 +274,7 @@ public class BoxClient { public final AutomateWorkflowsManager automateWorkflows; - public final ConvertMarkdownToBoxNoteManager convertMarkdownToBoxNote; + public final NotesManager notes; public BoxClient(Authentication auth) { this.auth = auth; @@ -629,11 +629,8 @@ public BoxClient(Authentication auth) { .auth(this.auth) .networkSession(this.networkSession) .build(); - this.convertMarkdownToBoxNote = - new ConvertMarkdownToBoxNoteManager.Builder() - .auth(this.auth) - .networkSession(this.networkSession) - .build(); + this.notes = + new NotesManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); } protected BoxClient(Builder builder) { @@ -989,11 +986,8 @@ protected BoxClient(Builder builder) { .auth(this.auth) .networkSession(this.networkSession) .build(); - this.convertMarkdownToBoxNote = - new ConvertMarkdownToBoxNoteManager.Builder() - .auth(this.auth) - .networkSession(this.networkSession) - .build(); + this.notes = + new NotesManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); } /** @@ -1453,8 +1447,8 @@ public AutomateWorkflowsManager getAutomateWorkflows() { return automateWorkflows; } - public ConvertMarkdownToBoxNoteManager getConvertMarkdownToBoxNote() { - return convertMarkdownToBoxNote; + public NotesManager getNotes() { + return notes; } public static class Builder { diff --git a/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/CreateNoteConvertV2026R0Headers.java b/src/main/java/com/box/sdkgen/managers/notes/CreateNoteConvertV2026R0Headers.java similarity index 97% rename from src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/CreateNoteConvertV2026R0Headers.java rename to src/main/java/com/box/sdkgen/managers/notes/CreateNoteConvertV2026R0Headers.java index 32dca19ce..88f920c08 100644 --- a/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/CreateNoteConvertV2026R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/notes/CreateNoteConvertV2026R0Headers.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.managers.convertmarkdowntoboxnote; +package com.box.sdkgen.managers.notes; import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; diff --git a/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/ConvertMarkdownToBoxNoteManager.java b/src/main/java/com/box/sdkgen/managers/notes/NotesManager.java similarity index 91% rename from src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/ConvertMarkdownToBoxNoteManager.java rename to src/main/java/com/box/sdkgen/managers/notes/NotesManager.java index e1de9a691..b9bbdd827 100644 --- a/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/ConvertMarkdownToBoxNoteManager.java +++ b/src/main/java/com/box/sdkgen/managers/notes/NotesManager.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.managers.convertmarkdowntoboxnote; +package com.box.sdkgen.managers.notes; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; @@ -16,17 +16,17 @@ import com.box.sdkgen.serialization.json.JsonManager; import java.util.Map; -public class ConvertMarkdownToBoxNoteManager { +public class NotesManager { public Authentication auth; public NetworkSession networkSession; - public ConvertMarkdownToBoxNoteManager() { + public NotesManager() { this.networkSession = new NetworkSession(); } - protected ConvertMarkdownToBoxNoteManager(Builder builder) { + protected NotesManager(Builder builder) { this.auth = builder.auth; this.networkSession = builder.networkSession; } @@ -102,11 +102,11 @@ public Builder networkSession(NetworkSession networkSession) { return this; } - public ConvertMarkdownToBoxNoteManager build() { + public NotesManager build() { if (this.networkSession == null) { this.networkSession = new NetworkSession(); } - return new ConvertMarkdownToBoxNoteManager(this); + return new NotesManager(this); } } } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestStatusField.java b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestStatusField.java index 0e513ef86..e94b634b8 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestStatusField.java @@ -20,6 +20,7 @@ public enum SignRequestStatusField implements Valuable { SIGNED("signed"), CANCELLED("cancelled"), DECLINED("declined"), + ERROR("error"), ERROR_CONVERTING("error_converting"), ERROR_SENDING("error_sending"), EXPIRED("expired"),