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()); + } + + +}