diff --git a/README.md b/README.md
index f629ff4..38a88f8 100644
--- a/README.md
+++ b/README.md
@@ -10,14 +10,14 @@ The official Java library for accessing ModelArk on Volcengine and BytePlus. It
com.volcengine
ark-runtime
- 0.14.0
+ 0.15.0
```
### Gradle
```groovy
-implementation 'com.volcengine:ark-runtime:0.14.0'
+implementation 'com.volcengine:ark-runtime:0.15.0'
```
## Choose Volcengine or BytePlus
diff --git a/VERSION b/VERSION
index a803cc2..a551051 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.14.0
+0.15.0
diff --git a/pom.xml b/pom.xml
index aeb66a3..bcbabe3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.volcengine
ark-runtime
- 0.14.0
+ 0.15.0
jar
ark-runtime
diff --git a/src/main/java/com/volcengine/ark/runtime/models/file/FileObject.java b/src/main/java/com/volcengine/ark/runtime/models/file/FileObject.java
index 92c89e9..f31b134 100644
--- a/src/main/java/com/volcengine/ark/runtime/models/file/FileObject.java
+++ b/src/main/java/com/volcengine/ark/runtime/models/file/FileObject.java
@@ -39,6 +39,7 @@
FileObject.JSON_PROPERTY_EXPIRE_AT,
FileObject.JSON_PROPERTY_STATUS,
FileObject.JSON_PROPERTY_DOWNLOAD_URL,
+ FileObject.JSON_PROPERTY_TOS,
FileObject.JSON_PROPERTY_ERROR,
FileObject.JSON_PROPERTY_PREPROCESS_CONFIGS
})
@@ -125,6 +126,10 @@ public static ObjectEnum fromValue(String value) {
@javax.annotation.Nullable
private String downloadUrl;
+ public static final String JSON_PROPERTY_TOS = "tos";
+ @javax.annotation.Nullable
+ private TosLocation tos;
+
public static final String JSON_PROPERTY_ERROR = "error";
@javax.annotation.Nullable
private FileError error;
@@ -436,6 +441,31 @@ public void setDownloadUrl(@javax.annotation.Nullable String downloadUrl) {
this.downloadUrl = downloadUrl;
}
+ public FileObject tos(@javax.annotation.Nullable TosLocation tos) {
+
+ this.tos = tos;
+ return this;
+ }
+
+ /**
+ * Stored object location. Only returned for files in user-owned TOS buckets.
+ * @return tos
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_TOS, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public TosLocation getTos() {
+ return tos;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_TOS, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setTos(@javax.annotation.Nullable TosLocation tos) {
+ this.tos = tos;
+ }
+
public FileObject error(@javax.annotation.Nullable FileError error) {
this.error = error;
@@ -508,13 +538,14 @@ public boolean equals(Object o) {
Objects.equals(this.expireAt, fileObject.expireAt) &&
Objects.equals(this.status, fileObject.status) &&
Objects.equals(this.downloadUrl, fileObject.downloadUrl) &&
+ Objects.equals(this.tos, fileObject.tos) &&
Objects.equals(this.error, fileObject.error) &&
Objects.equals(this.preprocessConfigs, fileObject.preprocessConfigs);
}
@Override
public int hashCode() {
- return Objects.hash(_object, id, purpose, model, description, filename, bytes, mimeType, createdAt, expireAt, status, downloadUrl, error, preprocessConfigs);
+ return Objects.hash(_object, id, purpose, model, description, filename, bytes, mimeType, createdAt, expireAt, status, downloadUrl, tos, error, preprocessConfigs);
}
@Override
@@ -533,6 +564,7 @@ public String toString() {
sb.append(" expireAt: ").append(toIndentedString(expireAt)).append("\n");
sb.append(" status: ").append(toIndentedString(status)).append("\n");
sb.append(" downloadUrl: ").append(toIndentedString(downloadUrl)).append("\n");
+ sb.append(" tos: ").append(toIndentedString(tos)).append("\n");
sb.append(" error: ").append(toIndentedString(error)).append("\n");
sb.append(" preprocessConfigs: ").append(toIndentedString(preprocessConfigs)).append("\n");
sb.append("}");
@@ -607,6 +639,10 @@ public FileObject.Builder downloadUrl(String downloadUrl) {
this.instance.downloadUrl = downloadUrl;
return this;
}
+ public FileObject.Builder tos(TosLocation tos) {
+ this.instance.tos = tos;
+ return this;
+ }
public FileObject.Builder error(FileError error) {
this.instance.error = error;
return this;
@@ -661,6 +697,7 @@ public FileObject.Builder toBuilder() {
.expireAt(getExpireAt())
.status(getStatus())
.downloadUrl(getDownloadUrl())
+ .tos(getTos())
.error(getError())
.preprocessConfigs(getPreprocessConfigs());
}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/file/TosLocation.java b/src/main/java/com/volcengine/ark/runtime/models/file/TosLocation.java
new file mode 100644
index 0000000..b86985a
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/file/TosLocation.java
@@ -0,0 +1,190 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark File API
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document: 0.1.0
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package com.volcengine.ark.runtime.models.file;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * Location of a file stored in a user-owned TOS bucket.
+ */
+@JsonPropertyOrder({
+ TosLocation.JSON_PROPERTY_BUCKET,
+ TosLocation.JSON_PROPERTY_OBJECT_KEY
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class TosLocation {
+ public static final String JSON_PROPERTY_BUCKET = "bucket";
+ @javax.annotation.Nonnull
+ private String bucket;
+
+ public static final String JSON_PROPERTY_OBJECT_KEY = "object_key";
+ @javax.annotation.Nonnull
+ private String objectKey;
+
+ public TosLocation() {
+ }
+
+ public TosLocation bucket(@javax.annotation.Nonnull String bucket) {
+
+ this.bucket = bucket;
+ return this;
+ }
+
+ /**
+ * TOS bucket name.
+ * @return bucket
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_BUCKET, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getBucket() {
+ return bucket;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_BUCKET, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setBucket(@javax.annotation.Nonnull String bucket) {
+ this.bucket = bucket;
+ }
+
+ public TosLocation objectKey(@javax.annotation.Nonnull String objectKey) {
+
+ this.objectKey = objectKey;
+ return this;
+ }
+
+ /**
+ * Full stored object key, including the upload prefix.
+ * @return objectKey
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_OBJECT_KEY, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getObjectKey() {
+ return objectKey;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_OBJECT_KEY, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setObjectKey(@javax.annotation.Nonnull String objectKey) {
+ this.objectKey = objectKey;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ TosLocation tosLocation = (TosLocation) o;
+ return Objects.equals(this.bucket, tosLocation.bucket) &&
+ Objects.equals(this.objectKey, tosLocation.objectKey);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(bucket, objectKey);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class TosLocation {\n");
+ sb.append(" bucket: ").append(toIndentedString(bucket)).append("\n");
+ sb.append(" objectKey: ").append(toIndentedString(objectKey)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ return o == null ? "null" : o.toString().replace("\n", "\n ");
+ }
+
+ public static class Builder {
+
+ private TosLocation instance;
+
+ public Builder() {
+ this(new TosLocation());
+ }
+
+ protected Builder(TosLocation instance) {
+ this.instance = instance;
+ }
+
+ public TosLocation.Builder bucket(String bucket) {
+ this.instance.bucket = bucket;
+ return this;
+ }
+ public TosLocation.Builder objectKey(String objectKey) {
+ this.instance.objectKey = objectKey;
+ return this;
+ }
+
+
+ /**
+ * returns a built TosLocation instance.
+ *
+ * The builder is not reusable.
+ */
+ public TosLocation build() {
+ try {
+ return this.instance;
+ } finally {
+ // ensure that this.instance is not reused
+ this.instance = null;
+ }
+ }
+
+ @Override
+ public String toString() {
+ return getClass() + "=(" + instance + ")";
+ }
+ }
+
+ /**
+ * Create a builder with no initialized field.
+ */
+ public static TosLocation.Builder builder() {
+ return new TosLocation.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public TosLocation.Builder toBuilder() {
+ return new TosLocation.Builder()
+ .bucket(getBucket())
+ .objectKey(getObjectKey());
+ }
+
+
+}