diff --git a/README.md b/README.md
index 852d98a..f01efce 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.12.0
+ 0.13.0
```
### Gradle
```groovy
-implementation 'com.volcengine:ark-runtime:0.12.0'
+implementation 'com.volcengine:ark-runtime:0.13.0'
```
## Choose Volcengine or BytePlus
diff --git a/VERSION b/VERSION
index ac454c6..54d1a4f 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.12.0
+0.13.0
diff --git a/pom.xml b/pom.xml
index 11f4fe4..0b364bc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.volcengine
ark-runtime
- 0.12.0
+ 0.13.0
jar
ark-runtime
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/AudioConfig.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/AudioConfig.java
new file mode 100644
index 0000000..bd72e55
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/AudioConfig.java
@@ -0,0 +1,270 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * AudioConfig
+ */
+@JsonPropertyOrder({
+ AudioConfig.JSON_PROPERTY_SAMPLE_RATE,
+ AudioConfig.JSON_PROPERTY_SPEECH_RATE,
+ AudioConfig.JSON_PROPERTY_LOUDNESS_RATE,
+ AudioConfig.JSON_PROPERTY_PITCH_RATE
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class AudioConfig {
+ public static final String JSON_PROPERTY_SAMPLE_RATE = "sample_rate";
+ @javax.annotation.Nullable
+ private SampleRate sampleRate;
+
+ public static final String JSON_PROPERTY_SPEECH_RATE = "speech_rate";
+ @javax.annotation.Nullable
+ private Integer speechRate;
+
+ public static final String JSON_PROPERTY_LOUDNESS_RATE = "loudness_rate";
+ @javax.annotation.Nullable
+ private Integer loudnessRate;
+
+ public static final String JSON_PROPERTY_PITCH_RATE = "pitch_rate";
+ @javax.annotation.Nullable
+ private Integer pitchRate;
+
+ public AudioConfig() {
+ }
+
+ public AudioConfig sampleRate(@javax.annotation.Nullable SampleRate sampleRate) {
+
+ this.sampleRate = sampleRate;
+ return this;
+ }
+
+ /**
+ * Get sampleRate
+ * @return sampleRate
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_SAMPLE_RATE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public SampleRate getSampleRate() {
+ return sampleRate;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_SAMPLE_RATE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setSampleRate(@javax.annotation.Nullable SampleRate sampleRate) {
+ this.sampleRate = sampleRate;
+ }
+
+ public AudioConfig speechRate(@javax.annotation.Nullable Integer speechRate) {
+
+ this.speechRate = speechRate;
+ return this;
+ }
+
+ /**
+ * Get speechRate
+ * minimum: -50
+ * maximum: 100
+ * @return speechRate
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_SPEECH_RATE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Integer getSpeechRate() {
+ return speechRate;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_SPEECH_RATE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setSpeechRate(@javax.annotation.Nullable Integer speechRate) {
+ this.speechRate = speechRate;
+ }
+
+ public AudioConfig loudnessRate(@javax.annotation.Nullable Integer loudnessRate) {
+
+ this.loudnessRate = loudnessRate;
+ return this;
+ }
+
+ /**
+ * Get loudnessRate
+ * minimum: -50
+ * maximum: 100
+ * @return loudnessRate
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_LOUDNESS_RATE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Integer getLoudnessRate() {
+ return loudnessRate;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_LOUDNESS_RATE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setLoudnessRate(@javax.annotation.Nullable Integer loudnessRate) {
+ this.loudnessRate = loudnessRate;
+ }
+
+ public AudioConfig pitchRate(@javax.annotation.Nullable Integer pitchRate) {
+
+ this.pitchRate = pitchRate;
+ return this;
+ }
+
+ /**
+ * Get pitchRate
+ * minimum: -12
+ * maximum: 12
+ * @return pitchRate
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_PITCH_RATE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Integer getPitchRate() {
+ return pitchRate;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_PITCH_RATE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setPitchRate(@javax.annotation.Nullable Integer pitchRate) {
+ this.pitchRate = pitchRate;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AudioConfig audioConfig = (AudioConfig) o;
+ return Objects.equals(this.sampleRate, audioConfig.sampleRate) &&
+ Objects.equals(this.speechRate, audioConfig.speechRate) &&
+ Objects.equals(this.loudnessRate, audioConfig.loudnessRate) &&
+ Objects.equals(this.pitchRate, audioConfig.pitchRate);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(sampleRate, speechRate, loudnessRate, pitchRate);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AudioConfig {\n");
+ sb.append(" sampleRate: ").append(toIndentedString(sampleRate)).append("\n");
+ sb.append(" speechRate: ").append(toIndentedString(speechRate)).append("\n");
+ sb.append(" loudnessRate: ").append(toIndentedString(loudnessRate)).append("\n");
+ sb.append(" pitchRate: ").append(toIndentedString(pitchRate)).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 AudioConfig instance;
+
+ public Builder() {
+ this(new AudioConfig());
+ }
+
+ protected Builder(AudioConfig instance) {
+ this.instance = instance;
+ }
+
+ public AudioConfig.Builder sampleRate(SampleRate sampleRate) {
+ this.instance.sampleRate = sampleRate;
+ return this;
+ }
+ public AudioConfig.Builder speechRate(Integer speechRate) {
+ this.instance.speechRate = speechRate;
+ return this;
+ }
+ public AudioConfig.Builder loudnessRate(Integer loudnessRate) {
+ this.instance.loudnessRate = loudnessRate;
+ return this;
+ }
+ public AudioConfig.Builder pitchRate(Integer pitchRate) {
+ this.instance.pitchRate = pitchRate;
+ return this;
+ }
+
+
+ /**
+ * returns a built AudioConfig instance.
+ *
+ * The builder is not reusable.
+ */
+ public AudioConfig 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 AudioConfig.Builder builder() {
+ return new AudioConfig.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public AudioConfig.Builder toBuilder() {
+ return new AudioConfig.Builder()
+ .sampleRate(getSampleRate())
+ .speechRate(getSpeechRate())
+ .loudnessRate(getLoudnessRate())
+ .pitchRate(getPitchRate());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/AudioContent.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/AudioContent.java
new file mode 100644
index 0000000..449dc79
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/AudioContent.java
@@ -0,0 +1,227 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * AudioContent
+ */
+@JsonPropertyOrder({
+ AudioContent.JSON_PROPERTY_TYPE,
+ AudioContent.JSON_PROPERTY_AUDIO_URL,
+ AudioContent.JSON_PROPERTY_ROLE
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class AudioContent implements Content {
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @javax.annotation.Nonnull
+ private ContentType type = ContentType.AUDIO_URL;
+
+ public static final String JSON_PROPERTY_AUDIO_URL = "audio_url";
+ @javax.annotation.Nonnull
+ private AudioURL audioUrl;
+
+ public static final String JSON_PROPERTY_ROLE = "role";
+ @javax.annotation.Nonnull
+ private AudioRole role;
+
+ public AudioContent() {
+ }
+
+ public AudioContent type(@javax.annotation.Nonnull ContentType type) {
+
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get type
+ * @return type
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public ContentType getType() {
+ return type;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setType(@javax.annotation.Nonnull ContentType type) {
+ this.type = type;
+ }
+
+ public AudioContent audioUrl(@javax.annotation.Nonnull AudioURL audioUrl) {
+
+ this.audioUrl = audioUrl;
+ return this;
+ }
+
+ /**
+ * Get audioUrl
+ * @return audioUrl
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_AUDIO_URL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public AudioURL getAudioUrl() {
+ return audioUrl;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_AUDIO_URL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setAudioUrl(@javax.annotation.Nonnull AudioURL audioUrl) {
+ this.audioUrl = audioUrl;
+ }
+
+ public AudioContent role(@javax.annotation.Nonnull AudioRole role) {
+
+ this.role = role;
+ return this;
+ }
+
+ /**
+ * Required. reference_audio selects reference generation; separate_audio selects audio separation.
+ * @return role
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_ROLE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public AudioRole getRole() {
+ return role;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_ROLE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setRole(@javax.annotation.Nonnull AudioRole role) {
+ this.role = role;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AudioContent audioContent = (AudioContent) o;
+ return Objects.equals(this.type, audioContent.type) &&
+ Objects.equals(this.audioUrl, audioContent.audioUrl) &&
+ Objects.equals(this.role, audioContent.role);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, audioUrl, role);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AudioContent {\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" audioUrl: ").append(toIndentedString(audioUrl)).append("\n");
+ sb.append(" role: ").append(toIndentedString(role)).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 AudioContent instance;
+
+ public Builder() {
+ this(new AudioContent());
+ }
+
+ protected Builder(AudioContent instance) {
+ this.instance = instance;
+ }
+
+ public AudioContent.Builder type(ContentType type) {
+ this.instance.type = type;
+ return this;
+ }
+ public AudioContent.Builder audioUrl(AudioURL audioUrl) {
+ this.instance.audioUrl = audioUrl;
+ return this;
+ }
+ public AudioContent.Builder role(AudioRole role) {
+ this.instance.role = role;
+ return this;
+ }
+
+
+ /**
+ * returns a built AudioContent instance.
+ *
+ * The builder is not reusable.
+ */
+ public AudioContent 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 AudioContent.Builder builder() {
+ return new AudioContent.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public AudioContent.Builder toBuilder() {
+ return new AudioContent.Builder()
+ .type(getType())
+ .audioUrl(getAudioUrl())
+ .role(getRole());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/AudioGenerationRequest.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/AudioGenerationRequest.java
new file mode 100644
index 0000000..fb4ba5a
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/AudioGenerationRequest.java
@@ -0,0 +1,393 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+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;
+
+/**
+ * Synchronous reference generation, audio separation or video dubbing. Static scene rules are attached to required content via dependentSchemas; media and deployment checks run on the server.
+ */
+@JsonPropertyOrder({
+ AudioGenerationRequest.JSON_PROPERTY_MODEL,
+ AudioGenerationRequest.JSON_PROPERTY_CONTENT,
+ AudioGenerationRequest.JSON_PROPERTY_DUBBING_CONFIG,
+ AudioGenerationRequest.JSON_PROPERTY_OUTPUT_FORMAT,
+ AudioGenerationRequest.JSON_PROPERTY_AUDIO_CONFIG,
+ AudioGenerationRequest.JSON_PROPERTY_INCLUDE,
+ AudioGenerationRequest.JSON_PROPERTY_WATERMARK
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class AudioGenerationRequest {
+ public static final String JSON_PROPERTY_MODEL = "model";
+ @javax.annotation.Nonnull
+ private String model;
+
+ public static final String JSON_PROPERTY_CONTENT = "content";
+ @javax.annotation.Nonnull
+ private List content;
+
+ public static final String JSON_PROPERTY_DUBBING_CONFIG = "dubbing_config";
+ @javax.annotation.Nullable
+ private DubbingConfig dubbingConfig;
+
+ public static final String JSON_PROPERTY_OUTPUT_FORMAT = "output_format";
+ @javax.annotation.Nullable
+ private OutputFormat outputFormat;
+
+ public static final String JSON_PROPERTY_AUDIO_CONFIG = "audio_config";
+ @javax.annotation.Nullable
+ private AudioConfig audioConfig;
+
+ public static final String JSON_PROPERTY_INCLUDE = "include";
+ @javax.annotation.Nullable
+ private List include;
+
+ public static final String JSON_PROPERTY_WATERMARK = "watermark";
+ @javax.annotation.Nullable
+ private Boolean watermark;
+
+ public AudioGenerationRequest() {
+ }
+
+ public AudioGenerationRequest model(@javax.annotation.Nonnull String model) {
+
+ this.model = model;
+ return this;
+ }
+
+ /**
+ * Model ID or Endpoint ID. Whitespace-only values are rejected.
+ * @return model
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_MODEL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getModel() {
+ return model;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_MODEL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setModel(@javax.annotation.Nonnull String model) {
+ this.model = model;
+ }
+
+ public AudioGenerationRequest content(@javax.annotation.Nonnull List content) {
+
+ this.content = content;
+ return this;
+ }
+
+ public AudioGenerationRequest addContentItem(Content contentItem) {
+ if (this.content == null) {
+ this.content = new ArrayList<>();
+ }
+ this.content.add(contentItem);
+ return this;
+ }
+
+ /**
+ * Get content
+ * @return content
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_CONTENT, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public List getContent() {
+ return content;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_CONTENT, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setContent(@javax.annotation.Nonnull List content) {
+ this.content = content;
+ }
+
+ public AudioGenerationRequest dubbingConfig(@javax.annotation.Nullable DubbingConfig dubbingConfig) {
+
+ this.dubbingConfig = dubbingConfig;
+ return this;
+ }
+
+ /**
+ * Get dubbingConfig
+ * @return dubbingConfig
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_DUBBING_CONFIG, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public DubbingConfig getDubbingConfig() {
+ return dubbingConfig;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_DUBBING_CONFIG, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setDubbingConfig(@javax.annotation.Nullable DubbingConfig dubbingConfig) {
+ this.dubbingConfig = dubbingConfig;
+ }
+
+ public AudioGenerationRequest outputFormat(@javax.annotation.Nullable OutputFormat outputFormat) {
+
+ this.outputFormat = outputFormat;
+ return this;
+ }
+
+ /**
+ * Get outputFormat
+ * @return outputFormat
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_OUTPUT_FORMAT, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public OutputFormat getOutputFormat() {
+ return outputFormat;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_OUTPUT_FORMAT, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setOutputFormat(@javax.annotation.Nullable OutputFormat outputFormat) {
+ this.outputFormat = outputFormat;
+ }
+
+ public AudioGenerationRequest audioConfig(@javax.annotation.Nullable AudioConfig audioConfig) {
+
+ this.audioConfig = audioConfig;
+ return this;
+ }
+
+ /**
+ * Get audioConfig
+ * @return audioConfig
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_AUDIO_CONFIG, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public AudioConfig getAudioConfig() {
+ return audioConfig;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_AUDIO_CONFIG, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setAudioConfig(@javax.annotation.Nullable AudioConfig audioConfig) {
+ this.audioConfig = audioConfig;
+ }
+
+ public AudioGenerationRequest include(@javax.annotation.Nullable List include) {
+
+ this.include = include;
+ return this;
+ }
+
+ public AudioGenerationRequest addIncludeItem(Include includeItem) {
+ if (this.include == null) {
+ this.include = new ArrayList<>();
+ }
+ this.include.add(includeItem);
+ return this;
+ }
+
+ /**
+ * Get include
+ * @return include
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_INCLUDE, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+
+ public List getInclude() {
+ return include;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_INCLUDE, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+ public void setInclude(@javax.annotation.Nullable List include) {
+ this.include = include;
+ }
+
+ public AudioGenerationRequest watermark(@javax.annotation.Nullable Boolean watermark) {
+
+ this.watermark = watermark;
+ return this;
+ }
+
+ /**
+ * Get watermark
+ * @return watermark
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_WATERMARK, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Boolean getWatermark() {
+ return watermark;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_WATERMARK, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setWatermark(@javax.annotation.Nullable Boolean watermark) {
+ this.watermark = watermark;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AudioGenerationRequest audioGenerationRequest = (AudioGenerationRequest) o;
+ return Objects.equals(this.model, audioGenerationRequest.model) &&
+ Objects.equals(this.content, audioGenerationRequest.content) &&
+ Objects.equals(this.dubbingConfig, audioGenerationRequest.dubbingConfig) &&
+ Objects.equals(this.outputFormat, audioGenerationRequest.outputFormat) &&
+ Objects.equals(this.audioConfig, audioGenerationRequest.audioConfig) &&
+ Objects.equals(this.include, audioGenerationRequest.include) &&
+ Objects.equals(this.watermark, audioGenerationRequest.watermark);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(model, content, dubbingConfig, outputFormat, audioConfig, include, watermark);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AudioGenerationRequest {\n");
+ sb.append(" model: ").append(toIndentedString(model)).append("\n");
+ sb.append(" content: ").append(toIndentedString(content)).append("\n");
+ sb.append(" dubbingConfig: ").append(toIndentedString(dubbingConfig)).append("\n");
+ sb.append(" outputFormat: ").append(toIndentedString(outputFormat)).append("\n");
+ sb.append(" audioConfig: ").append(toIndentedString(audioConfig)).append("\n");
+ sb.append(" include: ").append(toIndentedString(include)).append("\n");
+ sb.append(" watermark: ").append(toIndentedString(watermark)).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 AudioGenerationRequest instance;
+
+ public Builder() {
+ this(new AudioGenerationRequest());
+ }
+
+ protected Builder(AudioGenerationRequest instance) {
+ this.instance = instance;
+ }
+
+ public AudioGenerationRequest.Builder model(String model) {
+ this.instance.model = model;
+ return this;
+ }
+ public AudioGenerationRequest.Builder content(List content) {
+ this.instance.content = content;
+ return this;
+ }
+ public AudioGenerationRequest.Builder dubbingConfig(DubbingConfig dubbingConfig) {
+ this.instance.dubbingConfig = dubbingConfig;
+ return this;
+ }
+ public AudioGenerationRequest.Builder outputFormat(OutputFormat outputFormat) {
+ this.instance.outputFormat = outputFormat;
+ return this;
+ }
+ public AudioGenerationRequest.Builder audioConfig(AudioConfig audioConfig) {
+ this.instance.audioConfig = audioConfig;
+ return this;
+ }
+ public AudioGenerationRequest.Builder include(List include) {
+ this.instance.include = include;
+ return this;
+ }
+ public AudioGenerationRequest.Builder watermark(Boolean watermark) {
+ this.instance.watermark = watermark;
+ return this;
+ }
+
+
+ /**
+ * returns a built AudioGenerationRequest instance.
+ *
+ * The builder is not reusable.
+ */
+ public AudioGenerationRequest 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 AudioGenerationRequest.Builder builder() {
+ return new AudioGenerationRequest.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public AudioGenerationRequest.Builder toBuilder() {
+ return new AudioGenerationRequest.Builder()
+ .model(getModel())
+ .content(getContent())
+ .dubbingConfig(getDubbingConfig())
+ .outputFormat(getOutputFormat())
+ .audioConfig(getAudioConfig())
+ .include(getInclude())
+ .watermark(getWatermark());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/AudioGenerationResponse.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/AudioGenerationResponse.java
new file mode 100644
index 0000000..3ae3197
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/AudioGenerationResponse.java
@@ -0,0 +1,484 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fasterxml.jackson.annotation.JsonValue;
+import java.util.Objects;
+
+/**
+ * AudioGenerationResponse
+ */
+@JsonPropertyOrder({
+ AudioGenerationResponse.JSON_PROPERTY_ID,
+ AudioGenerationResponse.JSON_PROPERTY_MODEL,
+ AudioGenerationResponse.JSON_PROPERTY_CONTENT,
+ AudioGenerationResponse.JSON_PROPERTY_DUBBING_CONFIG,
+ AudioGenerationResponse.JSON_PROPERTY_OUTPUT_FORMAT,
+ AudioGenerationResponse.JSON_PROPERTY_AUDIO_CONFIG,
+ AudioGenerationResponse.JSON_PROPERTY_SUBTITLE,
+ AudioGenerationResponse.JSON_PROPERTY_CREATED,
+ AudioGenerationResponse.JSON_PROPERTY_USAGE
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class AudioGenerationResponse {
+ public static final String JSON_PROPERTY_ID = "id";
+ @javax.annotation.Nonnull
+ private String id;
+
+ public static final String JSON_PROPERTY_MODEL = "model";
+ @javax.annotation.Nonnull
+ private String model;
+
+ public static final String JSON_PROPERTY_CONTENT = "content";
+ @javax.annotation.Nullable
+ private ResponseContent content;
+
+ public static final String JSON_PROPERTY_DUBBING_CONFIG = "dubbing_config";
+ @javax.annotation.Nullable
+ private EffectiveDubbingConfig dubbingConfig;
+
+ public static final String JSON_PROPERTY_OUTPUT_FORMAT = "output_format";
+ @javax.annotation.Nullable
+ private OutputFormat outputFormat;
+
+ public static final String JSON_PROPERTY_AUDIO_CONFIG = "audio_config";
+ @javax.annotation.Nullable
+ private AudioConfig audioConfig;
+
+ /**
+ * Separation explicitly returns false. Other scenes currently omit this field; inspect content.subtitles for subtitle artifacts.
+ */
+ public enum SubtitleEnum {
+ FALSE(Boolean.valueOf("false"));
+
+ private Boolean value;
+
+ SubtitleEnum(Boolean value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public Boolean getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static SubtitleEnum fromValue(Boolean value) {
+ for (SubtitleEnum b : SubtitleEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_SUBTITLE = "subtitle";
+ @javax.annotation.Nullable
+ private SubtitleEnum subtitle;
+
+ public static final String JSON_PROPERTY_CREATED = "created";
+ @javax.annotation.Nonnull
+ private Long created;
+
+ public static final String JSON_PROPERTY_USAGE = "usage";
+ @javax.annotation.Nullable
+ private Usage usage;
+
+ public AudioGenerationResponse() {
+ }
+
+ public AudioGenerationResponse id(@javax.annotation.Nonnull String id) {
+
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get 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 AudioGenerationResponse model(@javax.annotation.Nonnull String model) {
+
+ this.model = model;
+ return this;
+ }
+
+ /**
+ * Model name/version. Reference generation, audio separation and video dubbing using an agent plan return the brand model identifier; if resolution fails, the request model is returned instead of the underlying routed model.
+ * @return model
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_MODEL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getModel() {
+ return model;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_MODEL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setModel(@javax.annotation.Nonnull String model) {
+ this.model = model;
+ }
+
+ public AudioGenerationResponse content(@javax.annotation.Nullable ResponseContent content) {
+
+ this.content = content;
+ return this;
+ }
+
+ /**
+ * Get content
+ * @return content
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_CONTENT, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public ResponseContent getContent() {
+ return content;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_CONTENT, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setContent(@javax.annotation.Nullable ResponseContent content) {
+ this.content = content;
+ }
+
+ public AudioGenerationResponse dubbingConfig(@javax.annotation.Nullable EffectiveDubbingConfig dubbingConfig) {
+
+ this.dubbingConfig = dubbingConfig;
+ return this;
+ }
+
+ /**
+ * Effective dubbing configuration, when applicable.
+ * @return dubbingConfig
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_DUBBING_CONFIG, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public EffectiveDubbingConfig getDubbingConfig() {
+ return dubbingConfig;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_DUBBING_CONFIG, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setDubbingConfig(@javax.annotation.Nullable EffectiveDubbingConfig dubbingConfig) {
+ this.dubbingConfig = dubbingConfig;
+ }
+
+ public AudioGenerationResponse outputFormat(@javax.annotation.Nullable OutputFormat outputFormat) {
+
+ this.outputFormat = outputFormat;
+ return this;
+ }
+
+ /**
+ * Dubbing returns the effective format; other scenes echo the supplied request field.
+ * @return outputFormat
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_OUTPUT_FORMAT, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public OutputFormat getOutputFormat() {
+ return outputFormat;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_OUTPUT_FORMAT, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setOutputFormat(@javax.annotation.Nullable OutputFormat outputFormat) {
+ this.outputFormat = outputFormat;
+ }
+
+ public AudioGenerationResponse audioConfig(@javax.annotation.Nullable AudioConfig audioConfig) {
+
+ this.audioConfig = audioConfig;
+ return this;
+ }
+
+ /**
+ * Dubbing returns the effective sample rate; other scenes echo the supplied request config.
+ * @return audioConfig
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_AUDIO_CONFIG, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public AudioConfig getAudioConfig() {
+ return audioConfig;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_AUDIO_CONFIG, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setAudioConfig(@javax.annotation.Nullable AudioConfig audioConfig) {
+ this.audioConfig = audioConfig;
+ }
+
+ public AudioGenerationResponse subtitle(@javax.annotation.Nullable SubtitleEnum subtitle) {
+
+ this.subtitle = subtitle;
+ return this;
+ }
+
+ /**
+ * Separation explicitly returns false. Other scenes currently omit this field; inspect content.subtitles for subtitle artifacts.
+ * @return subtitle
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_SUBTITLE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public SubtitleEnum getSubtitle() {
+ return subtitle;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_SUBTITLE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setSubtitle(@javax.annotation.Nullable SubtitleEnum subtitle) {
+ this.subtitle = subtitle;
+ }
+
+ public AudioGenerationResponse created(@javax.annotation.Nonnull Long created) {
+
+ this.created = created;
+ return this;
+ }
+
+ /**
+ * Creation time, Unix seconds.
+ * @return created
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_CREATED, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public Long getCreated() {
+ return created;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_CREATED, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setCreated(@javax.annotation.Nonnull Long created) {
+ this.created = created;
+ }
+
+ public AudioGenerationResponse usage(@javax.annotation.Nullable Usage usage) {
+
+ this.usage = usage;
+ return this;
+ }
+
+ /**
+ * Get usage
+ * @return usage
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_USAGE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Usage getUsage() {
+ return usage;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_USAGE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setUsage(@javax.annotation.Nullable Usage usage) {
+ this.usage = usage;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AudioGenerationResponse audioGenerationResponse = (AudioGenerationResponse) o;
+ return Objects.equals(this.id, audioGenerationResponse.id) &&
+ Objects.equals(this.model, audioGenerationResponse.model) &&
+ Objects.equals(this.content, audioGenerationResponse.content) &&
+ Objects.equals(this.dubbingConfig, audioGenerationResponse.dubbingConfig) &&
+ Objects.equals(this.outputFormat, audioGenerationResponse.outputFormat) &&
+ Objects.equals(this.audioConfig, audioGenerationResponse.audioConfig) &&
+ Objects.equals(this.subtitle, audioGenerationResponse.subtitle) &&
+ Objects.equals(this.created, audioGenerationResponse.created) &&
+ Objects.equals(this.usage, audioGenerationResponse.usage);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, model, content, dubbingConfig, outputFormat, audioConfig, subtitle, created, usage);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AudioGenerationResponse {\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" model: ").append(toIndentedString(model)).append("\n");
+ sb.append(" content: ").append(toIndentedString(content)).append("\n");
+ sb.append(" dubbingConfig: ").append(toIndentedString(dubbingConfig)).append("\n");
+ sb.append(" outputFormat: ").append(toIndentedString(outputFormat)).append("\n");
+ sb.append(" audioConfig: ").append(toIndentedString(audioConfig)).append("\n");
+ sb.append(" subtitle: ").append(toIndentedString(subtitle)).append("\n");
+ sb.append(" created: ").append(toIndentedString(created)).append("\n");
+ sb.append(" usage: ").append(toIndentedString(usage)).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 AudioGenerationResponse instance;
+
+ public Builder() {
+ this(new AudioGenerationResponse());
+ }
+
+ protected Builder(AudioGenerationResponse instance) {
+ this.instance = instance;
+ }
+
+ public AudioGenerationResponse.Builder id(String id) {
+ this.instance.id = id;
+ return this;
+ }
+ public AudioGenerationResponse.Builder model(String model) {
+ this.instance.model = model;
+ return this;
+ }
+ public AudioGenerationResponse.Builder content(ResponseContent content) {
+ this.instance.content = content;
+ return this;
+ }
+ public AudioGenerationResponse.Builder dubbingConfig(EffectiveDubbingConfig dubbingConfig) {
+ this.instance.dubbingConfig = dubbingConfig;
+ return this;
+ }
+ public AudioGenerationResponse.Builder outputFormat(OutputFormat outputFormat) {
+ this.instance.outputFormat = outputFormat;
+ return this;
+ }
+ public AudioGenerationResponse.Builder audioConfig(AudioConfig audioConfig) {
+ this.instance.audioConfig = audioConfig;
+ return this;
+ }
+ public AudioGenerationResponse.Builder subtitle(SubtitleEnum subtitle) {
+ this.instance.subtitle = subtitle;
+ return this;
+ }
+ public AudioGenerationResponse.Builder created(Long created) {
+ this.instance.created = created;
+ return this;
+ }
+ public AudioGenerationResponse.Builder usage(Usage usage) {
+ this.instance.usage = usage;
+ return this;
+ }
+
+
+ /**
+ * returns a built AudioGenerationResponse instance.
+ *
+ * The builder is not reusable.
+ */
+ public AudioGenerationResponse 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 AudioGenerationResponse.Builder builder() {
+ return new AudioGenerationResponse.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public AudioGenerationResponse.Builder toBuilder() {
+ return new AudioGenerationResponse.Builder()
+ .id(getId())
+ .model(getModel())
+ .content(getContent())
+ .dubbingConfig(getDubbingConfig())
+ .outputFormat(getOutputFormat())
+ .audioConfig(getAudioConfig())
+ .subtitle(getSubtitle())
+ .created(getCreated())
+ .usage(getUsage());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/AudioRole.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/AudioRole.java
new file mode 100644
index 0000000..26a1c1e
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/AudioRole.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Gets or Sets AudioRole
+ */
+public enum AudioRole {
+
+ REFERENCE_AUDIO("reference_audio"),
+
+ SEPARATE_AUDIO("separate_audio");
+
+ private String value;
+
+ AudioRole(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static AudioRole fromValue(String value) {
+ for (AudioRole b : AudioRole.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/audio_generation/AudioURL.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/AudioURL.java
new file mode 100644
index 0000000..727066d
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/AudioURL.java
@@ -0,0 +1,153 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * AudioURL
+ */
+@JsonPropertyOrder({
+ AudioURL.JSON_PROPERTY_URL
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class AudioURL {
+ public static final String JSON_PROPERTY_URL = "url";
+ @javax.annotation.Nonnull
+ private String url;
+
+ public AudioURL() {
+ }
+
+ public AudioURL url(@javax.annotation.Nonnull String url) {
+
+ this.url = url;
+ return this;
+ }
+
+ /**
+ * Public HTTP(S) URL, speaker://<id>, file://<file_id> for registered reference audio, or data:audio/{wav,mp3};base64,<payload>. Decoded base64 audio is limited to 15 MiB for reference generation; separation uses a 90 MiB source-audio limit. A speaker reference cannot be used for separation.
+ * @return url
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_URL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getUrl() {
+ return url;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_URL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setUrl(@javax.annotation.Nonnull String url) {
+ this.url = url;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AudioURL audioURL = (AudioURL) o;
+ return Objects.equals(this.url, audioURL.url);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(url);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AudioURL {\n");
+ sb.append(" url: ").append(toIndentedString(url)).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 AudioURL instance;
+
+ public Builder() {
+ this(new AudioURL());
+ }
+
+ protected Builder(AudioURL instance) {
+ this.instance = instance;
+ }
+
+ public AudioURL.Builder url(String url) {
+ this.instance.url = url;
+ return this;
+ }
+
+
+ /**
+ * returns a built AudioURL instance.
+ *
+ * The builder is not reusable.
+ */
+ public AudioURL 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 AudioURL.Builder builder() {
+ return new AudioURL.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public AudioURL.Builder toBuilder() {
+ return new AudioURL.Builder()
+ .url(getUrl());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/Content.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/Content.java
new file mode 100644
index 0000000..e6297fa
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/Content.java
@@ -0,0 +1,33 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "type", visible = true)
+@JsonSubTypes({
+ @JsonSubTypes.Type(value = AudioContent.class, name = "audio_url"),
+ @JsonSubTypes.Type(value = ImageContent.class, name = "image_url"),
+ @JsonSubTypes.Type(value = TextContent.class, name = "text"),
+ @JsonSubTypes.Type(value = VideoContent.class, name = "video_url"),
+})
+
+public interface Content {
+ public ContentType getType();
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ContentType.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ContentType.java
new file mode 100644
index 0000000..c61c9c3
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ContentType.java
@@ -0,0 +1,61 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Gets or Sets ContentType
+ */
+public enum ContentType {
+
+ AUDIO_URL("audio_url"),
+
+ IMAGE_URL("image_url"),
+
+ TEXT("text"),
+
+ VIDEO_URL("video_url");
+
+ private String value;
+
+ ContentType(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static ContentType fromValue(String value) {
+ for (ContentType b : ContentType.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/audio_generation/DubbingConfig.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/DubbingConfig.java
new file mode 100644
index 0000000..9755f27
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/DubbingConfig.java
@@ -0,0 +1,200 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+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;
+
+/**
+ * Source language is detected automatically. Do not send source_language: any non-null value, including an empty string, is rejected with InvalidParameter.
+ */
+@JsonPropertyOrder({
+ DubbingConfig.JSON_PROPERTY_TARGET_LANGUAGE,
+ DubbingConfig.JSON_PROPERTY_GLOSSARIES
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class DubbingConfig {
+ public static final String JSON_PROPERTY_TARGET_LANGUAGE = "target_language";
+ @javax.annotation.Nonnull
+ private TargetLanguage targetLanguage;
+
+ public static final String JSON_PROPERTY_GLOSSARIES = "glossaries";
+ @javax.annotation.Nullable
+ private List glossaries;
+
+ public DubbingConfig() {
+ }
+
+ public DubbingConfig targetLanguage(@javax.annotation.Nonnull TargetLanguage targetLanguage) {
+
+ this.targetLanguage = targetLanguage;
+ return this;
+ }
+
+ /**
+ * Required for dubbing; accepted values match the dubbing validator.
+ * @return targetLanguage
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_TARGET_LANGUAGE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public TargetLanguage getTargetLanguage() {
+ return targetLanguage;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_TARGET_LANGUAGE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setTargetLanguage(@javax.annotation.Nonnull TargetLanguage targetLanguage) {
+ this.targetLanguage = targetLanguage;
+ }
+
+ public DubbingConfig glossaries(@javax.annotation.Nullable List glossaries) {
+
+ this.glossaries = glossaries;
+ return this;
+ }
+
+ public DubbingConfig addGlossariesItem(Glossary glossariesItem) {
+ if (this.glossaries == null) {
+ this.glossaries = new ArrayList<>();
+ }
+ this.glossaries.add(glossariesItem);
+ return this;
+ }
+
+ /**
+ * Up to 1000 input pairs, counted before duplicate sources are merged.
+ * @return glossaries
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_GLOSSARIES, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+
+ public List getGlossaries() {
+ return glossaries;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_GLOSSARIES, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+ public void setGlossaries(@javax.annotation.Nullable List glossaries) {
+ this.glossaries = glossaries;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ DubbingConfig dubbingConfig = (DubbingConfig) o;
+ return Objects.equals(this.targetLanguage, dubbingConfig.targetLanguage) &&
+ Objects.equals(this.glossaries, dubbingConfig.glossaries);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(targetLanguage, glossaries);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class DubbingConfig {\n");
+ sb.append(" targetLanguage: ").append(toIndentedString(targetLanguage)).append("\n");
+ sb.append(" glossaries: ").append(toIndentedString(glossaries)).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 DubbingConfig instance;
+
+ public Builder() {
+ this(new DubbingConfig());
+ }
+
+ protected Builder(DubbingConfig instance) {
+ this.instance = instance;
+ }
+
+ public DubbingConfig.Builder targetLanguage(TargetLanguage targetLanguage) {
+ this.instance.targetLanguage = targetLanguage;
+ return this;
+ }
+ public DubbingConfig.Builder glossaries(List glossaries) {
+ this.instance.glossaries = glossaries;
+ return this;
+ }
+
+
+ /**
+ * returns a built DubbingConfig instance.
+ *
+ * The builder is not reusable.
+ */
+ public DubbingConfig 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 DubbingConfig.Builder builder() {
+ return new DubbingConfig.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public DubbingConfig.Builder toBuilder() {
+ return new DubbingConfig.Builder()
+ .targetLanguage(getTargetLanguage())
+ .glossaries(getGlossaries());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/DubbingConfigNot.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/DubbingConfigNot.java
new file mode 100644
index 0000000..179fabd
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/DubbingConfigNot.java
@@ -0,0 +1,155 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import java.util.Objects;
+
+/**
+ * DubbingConfigNot
+ */
+@JsonPropertyOrder({
+ DubbingConfigNot.JSON_PROPERTY_SOURCE_LANGUAGE
+})
+@JsonTypeName("DubbingConfig_not")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class DubbingConfigNot {
+ public static final String JSON_PROPERTY_SOURCE_LANGUAGE = "source_language";
+ @javax.annotation.Nullable
+ private Object sourceLanguage = null;
+
+ public DubbingConfigNot() {
+ }
+
+ public DubbingConfigNot sourceLanguage(@javax.annotation.Nullable Object sourceLanguage) {
+
+ this.sourceLanguage = sourceLanguage;
+ return this;
+ }
+
+ /**
+ * Get sourceLanguage
+ * @return sourceLanguage
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_SOURCE_LANGUAGE, required = false)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public Object getSourceLanguage() {
+ return sourceLanguage;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_SOURCE_LANGUAGE, required = false)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setSourceLanguage(@javax.annotation.Nullable Object sourceLanguage) {
+ this.sourceLanguage = sourceLanguage;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ DubbingConfigNot dubbingConfigNot = (DubbingConfigNot) o;
+ return Objects.equals(this.sourceLanguage, dubbingConfigNot.sourceLanguage);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(sourceLanguage);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class DubbingConfigNot {\n");
+ sb.append(" sourceLanguage: ").append(toIndentedString(sourceLanguage)).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 DubbingConfigNot instance;
+
+ public Builder() {
+ this(new DubbingConfigNot());
+ }
+
+ protected Builder(DubbingConfigNot instance) {
+ this.instance = instance;
+ }
+
+ public DubbingConfigNot.Builder sourceLanguage(Object sourceLanguage) {
+ this.instance.sourceLanguage = sourceLanguage;
+ return this;
+ }
+
+
+ /**
+ * returns a built DubbingConfigNot instance.
+ *
+ * The builder is not reusable.
+ */
+ public DubbingConfigNot 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 DubbingConfigNot.Builder builder() {
+ return new DubbingConfigNot.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public DubbingConfigNot.Builder toBuilder() {
+ return new DubbingConfigNot.Builder()
+ .sourceLanguage(getSourceLanguage());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/EffectiveDubbingConfig.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/EffectiveDubbingConfig.java
new file mode 100644
index 0000000..8d00c5c
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/EffectiveDubbingConfig.java
@@ -0,0 +1,153 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * Effective target language. Source language and glossaries are not returned.
+ */
+@JsonPropertyOrder({
+ EffectiveDubbingConfig.JSON_PROPERTY_TARGET_LANGUAGE
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class EffectiveDubbingConfig {
+ public static final String JSON_PROPERTY_TARGET_LANGUAGE = "target_language";
+ @javax.annotation.Nonnull
+ private TargetLanguage targetLanguage;
+
+ public EffectiveDubbingConfig() {
+ }
+
+ public EffectiveDubbingConfig targetLanguage(@javax.annotation.Nonnull TargetLanguage targetLanguage) {
+
+ this.targetLanguage = targetLanguage;
+ return this;
+ }
+
+ /**
+ * Get targetLanguage
+ * @return targetLanguage
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_TARGET_LANGUAGE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public TargetLanguage getTargetLanguage() {
+ return targetLanguage;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_TARGET_LANGUAGE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setTargetLanguage(@javax.annotation.Nonnull TargetLanguage targetLanguage) {
+ this.targetLanguage = targetLanguage;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ EffectiveDubbingConfig effectiveDubbingConfig = (EffectiveDubbingConfig) o;
+ return Objects.equals(this.targetLanguage, effectiveDubbingConfig.targetLanguage);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(targetLanguage);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class EffectiveDubbingConfig {\n");
+ sb.append(" targetLanguage: ").append(toIndentedString(targetLanguage)).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 EffectiveDubbingConfig instance;
+
+ public Builder() {
+ this(new EffectiveDubbingConfig());
+ }
+
+ protected Builder(EffectiveDubbingConfig instance) {
+ this.instance = instance;
+ }
+
+ public EffectiveDubbingConfig.Builder targetLanguage(TargetLanguage targetLanguage) {
+ this.instance.targetLanguage = targetLanguage;
+ return this;
+ }
+
+
+ /**
+ * returns a built EffectiveDubbingConfig instance.
+ *
+ * The builder is not reusable.
+ */
+ public EffectiveDubbingConfig 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 EffectiveDubbingConfig.Builder builder() {
+ return new EffectiveDubbingConfig.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public EffectiveDubbingConfig.Builder toBuilder() {
+ return new EffectiveDubbingConfig.Builder()
+ .targetLanguage(getTargetLanguage());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ErrorResponse.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ErrorResponse.java
new file mode 100644
index 0000000..329eb5d
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ErrorResponse.java
@@ -0,0 +1,153 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * ErrorResponse
+ */
+@JsonPropertyOrder({
+ ErrorResponse.JSON_PROPERTY_ERROR
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class ErrorResponse {
+ public static final String JSON_PROPERTY_ERROR = "error";
+ @javax.annotation.Nonnull
+ private ResponseError error;
+
+ public ErrorResponse() {
+ }
+
+ public ErrorResponse error(@javax.annotation.Nonnull ResponseError error) {
+
+ this.error = error;
+ return this;
+ }
+
+ /**
+ * Get error
+ * @return error
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_ERROR, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public ResponseError getError() {
+ return error;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_ERROR, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setError(@javax.annotation.Nonnull ResponseError error) {
+ this.error = error;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ErrorResponse errorResponse = (ErrorResponse) o;
+ return Objects.equals(this.error, errorResponse.error);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(error);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ErrorResponse {\n");
+ sb.append(" error: ").append(toIndentedString(error)).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 ErrorResponse instance;
+
+ public Builder() {
+ this(new ErrorResponse());
+ }
+
+ protected Builder(ErrorResponse instance) {
+ this.instance = instance;
+ }
+
+ public ErrorResponse.Builder error(ResponseError error) {
+ this.instance.error = error;
+ return this;
+ }
+
+
+ /**
+ * returns a built ErrorResponse instance.
+ *
+ * The builder is not reusable.
+ */
+ public ErrorResponse 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 ErrorResponse.Builder builder() {
+ return new ErrorResponse.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public ErrorResponse.Builder toBuilder() {
+ return new ErrorResponse.Builder()
+ .error(getError());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/Glossary.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/Glossary.java
new file mode 100644
index 0000000..aebe3dd
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/Glossary.java
@@ -0,0 +1,190 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * Glossary
+ */
+@JsonPropertyOrder({
+ Glossary.JSON_PROPERTY_SOURCE,
+ Glossary.JSON_PROPERTY_TARGET
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class Glossary {
+ public static final String JSON_PROPERTY_SOURCE = "source";
+ @javax.annotation.Nonnull
+ private String source;
+
+ public static final String JSON_PROPERTY_TARGET = "target";
+ @javax.annotation.Nonnull
+ private String target;
+
+ public Glossary() {
+ }
+
+ public Glossary source(@javax.annotation.Nonnull String source) {
+
+ this.source = source;
+ return this;
+ }
+
+ /**
+ * Non-empty text. Whitespace-only strings are rejected by the server.
+ * @return source
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_SOURCE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getSource() {
+ return source;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_SOURCE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setSource(@javax.annotation.Nonnull String source) {
+ this.source = source;
+ }
+
+ public Glossary target(@javax.annotation.Nonnull String target) {
+
+ this.target = target;
+ return this;
+ }
+
+ /**
+ * Non-empty text. Whitespace-only strings are rejected by the server.
+ * @return target
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_TARGET, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getTarget() {
+ return target;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_TARGET, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setTarget(@javax.annotation.Nonnull String target) {
+ this.target = target;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ Glossary glossary = (Glossary) o;
+ return Objects.equals(this.source, glossary.source) &&
+ Objects.equals(this.target, glossary.target);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(source, target);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class Glossary {\n");
+ sb.append(" source: ").append(toIndentedString(source)).append("\n");
+ sb.append(" target: ").append(toIndentedString(target)).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 Glossary instance;
+
+ public Builder() {
+ this(new Glossary());
+ }
+
+ protected Builder(Glossary instance) {
+ this.instance = instance;
+ }
+
+ public Glossary.Builder source(String source) {
+ this.instance.source = source;
+ return this;
+ }
+ public Glossary.Builder target(String target) {
+ this.instance.target = target;
+ return this;
+ }
+
+
+ /**
+ * returns a built Glossary instance.
+ *
+ * The builder is not reusable.
+ */
+ public Glossary 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 Glossary.Builder builder() {
+ return new Glossary.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public Glossary.Builder toBuilder() {
+ return new Glossary.Builder()
+ .source(getSource())
+ .target(getTarget());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ImageContent.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ImageContent.java
new file mode 100644
index 0000000..a27388a
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ImageContent.java
@@ -0,0 +1,262 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fasterxml.jackson.annotation.JsonValue;
+import java.util.Objects;
+
+/**
+ * ImageContent
+ */
+@JsonPropertyOrder({
+ ImageContent.JSON_PROPERTY_TYPE,
+ ImageContent.JSON_PROPERTY_IMAGE_URL,
+ ImageContent.JSON_PROPERTY_ROLE
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class ImageContent implements Content {
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @javax.annotation.Nonnull
+ private ContentType type = ContentType.IMAGE_URL;
+
+ public static final String JSON_PROPERTY_IMAGE_URL = "image_url";
+ @javax.annotation.Nonnull
+ private ImageURL imageUrl;
+
+ /**
+ * Required. Must be reference_image.
+ */
+ public enum RoleEnum {
+ REFERENCE_IMAGE(String.valueOf("reference_image"));
+
+ private String value;
+
+ RoleEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static RoleEnum fromValue(String value) {
+ for (RoleEnum b : RoleEnum.values()) {
+ if (b.value.equalsIgnoreCase(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_ROLE = "role";
+ @javax.annotation.Nonnull
+ private RoleEnum role;
+
+ public ImageContent() {
+ }
+
+ public ImageContent type(@javax.annotation.Nonnull ContentType type) {
+
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get type
+ * @return type
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public ContentType getType() {
+ return type;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setType(@javax.annotation.Nonnull ContentType type) {
+ this.type = type;
+ }
+
+ public ImageContent imageUrl(@javax.annotation.Nonnull ImageURL imageUrl) {
+
+ this.imageUrl = imageUrl;
+ return this;
+ }
+
+ /**
+ * Get imageUrl
+ * @return imageUrl
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_IMAGE_URL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public ImageURL getImageUrl() {
+ return imageUrl;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_IMAGE_URL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setImageUrl(@javax.annotation.Nonnull ImageURL imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public ImageContent role(@javax.annotation.Nonnull RoleEnum role) {
+
+ this.role = role;
+ return this;
+ }
+
+ /**
+ * Required. Must be reference_image.
+ * @return role
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_ROLE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public RoleEnum getRole() {
+ return role;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_ROLE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setRole(@javax.annotation.Nonnull RoleEnum role) {
+ this.role = role;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ImageContent imageContent = (ImageContent) o;
+ return Objects.equals(this.type, imageContent.type) &&
+ Objects.equals(this.imageUrl, imageContent.imageUrl) &&
+ Objects.equals(this.role, imageContent.role);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, imageUrl, role);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ImageContent {\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" imageUrl: ").append(toIndentedString(imageUrl)).append("\n");
+ sb.append(" role: ").append(toIndentedString(role)).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 ImageContent instance;
+
+ public Builder() {
+ this(new ImageContent());
+ }
+
+ protected Builder(ImageContent instance) {
+ this.instance = instance;
+ }
+
+ public ImageContent.Builder type(ContentType type) {
+ this.instance.type = type;
+ return this;
+ }
+ public ImageContent.Builder imageUrl(ImageURL imageUrl) {
+ this.instance.imageUrl = imageUrl;
+ return this;
+ }
+ public ImageContent.Builder role(RoleEnum role) {
+ this.instance.role = role;
+ return this;
+ }
+
+
+ /**
+ * returns a built ImageContent instance.
+ *
+ * The builder is not reusable.
+ */
+ public ImageContent 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 ImageContent.Builder builder() {
+ return new ImageContent.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public ImageContent.Builder toBuilder() {
+ return new ImageContent.Builder()
+ .type(getType())
+ .imageUrl(getImageUrl())
+ .role(getRole());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ImageURL.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ImageURL.java
new file mode 100644
index 0000000..da14b8e
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ImageURL.java
@@ -0,0 +1,153 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * ImageURL
+ */
+@JsonPropertyOrder({
+ ImageURL.JSON_PROPERTY_URL
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class ImageURL {
+ public static final String JSON_PROPERTY_URL = "url";
+ @javax.annotation.Nonnull
+ private String url;
+
+ public ImageURL() {
+ }
+
+ public ImageURL url(@javax.annotation.Nonnull String url) {
+
+ this.url = url;
+ return this;
+ }
+
+ /**
+ * Public HTTP(S) URL or data:image/<subtype>;base64,<payload>. Subtypes: jpeg, png, webp, bmp, tiff, gif, heic, heif (lowercase). Base64 images are limited to 10 MiB after decoding.
+ * @return url
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_URL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getUrl() {
+ return url;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_URL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setUrl(@javax.annotation.Nonnull String url) {
+ this.url = url;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ImageURL imageURL = (ImageURL) o;
+ return Objects.equals(this.url, imageURL.url);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(url);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ImageURL {\n");
+ sb.append(" url: ").append(toIndentedString(url)).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 ImageURL instance;
+
+ public Builder() {
+ this(new ImageURL());
+ }
+
+ protected Builder(ImageURL instance) {
+ this.instance = instance;
+ }
+
+ public ImageURL.Builder url(String url) {
+ this.instance.url = url;
+ return this;
+ }
+
+
+ /**
+ * returns a built ImageURL instance.
+ *
+ * The builder is not reusable.
+ */
+ public ImageURL 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 ImageURL.Builder builder() {
+ return new ImageURL.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public ImageURL.Builder toBuilder() {
+ return new ImageURL.Builder()
+ .url(getUrl());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/Include.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/Include.java
new file mode 100644
index 0000000..fcc7f7e
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/Include.java
@@ -0,0 +1,63 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Wire values use dots, unlike the underscores in the protobuf enum names.
+ */
+public enum Include {
+
+ VIDEO_URL("video_url"),
+
+ SUBTITLES_SRT("subtitles.srt"),
+
+ SUBTITLES_JSONL("subtitles.jsonl"),
+
+ SUBTITLES_SOURCE_SRT("subtitles_source.srt"),
+
+ SUBTITLES_SOURCE_JSONL("subtitles_source.jsonl");
+
+ private String value;
+
+ Include(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static Include fromValue(String value) {
+ for (Include b : Include.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/audio_generation/OutputFormat.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/OutputFormat.java
new file mode 100644
index 0000000..10ae150
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/OutputFormat.java
@@ -0,0 +1,61 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Gets or Sets OutputFormat
+ */
+public enum OutputFormat {
+
+ WAV("wav"),
+
+ MP3("mp3"),
+
+ PCM("pcm"),
+
+ OGG_OPUS("ogg_opus");
+
+ private String value;
+
+ OutputFormat(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static OutputFormat fromValue(String value) {
+ for (OutputFormat b : OutputFormat.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/audio_generation/ResponseAudio.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ResponseAudio.java
new file mode 100644
index 0000000..8944f88
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ResponseAudio.java
@@ -0,0 +1,227 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * ResponseAudio
+ */
+@JsonPropertyOrder({
+ ResponseAudio.JSON_PROPERTY_URL,
+ ResponseAudio.JSON_PROPERTY_DESCRIPTION,
+ ResponseAudio.JSON_PROPERTY_TYPE
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class ResponseAudio {
+ public static final String JSON_PROPERTY_URL = "url";
+ @javax.annotation.Nonnull
+ private String url;
+
+ public static final String JSON_PROPERTY_DESCRIPTION = "description";
+ @javax.annotation.Nullable
+ private String description;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @javax.annotation.Nullable
+ private String type;
+
+ public ResponseAudio() {
+ }
+
+ public ResponseAudio url(@javax.annotation.Nonnull String url) {
+
+ this.url = url;
+ return this;
+ }
+
+ /**
+ * Download URL.
+ * @return url
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_URL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getUrl() {
+ return url;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_URL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setUrl(@javax.annotation.Nonnull String url) {
+ this.url = url;
+ }
+
+ public ResponseAudio description(@javax.annotation.Nullable String description) {
+
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Description of a separated track.
+ * @return description
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_DESCRIPTION, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getDescription() {
+ return description;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_DESCRIPTION, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setDescription(@javax.annotation.Nullable String description) {
+ this.description = description;
+ }
+
+ public ResponseAudio type(@javax.annotation.Nullable String type) {
+
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Separation track type, usually speaker, sfx or bgm. speaker_N is normalized to speaker; other model-defined labels are preserved. Omitted for reference generation and dubbing.
+ * @return type
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getType() {
+ return type;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setType(@javax.annotation.Nullable String type) {
+ this.type = type;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ResponseAudio responseAudio = (ResponseAudio) o;
+ return Objects.equals(this.url, responseAudio.url) &&
+ Objects.equals(this.description, responseAudio.description) &&
+ Objects.equals(this.type, responseAudio.type);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(url, description, type);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ResponseAudio {\n");
+ sb.append(" url: ").append(toIndentedString(url)).append("\n");
+ sb.append(" description: ").append(toIndentedString(description)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).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 ResponseAudio instance;
+
+ public Builder() {
+ this(new ResponseAudio());
+ }
+
+ protected Builder(ResponseAudio instance) {
+ this.instance = instance;
+ }
+
+ public ResponseAudio.Builder url(String url) {
+ this.instance.url = url;
+ return this;
+ }
+ public ResponseAudio.Builder description(String description) {
+ this.instance.description = description;
+ return this;
+ }
+ public ResponseAudio.Builder type(String type) {
+ this.instance.type = type;
+ return this;
+ }
+
+
+ /**
+ * returns a built ResponseAudio instance.
+ *
+ * The builder is not reusable.
+ */
+ public ResponseAudio 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 ResponseAudio.Builder builder() {
+ return new ResponseAudio.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public ResponseAudio.Builder toBuilder() {
+ return new ResponseAudio.Builder()
+ .url(getUrl())
+ .description(getDescription())
+ .type(getType());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ResponseContent.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ResponseContent.java
new file mode 100644
index 0000000..303506b
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ResponseContent.java
@@ -0,0 +1,290 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+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;
+
+/**
+ * ResponseContent
+ */
+@JsonPropertyOrder({
+ ResponseContent.JSON_PROPERTY_VIDEO_URL,
+ ResponseContent.JSON_PROPERTY_AUDIOS,
+ ResponseContent.JSON_PROPERTY_SUBTITLES,
+ ResponseContent.JSON_PROPERTY_SUBTITLES_SOURCE
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class ResponseContent {
+ public static final String JSON_PROPERTY_VIDEO_URL = "video_url";
+ @javax.annotation.Nullable
+ private String videoUrl;
+
+ public static final String JSON_PROPERTY_AUDIOS = "audios";
+ @javax.annotation.Nullable
+ private List audios;
+
+ public static final String JSON_PROPERTY_SUBTITLES = "subtitles";
+ @javax.annotation.Nullable
+ private List subtitles;
+
+ public static final String JSON_PROPERTY_SUBTITLES_SOURCE = "subtitles_source";
+ @javax.annotation.Nullable
+ private List subtitlesSource;
+
+ public ResponseContent() {
+ }
+
+ public ResponseContent videoUrl(@javax.annotation.Nullable String videoUrl) {
+
+ this.videoUrl = videoUrl;
+ return this;
+ }
+
+ /**
+ * Generated video, when include contains video_url and the input has video.
+ * @return videoUrl
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_VIDEO_URL, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getVideoUrl() {
+ return videoUrl;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_VIDEO_URL, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setVideoUrl(@javax.annotation.Nullable String videoUrl) {
+ this.videoUrl = videoUrl;
+ }
+
+ public ResponseContent audios(@javax.annotation.Nullable List audios) {
+
+ this.audios = audios;
+ return this;
+ }
+
+ public ResponseContent addAudiosItem(ResponseAudio audiosItem) {
+ if (this.audios == null) {
+ this.audios = new ArrayList<>();
+ }
+ this.audios.add(audiosItem);
+ return this;
+ }
+
+ /**
+ * Reference generation returns one audio item containing only url. Dubbing also returns URL-only audio items. Separation returns items with url, type and description, without adding a mixed track.
+ * @return audios
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_AUDIOS, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+
+ public List getAudios() {
+ return audios;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_AUDIOS, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+ public void setAudios(@javax.annotation.Nullable List audios) {
+ this.audios = audios;
+ }
+
+ public ResponseContent subtitles(@javax.annotation.Nullable List subtitles) {
+
+ this.subtitles = subtitles;
+ return this;
+ }
+
+ public ResponseContent addSubtitlesItem(ResponseSubtitle subtitlesItem) {
+ if (this.subtitles == null) {
+ this.subtitles = new ArrayList<>();
+ }
+ this.subtitles.add(subtitlesItem);
+ return this;
+ }
+
+ /**
+ * Generated-language subtitle files selected by include.
+ * @return subtitles
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_SUBTITLES, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+
+ public List getSubtitles() {
+ return subtitles;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_SUBTITLES, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+ public void setSubtitles(@javax.annotation.Nullable List subtitles) {
+ this.subtitles = subtitles;
+ }
+
+ public ResponseContent subtitlesSource(@javax.annotation.Nullable List subtitlesSource) {
+
+ this.subtitlesSource = subtitlesSource;
+ return this;
+ }
+
+ public ResponseContent addSubtitlesSourceItem(ResponseSubtitle subtitlesSourceItem) {
+ if (this.subtitlesSource == null) {
+ this.subtitlesSource = new ArrayList<>();
+ }
+ this.subtitlesSource.add(subtitlesSourceItem);
+ return this;
+ }
+
+ /**
+ * Source-language subtitle files, for dubbing only.
+ * @return subtitlesSource
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_SUBTITLES_SOURCE, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+
+ public List getSubtitlesSource() {
+ return subtitlesSource;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_SUBTITLES_SOURCE, required = false)
+ @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
+ public void setSubtitlesSource(@javax.annotation.Nullable List subtitlesSource) {
+ this.subtitlesSource = subtitlesSource;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ResponseContent responseContent = (ResponseContent) o;
+ return Objects.equals(this.videoUrl, responseContent.videoUrl) &&
+ Objects.equals(this.audios, responseContent.audios) &&
+ Objects.equals(this.subtitles, responseContent.subtitles) &&
+ Objects.equals(this.subtitlesSource, responseContent.subtitlesSource);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(videoUrl, audios, subtitles, subtitlesSource);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ResponseContent {\n");
+ sb.append(" videoUrl: ").append(toIndentedString(videoUrl)).append("\n");
+ sb.append(" audios: ").append(toIndentedString(audios)).append("\n");
+ sb.append(" subtitles: ").append(toIndentedString(subtitles)).append("\n");
+ sb.append(" subtitlesSource: ").append(toIndentedString(subtitlesSource)).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 ResponseContent instance;
+
+ public Builder() {
+ this(new ResponseContent());
+ }
+
+ protected Builder(ResponseContent instance) {
+ this.instance = instance;
+ }
+
+ public ResponseContent.Builder videoUrl(String videoUrl) {
+ this.instance.videoUrl = videoUrl;
+ return this;
+ }
+ public ResponseContent.Builder audios(List audios) {
+ this.instance.audios = audios;
+ return this;
+ }
+ public ResponseContent.Builder subtitles(List subtitles) {
+ this.instance.subtitles = subtitles;
+ return this;
+ }
+ public ResponseContent.Builder subtitlesSource(List subtitlesSource) {
+ this.instance.subtitlesSource = subtitlesSource;
+ return this;
+ }
+
+
+ /**
+ * returns a built ResponseContent instance.
+ *
+ * The builder is not reusable.
+ */
+ public ResponseContent 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 ResponseContent.Builder builder() {
+ return new ResponseContent.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public ResponseContent.Builder toBuilder() {
+ return new ResponseContent.Builder()
+ .videoUrl(getVideoUrl())
+ .audios(getAudios())
+ .subtitles(getSubtitles())
+ .subtitlesSource(getSubtitlesSource());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ResponseError.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ResponseError.java
new file mode 100644
index 0000000..6e5a730
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ResponseError.java
@@ -0,0 +1,264 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * ResponseError
+ */
+@JsonPropertyOrder({
+ ResponseError.JSON_PROPERTY_CODE,
+ ResponseError.JSON_PROPERTY_MESSAGE,
+ ResponseError.JSON_PROPERTY_PARAM,
+ ResponseError.JSON_PROPERTY_TYPE
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class ResponseError {
+ public static final String JSON_PROPERTY_CODE = "code";
+ @javax.annotation.Nonnull
+ private String code;
+
+ public static final String JSON_PROPERTY_MESSAGE = "message";
+ @javax.annotation.Nonnull
+ private String message;
+
+ public static final String JSON_PROPERTY_PARAM = "param";
+ @javax.annotation.Nullable
+ private String param;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @javax.annotation.Nullable
+ private String type;
+
+ public ResponseError() {
+ }
+
+ public ResponseError code(@javax.annotation.Nonnull String code) {
+
+ this.code = code;
+ return this;
+ }
+
+ /**
+ * Get code
+ * @return code
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_CODE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getCode() {
+ return code;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_CODE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setCode(@javax.annotation.Nonnull String code) {
+ this.code = code;
+ }
+
+ public ResponseError message(@javax.annotation.Nonnull String message) {
+
+ this.message = message;
+ return this;
+ }
+
+ /**
+ * Get message
+ * @return message
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_MESSAGE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getMessage() {
+ return message;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_MESSAGE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setMessage(@javax.annotation.Nonnull String message) {
+ this.message = message;
+ }
+
+ public ResponseError param(@javax.annotation.Nullable String param) {
+
+ this.param = param;
+ return this;
+ }
+
+ /**
+ * Get param
+ * @return param
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_PARAM, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getParam() {
+ return param;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_PARAM, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setParam(@javax.annotation.Nullable String param) {
+ this.param = param;
+ }
+
+ public ResponseError type(@javax.annotation.Nullable String type) {
+
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get type
+ * @return type
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getType() {
+ return type;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setType(@javax.annotation.Nullable String type) {
+ this.type = type;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ResponseError responseError = (ResponseError) o;
+ return Objects.equals(this.code, responseError.code) &&
+ Objects.equals(this.message, responseError.message) &&
+ Objects.equals(this.param, responseError.param) &&
+ Objects.equals(this.type, responseError.type);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(code, message, param, type);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ResponseError {\n");
+ sb.append(" code: ").append(toIndentedString(code)).append("\n");
+ sb.append(" message: ").append(toIndentedString(message)).append("\n");
+ sb.append(" param: ").append(toIndentedString(param)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).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 ResponseError instance;
+
+ public Builder() {
+ this(new ResponseError());
+ }
+
+ protected Builder(ResponseError instance) {
+ this.instance = instance;
+ }
+
+ public ResponseError.Builder code(String code) {
+ this.instance.code = code;
+ return this;
+ }
+ public ResponseError.Builder message(String message) {
+ this.instance.message = message;
+ return this;
+ }
+ public ResponseError.Builder param(String param) {
+ this.instance.param = param;
+ return this;
+ }
+ public ResponseError.Builder type(String type) {
+ this.instance.type = type;
+ return this;
+ }
+
+
+ /**
+ * returns a built ResponseError instance.
+ *
+ * The builder is not reusable.
+ */
+ public ResponseError 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 ResponseError.Builder builder() {
+ return new ResponseError.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public ResponseError.Builder toBuilder() {
+ return new ResponseError.Builder()
+ .code(getCode())
+ .message(getMessage())
+ .param(getParam())
+ .type(getType());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ResponseSubtitle.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ResponseSubtitle.java
new file mode 100644
index 0000000..a8dfbe3
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/ResponseSubtitle.java
@@ -0,0 +1,190 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * ResponseSubtitle
+ */
+@JsonPropertyOrder({
+ ResponseSubtitle.JSON_PROPERTY_FORMAT,
+ ResponseSubtitle.JSON_PROPERTY_URL
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class ResponseSubtitle {
+ public static final String JSON_PROPERTY_FORMAT = "format";
+ @javax.annotation.Nonnull
+ private String format;
+
+ public static final String JSON_PROPERTY_URL = "url";
+ @javax.annotation.Nonnull
+ private String url;
+
+ public ResponseSubtitle() {
+ }
+
+ public ResponseSubtitle format(@javax.annotation.Nonnull String format) {
+
+ this.format = format;
+ return this;
+ }
+
+ /**
+ * Subtitle format: srt or jsonl.
+ * @return format
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_FORMAT, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getFormat() {
+ return format;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_FORMAT, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setFormat(@javax.annotation.Nonnull String format) {
+ this.format = format;
+ }
+
+ public ResponseSubtitle url(@javax.annotation.Nonnull String url) {
+
+ this.url = url;
+ return this;
+ }
+
+ /**
+ * Download URL.
+ * @return url
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_URL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getUrl() {
+ return url;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_URL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setUrl(@javax.annotation.Nonnull String url) {
+ this.url = url;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ResponseSubtitle responseSubtitle = (ResponseSubtitle) o;
+ return Objects.equals(this.format, responseSubtitle.format) &&
+ Objects.equals(this.url, responseSubtitle.url);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(format, url);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ResponseSubtitle {\n");
+ sb.append(" format: ").append(toIndentedString(format)).append("\n");
+ sb.append(" url: ").append(toIndentedString(url)).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 ResponseSubtitle instance;
+
+ public Builder() {
+ this(new ResponseSubtitle());
+ }
+
+ protected Builder(ResponseSubtitle instance) {
+ this.instance = instance;
+ }
+
+ public ResponseSubtitle.Builder format(String format) {
+ this.instance.format = format;
+ return this;
+ }
+ public ResponseSubtitle.Builder url(String url) {
+ this.instance.url = url;
+ return this;
+ }
+
+
+ /**
+ * returns a built ResponseSubtitle instance.
+ *
+ * The builder is not reusable.
+ */
+ public ResponseSubtitle 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 ResponseSubtitle.Builder builder() {
+ return new ResponseSubtitle.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public ResponseSubtitle.Builder toBuilder() {
+ return new ResponseSubtitle.Builder()
+ .format(getFormat())
+ .url(getUrl());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/SampleRate.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/SampleRate.java
new file mode 100644
index 0000000..42a2bd5
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/SampleRate.java
@@ -0,0 +1,65 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Supported sampling frequencies. Format pairing is enforced by the server.
+ */
+public enum SampleRate {
+
+ NUMBER_8000(8000),
+
+ NUMBER_16000(16000),
+
+ NUMBER_24000(24000),
+
+ NUMBER_32000(32000),
+
+ NUMBER_44100(44100),
+
+ NUMBER_48000(48000);
+
+ private Integer value;
+
+ SampleRate(Integer value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public Integer getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static SampleRate fromValue(Integer value) {
+ for (SampleRate b : SampleRate.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/TargetLanguage.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/TargetLanguage.java
new file mode 100644
index 0000000..9df2d62
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/TargetLanguage.java
@@ -0,0 +1,113 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Accepted target languages in the dubbing validator.
+ */
+public enum TargetLanguage {
+
+ ZH("zh"),
+
+ EN("en"),
+
+ JA("ja"),
+
+ KO("ko"),
+
+ ES_MX("es-MX"),
+
+ DE("de"),
+
+ FR("fr"),
+
+ PT_BR("pt-BR"),
+
+ TH("th"),
+
+ ID("id"),
+
+ VI("vi"),
+
+ MS("ms"),
+
+ AR("ar"),
+
+ ES_ES("es-ES"),
+
+ PT_PT("pt-PT"),
+
+ FIL("fil"),
+
+ IT("it"),
+
+ RU("ru"),
+
+ NL("nl"),
+
+ PL("pl"),
+
+ TR("tr"),
+
+ SV("sv"),
+
+ FI("fi"),
+
+ DA("da"),
+
+ NO("no"),
+
+ CS("cs"),
+
+ HU("hu"),
+
+ EL("el"),
+
+ RO("ro"),
+
+ HI("hi");
+
+ private String value;
+
+ TargetLanguage(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static TargetLanguage fromValue(String value) {
+ for (TargetLanguage b : TargetLanguage.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/audio_generation/TextContent.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/TextContent.java
new file mode 100644
index 0000000..0feb4d3
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/TextContent.java
@@ -0,0 +1,190 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * TextContent
+ */
+@JsonPropertyOrder({
+ TextContent.JSON_PROPERTY_TYPE,
+ TextContent.JSON_PROPERTY_TEXT
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class TextContent implements Content {
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @javax.annotation.Nonnull
+ private ContentType type = ContentType.TEXT;
+
+ public static final String JSON_PROPERTY_TEXT = "text";
+ @javax.annotation.Nonnull
+ private String text;
+
+ public TextContent() {
+ }
+
+ public TextContent type(@javax.annotation.Nonnull ContentType type) {
+
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get type
+ * @return type
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public ContentType getType() {
+ return type;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setType(@javax.annotation.Nonnull ContentType type) {
+ this.type = type;
+ }
+
+ public TextContent text(@javax.annotation.Nonnull String text) {
+
+ this.text = text;
+ return this;
+ }
+
+ /**
+ * Prompt, flattened as a string on the wire. The server truncates to 10,000 Unicode characters rather than rejecting longer text. Text cannot carry a role.
+ * @return text
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_TEXT, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getText() {
+ return text;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_TEXT, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setText(@javax.annotation.Nonnull String text) {
+ this.text = text;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ TextContent textContent = (TextContent) o;
+ return Objects.equals(this.type, textContent.type) &&
+ Objects.equals(this.text, textContent.text);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, text);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class TextContent {\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" text: ").append(toIndentedString(text)).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 TextContent instance;
+
+ public Builder() {
+ this(new TextContent());
+ }
+
+ protected Builder(TextContent instance) {
+ this.instance = instance;
+ }
+
+ public TextContent.Builder type(ContentType type) {
+ this.instance.type = type;
+ return this;
+ }
+ public TextContent.Builder text(String text) {
+ this.instance.text = text;
+ return this;
+ }
+
+
+ /**
+ * returns a built TextContent instance.
+ *
+ * The builder is not reusable.
+ */
+ public TextContent 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 TextContent.Builder builder() {
+ return new TextContent.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public TextContent.Builder toBuilder() {
+ return new TextContent.Builder()
+ .type(getType())
+ .text(getText());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/Usage.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/Usage.java
new file mode 100644
index 0000000..d0f2842
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/Usage.java
@@ -0,0 +1,190 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * Usage counters with zero values omitted by the protobuf JSON encoder.
+ */
+@JsonPropertyOrder({
+ Usage.JSON_PROPERTY_DURATION_MS,
+ Usage.JSON_PROPERTY_FINAL_DURATION_MS
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class Usage {
+ public static final String JSON_PROPERTY_DURATION_MS = "duration_ms";
+ @javax.annotation.Nullable
+ private Long durationMs;
+
+ public static final String JSON_PROPERTY_FINAL_DURATION_MS = "final_duration_ms";
+ @javax.annotation.Nullable
+ private Long finalDurationMs;
+
+ public Usage() {
+ }
+
+ public Usage durationMs(@javax.annotation.Nullable Long durationMs) {
+
+ this.durationMs = durationMs;
+ return this;
+ }
+
+ /**
+ * Billed duration in milliseconds: accumulated original generation-model output duration for reference generation; sum of original model output durations across all separated tracks; CLA VOD output audio duration for dubbing.
+ * @return durationMs
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_DURATION_MS, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Long getDurationMs() {
+ return durationMs;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_DURATION_MS, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setDurationMs(@javax.annotation.Nullable Long durationMs) {
+ this.durationMs = durationMs;
+ }
+
+ public Usage finalDurationMs(@javax.annotation.Nullable Long finalDurationMs) {
+
+ this.finalDurationMs = finalDurationMs;
+ return this;
+ }
+
+ /**
+ * Delivered duration in milliseconds: final audio duration for reference generation/dubbing; sum of final durations across all separated tracks (not input duration or longest track).
+ * @return finalDurationMs
+ */
+ @javax.annotation.Nullable
+ @JsonProperty(value = JSON_PROPERTY_FINAL_DURATION_MS, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Long getFinalDurationMs() {
+ return finalDurationMs;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_FINAL_DURATION_MS, required = false)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setFinalDurationMs(@javax.annotation.Nullable Long finalDurationMs) {
+ this.finalDurationMs = finalDurationMs;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ Usage usage = (Usage) o;
+ return Objects.equals(this.durationMs, usage.durationMs) &&
+ Objects.equals(this.finalDurationMs, usage.finalDurationMs);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(durationMs, finalDurationMs);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class Usage {\n");
+ sb.append(" durationMs: ").append(toIndentedString(durationMs)).append("\n");
+ sb.append(" finalDurationMs: ").append(toIndentedString(finalDurationMs)).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 Usage instance;
+
+ public Builder() {
+ this(new Usage());
+ }
+
+ protected Builder(Usage instance) {
+ this.instance = instance;
+ }
+
+ public Usage.Builder durationMs(Long durationMs) {
+ this.instance.durationMs = durationMs;
+ return this;
+ }
+ public Usage.Builder finalDurationMs(Long finalDurationMs) {
+ this.instance.finalDurationMs = finalDurationMs;
+ return this;
+ }
+
+
+ /**
+ * returns a built Usage instance.
+ *
+ * The builder is not reusable.
+ */
+ public Usage 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 Usage.Builder builder() {
+ return new Usage.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public Usage.Builder toBuilder() {
+ return new Usage.Builder()
+ .durationMs(getDurationMs())
+ .finalDurationMs(getFinalDurationMs());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/VideoContent.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/VideoContent.java
new file mode 100644
index 0000000..54b8585
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/VideoContent.java
@@ -0,0 +1,227 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * VideoContent
+ */
+@JsonPropertyOrder({
+ VideoContent.JSON_PROPERTY_TYPE,
+ VideoContent.JSON_PROPERTY_VIDEO_URL,
+ VideoContent.JSON_PROPERTY_ROLE
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class VideoContent implements Content {
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @javax.annotation.Nonnull
+ private ContentType type = ContentType.VIDEO_URL;
+
+ public static final String JSON_PROPERTY_VIDEO_URL = "video_url";
+ @javax.annotation.Nonnull
+ private VideoURL videoUrl;
+
+ public static final String JSON_PROPERTY_ROLE = "role";
+ @javax.annotation.Nonnull
+ private VideoRole role;
+
+ public VideoContent() {
+ }
+
+ public VideoContent type(@javax.annotation.Nonnull ContentType type) {
+
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get type
+ * @return type
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public ContentType getType() {
+ return type;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setType(@javax.annotation.Nonnull ContentType type) {
+ this.type = type;
+ }
+
+ public VideoContent videoUrl(@javax.annotation.Nonnull VideoURL videoUrl) {
+
+ this.videoUrl = videoUrl;
+ return this;
+ }
+
+ /**
+ * Get videoUrl
+ * @return videoUrl
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_VIDEO_URL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public VideoURL getVideoUrl() {
+ return videoUrl;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_VIDEO_URL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setVideoUrl(@javax.annotation.Nonnull VideoURL videoUrl) {
+ this.videoUrl = videoUrl;
+ }
+
+ public VideoContent role(@javax.annotation.Nonnull VideoRole role) {
+
+ this.role = role;
+ return this;
+ }
+
+ /**
+ * Required. reference_video selects reference generation; dubbing_video selects video dubbing.
+ * @return role
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_ROLE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public VideoRole getRole() {
+ return role;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_ROLE, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setRole(@javax.annotation.Nonnull VideoRole role) {
+ this.role = role;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ VideoContent videoContent = (VideoContent) o;
+ return Objects.equals(this.type, videoContent.type) &&
+ Objects.equals(this.videoUrl, videoContent.videoUrl) &&
+ Objects.equals(this.role, videoContent.role);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, videoUrl, role);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class VideoContent {\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" videoUrl: ").append(toIndentedString(videoUrl)).append("\n");
+ sb.append(" role: ").append(toIndentedString(role)).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 VideoContent instance;
+
+ public Builder() {
+ this(new VideoContent());
+ }
+
+ protected Builder(VideoContent instance) {
+ this.instance = instance;
+ }
+
+ public VideoContent.Builder type(ContentType type) {
+ this.instance.type = type;
+ return this;
+ }
+ public VideoContent.Builder videoUrl(VideoURL videoUrl) {
+ this.instance.videoUrl = videoUrl;
+ return this;
+ }
+ public VideoContent.Builder role(VideoRole role) {
+ this.instance.role = role;
+ return this;
+ }
+
+
+ /**
+ * returns a built VideoContent instance.
+ *
+ * The builder is not reusable.
+ */
+ public VideoContent 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 VideoContent.Builder builder() {
+ return new VideoContent.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public VideoContent.Builder toBuilder() {
+ return new VideoContent.Builder()
+ .type(getType())
+ .videoUrl(getVideoUrl())
+ .role(getRole());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/audio_generation/VideoRole.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/VideoRole.java
new file mode 100644
index 0000000..be27e6c
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/VideoRole.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Gets or Sets VideoRole
+ */
+public enum VideoRole {
+
+ REFERENCE_VIDEO("reference_video"),
+
+ DUBBING_VIDEO("dubbing_video");
+
+ private String value;
+
+ VideoRole(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static VideoRole fromValue(String value) {
+ for (VideoRole b : VideoRole.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/audio_generation/VideoURL.java b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/VideoURL.java
new file mode 100644
index 0000000..81d5f9d
--- /dev/null
+++ b/src/main/java/com/volcengine/ark/runtime/models/audio_generation/VideoURL.java
@@ -0,0 +1,153 @@
+// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates.
+// SPDX-License-Identifier: Apache-2.0
+
+/*
+ * Ark Audio Generation 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.audio_generation;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.Objects;
+
+/**
+ * VideoURL
+ */
+@JsonPropertyOrder({
+ VideoURL.JSON_PROPERTY_URL
+})
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.21.0")
+public class VideoURL {
+ public static final String JSON_PROPERTY_URL = "url";
+ @javax.annotation.Nonnull
+ private String url;
+
+ public VideoURL() {
+ }
+
+ public VideoURL url(@javax.annotation.Nonnull String url) {
+
+ this.url = url;
+ return this;
+ }
+
+ /**
+ * Public HTTP(S) URL or tos://<bucket>/<key>. Base64 and speaker references are not supported. Media properties and size are validated by the server.
+ * @return url
+ */
+ @javax.annotation.Nonnull
+ @JsonProperty(value = JSON_PROPERTY_URL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public String getUrl() {
+ return url;
+ }
+
+
+ @JsonProperty(value = JSON_PROPERTY_URL, required = true)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setUrl(@javax.annotation.Nonnull String url) {
+ this.url = url;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ VideoURL videoURL = (VideoURL) o;
+ return Objects.equals(this.url, videoURL.url);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(url);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class VideoURL {\n");
+ sb.append(" url: ").append(toIndentedString(url)).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 VideoURL instance;
+
+ public Builder() {
+ this(new VideoURL());
+ }
+
+ protected Builder(VideoURL instance) {
+ this.instance = instance;
+ }
+
+ public VideoURL.Builder url(String url) {
+ this.instance.url = url;
+ return this;
+ }
+
+
+ /**
+ * returns a built VideoURL instance.
+ *
+ * The builder is not reusable.
+ */
+ public VideoURL 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 VideoURL.Builder builder() {
+ return new VideoURL.Builder();
+ }
+
+ /**
+ * Create a builder with a shallow copy of this instance.
+ */
+ public VideoURL.Builder toBuilder() {
+ return new VideoURL.Builder()
+ .url(getUrl());
+ }
+
+
+}
diff --git a/src/main/java/com/volcengine/ark/runtime/models/environment/AckRequest.java b/src/main/java/com/volcengine/ark/runtime/models/environment/AckRequest.java
index 925c04e..787c5d1 100644
--- a/src/main/java/com/volcengine/ark/runtime/models/environment/AckRequest.java
+++ b/src/main/java/com/volcengine/ark/runtime/models/environment/AckRequest.java
@@ -103,7 +103,7 @@ public AckRequest arkWorkerID(@javax.annotation.Nullable String arkWorkerID) {
}
/**
- * Worker 实例 ID,用于控制面记录 work 归属和排障。
+ * Worker 实例 ID。Poll/Ack 用于记录 work owner;Heartbeat 携带非空值时必须与 Ack 保存的 owner 精确一致,否则返回 412。匹配 owner 的 Heartbeat 可将 `stopped + lease_expired` 直接恢复为 `active`。
* @return arkWorkerID
*/
@javax.annotation.Nullable
diff --git a/src/main/java/com/volcengine/ark/runtime/models/environment/EnvironmentWorkPoll200Response.java b/src/main/java/com/volcengine/ark/runtime/models/environment/EnvironmentWorkPoll200Response.java
index d05c5ea..ed4cffa 100644
--- a/src/main/java/com/volcengine/ark/runtime/models/environment/EnvironmentWorkPoll200Response.java
+++ b/src/main/java/com/volcengine/ark/runtime/models/environment/EnvironmentWorkPoll200Response.java
@@ -455,7 +455,7 @@ public EnvironmentWorkPoll200Response stopReason(@javax.annotation.Nullable Work
}
/**
- * 最近一次停止原因。首次停止前省略;state 为 stopping / stopped 时返回本次停止原因。原 owner 通过 Heartbeat 将 `stopped + lease_expired` 恢复为 active 时清除此字段。
+ * 最近一次停止原因。首次停止前省略;state 为 stopping / stopped 时返回本次停止原因。 原 owner 通过 Heartbeat 将 `stopped + lease_expired` 恢复为 active 时清除此字段。
* @return stopReason
*/
@javax.annotation.Nullable
diff --git a/src/main/java/com/volcengine/ark/runtime/models/environment/HeartbeatRequest.java b/src/main/java/com/volcengine/ark/runtime/models/environment/HeartbeatRequest.java
index b72c460..d1ac7b2 100644
--- a/src/main/java/com/volcengine/ark/runtime/models/environment/HeartbeatRequest.java
+++ b/src/main/java/com/volcengine/ark/runtime/models/environment/HeartbeatRequest.java
@@ -157,21 +157,24 @@ public void setExpectedLastHeartbeat(@javax.annotation.Nullable String expectedL
}
public HeartbeatRequest arkWorkerID(@javax.annotation.Nullable String arkWorkerID) {
+
this.arkWorkerID = arkWorkerID;
return this;
}
/**
- * Worker identity used by Poll, Ack, and Heartbeat for ownership checks.
+ * Worker 实例 ID。Poll/Ack 用于记录 work owner;Heartbeat 携带非空值时必须与 Ack 保存的 owner 精确一致,否则返回 412。匹配 owner 的 Heartbeat 可将 `stopped + lease_expired` 直接恢复为 `active`。
* @return arkWorkerID
*/
@javax.annotation.Nullable
@JsonProperty(value = JSON_PROPERTY_ARK_WORKER_I_D, required = false)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
public String getArkWorkerID() {
return arkWorkerID;
}
+
@JsonProperty(value = JSON_PROPERTY_ARK_WORKER_I_D, required = false)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public void setArkWorkerID(@javax.annotation.Nullable String arkWorkerID) {
diff --git a/src/main/java/com/volcengine/ark/runtime/models/environment/PollRequest.java b/src/main/java/com/volcengine/ark/runtime/models/environment/PollRequest.java
index 9a575d9..c5d9584 100644
--- a/src/main/java/com/volcengine/ark/runtime/models/environment/PollRequest.java
+++ b/src/main/java/com/volcengine/ark/runtime/models/environment/PollRequest.java
@@ -133,7 +133,7 @@ public PollRequest arkWorkerID(@javax.annotation.Nullable String arkWorkerID) {
}
/**
- * Worker 实例 ID,用于控制面记录 work 归属和排障。
+ * Worker 实例 ID。Poll/Ack 用于记录 work owner;Heartbeat 携带非空值时必须与 Ack 保存的 owner 精确一致,否则返回 412。匹配 owner 的 Heartbeat 可将 `stopped + lease_expired` 直接恢复为 `active`。
* @return arkWorkerID
*/
@javax.annotation.Nullable
diff --git a/src/main/java/com/volcengine/ark/runtime/models/environment/StopWorkBody.java b/src/main/java/com/volcengine/ark/runtime/models/environment/StopWorkBody.java
index ab614f7..233e9a5 100644
--- a/src/main/java/com/volcengine/ark/runtime/models/environment/StopWorkBody.java
+++ b/src/main/java/com/volcengine/ark/runtime/models/environment/StopWorkBody.java
@@ -73,7 +73,7 @@ public StopWorkBody reason(@javax.annotation.Nullable WorkStopReason reason) {
}
/**
- * 强制停止原因;仅允许与 `force=true` 一起提交,省略时按 `others` 记录。 Worker 正常完成时传 `completed`,异常退出时传 `worker_abnormal`;用户或管理员操作分别传 `user_cancelled` 或 `admin_stopped`,无法归类时传 `others`。`lease_expired` 仅由平台在租约过期时写入,不应通过 StopWork 上报。该字段仅用于停止诊断;强停不会自动重新排队。
+ * 强制停止原因;仅允许与 `force=true` 一起提交,省略时按 `others` 记录。 Worker 正常完成时传 `completed`,异常退出时传 `worker_abnormal`;用户或管理员操作分别传 `user_cancelled` 或 `admin_stopped`,无法归类时传 `others`。`lease_expired` 仅由平台在租约 过期时写入,不应通过 StopWork 上报。该字段仅用于停止诊断;强停不会自动重新排队。
* @return reason
*/
@javax.annotation.Nullable
diff --git a/src/main/java/com/volcengine/ark/runtime/models/environment/WorkItem.java b/src/main/java/com/volcengine/ark/runtime/models/environment/WorkItem.java
index 8ccb0d6..13aeda8 100644
--- a/src/main/java/com/volcengine/ark/runtime/models/environment/WorkItem.java
+++ b/src/main/java/com/volcengine/ark/runtime/models/environment/WorkItem.java
@@ -453,7 +453,7 @@ public WorkItem stopReason(@javax.annotation.Nullable WorkStopReason stopReason)
}
/**
- * 最近一次停止原因。首次停止前省略;state 为 stopping / stopped 时返回本次停止原因。原 owner 通过 Heartbeat 将 `stopped + lease_expired` 恢复为 active 时清除此字段。
+ * 最近一次停止原因。首次停止前省略;state 为 stopping / stopped 时返回本次停止原因。 原 owner 通过 Heartbeat 将 `stopped + lease_expired` 恢复为 active 时清除此字段。
* @return stopReason
*/
@javax.annotation.Nullable
diff --git a/src/main/java/com/volcengine/ark/runtime/models/environment/WorkStopReason.java b/src/main/java/com/volcengine/ark/runtime/models/environment/WorkStopReason.java
index e8e3717..686f75a 100644
--- a/src/main/java/com/volcengine/ark/runtime/models/environment/WorkStopReason.java
+++ b/src/main/java/com/volcengine/ark/runtime/models/environment/WorkStopReason.java
@@ -16,6 +16,7 @@
package com.volcengine.ark.runtime.models.environment;
+
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
diff --git a/src/main/java/com/volcengine/ark/runtime/models/session/AgentWithUpgrades.java b/src/main/java/com/volcengine/ark/runtime/models/session/AgentWithUpgrades.java
index 91eba10..0a529cb 100644
--- a/src/main/java/com/volcengine/ark/runtime/models/session/AgentWithUpgrades.java
+++ b/src/main/java/com/volcengine/ark/runtime/models/session/AgentWithUpgrades.java
@@ -265,7 +265,7 @@ public AgentWithUpgrades addToolsItem(Map toolsItem) {
*/
@javax.annotation.Nullable
@JsonProperty(value = JSON_PROPERTY_TOOLS, required = false)
- @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ @JsonInclude(value = JsonInclude.Include.NON_NULL)
public List