diff --git a/README.md b/README.md
index e516974..3101716 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.8.0
+ 0.9.0
```
### Gradle
```groovy
-implementation 'com.volcengine:ark-runtime:0.8.0'
+implementation 'com.volcengine:ark-runtime:0.9.0'
```
## Choose Volcengine or BytePlus
diff --git a/VERSION b/VERSION
index a3df0a6..ac39a10 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.8.0
+0.9.0
diff --git a/pom.xml b/pom.xml
index 65caf55..9de00b4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.volcengine
ark-runtime
- 0.8.0
+ 0.9.0
jar
ark-runtime
diff --git a/src/main/java/com/volcengine/ark/runtime/models/agent/RetrieveRequest.java b/src/main/java/com/volcengine/ark/runtime/models/agent/RetrieveRequest.java
new file mode 100644
index 0000000..e0f6f8d
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/agent/RetrieveRequest.java
@@ -0,0 +1,190 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Managed Agents Agent 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.agent;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * RetrieveRequest
+ */
+@JsonPropertyOrder({
+ RetrieveRequest.JSON_PROPERTY_AGENT_ID,
+ RetrieveRequest.JSON_PROPERTY_VERSION
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class RetrieveRequest {
+ public static final String JSON_PROPERTY_AGENT_ID = "agentId";
+ @javax.annotation.Nonnull
+ private String agentId;
+
+ public static final String JSON_PROPERTY_VERSION = "version";
+ @javax.annotation.Nullable
+ private Integer version;
+
+ public RetrieveRequest() {
+ }
+
+ public RetrieveRequest agentId(@javax.annotation.Nonnull String agentId) {
+
+ this.agentId = agentId;
+ return this;
+ }
+
+ /**
+ * Get agentId
+ * @return agentId
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_AGENT_ID, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getAgentId() {
+ return agentId;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_AGENT_ID, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setAgentId(@javax.annotation.Nonnull String agentId) {
+ this.agentId = agentId;
+ }
+
+ public RetrieveRequest version(@javax.annotation.Nullable Integer version) {
+
+ this.version = version;
+ return this;
+ }
+
+ /**
+ * 可选 Agent 版本号;省略返回当前最新版本,传入正整数返回 该历史版本的冻结视图;版本不存在返回 404。
+ * @return version
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_VERSION, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Integer getVersion() {
+ return version;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_VERSION, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setVersion(@javax.annotation.Nullable Integer version) {
+ this.version = version;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RetrieveRequest retrieveRequest = (RetrieveRequest) o;
+ return Objects.equals(this.agentId, retrieveRequest.agentId) &&
+ Objects.equals(this.version, retrieveRequest.version);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(agentId, version);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RetrieveRequest {\n");
+ sb.append(" agentId: ").append(toIndentedString(agentId)).append("\n");
+ sb.append(" version: ").append(toIndentedString(version)).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 RetrieveRequest instance;
+
+ public Builder() {
+ this(new RetrieveRequest());
+ }
+
+ protected Builder(RetrieveRequest instance) {
+ this.instance = instance;
+ }
+
+ public RetrieveRequest.Builder agentId(String agentId) {
+ this.instance.agentId = agentId;
+ return this;
+ }
+ public RetrieveRequest.Builder version(Integer version) {
+ this.instance.version = version;
+ return this;
+ }
+
+
+ /**
+ * returns a built RetrieveRequest instance.
+ *
+ * The builder is not reusable.
+ */
+ public RetrieveRequest 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 RetrieveRequest.Builder builder() {
+ return new RetrieveRequest.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public RetrieveRequest.Builder toBuilder() {
+ return new RetrieveRequest.Builder()
+ .agentId(getAgentId())
+ .version(getVersion());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/session/CheckpointComponent.java b/src/main/java/com/volcengine/ark/runtime/models/session/CheckpointComponent.java
new file mode 100644
index 0000000..c54aa30
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/session/CheckpointComponent.java
@@ -0,0 +1,375 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Managed Agents Session 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.session;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * Checkpoint 中单个资源组件的脱敏执行摘要。 不暴露运行时 Snapshot ID、平台 TOS Prefix、Credential 等内部信息。
+ */
+@JsonPropertyOrder({
+ CheckpointComponent.JSON_PROPERTY_TYPE,
+ CheckpointComponent.JSON_PROPERTY_STATUS,
+ CheckpointComponent.JSON_PROPERTY_SOURCE_RESOURCE_ID,
+ CheckpointComponent.JSON_PROPERTY_OBJECT_COUNT,
+ CheckpointComponent.JSON_PROPERTY_STORAGE_BYTES,
+ CheckpointComponent.JSON_PROPERTY_ERROR_CODE,
+ CheckpointComponent.JSON_PROPERTY_ERROR_MESSAGE
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class CheckpointComponent {
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @javax.annotation.Nonnull
+ private String type;
+
+ public static final String JSON_PROPERTY_STATUS = "status";
+ @javax.annotation.Nonnull
+ private CheckpointComponentStatus status;
+
+ public static final String JSON_PROPERTY_SOURCE_RESOURCE_ID = "source_resource_id";
+ @javax.annotation.Nullable
+ private String sourceResourceId;
+
+ public static final String JSON_PROPERTY_OBJECT_COUNT = "object_count";
+ @javax.annotation.Nullable
+ private Long objectCount;
+
+ public static final String JSON_PROPERTY_STORAGE_BYTES = "storage_bytes";
+ @javax.annotation.Nullable
+ private Long storageBytes;
+
+ public static final String JSON_PROPERTY_ERROR_CODE = "error_code";
+ @javax.annotation.Nullable
+ private String errorCode;
+
+ public static final String JSON_PROPERTY_ERROR_MESSAGE = "error_message";
+ @javax.annotation.Nullable
+ private String errorMessage;
+
+ public CheckpointComponent() {
+ }
+
+ public CheckpointComponent type(@javax.annotation.Nonnull String type) {
+
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * 组件类型。
+ * @return type
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getType() {
+ return type;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setType(@javax.annotation.Nonnull String type) {
+ this.type = type;
+ }
+
+ public CheckpointComponent status(@javax.annotation.Nonnull CheckpointComponentStatus status) {
+
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * 组件快照状态。
+ * @return status
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_STATUS, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public CheckpointComponentStatus getStatus() {
+ return status;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_STATUS, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setStatus(@javax.annotation.Nonnull CheckpointComponentStatus status) {
+ this.status = status;
+ }
+
+ public CheckpointComponent sourceResourceId(@javax.annotation.Nullable String sourceResourceId) {
+
+ this.sourceResourceId = sourceResourceId;
+ return this;
+ }
+
+ /**
+ * 源资源 ID。
+ * @return sourceResourceId
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_SOURCE_RESOURCE_ID, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getSourceResourceId() {
+ return sourceResourceId;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_SOURCE_RESOURCE_ID, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setSourceResourceId(@javax.annotation.Nullable String sourceResourceId) {
+ this.sourceResourceId = sourceResourceId;
+ }
+
+ public CheckpointComponent objectCount(@javax.annotation.Nullable Long objectCount) {
+
+ this.objectCount = objectCount;
+ return this;
+ }
+
+ /**
+ * 快照对象数。
+ * @return objectCount
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_OBJECT_COUNT, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Long getObjectCount() {
+ return objectCount;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_OBJECT_COUNT, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setObjectCount(@javax.annotation.Nullable Long objectCount) {
+ this.objectCount = objectCount;
+ }
+
+ public CheckpointComponent storageBytes(@javax.annotation.Nullable Long storageBytes) {
+
+ this.storageBytes = storageBytes;
+ return this;
+ }
+
+ /**
+ * 快照占用字节数。
+ * @return storageBytes
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_STORAGE_BYTES, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Long getStorageBytes() {
+ return storageBytes;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_STORAGE_BYTES, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setStorageBytes(@javax.annotation.Nullable Long storageBytes) {
+ this.storageBytes = storageBytes;
+ }
+
+ public CheckpointComponent errorCode(@javax.annotation.Nullable String errorCode) {
+
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * 失败错误码。
+ * @return errorCode
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_ERROR_CODE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getErrorCode() {
+ return errorCode;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_ERROR_CODE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setErrorCode(@javax.annotation.Nullable String errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public CheckpointComponent errorMessage(@javax.annotation.Nullable String errorMessage) {
+
+ this.errorMessage = errorMessage;
+ return this;
+ }
+
+ /**
+ * 失败错误信息。
+ * @return errorMessage
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_ERROR_MESSAGE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getErrorMessage() {
+ return errorMessage;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_ERROR_MESSAGE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setErrorMessage(@javax.annotation.Nullable String errorMessage) {
+ this.errorMessage = errorMessage;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CheckpointComponent checkpointComponent = (CheckpointComponent) o;
+ return Objects.equals(this.type, checkpointComponent.type) &&
+ Objects.equals(this.status, checkpointComponent.status) &&
+ Objects.equals(this.sourceResourceId, checkpointComponent.sourceResourceId) &&
+ Objects.equals(this.objectCount, checkpointComponent.objectCount) &&
+ Objects.equals(this.storageBytes, checkpointComponent.storageBytes) &&
+ Objects.equals(this.errorCode, checkpointComponent.errorCode) &&
+ Objects.equals(this.errorMessage, checkpointComponent.errorMessage);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, status, sourceResourceId, objectCount, storageBytes, errorCode, errorMessage);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CheckpointComponent {\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" status: ").append(toIndentedString(status)).append("\n");
+ sb.append(" sourceResourceId: ").append(toIndentedString(sourceResourceId)).append("\n");
+ sb.append(" objectCount: ").append(toIndentedString(objectCount)).append("\n");
+ sb.append(" storageBytes: ").append(toIndentedString(storageBytes)).append("\n");
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" errorMessage: ").append(toIndentedString(errorMessage)).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 CheckpointComponent instance;
+
+ public Builder() {
+ this(new CheckpointComponent());
+ }
+
+ protected Builder(CheckpointComponent instance) {
+ this.instance = instance;
+ }
+
+ public CheckpointComponent.Builder type(String type) {
+ this.instance.type = type;
+ return this;
+ }
+ public CheckpointComponent.Builder status(CheckpointComponentStatus status) {
+ this.instance.status = status;
+ return this;
+ }
+ public CheckpointComponent.Builder sourceResourceId(String sourceResourceId) {
+ this.instance.sourceResourceId = sourceResourceId;
+ return this;
+ }
+ public CheckpointComponent.Builder objectCount(Long objectCount) {
+ this.instance.objectCount = objectCount;
+ return this;
+ }
+ public CheckpointComponent.Builder storageBytes(Long storageBytes) {
+ this.instance.storageBytes = storageBytes;
+ return this;
+ }
+ public CheckpointComponent.Builder errorCode(String errorCode) {
+ this.instance.errorCode = errorCode;
+ return this;
+ }
+ public CheckpointComponent.Builder errorMessage(String errorMessage) {
+ this.instance.errorMessage = errorMessage;
+ return this;
+ }
+
+
+ /**
+ * returns a built CheckpointComponent instance.
+ *
+ * The builder is not reusable.
+ */
+ public CheckpointComponent 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 CheckpointComponent.Builder builder() {
+ return new CheckpointComponent.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public CheckpointComponent.Builder toBuilder() {
+ return new CheckpointComponent.Builder()
+ .type(getType())
+ .status(getStatus())
+ .sourceResourceId(getSourceResourceId())
+ .objectCount(getObjectCount())
+ .storageBytes(getStorageBytes())
+ .errorCode(getErrorCode())
+ .errorMessage(getErrorMessage());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/session/CheckpointComponentStatus.java b/src/main/java/com/volcengine/ark/runtime/models/session/CheckpointComponentStatus.java
new file mode 100644
index 0000000..ced959e
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/session/CheckpointComponentStatus.java
@@ -0,0 +1,61 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Managed Agents Session 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.session;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * 单个 Checkpoint 组件(资源快照分区)的状态。
+ */
+public enum CheckpointComponentStatus {
+
+ CREATING("creating"),
+
+ READY("ready"),
+
+ FAILED("failed"),
+
+ DELETED("deleted");
+
+ private String value;
+
+ CheckpointComponentStatus(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static CheckpointComponentStatus fromValue(String value) {
+ for (CheckpointComponentStatus b : CheckpointComponentStatus.values()) {
+ if (b.value.equalsIgnoreCase(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/session/CheckpointRestoreConfig.java b/src/main/java/com/volcengine/ark/runtime/models/session/CheckpointRestoreConfig.java
new file mode 100644
index 0000000..3c9ee1d
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/session/CheckpointRestoreConfig.java
@@ -0,0 +1,153 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Managed Agents Session 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.session;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * 跨账号 Checkpoint 恢复的目标账号侧配置。 是否提供分三种情况: - 同账号恢复:**必须省略**,携带返回 400; - 跨账号恢复但 Checkpoint 不含 customer TOS 数据(仅平台托管的 uploads/outputs/memory 等):**必须省略**,携带返回 400,错误码 消息为 \"checkpoint_restore_config is only allowed when the checkpoint contains customer TOS data\"; - 跨账号恢复且 Checkpoint 包含 customer TOS 数据:**必填** `tos_bucket`,声明调用方已离线同步好快照的目标账号 TOS 桶; 省略返回 400。 快照源 prefix、region、mount_path、access 均从 Checkpoint 继承, 最终 Session 目标 key 由平台生成。
+ */
+@JsonPropertyOrder({
+ CheckpointRestoreConfig.JSON_PROPERTY_TOS_BUCKET
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class CheckpointRestoreConfig {
+ public static final String JSON_PROPERTY_TOS_BUCKET = "tos_bucket";
+ @javax.annotation.Nonnull
+ private String tosBucket;
+
+ public CheckpointRestoreConfig() {
+ }
+
+ public CheckpointRestoreConfig tosBucket(@javax.annotation.Nonnull String tosBucket) {
+
+ this.tosBucket = tosBucket;
+ return this;
+ }
+
+ /**
+ * 调用方已将 customer TOS 快照同步到的目标账号 TOS 桶。
+ * @return tosBucket
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_TOS_BUCKET, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getTosBucket() {
+ return tosBucket;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_TOS_BUCKET, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setTosBucket(@javax.annotation.Nonnull String tosBucket) {
+ this.tosBucket = tosBucket;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CheckpointRestoreConfig checkpointRestoreConfig = (CheckpointRestoreConfig) o;
+ return Objects.equals(this.tosBucket, checkpointRestoreConfig.tosBucket);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(tosBucket);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CheckpointRestoreConfig {\n");
+ sb.append(" tosBucket: ").append(toIndentedString(tosBucket)).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 CheckpointRestoreConfig instance;
+
+ public Builder() {
+ this(new CheckpointRestoreConfig());
+ }
+
+ protected Builder(CheckpointRestoreConfig instance) {
+ this.instance = instance;
+ }
+
+ public CheckpointRestoreConfig.Builder tosBucket(String tosBucket) {
+ this.instance.tosBucket = tosBucket;
+ return this;
+ }
+
+
+ /**
+ * returns a built CheckpointRestoreConfig instance.
+ *
+ * The builder is not reusable.
+ */
+ public CheckpointRestoreConfig 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 CheckpointRestoreConfig.Builder builder() {
+ return new CheckpointRestoreConfig.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public CheckpointRestoreConfig.Builder toBuilder() {
+ return new CheckpointRestoreConfig.Builder()
+ .tosBucket(getTosBucket());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/session/CheckpointSessionSnapshot.java b/src/main/java/com/volcengine/ark/runtime/models/session/CheckpointSessionSnapshot.java
new file mode 100644
index 0000000..c075c5e
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/session/CheckpointSessionSnapshot.java
@@ -0,0 +1,382 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Managed Agents Session 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.session;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * 创建 Checkpoint 时冻结的用户可见 Session 配置。 `agent` / `environment` 反映创建瞬间的 wire 形态(分别与 Ark.Agent 的 Agent、Ark.Environment 的 Environment 同 shape),为保持本模块自足, 此处承载为 `Record<unknown>`。
+ */
+@JsonPropertyOrder({
+ CheckpointSessionSnapshot.JSON_PROPERTY_AGENT,
+ CheckpointSessionSnapshot.JSON_PROPERTY_ENVIRONMENT,
+ CheckpointSessionSnapshot.JSON_PROPERTY_RESOURCES,
+ CheckpointSessionSnapshot.JSON_PROPERTY_VAULT_IDS,
+ CheckpointSessionSnapshot.JSON_PROPERTY_TITLE,
+ CheckpointSessionSnapshot.JSON_PROPERTY_TAGS
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class CheckpointSessionSnapshot {
+ public static final String JSON_PROPERTY_AGENT = "agent";
+ @javax.annotation.Nullable
+ private Map agent;
+
+ public static final String JSON_PROPERTY_ENVIRONMENT = "environment";
+ @javax.annotation.Nullable
+ private Map environment;
+
+ public static final String JSON_PROPERTY_RESOURCES = "resources";
+ @javax.annotation.Nullable
+ private List resources;
+
+ public static final String JSON_PROPERTY_VAULT_IDS = "vault_ids";
+ @javax.annotation.Nullable
+ private List vaultIds;
+
+ public static final String JSON_PROPERTY_TITLE = "title";
+ @javax.annotation.Nullable
+ private String title;
+
+ public static final String JSON_PROPERTY_TAGS = "tags";
+ @javax.annotation.Nullable
+ private List tags;
+
+ public CheckpointSessionSnapshot() {
+ }
+
+ public CheckpointSessionSnapshot agent(@javax.annotation.Nullable Map agent) {
+
+ this.agent = agent;
+ return this;
+ }
+
+ public CheckpointSessionSnapshot putAgentItem(String key, Object agentItem) {
+ if (this.agent == null) {
+ this.agent = new HashMap<>();
+ }
+ this.agent.put(key, agentItem);
+ return this;
+ }
+
+ /**
+ * 冻结的 Agent 快照。
+ * @return agent
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_AGENT, required = false)
+ @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.NON_EMPTY)
+
+ public Map getAgent() {
+ return agent;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_AGENT, required = false)
+ @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.NON_EMPTY)
+ public void setAgent(@javax.annotation.Nullable Map agent) {
+ this.agent = agent;
+ }
+
+ public CheckpointSessionSnapshot environment(@javax.annotation.Nullable Map environment) {
+
+ this.environment = environment;
+ return this;
+ }
+
+ public CheckpointSessionSnapshot putEnvironmentItem(String key, Object environmentItem) {
+ if (this.environment == null) {
+ this.environment = new HashMap<>();
+ }
+ this.environment.put(key, environmentItem);
+ return this;
+ }
+
+ /**
+ * 冻结的 Environment 快照。
+ * @return environment
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_ENVIRONMENT, required = false)
+ @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.NON_EMPTY)
+
+ public Map getEnvironment() {
+ return environment;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_ENVIRONMENT, required = false)
+ @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.NON_EMPTY)
+ public void setEnvironment(@javax.annotation.Nullable Map environment) {
+ this.environment = environment;
+ }
+
+ public CheckpointSessionSnapshot resources(@javax.annotation.Nullable List resources) {
+
+ this.resources = resources;
+ return this;
+ }
+
+ public CheckpointSessionSnapshot addResourcesItem(SessionResource resourcesItem) {
+ if (this.resources == null) {
+ this.resources = new ArrayList<>();
+ }
+ this.resources.add(resourcesItem);
+ return this;
+ }
+
+ /**
+ * 冻结的挂载资源列表。
+ * @return resources
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_RESOURCES, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+
+ public List getResources() {
+ return resources;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_RESOURCES, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+ public void setResources(@javax.annotation.Nullable List resources) {
+ this.resources = resources;
+ }
+
+ public CheckpointSessionSnapshot vaultIds(@javax.annotation.Nullable List vaultIds) {
+
+ this.vaultIds = vaultIds;
+ return this;
+ }
+
+ public CheckpointSessionSnapshot addVaultIdsItem(String vaultIdsItem) {
+ if (this.vaultIds == null) {
+ this.vaultIds = new ArrayList<>();
+ }
+ this.vaultIds.add(vaultIdsItem);
+ return this;
+ }
+
+ /**
+ * 冻结的可访问 Vault ID 列表。
+ * @return vaultIds
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_VAULT_IDS, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+
+ public List getVaultIds() {
+ return vaultIds;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_VAULT_IDS, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+ public void setVaultIds(@javax.annotation.Nullable List vaultIds) {
+ this.vaultIds = vaultIds;
+ }
+
+ public CheckpointSessionSnapshot title(@javax.annotation.Nullable String title) {
+
+ this.title = title;
+ return this;
+ }
+
+ /**
+ * 冻结的会话标题。
+ * @return title
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_TITLE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getTitle() {
+ return title;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_TITLE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setTitle(@javax.annotation.Nullable String title) {
+ this.title = title;
+ }
+
+ public CheckpointSessionSnapshot tags(@javax.annotation.Nullable List tags) {
+
+ this.tags = tags;
+ return this;
+ }
+
+ public CheckpointSessionSnapshot addTagsItem(Tag tagsItem) {
+ if (this.tags == null) {
+ this.tags = new ArrayList<>();
+ }
+ this.tags.add(tagsItem);
+ return this;
+ }
+
+ /**
+ * 冻结的资源标签。
+ * @return tags
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_TAGS, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+
+ public List getTags() {
+ return tags;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_TAGS, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+ public void setTags(@javax.annotation.Nullable List tags) {
+ this.tags = tags;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CheckpointSessionSnapshot checkpointSessionSnapshot = (CheckpointSessionSnapshot) o;
+ return Objects.equals(this.agent, checkpointSessionSnapshot.agent) &&
+ Objects.equals(this.environment, checkpointSessionSnapshot.environment) &&
+ Objects.equals(this.resources, checkpointSessionSnapshot.resources) &&
+ Objects.equals(this.vaultIds, checkpointSessionSnapshot.vaultIds) &&
+ Objects.equals(this.title, checkpointSessionSnapshot.title) &&
+ Objects.equals(this.tags, checkpointSessionSnapshot.tags);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(agent, environment, resources, vaultIds, title, tags);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CheckpointSessionSnapshot {\n");
+ sb.append(" agent: ").append(toIndentedString(agent)).append("\n");
+ sb.append(" environment: ").append(toIndentedString(environment)).append("\n");
+ sb.append(" resources: ").append(toIndentedString(resources)).append("\n");
+ sb.append(" vaultIds: ").append(toIndentedString(vaultIds)).append("\n");
+ sb.append(" title: ").append(toIndentedString(title)).append("\n");
+ sb.append(" tags: ").append(toIndentedString(tags)).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 CheckpointSessionSnapshot instance;
+
+ public Builder() {
+ this(new CheckpointSessionSnapshot());
+ }
+
+ protected Builder(CheckpointSessionSnapshot instance) {
+ this.instance = instance;
+ }
+
+ public CheckpointSessionSnapshot.Builder agent(Map agent) {
+ this.instance.agent = agent;
+ return this;
+ }
+ public CheckpointSessionSnapshot.Builder environment(Map environment) {
+ this.instance.environment = environment;
+ return this;
+ }
+ public CheckpointSessionSnapshot.Builder resources(List resources) {
+ this.instance.resources = resources;
+ return this;
+ }
+ public CheckpointSessionSnapshot.Builder vaultIds(List vaultIds) {
+ this.instance.vaultIds = vaultIds;
+ return this;
+ }
+ public CheckpointSessionSnapshot.Builder title(String title) {
+ this.instance.title = title;
+ return this;
+ }
+ public CheckpointSessionSnapshot.Builder tags(List tags) {
+ this.instance.tags = tags;
+ return this;
+ }
+
+
+ /**
+ * returns a built CheckpointSessionSnapshot instance.
+ *
+ * The builder is not reusable.
+ */
+ public CheckpointSessionSnapshot 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 CheckpointSessionSnapshot.Builder builder() {
+ return new CheckpointSessionSnapshot.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public CheckpointSessionSnapshot.Builder toBuilder() {
+ return new CheckpointSessionSnapshot.Builder()
+ .agent(getAgent())
+ .environment(getEnvironment())
+ .resources(getResources())
+ .vaultIds(getVaultIds())
+ .title(getTitle())
+ .tags(getTags());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/session/CheckpointStatus.java b/src/main/java/com/volcengine/ark/runtime/models/session/CheckpointStatus.java
new file mode 100644
index 0000000..82c1a56
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/session/CheckpointStatus.java
@@ -0,0 +1,63 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Managed Agents Session 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.session;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Checkpoint 生命周期状态。
+ */
+public enum CheckpointStatus {
+
+ CREATING("creating"),
+
+ READY("ready"),
+
+ FAILED("failed"),
+
+ DELETING("deleting"),
+
+ DELETED("deleted");
+
+ private String value;
+
+ CheckpointStatus(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static CheckpointStatus fromValue(String value) {
+ for (CheckpointStatus b : CheckpointStatus.values()) {
+ if (b.value.equalsIgnoreCase(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/session/CreateSessionCheckpointRequest.java b/src/main/java/com/volcengine/ark/runtime/models/session/CreateSessionCheckpointRequest.java
new file mode 100644
index 0000000..3e9771e
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/session/CreateSessionCheckpointRequest.java
@@ -0,0 +1,153 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Managed Agents Session 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.session;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * 创建 Session Checkpoint 的请求体。
+ */
+@JsonPropertyOrder({
+ CreateSessionCheckpointRequest.JSON_PROPERTY_NAME
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class CreateSessionCheckpointRequest {
+ public static final String JSON_PROPERTY_NAME = "name";
+ @javax.annotation.Nonnull
+ private String name;
+
+ public CreateSessionCheckpointRequest() {
+ }
+
+ public CreateSessionCheckpointRequest name(@javax.annotation.Nonnull String name) {
+
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Checkpoint 名称;由调用方提供,长度 1–128,仅用于展示。 Checkpoint ID 由平台生成并在响应的 `id` 字段返回。
+ * @return name
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_NAME, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getName() {
+ return name;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_NAME, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setName(@javax.annotation.Nonnull String name) {
+ this.name = name;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CreateSessionCheckpointRequest createSessionCheckpointRequest = (CreateSessionCheckpointRequest) o;
+ return Objects.equals(this.name, createSessionCheckpointRequest.name);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CreateSessionCheckpointRequest {\n");
+ sb.append(" name: ").append(toIndentedString(name)).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 CreateSessionCheckpointRequest instance;
+
+ public Builder() {
+ this(new CreateSessionCheckpointRequest());
+ }
+
+ protected Builder(CreateSessionCheckpointRequest instance) {
+ this.instance = instance;
+ }
+
+ public CreateSessionCheckpointRequest.Builder name(String name) {
+ this.instance.name = name;
+ return this;
+ }
+
+
+ /**
+ * returns a built CreateSessionCheckpointRequest instance.
+ *
+ * The builder is not reusable.
+ */
+ public CreateSessionCheckpointRequest 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 CreateSessionCheckpointRequest.Builder builder() {
+ return new CreateSessionCheckpointRequest.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public CreateSessionCheckpointRequest.Builder toBuilder() {
+ return new CreateSessionCheckpointRequest.Builder()
+ .name(getName());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/session/CreateSessionCheckpointResponse.java b/src/main/java/com/volcengine/ark/runtime/models/session/CreateSessionCheckpointResponse.java
new file mode 100644
index 0000000..81199ff
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/session/CreateSessionCheckpointResponse.java
@@ -0,0 +1,153 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Managed Agents Session 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.session;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * `POST /sessions/{session_id}/checkpoints` 响应体。
+ */
+@JsonPropertyOrder({
+ CreateSessionCheckpointResponse.JSON_PROPERTY_CHECKPOINT
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class CreateSessionCheckpointResponse {
+ public static final String JSON_PROPERTY_CHECKPOINT = "checkpoint";
+ @javax.annotation.Nonnull
+ private SessionCheckpoint checkpoint;
+
+ public CreateSessionCheckpointResponse() {
+ }
+
+ public CreateSessionCheckpointResponse checkpoint(@javax.annotation.Nonnull SessionCheckpoint checkpoint) {
+
+ this.checkpoint = checkpoint;
+ return this;
+ }
+
+ /**
+ * 创建出的 Checkpoint。
+ * @return checkpoint
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_CHECKPOINT, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public SessionCheckpoint getCheckpoint() {
+ return checkpoint;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_CHECKPOINT, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setCheckpoint(@javax.annotation.Nonnull SessionCheckpoint checkpoint) {
+ this.checkpoint = checkpoint;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CreateSessionCheckpointResponse createSessionCheckpointResponse = (CreateSessionCheckpointResponse) o;
+ return Objects.equals(this.checkpoint, createSessionCheckpointResponse.checkpoint);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(checkpoint);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CreateSessionCheckpointResponse {\n");
+ sb.append(" checkpoint: ").append(toIndentedString(checkpoint)).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 CreateSessionCheckpointResponse instance;
+
+ public Builder() {
+ this(new CreateSessionCheckpointResponse());
+ }
+
+ protected Builder(CreateSessionCheckpointResponse instance) {
+ this.instance = instance;
+ }
+
+ public CreateSessionCheckpointResponse.Builder checkpoint(SessionCheckpoint checkpoint) {
+ this.instance.checkpoint = checkpoint;
+ return this;
+ }
+
+
+ /**
+ * returns a built CreateSessionCheckpointResponse instance.
+ *
+ * The builder is not reusable.
+ */
+ public CreateSessionCheckpointResponse 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 CreateSessionCheckpointResponse.Builder builder() {
+ return new CreateSessionCheckpointResponse.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public CreateSessionCheckpointResponse.Builder toBuilder() {
+ return new CreateSessionCheckpointResponse.Builder()
+ .checkpoint(getCheckpoint());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/session/CreateSessionRequest.java b/src/main/java/com/volcengine/ark/runtime/models/session/CreateSessionRequest.java
index a3cc087..3e070f9 100644
--- a/src/main/java/com/volcengine/ark/runtime/models/session/CreateSessionRequest.java
+++ b/src/main/java/com/volcengine/ark/runtime/models/session/CreateSessionRequest.java
@@ -33,12 +33,14 @@
CreateSessionRequest.JSON_PROPERTY_TAGS,
CreateSessionRequest.JSON_PROPERTY_RESOURCES,
CreateSessionRequest.JSON_PROPERTY_TITLE,
- CreateSessionRequest.JSON_PROPERTY_VAULT_IDS
+ CreateSessionRequest.JSON_PROPERTY_VAULT_IDS,
+ CreateSessionRequest.JSON_PROPERTY_CHECKPOINT_ID,
+ CreateSessionRequest.JSON_PROPERTY_CHECKPOINT_RESTORE_CONFIG
})
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
public class CreateSessionRequest {
public static final String JSON_PROPERTY_AGENT = "agent";
- @javax.annotation.Nonnull
+ @javax.annotation.Nullable
private AgentIdentifier agent;
public static final String JSON_PROPERTY_ENVIRONMENT_ID = "environment_id";
@@ -65,31 +67,39 @@ public class CreateSessionRequest {
@javax.annotation.Nullable
private List vaultIds;
+ public static final String JSON_PROPERTY_CHECKPOINT_ID = "checkpoint_id";
+ @javax.annotation.Nullable
+ private String checkpointId;
+
+ public static final String JSON_PROPERTY_CHECKPOINT_RESTORE_CONFIG = "checkpoint_restore_config";
+ @javax.annotation.Nullable
+ private CheckpointRestoreConfig checkpointRestoreConfig;
+
public CreateSessionRequest() {
}
- public CreateSessionRequest agent(@javax.annotation.Nonnull AgentIdentifier agent) {
+ public CreateSessionRequest agent(@javax.annotation.Nullable AgentIdentifier agent) {
this.agent = agent;
return this;
}
/**
- * Agent 标识。
+ * Agent 标识。普通创建必填;携带 `checkpoint_id` 恢复时可省略。 注意两种恢复基线的区别: - **省略 `agent`**:完整继承 Checkpoint 冻结的 Agent 快照(含其 system / tools / model 接入配置等全部字段); - **显式提供 `agent`**:不是在 Checkpoint 快照上做局部修改,而是按 Agent 引用重新解析(指定 `version` 取该版本,省略取当前最新版; 源 Agent 在 Checkpoint 冻结后更新过就会拿到新配置),再在该基线 上应用 `agent_with_overrides` 覆写。
* @return agent
*/
- @javax.annotation.Nonnull
- @JsonProperty(value = JSON_PROPERTY_AGENT, required = true)
- @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_AGENT, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public AgentIdentifier getAgent() {
return agent;
}
- @JsonProperty(value = JSON_PROPERTY_AGENT, required = true)
- @JsonInclude(value = JsonInclude.Include.ALWAYS)
- public void setAgent(@javax.annotation.Nonnull AgentIdentifier agent) {
+ @JsonProperty(value = JSON_PROPERTY_AGENT, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setAgent(@javax.annotation.Nullable AgentIdentifier agent) {
this.agent = agent;
}
@@ -100,7 +110,7 @@ public CreateSessionRequest environmentId(@javax.annotation.Nullable String envi
}
/**
- * 关联的 Environment ID。与 `environment` 二选一。
+ * 关联的 Environment ID。与 `environment` 二选一;恢复时省略则继承快照。
* @return environmentId
*/
@javax.annotation.Nullable
@@ -191,7 +201,7 @@ public CreateSessionRequest addResourcesItem(SessionResource resourcesItem) {
}
/**
- * 挂载资源列表。
+ * 挂载资源列表。普通创建可指定;基于 Checkpoint 恢复时**必须省略** (同账号 / 跨账号都完整继承 Checkpoint 资源,显式传空数组也返回 400)。
* @return resources
*/
@javax.annotation.Nullable
@@ -249,7 +259,7 @@ public CreateSessionRequest addVaultIdsItem(String vaultIdsItem) {
}
/**
- * 会话可访问的 Vault ID 列表。
+ * 会话可访问的 Vault ID 列表。基于 Checkpoint 同账号恢复时必须省略并 继承快照;跨账号恢复允许显式提供完整替换列表(空数组同样属于覆盖)。
* @return vaultIds
*/
@javax.annotation.Nullable
@@ -267,6 +277,56 @@ public void setVaultIds(@javax.annotation.Nullable List vaultIds) {
this.vaultIds = vaultIds;
}
+ public CreateSessionRequest checkpointId(@javax.annotation.Nullable String checkpointId) {
+
+ this.checkpointId = checkpointId;
+ return this;
+ }
+
+ /**
+ * Session Checkpoint ID。省略时为普通创建;传入时以 ready 状态 Checkpoint 的冻结配置为默认值创建新 Session,未显式提供的字段均从 快照继承。Checkpoint 不存在 / 非 ready 返回对应 4xx。
+ * @return checkpointId
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_CHECKPOINT_ID, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getCheckpointId() {
+ return checkpointId;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_CHECKPOINT_ID, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCheckpointId(@javax.annotation.Nullable String checkpointId) {
+ this.checkpointId = checkpointId;
+ }
+
+ public CreateSessionRequest checkpointRestoreConfig(@javax.annotation.Nullable CheckpointRestoreConfig checkpointRestoreConfig) {
+
+ this.checkpointRestoreConfig = checkpointRestoreConfig;
+ return this;
+ }
+
+ /**
+ * 跨账号 customer TOS 恢复配置。**不是所有跨账号恢复都需要**:仅当跨 账号恢复且 Checkpoint 含 customer TOS 数据时必填;同账号恢复、以及 跨账号但不含 customer TOS 时必须省略,否则返回 400。三分支细则见 `CheckpointRestoreConfig`。
+ * @return checkpointRestoreConfig
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_CHECKPOINT_RESTORE_CONFIG, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public CheckpointRestoreConfig getCheckpointRestoreConfig() {
+ return checkpointRestoreConfig;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_CHECKPOINT_RESTORE_CONFIG, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCheckpointRestoreConfig(@javax.annotation.Nullable CheckpointRestoreConfig checkpointRestoreConfig) {
+ this.checkpointRestoreConfig = checkpointRestoreConfig;
+ }
+
@Override
public boolean equals(Object o) {
@@ -283,12 +343,14 @@ public boolean equals(Object o) {
Objects.equals(this.tags, createSessionRequest.tags) &&
Objects.equals(this.resources, createSessionRequest.resources) &&
Objects.equals(this.title, createSessionRequest.title) &&
- Objects.equals(this.vaultIds, createSessionRequest.vaultIds);
+ Objects.equals(this.vaultIds, createSessionRequest.vaultIds) &&
+ Objects.equals(this.checkpointId, createSessionRequest.checkpointId) &&
+ Objects.equals(this.checkpointRestoreConfig, createSessionRequest.checkpointRestoreConfig);
}
@Override
public int hashCode() {
- return Objects.hash(agent, environmentId, environment, tags, resources, title, vaultIds);
+ return Objects.hash(agent, environmentId, environment, tags, resources, title, vaultIds, checkpointId, checkpointRestoreConfig);
}
@Override
@@ -302,6 +364,8 @@ public String toString() {
sb.append(" resources: ").append(toIndentedString(resources)).append("\n");
sb.append(" title: ").append(toIndentedString(title)).append("\n");
sb.append(" vaultIds: ").append(toIndentedString(vaultIds)).append("\n");
+ sb.append(" checkpointId: ").append(toIndentedString(checkpointId)).append("\n");
+ sb.append(" checkpointRestoreConfig: ").append(toIndentedString(checkpointRestoreConfig)).append("\n");
sb.append("}");
return sb.toString();
}
@@ -354,6 +418,14 @@ public CreateSessionRequest.Builder vaultIds(List vaultIds) {
this.instance.vaultIds = vaultIds;
return this;
}
+ public CreateSessionRequest.Builder checkpointId(String checkpointId) {
+ this.instance.checkpointId = checkpointId;
+ return this;
+ }
+ public CreateSessionRequest.Builder checkpointRestoreConfig(CheckpointRestoreConfig checkpointRestoreConfig) {
+ this.instance.checkpointRestoreConfig = checkpointRestoreConfig;
+ return this;
+ }
/**
@@ -394,7 +466,9 @@ public CreateSessionRequest.Builder toBuilder() {
.tags(getTags())
.resources(getResources())
.title(getTitle())
- .vaultIds(getVaultIds());
+ .vaultIds(getVaultIds())
+ .checkpointId(getCheckpointId())
+ .checkpointRestoreConfig(getCheckpointRestoreConfig());
}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/session/DeleteSessionCheckpointResponse.java b/src/main/java/com/volcengine/ark/runtime/models/session/DeleteSessionCheckpointResponse.java
new file mode 100644
index 0000000..bf762ff
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/session/DeleteSessionCheckpointResponse.java
@@ -0,0 +1,190 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Managed Agents Session 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.session;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * `DELETE /checkpoints/{checkpoint_id}` 响应体。
+ */
+@JsonPropertyOrder({
+ DeleteSessionCheckpointResponse.JSON_PROPERTY_ID,
+ DeleteSessionCheckpointResponse.JSON_PROPERTY_STATUS
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class DeleteSessionCheckpointResponse {
+ public static final String JSON_PROPERTY_ID = "id";
+ @javax.annotation.Nonnull
+ private String id;
+
+ public static final String JSON_PROPERTY_STATUS = "status";
+ @javax.annotation.Nonnull
+ private CheckpointStatus status;
+
+ public DeleteSessionCheckpointResponse() {
+ }
+
+ public DeleteSessionCheckpointResponse id(@javax.annotation.Nonnull String id) {
+
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * 被删除的 Checkpoint ID。
+ * @return id
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_ID, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getId() {
+ return id;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_ID, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setId(@javax.annotation.Nonnull String id) {
+ this.id = id;
+ }
+
+ public DeleteSessionCheckpointResponse status(@javax.annotation.Nonnull CheckpointStatus status) {
+
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * 删除受理后的 Checkpoint 状态(通常为 `\"deleting\"`)。
+ * @return status
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_STATUS, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public CheckpointStatus getStatus() {
+ return status;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_STATUS, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setStatus(@javax.annotation.Nonnull CheckpointStatus status) {
+ this.status = status;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ DeleteSessionCheckpointResponse deleteSessionCheckpointResponse = (DeleteSessionCheckpointResponse) o;
+ return Objects.equals(this.id, deleteSessionCheckpointResponse.id) &&
+ Objects.equals(this.status, deleteSessionCheckpointResponse.status);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, status);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class DeleteSessionCheckpointResponse {\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" status: ").append(toIndentedString(status)).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 DeleteSessionCheckpointResponse instance;
+
+ public Builder() {
+ this(new DeleteSessionCheckpointResponse());
+ }
+
+ protected Builder(DeleteSessionCheckpointResponse instance) {
+ this.instance = instance;
+ }
+
+ public DeleteSessionCheckpointResponse.Builder id(String id) {
+ this.instance.id = id;
+ return this;
+ }
+ public DeleteSessionCheckpointResponse.Builder status(CheckpointStatus status) {
+ this.instance.status = status;
+ return this;
+ }
+
+
+ /**
+ * returns a built DeleteSessionCheckpointResponse instance.
+ *
+ * The builder is not reusable.
+ */
+ public DeleteSessionCheckpointResponse 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 DeleteSessionCheckpointResponse.Builder builder() {
+ return new DeleteSessionCheckpointResponse.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public DeleteSessionCheckpointResponse.Builder toBuilder() {
+ return new DeleteSessionCheckpointResponse.Builder()
+ .id(getId())
+ .status(getStatus());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/session/GetSessionCheckpointResponse.java b/src/main/java/com/volcengine/ark/runtime/models/session/GetSessionCheckpointResponse.java
new file mode 100644
index 0000000..aa739ea
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/session/GetSessionCheckpointResponse.java
@@ -0,0 +1,153 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Managed Agents Session 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.session;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * `GET /checkpoints/{checkpoint_id}` 响应体。
+ */
+@JsonPropertyOrder({
+ GetSessionCheckpointResponse.JSON_PROPERTY_CHECKPOINT
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class GetSessionCheckpointResponse {
+ public static final String JSON_PROPERTY_CHECKPOINT = "checkpoint";
+ @javax.annotation.Nonnull
+ private SessionCheckpoint checkpoint;
+
+ public GetSessionCheckpointResponse() {
+ }
+
+ public GetSessionCheckpointResponse checkpoint(@javax.annotation.Nonnull SessionCheckpoint checkpoint) {
+
+ this.checkpoint = checkpoint;
+ return this;
+ }
+
+ /**
+ * Checkpoint 对象。
+ * @return checkpoint
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_CHECKPOINT, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public SessionCheckpoint getCheckpoint() {
+ return checkpoint;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_CHECKPOINT, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setCheckpoint(@javax.annotation.Nonnull SessionCheckpoint checkpoint) {
+ this.checkpoint = checkpoint;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ GetSessionCheckpointResponse getSessionCheckpointResponse = (GetSessionCheckpointResponse) o;
+ return Objects.equals(this.checkpoint, getSessionCheckpointResponse.checkpoint);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(checkpoint);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class GetSessionCheckpointResponse {\n");
+ sb.append(" checkpoint: ").append(toIndentedString(checkpoint)).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 GetSessionCheckpointResponse instance;
+
+ public Builder() {
+ this(new GetSessionCheckpointResponse());
+ }
+
+ protected Builder(GetSessionCheckpointResponse instance) {
+ this.instance = instance;
+ }
+
+ public GetSessionCheckpointResponse.Builder checkpoint(SessionCheckpoint checkpoint) {
+ this.instance.checkpoint = checkpoint;
+ return this;
+ }
+
+
+ /**
+ * returns a built GetSessionCheckpointResponse instance.
+ *
+ * The builder is not reusable.
+ */
+ public GetSessionCheckpointResponse 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 GetSessionCheckpointResponse.Builder builder() {
+ return new GetSessionCheckpointResponse.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public GetSessionCheckpointResponse.Builder toBuilder() {
+ return new GetSessionCheckpointResponse.Builder()
+ .checkpoint(getCheckpoint());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/session/ListCheckpointsRequest.java b/src/main/java/com/volcengine/ark/runtime/models/session/ListCheckpointsRequest.java
new file mode 100644
index 0000000..8086800
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/session/ListCheckpointsRequest.java
@@ -0,0 +1,274 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Managed Agents Session 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.session;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * ListCheckpointsRequest
+ */
+@JsonPropertyOrder({
+ ListCheckpointsRequest.JSON_PROPERTY_SOURCE_SESSION_ID,
+ ListCheckpointsRequest.JSON_PROPERTY_STATUS,
+ ListCheckpointsRequest.JSON_PROPERTY_LIMIT,
+ ListCheckpointsRequest.JSON_PROPERTY_PAGE
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class ListCheckpointsRequest {
+ public static final String JSON_PROPERTY_SOURCE_SESSION_ID = "source_session_id";
+ @javax.annotation.Nullable
+ private String sourceSessionId;
+
+ public static final String JSON_PROPERTY_STATUS = "status";
+ @javax.annotation.Nullable
+ private List status;
+
+ public static final String JSON_PROPERTY_LIMIT = "limit";
+ @javax.annotation.Nullable
+ private Integer limit = 20;
+
+ public static final String JSON_PROPERTY_PAGE = "page";
+ @javax.annotation.Nullable
+ private String page;
+
+ public ListCheckpointsRequest() {
+ }
+
+ public ListCheckpointsRequest sourceSessionId(@javax.annotation.Nullable String sourceSessionId) {
+
+ this.sourceSessionId = sourceSessionId;
+ return this;
+ }
+
+ /**
+ * 按来源 Session ID 精确过滤。
+ * @return sourceSessionId
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_SOURCE_SESSION_ID, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getSourceSessionId() {
+ return sourceSessionId;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_SOURCE_SESSION_ID, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setSourceSessionId(@javax.annotation.Nullable String sourceSessionId) {
+ this.sourceSessionId = sourceSessionId;
+ }
+
+ public ListCheckpointsRequest status(@javax.annotation.Nullable List status) {
+
+ this.status = status;
+ return this;
+ }
+
+ public ListCheckpointsRequest addStatusItem(CheckpointStatus statusItem) {
+ if (this.status == null) {
+ this.status = new ArrayList<>();
+ }
+ this.status.add(statusItem);
+ return this;
+ }
+
+ /**
+ * 按状态过滤;多值使用**重复 query 参数**编码 (`status=ready&status=failed`),不要用逗号拼接。
+ * @return status
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_STATUS, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+
+ public List getStatus() {
+ return status;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_STATUS, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+ public void setStatus(@javax.annotation.Nullable List status) {
+ this.status = status;
+ }
+
+ public ListCheckpointsRequest limit(@javax.annotation.Nullable Integer limit) {
+
+ this.limit = limit;
+ return this;
+ }
+
+ /**
+ * 单页最大条数,取值 [1, 100];省略时服务端默认 `20`。
+ * @return limit
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_LIMIT, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Integer getLimit() {
+ return limit;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_LIMIT, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setLimit(@javax.annotation.Nullable Integer limit) {
+ this.limit = limit;
+ }
+
+ public ListCheckpointsRequest page(@javax.annotation.Nullable String page) {
+
+ this.page = page;
+ return this;
+ }
+
+ /**
+ * 分页 cursor;首页省略。
+ * @return page
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_PAGE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getPage() {
+ return page;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_PAGE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setPage(@javax.annotation.Nullable String page) {
+ this.page = page;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ListCheckpointsRequest listCheckpointsRequest = (ListCheckpointsRequest) o;
+ return Objects.equals(this.sourceSessionId, listCheckpointsRequest.sourceSessionId) &&
+ Objects.equals(this.status, listCheckpointsRequest.status) &&
+ Objects.equals(this.limit, listCheckpointsRequest.limit) &&
+ Objects.equals(this.page, listCheckpointsRequest.page);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(sourceSessionId, status, limit, page);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ListCheckpointsRequest {\n");
+ sb.append(" sourceSessionId: ").append(toIndentedString(sourceSessionId)).append("\n");
+ sb.append(" status: ").append(toIndentedString(status)).append("\n");
+ sb.append(" limit: ").append(toIndentedString(limit)).append("\n");
+ sb.append(" page: ").append(toIndentedString(page)).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 ListCheckpointsRequest instance;
+
+ public Builder() {
+ this(new ListCheckpointsRequest());
+ }
+
+ protected Builder(ListCheckpointsRequest instance) {
+ this.instance = instance;
+ }
+
+ public ListCheckpointsRequest.Builder sourceSessionId(String sourceSessionId) {
+ this.instance.sourceSessionId = sourceSessionId;
+ return this;
+ }
+ public ListCheckpointsRequest.Builder status(List status) {
+ this.instance.status = status;
+ return this;
+ }
+ public ListCheckpointsRequest.Builder limit(Integer limit) {
+ this.instance.limit = limit;
+ return this;
+ }
+ public ListCheckpointsRequest.Builder page(String page) {
+ this.instance.page = page;
+ return this;
+ }
+
+
+ /**
+ * returns a built ListCheckpointsRequest instance.
+ *
+ * The builder is not reusable.
+ */
+ public ListCheckpointsRequest 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 ListCheckpointsRequest.Builder builder() {
+ return new ListCheckpointsRequest.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public ListCheckpointsRequest.Builder toBuilder() {
+ return new ListCheckpointsRequest.Builder()
+ .sourceSessionId(getSourceSessionId())
+ .status(getStatus())
+ .limit(getLimit())
+ .page(getPage());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/session/ListSessionCheckpointsResponse.java b/src/main/java/com/volcengine/ark/runtime/models/session/ListSessionCheckpointsResponse.java
new file mode 100644
index 0000000..554c138
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/session/ListSessionCheckpointsResponse.java
@@ -0,0 +1,200 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Managed Agents Session 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.session;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * `GET /checkpoints` 响应体。
+ */
+@JsonPropertyOrder({
+ ListSessionCheckpointsResponse.JSON_PROPERTY_DATA,
+ ListSessionCheckpointsResponse.JSON_PROPERTY_NEXT_PAGE
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class ListSessionCheckpointsResponse {
+ public static final String JSON_PROPERTY_DATA = "data";
+ @javax.annotation.Nonnull
+ private List data;
+
+ public static final String JSON_PROPERTY_NEXT_PAGE = "next_page";
+ @javax.annotation.Nullable
+ private String nextPage;
+
+ public ListSessionCheckpointsResponse() {
+ }
+
+ public ListSessionCheckpointsResponse data(@javax.annotation.Nonnull List data) {
+
+ this.data = data;
+ return this;
+ }
+
+ public ListSessionCheckpointsResponse addDataItem(SessionCheckpoint dataItem) {
+ if (this.data == null) {
+ this.data = new ArrayList<>();
+ }
+ this.data.add(dataItem);
+ return this;
+ }
+
+ /**
+ * 本页 Checkpoint 列表。
+ * @return data
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_DATA, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public List getData() {
+ return data;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_DATA, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setData(@javax.annotation.Nonnull List data) {
+ this.data = data;
+ }
+
+ public ListSessionCheckpointsResponse nextPage(@javax.annotation.Nullable String nextPage) {
+
+ this.nextPage = nextPage;
+ return this;
+ }
+
+ /**
+ * 下一页 cursor;已列尽时为空或缺省。
+ * @return nextPage
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_NEXT_PAGE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getNextPage() {
+ return nextPage;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_NEXT_PAGE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setNextPage(@javax.annotation.Nullable String nextPage) {
+ this.nextPage = nextPage;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ListSessionCheckpointsResponse listSessionCheckpointsResponse = (ListSessionCheckpointsResponse) o;
+ return Objects.equals(this.data, listSessionCheckpointsResponse.data) &&
+ Objects.equals(this.nextPage, listSessionCheckpointsResponse.nextPage);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, nextPage);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ListSessionCheckpointsResponse {\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append(" nextPage: ").append(toIndentedString(nextPage)).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 ListSessionCheckpointsResponse instance;
+
+ public Builder() {
+ this(new ListSessionCheckpointsResponse());
+ }
+
+ protected Builder(ListSessionCheckpointsResponse instance) {
+ this.instance = instance;
+ }
+
+ public ListSessionCheckpointsResponse.Builder data(List data) {
+ this.instance.data = data;
+ return this;
+ }
+ public ListSessionCheckpointsResponse.Builder nextPage(String nextPage) {
+ this.instance.nextPage = nextPage;
+ return this;
+ }
+
+
+ /**
+ * returns a built ListSessionCheckpointsResponse instance.
+ *
+ * The builder is not reusable.
+ */
+ public ListSessionCheckpointsResponse 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 ListSessionCheckpointsResponse.Builder builder() {
+ return new ListSessionCheckpointsResponse.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public ListSessionCheckpointsResponse.Builder toBuilder() {
+ return new ListSessionCheckpointsResponse.Builder()
+ .data(getData())
+ .nextPage(getNextPage());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/session/ModelOverrides.java b/src/main/java/com/volcengine/ark/runtime/models/session/ModelOverrides.java
index d14f1c5..4e91330 100644
--- a/src/main/java/com/volcengine/ark/runtime/models/session/ModelOverrides.java
+++ b/src/main/java/com/volcengine/ark/runtime/models/session/ModelOverrides.java
@@ -19,17 +19,27 @@
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import java.util.Objects;
/**
- * Session 创建时允许临时覆写的模型运行参数。 内部字段省略表示继承 base Agent 的对应值。
+ * Session 创建时允许临时覆写的模型运行参数与接入配置。 内部字段省略表示继承 base Agent 的对应值。
*/
@JsonPropertyOrder({
ModelOverrides.JSON_PROPERTY_ID,
ModelOverrides.JSON_PROPERTY_SPEED,
ModelOverrides.JSON_PROPERTY_THINKING,
ModelOverrides.JSON_PROPERTY_REASONING_EFFORT,
- ModelOverrides.JSON_PROPERTY_SERVICE_TIER
+ ModelOverrides.JSON_PROPERTY_SERVICE_TIER,
+ ModelOverrides.JSON_PROPERTY_PROVIDER,
+ ModelOverrides.JSON_PROPERTY_PROTOCOL,
+ ModelOverrides.JSON_PROPERTY_BASE_URL,
+ ModelOverrides.JSON_PROPERTY_HEADERS,
+ ModelOverrides.JSON_PROPERTY_TOKEN_LIMITS,
+ ModelOverrides.JSON_PROPERTY_INPUT_MODALITIES
})
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
public class ModelOverrides {
@@ -53,6 +63,30 @@ public class ModelOverrides {
@javax.annotation.Nullable
private String serviceTier;
+ public static final String JSON_PROPERTY_PROVIDER = "provider";
+ @javax.annotation.Nullable
+ private String provider;
+
+ public static final String JSON_PROPERTY_PROTOCOL = "protocol";
+ @javax.annotation.Nullable
+ private String protocol;
+
+ public static final String JSON_PROPERTY_BASE_URL = "base_url";
+ @javax.annotation.Nullable
+ private String baseUrl;
+
+ public static final String JSON_PROPERTY_HEADERS = "headers";
+ @javax.annotation.Nullable
+ private Map headers;
+
+ public static final String JSON_PROPERTY_TOKEN_LIMITS = "token_limits";
+ @javax.annotation.Nullable
+ private OverrideTokenLimits tokenLimits;
+
+ public static final String JSON_PROPERTY_INPUT_MODALITIES = "input_modalities";
+ @javax.annotation.Nullable
+ private List inputModalities;
+
public ModelOverrides() {
}
@@ -181,6 +215,172 @@ public void setServiceTier(@javax.annotation.Nullable String serviceTier) {
this.serviceTier = serviceTier;
}
+ public ModelOverrides provider(@javax.annotation.Nullable String provider) {
+
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * 模型提供方覆写,例如 `\"ark\"` 或外接 provider 名。非空才生效,显式传空 串返回 400。切到非 ark provider 时,`base_url` 与 `token_limits` 为 必填(可继承快照中已有的值,否则返回 400);ark provider 不允许指定 `token_limits`。
+ * @return provider
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_PROVIDER, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getProvider() {
+ return provider;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_PROVIDER, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setProvider(@javax.annotation.Nullable String provider) {
+ this.provider = provider;
+ }
+
+ public ModelOverrides protocol(@javax.annotation.Nullable String protocol) {
+
+ this.protocol = protocol;
+ return this;
+ }
+
+ /**
+ * 模型接入协议覆写;取值须命中服务端维护的接入协议白名单,非法值返回 400。
+ * @return protocol
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_PROTOCOL, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getProtocol() {
+ return protocol;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_PROTOCOL, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setProtocol(@javax.annotation.Nullable String protocol) {
+ this.protocol = protocol;
+ }
+
+ public ModelOverrides baseUrl(@javax.annotation.Nullable String baseUrl) {
+
+ this.baseUrl = baseUrl;
+ return this;
+ }
+
+ /**
+ * 自定义模型接入点 base URL。配合非 ark 的 `provider` 使用,把 Session 快照里冻结的上游替换成当前环境可达的接入点。
+ * @return baseUrl
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_BASE_URL, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getBaseUrl() {
+ return baseUrl;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_BASE_URL, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setBaseUrl(@javax.annotation.Nullable String baseUrl) {
+ this.baseUrl = baseUrl;
+ }
+
+ public ModelOverrides headers(@javax.annotation.Nullable Map headers) {
+
+ this.headers = headers;
+ return this;
+ }
+
+ public ModelOverrides putHeadersItem(String key, String headersItem) {
+ if (this.headers == null) {
+ this.headers = new HashMap<>();
+ }
+ this.headers.put(key, headersItem);
+ return this;
+ }
+
+ /**
+ * 自定义模型请求 header(整组覆写),例如 `Authorization` 或 `X-Trial-Id`;key / value 均为字符串。
+ * @return headers
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_HEADERS, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+
+ public Map getHeaders() {
+ return headers;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_HEADERS, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+ public void setHeaders(@javax.annotation.Nullable Map headers) {
+ this.headers = headers;
+ }
+
+ public ModelOverrides tokenLimits(@javax.annotation.Nullable OverrideTokenLimits tokenLimits) {
+
+ this.tokenLimits = tokenLimits;
+ return this;
+ }
+
+ /**
+ * 模型 token 限制覆写(整体替换,提供时内部三字段必填且为正数); 非 ark provider 可用,ark provider 指定返回 400。
+ * @return tokenLimits
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_TOKEN_LIMITS, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public OverrideTokenLimits getTokenLimits() {
+ return tokenLimits;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_TOKEN_LIMITS, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setTokenLimits(@javax.annotation.Nullable OverrideTokenLimits tokenLimits) {
+ this.tokenLimits = tokenLimits;
+ }
+
+ public ModelOverrides inputModalities(@javax.annotation.Nullable List inputModalities) {
+
+ this.inputModalities = inputModalities;
+ return this;
+ }
+
+ public ModelOverrides addInputModalitiesItem(String inputModalitiesItem) {
+ if (this.inputModalities == null) {
+ this.inputModalities = new ArrayList<>();
+ }
+ this.inputModalities.add(inputModalitiesItem);
+ return this;
+ }
+
+ /**
+ * 底模支持的输入模态列表覆写。取值域:`text` / `image` / `audio` / `video`(无 `document`;文档在内部归入 image 通道)。 服务端会做归一化:去空白、转小写、元素去重、拒绝空元素,元素长度 上限 32,列表长度上限 16,超出返回 400。
+ * @return inputModalities
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_INPUT_MODALITIES, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+
+ public List getInputModalities() {
+ return inputModalities;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_INPUT_MODALITIES, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+ public void setInputModalities(@javax.annotation.Nullable List inputModalities) {
+ this.inputModalities = inputModalities;
+ }
+
@Override
public boolean equals(Object o) {
@@ -195,12 +395,18 @@ public boolean equals(Object o) {
Objects.equals(this.speed, modelOverrides.speed) &&
Objects.equals(this.thinking, modelOverrides.thinking) &&
Objects.equals(this.reasoningEffort, modelOverrides.reasoningEffort) &&
- Objects.equals(this.serviceTier, modelOverrides.serviceTier);
+ Objects.equals(this.serviceTier, modelOverrides.serviceTier) &&
+ Objects.equals(this.provider, modelOverrides.provider) &&
+ Objects.equals(this.protocol, modelOverrides.protocol) &&
+ Objects.equals(this.baseUrl, modelOverrides.baseUrl) &&
+ Objects.equals(this.headers, modelOverrides.headers) &&
+ Objects.equals(this.tokenLimits, modelOverrides.tokenLimits) &&
+ Objects.equals(this.inputModalities, modelOverrides.inputModalities);
}
@Override
public int hashCode() {
- return Objects.hash(id, speed, thinking, reasoningEffort, serviceTier);
+ return Objects.hash(id, speed, thinking, reasoningEffort, serviceTier, provider, protocol, baseUrl, headers, tokenLimits, inputModalities);
}
@Override
@@ -212,6 +418,12 @@ public String toString() {
sb.append(" thinking: ").append(toIndentedString(thinking)).append("\n");
sb.append(" reasoningEffort: ").append(toIndentedString(reasoningEffort)).append("\n");
sb.append(" serviceTier: ").append(toIndentedString(serviceTier)).append("\n");
+ sb.append(" provider: ").append(toIndentedString(provider)).append("\n");
+ sb.append(" protocol: ").append(toIndentedString(protocol)).append("\n");
+ sb.append(" baseUrl: ").append(toIndentedString(baseUrl)).append("\n");
+ sb.append(" headers: ").append(toIndentedString(headers)).append("\n");
+ sb.append(" tokenLimits: ").append(toIndentedString(tokenLimits)).append("\n");
+ sb.append(" inputModalities: ").append(toIndentedString(inputModalities)).append("\n");
sb.append("}");
return sb.toString();
}
@@ -256,6 +468,30 @@ public ModelOverrides.Builder serviceTier(String serviceTier) {
this.instance.serviceTier = serviceTier;
return this;
}
+ public ModelOverrides.Builder provider(String provider) {
+ this.instance.provider = provider;
+ return this;
+ }
+ public ModelOverrides.Builder protocol(String protocol) {
+ this.instance.protocol = protocol;
+ return this;
+ }
+ public ModelOverrides.Builder baseUrl(String baseUrl) {
+ this.instance.baseUrl = baseUrl;
+ return this;
+ }
+ public ModelOverrides.Builder headers(Map headers) {
+ this.instance.headers = headers;
+ return this;
+ }
+ public ModelOverrides.Builder tokenLimits(OverrideTokenLimits tokenLimits) {
+ this.instance.tokenLimits = tokenLimits;
+ return this;
+ }
+ public ModelOverrides.Builder inputModalities(List inputModalities) {
+ this.instance.inputModalities = inputModalities;
+ return this;
+ }
/**
@@ -294,7 +530,13 @@ public ModelOverrides.Builder toBuilder() {
.speed(getSpeed())
.thinking(getThinking())
.reasoningEffort(getReasoningEffort())
- .serviceTier(getServiceTier());
+ .serviceTier(getServiceTier())
+ .provider(getProvider())
+ .protocol(getProtocol())
+ .baseUrl(getBaseUrl())
+ .headers(getHeaders())
+ .tokenLimits(getTokenLimits())
+ .inputModalities(getInputModalities());
}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/session/OverrideTokenLimits.java b/src/main/java/com/volcengine/ark/runtime/models/session/OverrideTokenLimits.java
new file mode 100644
index 0000000..e75b1ad
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/session/OverrideTokenLimits.java
@@ -0,0 +1,230 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Managed Agents Session 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.session;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * Session 创建期模型覆写使用的 token 限制。 **整体替换语义**:省略整个 `token_limits` 对象表示不覆写、继承快照值; 一旦提供对象,三个字段**全部必填**且为正整数(>= 1),服务端不会与 快照中的旧 limits 按字段合并——只传部分字段返回 400 `model.token_limits.<field>: required`。
+ */
+@JsonPropertyOrder({
+ OverrideTokenLimits.JSON_PROPERTY_CONTEXT_WINDOW,
+ OverrideTokenLimits.JSON_PROPERTY_MAX_INPUT_TOKEN_LENGTH,
+ OverrideTokenLimits.JSON_PROPERTY_MAX_OUTPUT_TOKEN_LENGTH
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class OverrideTokenLimits {
+ public static final String JSON_PROPERTY_CONTEXT_WINDOW = "context_window";
+ @javax.annotation.Nonnull
+ private Long contextWindow;
+
+ public static final String JSON_PROPERTY_MAX_INPUT_TOKEN_LENGTH = "max_input_token_length";
+ @javax.annotation.Nonnull
+ private Long maxInputTokenLength;
+
+ public static final String JSON_PROPERTY_MAX_OUTPUT_TOKEN_LENGTH = "max_output_token_length";
+ @javax.annotation.Nonnull
+ private Long maxOutputTokenLength;
+
+ public OverrideTokenLimits() {
+ }
+
+ public OverrideTokenLimits contextWindow(@javax.annotation.Nonnull Long contextWindow) {
+
+ this.contextWindow = contextWindow;
+ return this;
+ }
+
+ /**
+ * 模型上下文窗口;正整数。
+ * minimum: 1
+ * @return contextWindow
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_CONTEXT_WINDOW, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public Long getContextWindow() {
+ return contextWindow;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_CONTEXT_WINDOW, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setContextWindow(@javax.annotation.Nonnull Long contextWindow) {
+ this.contextWindow = contextWindow;
+ }
+
+ public OverrideTokenLimits maxInputTokenLength(@javax.annotation.Nonnull Long maxInputTokenLength) {
+
+ this.maxInputTokenLength = maxInputTokenLength;
+ return this;
+ }
+
+ /**
+ * 最大输入 token 长度;正整数。
+ * minimum: 1
+ * @return maxInputTokenLength
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_MAX_INPUT_TOKEN_LENGTH, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public Long getMaxInputTokenLength() {
+ return maxInputTokenLength;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_MAX_INPUT_TOKEN_LENGTH, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setMaxInputTokenLength(@javax.annotation.Nonnull Long maxInputTokenLength) {
+ this.maxInputTokenLength = maxInputTokenLength;
+ }
+
+ public OverrideTokenLimits maxOutputTokenLength(@javax.annotation.Nonnull Long maxOutputTokenLength) {
+
+ this.maxOutputTokenLength = maxOutputTokenLength;
+ return this;
+ }
+
+ /**
+ * 最大输出 token 长度;正整数。
+ * minimum: 1
+ * @return maxOutputTokenLength
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_MAX_OUTPUT_TOKEN_LENGTH, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public Long getMaxOutputTokenLength() {
+ return maxOutputTokenLength;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_MAX_OUTPUT_TOKEN_LENGTH, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setMaxOutputTokenLength(@javax.annotation.Nonnull Long maxOutputTokenLength) {
+ this.maxOutputTokenLength = maxOutputTokenLength;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OverrideTokenLimits overrideTokenLimits = (OverrideTokenLimits) o;
+ return Objects.equals(this.contextWindow, overrideTokenLimits.contextWindow) &&
+ Objects.equals(this.maxInputTokenLength, overrideTokenLimits.maxInputTokenLength) &&
+ Objects.equals(this.maxOutputTokenLength, overrideTokenLimits.maxOutputTokenLength);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(contextWindow, maxInputTokenLength, maxOutputTokenLength);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OverrideTokenLimits {\n");
+ sb.append(" contextWindow: ").append(toIndentedString(contextWindow)).append("\n");
+ sb.append(" maxInputTokenLength: ").append(toIndentedString(maxInputTokenLength)).append("\n");
+ sb.append(" maxOutputTokenLength: ").append(toIndentedString(maxOutputTokenLength)).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 OverrideTokenLimits instance;
+
+ public Builder() {
+ this(new OverrideTokenLimits());
+ }
+
+ protected Builder(OverrideTokenLimits instance) {
+ this.instance = instance;
+ }
+
+ public OverrideTokenLimits.Builder contextWindow(Long contextWindow) {
+ this.instance.contextWindow = contextWindow;
+ return this;
+ }
+ public OverrideTokenLimits.Builder maxInputTokenLength(Long maxInputTokenLength) {
+ this.instance.maxInputTokenLength = maxInputTokenLength;
+ return this;
+ }
+ public OverrideTokenLimits.Builder maxOutputTokenLength(Long maxOutputTokenLength) {
+ this.instance.maxOutputTokenLength = maxOutputTokenLength;
+ return this;
+ }
+
+
+ /**
+ * returns a built OverrideTokenLimits instance.
+ *
+ * The builder is not reusable.
+ */
+ public OverrideTokenLimits 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 OverrideTokenLimits.Builder builder() {
+ return new OverrideTokenLimits.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public OverrideTokenLimits.Builder toBuilder() {
+ return new OverrideTokenLimits.Builder()
+ .contextWindow(getContextWindow())
+ .maxInputTokenLength(getMaxInputTokenLength())
+ .maxOutputTokenLength(getMaxOutputTokenLength());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/session/SessionCheckpoint.java b/src/main/java/com/volcengine/ark/runtime/models/session/SessionCheckpoint.java
new file mode 100644
index 0000000..a0e548d
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/session/SessionCheckpoint.java
@@ -0,0 +1,570 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Managed Agents Session 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.session;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * Session Checkpoint:某个静止 Session 的可恢复快照。 用于 `POST /sessions` 携带 `checkpoint_id` 创建一个继承冻结配置的新 Session。是否需要 `checkpoint_restore_config` 只取决于快照是否包含 customer TOS 数据且跨账号恢复,详见该字段说明。
+ */
+@JsonPropertyOrder({
+ SessionCheckpoint.JSON_PROPERTY_ID,
+ SessionCheckpoint.JSON_PROPERTY_SOURCE_SESSION_ID,
+ SessionCheckpoint.JSON_PROPERTY_NAME,
+ SessionCheckpoint.JSON_PROPERTY_STATUS,
+ SessionCheckpoint.JSON_PROPERTY_ERROR_CODE,
+ SessionCheckpoint.JSON_PROPERTY_ERROR_MESSAGE,
+ SessionCheckpoint.JSON_PROPERTY_EXPIRES_AT,
+ SessionCheckpoint.JSON_PROPERTY_COMPLETED_AT,
+ SessionCheckpoint.JSON_PROPERTY_CREATED_AT,
+ SessionCheckpoint.JSON_PROPERTY_UPDATED_AT,
+ SessionCheckpoint.JSON_PROPERTY_SNAPSHOT,
+ SessionCheckpoint.JSON_PROPERTY_COMPONENTS
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class SessionCheckpoint {
+ public static final String JSON_PROPERTY_ID = "id";
+ @javax.annotation.Nonnull
+ private String id;
+
+ public static final String JSON_PROPERTY_SOURCE_SESSION_ID = "source_session_id";
+ @javax.annotation.Nonnull
+ private String sourceSessionId;
+
+ public static final String JSON_PROPERTY_NAME = "name";
+ @javax.annotation.Nonnull
+ private String name;
+
+ public static final String JSON_PROPERTY_STATUS = "status";
+ @javax.annotation.Nonnull
+ private CheckpointStatus status;
+
+ public static final String JSON_PROPERTY_ERROR_CODE = "error_code";
+ @javax.annotation.Nullable
+ private String errorCode;
+
+ public static final String JSON_PROPERTY_ERROR_MESSAGE = "error_message";
+ @javax.annotation.Nullable
+ private String errorMessage;
+
+ public static final String JSON_PROPERTY_EXPIRES_AT = "expires_at";
+ @javax.annotation.Nullable
+ private String expiresAt;
+
+ public static final String JSON_PROPERTY_COMPLETED_AT = "completed_at";
+ @javax.annotation.Nullable
+ private String completedAt;
+
+ public static final String JSON_PROPERTY_CREATED_AT = "created_at";
+ @javax.annotation.Nonnull
+ private String createdAt;
+
+ public static final String JSON_PROPERTY_UPDATED_AT = "updated_at";
+ @javax.annotation.Nonnull
+ private String updatedAt;
+
+ public static final String JSON_PROPERTY_SNAPSHOT = "snapshot";
+ @javax.annotation.Nullable
+ private CheckpointSessionSnapshot snapshot;
+
+ public static final String JSON_PROPERTY_COMPONENTS = "components";
+ @javax.annotation.Nullable
+ private List components;
+
+ public SessionCheckpoint() {
+ }
+
+ public SessionCheckpoint id(@javax.annotation.Nonnull String id) {
+
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Checkpoint ID。
+ * @return id
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_ID, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getId() {
+ return id;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_ID, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setId(@javax.annotation.Nonnull String id) {
+ this.id = id;
+ }
+
+ public SessionCheckpoint sourceSessionId(@javax.annotation.Nonnull String sourceSessionId) {
+
+ this.sourceSessionId = sourceSessionId;
+ return this;
+ }
+
+ /**
+ * 快照来源 Session ID。
+ * @return sourceSessionId
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_SOURCE_SESSION_ID, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getSourceSessionId() {
+ return sourceSessionId;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_SOURCE_SESSION_ID, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setSourceSessionId(@javax.annotation.Nonnull String sourceSessionId) {
+ this.sourceSessionId = sourceSessionId;
+ }
+
+ public SessionCheckpoint name(@javax.annotation.Nonnull String name) {
+
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * 调用方创建时给出的 Checkpoint 名称。
+ * @return name
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_NAME, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getName() {
+ return name;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_NAME, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setName(@javax.annotation.Nonnull String name) {
+ this.name = name;
+ }
+
+ public SessionCheckpoint status(@javax.annotation.Nonnull CheckpointStatus status) {
+
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Checkpoint 状态。
+ * @return status
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_STATUS, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public CheckpointStatus getStatus() {
+ return status;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_STATUS, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setStatus(@javax.annotation.Nonnull CheckpointStatus status) {
+ this.status = status;
+ }
+
+ public SessionCheckpoint errorCode(@javax.annotation.Nullable String errorCode) {
+
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * 失败错误码(`status = \"failed\"` 时存在)。
+ * @return errorCode
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_ERROR_CODE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getErrorCode() {
+ return errorCode;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_ERROR_CODE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setErrorCode(@javax.annotation.Nullable String errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public SessionCheckpoint errorMessage(@javax.annotation.Nullable String errorMessage) {
+
+ this.errorMessage = errorMessage;
+ return this;
+ }
+
+ /**
+ * 失败错误信息。
+ * @return errorMessage
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_ERROR_MESSAGE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getErrorMessage() {
+ return errorMessage;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_ERROR_MESSAGE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setErrorMessage(@javax.annotation.Nullable String errorMessage) {
+ this.errorMessage = errorMessage;
+ }
+
+ public SessionCheckpoint expiresAt(@javax.annotation.Nullable String expiresAt) {
+
+ this.expiresAt = expiresAt;
+ return this;
+ }
+
+ /**
+ * 过期时间(RFC 3339);过期后不可用于恢复。
+ * @return expiresAt
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_EXPIRES_AT, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getExpiresAt() {
+ return expiresAt;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_EXPIRES_AT, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setExpiresAt(@javax.annotation.Nullable String expiresAt) {
+ this.expiresAt = expiresAt;
+ }
+
+ public SessionCheckpoint completedAt(@javax.annotation.Nullable String completedAt) {
+
+ this.completedAt = completedAt;
+ return this;
+ }
+
+ /**
+ * 快照完成时间(RFC 3339)。
+ * @return completedAt
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_COMPLETED_AT, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getCompletedAt() {
+ return completedAt;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_COMPLETED_AT, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCompletedAt(@javax.annotation.Nullable String completedAt) {
+ this.completedAt = completedAt;
+ }
+
+ public SessionCheckpoint createdAt(@javax.annotation.Nonnull String createdAt) {
+
+ this.createdAt = createdAt;
+ return this;
+ }
+
+ /**
+ * 创建时间(RFC 3339)。
+ * @return createdAt
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_CREATED_AT, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getCreatedAt() {
+ return createdAt;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_CREATED_AT, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setCreatedAt(@javax.annotation.Nonnull String createdAt) {
+ this.createdAt = createdAt;
+ }
+
+ public SessionCheckpoint updatedAt(@javax.annotation.Nonnull String updatedAt) {
+
+ this.updatedAt = updatedAt;
+ return this;
+ }
+
+ /**
+ * 最近更新时间(RFC 3339)。
+ * @return updatedAt
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_UPDATED_AT, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getUpdatedAt() {
+ return updatedAt;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_UPDATED_AT, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setUpdatedAt(@javax.annotation.Nonnull String updatedAt) {
+ this.updatedAt = updatedAt;
+ }
+
+ public SessionCheckpoint snapshot(@javax.annotation.Nullable CheckpointSessionSnapshot snapshot) {
+
+ this.snapshot = snapshot;
+ return this;
+ }
+
+ /**
+ * 冻结的用户可见 Session 配置。
+ * @return snapshot
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_SNAPSHOT, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public CheckpointSessionSnapshot getSnapshot() {
+ return snapshot;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_SNAPSHOT, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setSnapshot(@javax.annotation.Nullable CheckpointSessionSnapshot snapshot) {
+ this.snapshot = snapshot;
+ }
+
+ public SessionCheckpoint components(@javax.annotation.Nullable List components) {
+
+ this.components = components;
+ return this;
+ }
+
+ public SessionCheckpoint addComponentsItem(CheckpointComponent componentsItem) {
+ if (this.components == null) {
+ this.components = new ArrayList<>();
+ }
+ this.components.add(componentsItem);
+ return this;
+ }
+
+ /**
+ * 各资源组件的脱敏执行摘要。
+ * @return components
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_COMPONENTS, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+
+ public List getComponents() {
+ return components;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_COMPONENTS, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+ public void setComponents(@javax.annotation.Nullable List components) {
+ this.components = components;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ SessionCheckpoint sessionCheckpoint = (SessionCheckpoint) o;
+ return Objects.equals(this.id, sessionCheckpoint.id) &&
+ Objects.equals(this.sourceSessionId, sessionCheckpoint.sourceSessionId) &&
+ Objects.equals(this.name, sessionCheckpoint.name) &&
+ Objects.equals(this.status, sessionCheckpoint.status) &&
+ Objects.equals(this.errorCode, sessionCheckpoint.errorCode) &&
+ Objects.equals(this.errorMessage, sessionCheckpoint.errorMessage) &&
+ Objects.equals(this.expiresAt, sessionCheckpoint.expiresAt) &&
+ Objects.equals(this.completedAt, sessionCheckpoint.completedAt) &&
+ Objects.equals(this.createdAt, sessionCheckpoint.createdAt) &&
+ Objects.equals(this.updatedAt, sessionCheckpoint.updatedAt) &&
+ Objects.equals(this.snapshot, sessionCheckpoint.snapshot) &&
+ Objects.equals(this.components, sessionCheckpoint.components);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, sourceSessionId, name, status, errorCode, errorMessage, expiresAt, completedAt, createdAt, updatedAt, snapshot, components);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class SessionCheckpoint {\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" sourceSessionId: ").append(toIndentedString(sourceSessionId)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" status: ").append(toIndentedString(status)).append("\n");
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" errorMessage: ").append(toIndentedString(errorMessage)).append("\n");
+ sb.append(" expiresAt: ").append(toIndentedString(expiresAt)).append("\n");
+ sb.append(" completedAt: ").append(toIndentedString(completedAt)).append("\n");
+ sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n");
+ sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n");
+ sb.append(" snapshot: ").append(toIndentedString(snapshot)).append("\n");
+ sb.append(" components: ").append(toIndentedString(components)).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 SessionCheckpoint instance;
+
+ public Builder() {
+ this(new SessionCheckpoint());
+ }
+
+ protected Builder(SessionCheckpoint instance) {
+ this.instance = instance;
+ }
+
+ public SessionCheckpoint.Builder id(String id) {
+ this.instance.id = id;
+ return this;
+ }
+ public SessionCheckpoint.Builder sourceSessionId(String sourceSessionId) {
+ this.instance.sourceSessionId = sourceSessionId;
+ return this;
+ }
+ public SessionCheckpoint.Builder name(String name) {
+ this.instance.name = name;
+ return this;
+ }
+ public SessionCheckpoint.Builder status(CheckpointStatus status) {
+ this.instance.status = status;
+ return this;
+ }
+ public SessionCheckpoint.Builder errorCode(String errorCode) {
+ this.instance.errorCode = errorCode;
+ return this;
+ }
+ public SessionCheckpoint.Builder errorMessage(String errorMessage) {
+ this.instance.errorMessage = errorMessage;
+ return this;
+ }
+ public SessionCheckpoint.Builder expiresAt(String expiresAt) {
+ this.instance.expiresAt = expiresAt;
+ return this;
+ }
+ public SessionCheckpoint.Builder completedAt(String completedAt) {
+ this.instance.completedAt = completedAt;
+ return this;
+ }
+ public SessionCheckpoint.Builder createdAt(String createdAt) {
+ this.instance.createdAt = createdAt;
+ return this;
+ }
+ public SessionCheckpoint.Builder updatedAt(String updatedAt) {
+ this.instance.updatedAt = updatedAt;
+ return this;
+ }
+ public SessionCheckpoint.Builder snapshot(CheckpointSessionSnapshot snapshot) {
+ this.instance.snapshot = snapshot;
+ return this;
+ }
+ public SessionCheckpoint.Builder components(List components) {
+ this.instance.components = components;
+ return this;
+ }
+
+
+ /**
+ * returns a built SessionCheckpoint instance.
+ *
+ * The builder is not reusable.
+ */
+ public SessionCheckpoint 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 SessionCheckpoint.Builder builder() {
+ return new SessionCheckpoint.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public SessionCheckpoint.Builder toBuilder() {
+ return new SessionCheckpoint.Builder()
+ .id(getId())
+ .sourceSessionId(getSourceSessionId())
+ .name(getName())
+ .status(getStatus())
+ .errorCode(getErrorCode())
+ .errorMessage(getErrorMessage())
+ .expiresAt(getExpiresAt())
+ .completedAt(getCompletedAt())
+ .createdAt(getCreatedAt())
+ .updatedAt(getUpdatedAt())
+ .snapshot(getSnapshot())
+ .components(getComponents());
+ }
+
+
+}