From 91e2aa6c96f7e1e2142098c9cb57e6dd4ce8b6f9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 6 Mar 2026 07:15:23 +0000 Subject: [PATCH] Update SDK to version v3.30.0 - Generated from OpenAPI spec version v3.30.0 - Auto-generated by GitHub Actions --- .sdk-version | 2 +- README.md | 5 +- build.gradle | 4 +- build.sbt | 2 +- docs/AnalysisCreateRequest.md | 1 + docs/AnalysisDetailResponse.md | 1 + docs/AutoRunAgents.md | 13 + pom.xml | 2 +- .../java/ai/reveng/invoker/ApiClient.java | 2 +- .../java/ai/reveng/invoker/Configuration.java | 2 +- src/main/java/ai/reveng/invoker/JSON.java | 1 + .../reveng/model/AnalysisCreateRequest.java | 37 ++- .../reveng/model/AnalysisDetailResponse.java | 37 ++- .../java/ai/reveng/model/AutoRunAgents.java | 284 ++++++++++++++++++ .../model/AnalysisCreateRequestTest.java | 9 + .../model/AnalysisDetailResponseTest.java | 9 + .../ai/reveng/model/AutoRunAgentsTest.java | 47 +++ 17 files changed, 442 insertions(+), 16 deletions(-) create mode 100644 docs/AutoRunAgents.md create mode 100644 src/main/java/ai/reveng/model/AutoRunAgents.java create mode 100644 src/test/java/ai/reveng/model/AutoRunAgentsTest.java diff --git a/.sdk-version b/.sdk-version index 0fe10df..b1d98a6 100644 --- a/.sdk-version +++ b/.sdk-version @@ -1 +1 @@ -v3.29.1 +v3.30.0 diff --git a/README.md b/README.md index e24a4aa..7dd3d4a 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Add this dependency to your project's POM: ai.reveng sdk - 3.29.1 + 3.30.0 compile ``` @@ -31,7 +31,7 @@ repositories { } dependencies { - implementation "ai.reveng:sdk:3.29.1" + implementation "ai.reveng:sdk:3.30.0" } ``` @@ -219,6 +219,7 @@ Class | Method | HTTP request | Description - [AppApiRestV2FunctionsTypesFunction](docs/AppApiRestV2FunctionsTypesFunction.md) - [AppServicesDynamicExecutionSchemasDynamicExecutionStatus](docs/AppServicesDynamicExecutionSchemasDynamicExecutionStatus.md) - [Argument](docs/Argument.md) + - [AutoRunAgents](docs/AutoRunAgents.md) - [AutoUnstripRequest](docs/AutoUnstripRequest.md) - [AutoUnstripResponse](docs/AutoUnstripResponse.md) - [BaseResponse](docs/BaseResponse.md) diff --git a/build.gradle b/build.gradle index 69ad0d4..630dc1a 100644 --- a/build.gradle +++ b/build.gradle @@ -19,7 +19,7 @@ apply plugin: 'java' apply plugin: 'com.diffplug.spotless' group = 'ai.reveng' -version = '3.29.1' +version = '3.30.0' @@ -171,7 +171,7 @@ mavenPublishing { publishToMavenCentral(true) signAllPublications() - coordinates("ai.reveng", "sdk", "3.29.1") + coordinates("ai.reveng", "sdk", "3.30.0") pom { name = "sdk" diff --git a/build.sbt b/build.sbt index 21517c8..7a58829 100644 --- a/build.sbt +++ b/build.sbt @@ -2,7 +2,7 @@ lazy val root = (project in file(".")). settings( organization := "ai.reveng", name := "sdk", - version := "3.29.1", + version := "3.30.0", scalaVersion := "2.11.12", scalacOptions ++= Seq("-feature"), compile / javacOptions ++= Seq("-Xlint:deprecation"), diff --git a/docs/AnalysisCreateRequest.md b/docs/AnalysisCreateRequest.md index 89cf8da..83a11ee 100644 --- a/docs/AnalysisCreateRequest.md +++ b/docs/AnalysisCreateRequest.md @@ -15,6 +15,7 @@ |**debugHash** | **String** | | [optional] | |**analysisConfig** | [**AnalysisConfig**](AnalysisConfig.md) | The analysis config enables the configuration of optional analysis stages | [optional] | |**binaryConfig** | [**BinaryConfig**](BinaryConfig.md) | The binary config can override automatically determined values such as ISA, Platform, File Format, etc | [optional] | +|**autoRunAgents** | [**AutoRunAgents**](AutoRunAgents.md) | | [optional] | diff --git a/docs/AnalysisDetailResponse.md b/docs/AnalysisDetailResponse.md index e8ccb11..4251ce9 100644 --- a/docs/AnalysisDetailResponse.md +++ b/docs/AnalysisDetailResponse.md @@ -22,6 +22,7 @@ |**modelName** | **String** | | | |**sbom** | **Map<String, Object>** | | [optional] | |**sha256Hash** | **String** | | | +|**autoRunAgents** | [**AutoRunAgents**](AutoRunAgents.md) | | | diff --git a/docs/AutoRunAgents.md b/docs/AutoRunAgents.md new file mode 100644 index 0000000..671f4e2 --- /dev/null +++ b/docs/AutoRunAgents.md @@ -0,0 +1,13 @@ + + +# AutoRunAgents + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**triage** | **Boolean** | | [optional] | + + + diff --git a/pom.xml b/pom.xml index 08c50b0..4959cc1 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ sdk jar sdk - 3.29.1 + 3.30.0 https://github.com/RevEngAI/sdk-java Java SDK for the RevEng.AI API diff --git a/src/main/java/ai/reveng/invoker/ApiClient.java b/src/main/java/ai/reveng/invoker/ApiClient.java index 1e9e620..d5aadec 100644 --- a/src/main/java/ai/reveng/invoker/ApiClient.java +++ b/src/main/java/ai/reveng/invoker/ApiClient.java @@ -146,7 +146,7 @@ protected void init() { json = new JSON(); // Set default User-Agent. - setUserAgent("OpenAPI-Generator/3.29.1/java"); + setUserAgent("OpenAPI-Generator/3.30.0/java"); authentications = new HashMap(); } diff --git a/src/main/java/ai/reveng/invoker/Configuration.java b/src/main/java/ai/reveng/invoker/Configuration.java index b86cfa1..3d548ba 100644 --- a/src/main/java/ai/reveng/invoker/Configuration.java +++ b/src/main/java/ai/reveng/invoker/Configuration.java @@ -18,7 +18,7 @@ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class Configuration { - public static final String VERSION = "3.29.1"; + public static final String VERSION = "3.30.0"; private static final AtomicReference defaultApiClient = new AtomicReference<>(); private static volatile Supplier apiClientFactory = ApiClient::new; diff --git a/src/main/java/ai/reveng/invoker/JSON.java b/src/main/java/ai/reveng/invoker/JSON.java index b7f3573..12f7deb 100644 --- a/src/main/java/ai/reveng/invoker/JSON.java +++ b/src/main/java/ai/reveng/invoker/JSON.java @@ -124,6 +124,7 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new ai.reveng.model.AppApiRestV2FunctionsTypesFunction.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new ai.reveng.model.AppServicesDynamicExecutionSchemasDynamicExecutionStatus.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new ai.reveng.model.Argument.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new ai.reveng.model.AutoRunAgents.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new ai.reveng.model.AutoUnstripRequest.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new ai.reveng.model.AutoUnstripResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new ai.reveng.model.BaseResponse.CustomTypeAdapterFactory()); diff --git a/src/main/java/ai/reveng/model/AnalysisCreateRequest.java b/src/main/java/ai/reveng/model/AnalysisCreateRequest.java index 378d186..e1469d4 100644 --- a/src/main/java/ai/reveng/model/AnalysisCreateRequest.java +++ b/src/main/java/ai/reveng/model/AnalysisCreateRequest.java @@ -16,6 +16,7 @@ import java.util.Locale; import ai.reveng.model.AnalysisConfig; import ai.reveng.model.AnalysisScope; +import ai.reveng.model.AutoRunAgents; import ai.reveng.model.BinaryConfig; import ai.reveng.model.Symbols; import ai.reveng.model.Tag; @@ -99,6 +100,11 @@ public class AnalysisCreateRequest { @javax.annotation.Nullable private BinaryConfig binaryConfig; + public static final String SERIALIZED_NAME_AUTO_RUN_AGENTS = "auto_run_agents"; + @SerializedName(SERIALIZED_NAME_AUTO_RUN_AGENTS) + @javax.annotation.Nullable + private AutoRunAgents autoRunAgents; + public AnalysisCreateRequest() { } @@ -261,6 +267,25 @@ public void setBinaryConfig(@javax.annotation.Nullable BinaryConfig binaryConfig this.binaryConfig = binaryConfig; } + + public AnalysisCreateRequest autoRunAgents(@javax.annotation.Nullable AutoRunAgents autoRunAgents) { + this.autoRunAgents = autoRunAgents; + return this; + } + + /** + * Get autoRunAgents + * @return autoRunAgents + */ + @javax.annotation.Nullable + public AutoRunAgents getAutoRunAgents() { + return autoRunAgents; + } + + public void setAutoRunAgents(@javax.annotation.Nullable AutoRunAgents autoRunAgents) { + this.autoRunAgents = autoRunAgents; + } + /** * A container for additional, undeclared properties. * This is a holder for any undeclared properties as specified with @@ -323,7 +348,8 @@ public boolean equals(Object o) { Objects.equals(this.symbols, analysisCreateRequest.symbols) && Objects.equals(this.debugHash, analysisCreateRequest.debugHash) && Objects.equals(this.analysisConfig, analysisCreateRequest.analysisConfig) && - Objects.equals(this.binaryConfig, analysisCreateRequest.binaryConfig)&& + Objects.equals(this.binaryConfig, analysisCreateRequest.binaryConfig) && + Objects.equals(this.autoRunAgents, analysisCreateRequest.autoRunAgents)&& Objects.equals(this.additionalProperties, analysisCreateRequest.additionalProperties); } @@ -333,7 +359,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(filename, sha256Hash, tags, analysisScope, symbols, debugHash, analysisConfig, binaryConfig, additionalProperties); + return Objects.hash(filename, sha256Hash, tags, analysisScope, symbols, debugHash, analysisConfig, binaryConfig, autoRunAgents, additionalProperties); } private static int hashCodeNullable(JsonNullable a) { @@ -355,6 +381,7 @@ public String toString() { sb.append(" debugHash: ").append(toIndentedString(debugHash)).append("\n"); sb.append(" analysisConfig: ").append(toIndentedString(analysisConfig)).append("\n"); sb.append(" binaryConfig: ").append(toIndentedString(binaryConfig)).append("\n"); + sb.append(" autoRunAgents: ").append(toIndentedString(autoRunAgents)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); return sb.toString(); @@ -377,7 +404,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(Arrays.asList("filename", "sha_256_hash", "tags", "analysis_scope", "symbols", "debug_hash", "analysis_config", "binary_config")); + openapiFields = new HashSet(Arrays.asList("filename", "sha_256_hash", "tags", "analysis_scope", "symbols", "debug_hash", "analysis_config", "binary_config", "auto_run_agents")); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(Arrays.asList("filename", "sha_256_hash")); @@ -442,6 +469,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("binary_config") != null && !jsonObj.get("binary_config").isJsonNull()) { BinaryConfig.validateJsonElement(jsonObj.get("binary_config")); } + // validate the optional field `auto_run_agents` + if (jsonObj.get("auto_run_agents") != null && !jsonObj.get("auto_run_agents").isJsonNull()) { + AutoRunAgents.validateJsonElement(jsonObj.get("auto_run_agents")); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/ai/reveng/model/AnalysisDetailResponse.java b/src/main/java/ai/reveng/model/AnalysisDetailResponse.java index 60b453a..e6ad896 100644 --- a/src/main/java/ai/reveng/model/AnalysisDetailResponse.java +++ b/src/main/java/ai/reveng/model/AnalysisDetailResponse.java @@ -15,6 +15,7 @@ import java.util.Objects; import java.util.Locale; import ai.reveng.model.AnalysisAccessInfo; +import ai.reveng.model.AutoRunAgents; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -130,6 +131,11 @@ public class AnalysisDetailResponse { @javax.annotation.Nonnull private String sha256Hash; + public static final String SERIALIZED_NAME_AUTO_RUN_AGENTS = "auto_run_agents"; + @SerializedName(SERIALIZED_NAME_AUTO_RUN_AGENTS) + @javax.annotation.Nonnull + private AutoRunAgents autoRunAgents; + public AnalysisDetailResponse() { } @@ -425,6 +431,25 @@ public void setSha256Hash(@javax.annotation.Nonnull String sha256Hash) { this.sha256Hash = sha256Hash; } + + public AnalysisDetailResponse autoRunAgents(@javax.annotation.Nonnull AutoRunAgents autoRunAgents) { + this.autoRunAgents = autoRunAgents; + return this; + } + + /** + * Get autoRunAgents + * @return autoRunAgents + */ + @javax.annotation.Nonnull + public AutoRunAgents getAutoRunAgents() { + return autoRunAgents; + } + + public void setAutoRunAgents(@javax.annotation.Nonnull AutoRunAgents autoRunAgents) { + this.autoRunAgents = autoRunAgents; + } + /** * A container for additional, undeclared properties. * This is a holder for any undeclared properties as specified with @@ -494,7 +519,8 @@ public boolean equals(Object o) { Objects.equals(this.debug, analysisDetailResponse.debug) && Objects.equals(this.modelName, analysisDetailResponse.modelName) && Objects.equals(this.sbom, analysisDetailResponse.sbom) && - Objects.equals(this.sha256Hash, analysisDetailResponse.sha256Hash)&& + Objects.equals(this.sha256Hash, analysisDetailResponse.sha256Hash) && + Objects.equals(this.autoRunAgents, analysisDetailResponse.autoRunAgents)&& Objects.equals(this.additionalProperties, analysisDetailResponse.additionalProperties); } @@ -504,7 +530,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(access, analysisId, analysisScope, architecture, binaryDynamic, binaryFormat, binaryName, binarySize, binaryType, creation, dashboardUrl, debug, modelName, sbom, sha256Hash, additionalProperties); + return Objects.hash(access, analysisId, analysisScope, architecture, binaryDynamic, binaryFormat, binaryName, binarySize, binaryType, creation, dashboardUrl, debug, modelName, sbom, sha256Hash, autoRunAgents, additionalProperties); } private static int hashCodeNullable(JsonNullable a) { @@ -533,6 +559,7 @@ public String toString() { sb.append(" modelName: ").append(toIndentedString(modelName)).append("\n"); sb.append(" sbom: ").append(toIndentedString(sbom)).append("\n"); sb.append(" sha256Hash: ").append(toIndentedString(sha256Hash)).append("\n"); + sb.append(" autoRunAgents: ").append(toIndentedString(autoRunAgents)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); return sb.toString(); @@ -555,10 +582,10 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(Arrays.asList("access", "analysis_id", "analysis_scope", "architecture", "binary_dynamic", "binary_format", "binary_name", "binary_size", "binary_type", "creation", "dashboard_url", "debug", "model_name", "sbom", "sha_256_hash")); + openapiFields = new HashSet(Arrays.asList("access", "analysis_id", "analysis_scope", "architecture", "binary_dynamic", "binary_format", "binary_name", "binary_size", "binary_type", "creation", "dashboard_url", "debug", "model_name", "sbom", "sha_256_hash", "auto_run_agents")); // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(Arrays.asList("access", "analysis_id", "analysis_scope", "architecture", "binary_dynamic", "binary_format", "binary_name", "binary_size", "binary_type", "creation", "dashboard_url", "debug", "model_name", "sha_256_hash")); + openapiRequiredFields = new HashSet(Arrays.asList("access", "analysis_id", "analysis_scope", "architecture", "binary_dynamic", "binary_format", "binary_name", "binary_size", "binary_type", "creation", "dashboard_url", "debug", "model_name", "sha_256_hash", "auto_run_agents")); } /** @@ -610,6 +637,8 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("sha_256_hash").isJsonPrimitive()) { throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `sha_256_hash` to be a primitive type in the JSON string but got `%s`", jsonObj.get("sha_256_hash").toString())); } + // validate the required field `auto_run_agents` + AutoRunAgents.validateJsonElement(jsonObj.get("auto_run_agents")); } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/ai/reveng/model/AutoRunAgents.java b/src/main/java/ai/reveng/model/AutoRunAgents.java new file mode 100644 index 0000000..1fa797b --- /dev/null +++ b/src/main/java/ai/reveng/model/AutoRunAgents.java @@ -0,0 +1,284 @@ +/* + * RevEng.AI API + * RevEng.AI is Similarity Search Engine for executable binaries + * + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package ai.reveng.model; + +import java.util.Objects; +import java.util.Locale; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import ai.reveng.invoker.JSON; + +/** + * AutoRunAgents + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class AutoRunAgents { + public static final String SERIALIZED_NAME_TRIAGE = "triage"; + @SerializedName(SERIALIZED_NAME_TRIAGE) + @javax.annotation.Nullable + private Boolean triage = false; + + public AutoRunAgents() { + } + + public AutoRunAgents triage(@javax.annotation.Nullable Boolean triage) { + this.triage = triage; + return this; + } + + /** + * Get triage + * @return triage + */ + @javax.annotation.Nullable + public Boolean getTriage() { + return triage; + } + + public void setTriage(@javax.annotation.Nullable Boolean triage) { + this.triage = triage; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the AutoRunAgents instance itself + */ + public AutoRunAgents putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AutoRunAgents autoRunAgents = (AutoRunAgents) o; + return Objects.equals(this.triage, autoRunAgents.triage)&& + Objects.equals(this.additionalProperties, autoRunAgents.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(triage, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AutoRunAgents {\n"); + sb.append(" triage: ").append(toIndentedString(triage)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).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) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(Arrays.asList("triage")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AutoRunAgents + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AutoRunAgents.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in AutoRunAgents is not found in the empty JSON string", AutoRunAgents.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AutoRunAgents.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AutoRunAgents' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AutoRunAgents.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AutoRunAgents value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public AutoRunAgents read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + AutoRunAgents instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format(Locale.ROOT, "The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AutoRunAgents given an JSON string + * + * @param jsonString JSON string + * @return An instance of AutoRunAgents + * @throws IOException if the JSON string is invalid with respect to AutoRunAgents + */ + public static AutoRunAgents fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AutoRunAgents.class); + } + + /** + * Convert an instance of AutoRunAgents to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/test/java/ai/reveng/model/AnalysisCreateRequestTest.java b/src/test/java/ai/reveng/model/AnalysisCreateRequestTest.java index a10367a..b91c2fe 100644 --- a/src/test/java/ai/reveng/model/AnalysisCreateRequestTest.java +++ b/src/test/java/ai/reveng/model/AnalysisCreateRequestTest.java @@ -14,6 +14,7 @@ import ai.reveng.model.AnalysisConfig; import ai.reveng.model.AnalysisScope; +import ai.reveng.model.AutoRunAgents; import ai.reveng.model.BinaryConfig; import ai.reveng.model.Symbols; import ai.reveng.model.Tag; @@ -108,4 +109,12 @@ public void binaryConfigTest() { // TODO: test binaryConfig } + /** + * Test the property 'autoRunAgents' + */ + @Test + public void autoRunAgentsTest() { + // TODO: test autoRunAgents + } + } diff --git a/src/test/java/ai/reveng/model/AnalysisDetailResponseTest.java b/src/test/java/ai/reveng/model/AnalysisDetailResponseTest.java index 0893f8f..fe2cb21 100644 --- a/src/test/java/ai/reveng/model/AnalysisDetailResponseTest.java +++ b/src/test/java/ai/reveng/model/AnalysisDetailResponseTest.java @@ -13,6 +13,7 @@ package ai.reveng.model; import ai.reveng.model.AnalysisAccessInfo; +import ai.reveng.model.AutoRunAgents; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -160,4 +161,12 @@ public void sha256HashTest() { // TODO: test sha256Hash } + /** + * Test the property 'autoRunAgents' + */ + @Test + public void autoRunAgentsTest() { + // TODO: test autoRunAgents + } + } diff --git a/src/test/java/ai/reveng/model/AutoRunAgentsTest.java b/src/test/java/ai/reveng/model/AutoRunAgentsTest.java new file mode 100644 index 0000000..aad5aa3 --- /dev/null +++ b/src/test/java/ai/reveng/model/AutoRunAgentsTest.java @@ -0,0 +1,47 @@ +/* + * RevEng.AI API + * RevEng.AI is Similarity Search Engine for executable binaries + * + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package ai.reveng.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AutoRunAgents + */ +public class AutoRunAgentsTest { + private final AutoRunAgents model = new AutoRunAgents(); + + /** + * Model tests for AutoRunAgents + */ + @Test + public void testAutoRunAgents() { + // TODO: test AutoRunAgents + } + + /** + * Test the property 'triage' + */ + @Test + public void triageTest() { + // TODO: test triage + } + +}