// This file is auto-generated by alef — DO NOT EDIT. // alef:hash:4e15143f4af1ae8bafbdb1506ef057da924484c66a19483966333558ad437e75 // To regenerate: alef generate // To verify freshness: alef verify --exit-code // Issues & docs: https://github.com/kreuzberg-dev/alef package dev.kreuzberg; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder; import org.jspecify.annotations.Nullable; /** * Email attachment representation. * * Contains metadata and optionally the content of an email attachment. */ @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = EmailAttachment.Builder.class) public record EmailAttachment( /** * Attachment name (from Content-Disposition header) */ @Nullable @JsonProperty("name") String name, /** * Filename of the attachment */ @Nullable @JsonProperty("filename") String filename, /** * MIME type of the attachment */ @Nullable @JsonProperty("mime_type") String mimeType, /** * Size in bytes */ @Nullable @JsonProperty("size") Long size, /** * Whether this attachment is an image */ @JsonProperty("is_image") boolean isImage, /** * Attachment data (if extracted). * Uses {@code bytes.Bytes} for cheap cloning of large buffers. */ @Nullable @JsonProperty("data") byte[] data ) { public static Builder builder() { return new Builder(); } // CPD-OFF @JsonPOJOBuilder(withPrefix = "with", buildMethodName = "build") public static final class Builder { private String name = null; private String filename = null; @JsonProperty("mime_type") private String mimeType = null; private Long size = null; @JsonProperty("is_image") private boolean isImage = false; private byte[] data = null; /** Sets the name field. */ @JsonProperty("name") public Builder withName(final @Nullable String value) { this.name = value; return this; } /** Sets the filename field. */ @JsonProperty("filename") public Builder withFilename(final @Nullable String value) { this.filename = value; return this; } /** Sets the mimeType field. */ @JsonProperty("mime_type") public Builder withMimeType(final @Nullable String value) { this.mimeType = value; return this; } /** Sets the size field. */ @JsonProperty("size") public Builder withSize(final @Nullable long value) { this.size = value; return this; } /** Sets the isImage field. */ @JsonProperty("is_image") public Builder withIsImage(final boolean value) { this.isImage = value; return this; } /** Sets the data field. */ @JsonProperty("data") public Builder withData(final @Nullable byte[] value) { this.data = value; return this; } /** Builds the EmailAttachment instance. */ public EmailAttachment build() { return new EmailAttachment( name, filename, mimeType, size, isImage, data ); } } // CPD-ON }