From db66381edee1c965b067600de7673d356bf8ef74 Mon Sep 17 00:00:00 2001 From: Yvonne Yu CA Date: Tue, 22 Sep 2026 17:58:33 -0700 Subject: [PATCH] feat: include labels for LiveClientSetup PiperOrigin-RevId: 986359438 --- .../cloud/agentplatform/AgentEngines.java | 8 ++ .../cloud/agentplatform/MemoryBanks.java | 8 ++ .../agentplatform/types/ReasoningEngine.java | 40 +++++++ ...gineRevisionGarbageCollectionStrategy.java | 99 +++++++++++++++++ ...nGarbageCollectionStrategyKeepNLatest.java | 105 ++++++++++++++++++ .../cloud/agentplatform/types/State.java | 4 +- 6 files changed, 262 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/google/cloud/agentplatform/types/ReasoningEngineRevisionGarbageCollectionStrategy.java create mode 100644 src/main/java/com/google/cloud/agentplatform/types/ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest.java diff --git a/src/main/java/com/google/cloud/agentplatform/AgentEngines.java b/src/main/java/com/google/cloud/agentplatform/AgentEngines.java index 6ab41be..181414d 100644 --- a/src/main/java/com/google/cloud/agentplatform/AgentEngines.java +++ b/src/main/java/com/google/cloud/agentplatform/AgentEngines.java @@ -627,6 +627,14 @@ ObjectNode reasoningEngineFromVertex(JsonNode fromObject, ObjectNode parentObjec Common.getValueByPath(fromObject, new String[] {"trafficConfig"})); } + if (Common.getValueByPath(fromObject, new String[] {"revisionGarbageCollectionStrategy"}) + != null) { + Common.setValueByPath( + toObject, + new String[] {"revisionGarbageCollectionStrategy"}, + Common.getValueByPath(fromObject, new String[] {"revisionGarbageCollectionStrategy"})); + } + return toObject; } diff --git a/src/main/java/com/google/cloud/agentplatform/MemoryBanks.java b/src/main/java/com/google/cloud/agentplatform/MemoryBanks.java index d86b4b4..dbdbc0d 100644 --- a/src/main/java/com/google/cloud/agentplatform/MemoryBanks.java +++ b/src/main/java/com/google/cloud/agentplatform/MemoryBanks.java @@ -700,6 +700,14 @@ ObjectNode reasoningEngineFromVertex(JsonNode fromObject, ObjectNode parentObjec Common.getValueByPath(fromObject, new String[] {"trafficConfig"})); } + if (Common.getValueByPath(fromObject, new String[] {"revisionGarbageCollectionStrategy"}) + != null) { + Common.setValueByPath( + toObject, + new String[] {"revisionGarbageCollectionStrategy"}, + Common.getValueByPath(fromObject, new String[] {"revisionGarbageCollectionStrategy"})); + } + return toObject; } diff --git a/src/main/java/com/google/cloud/agentplatform/types/ReasoningEngine.java b/src/main/java/com/google/cloud/agentplatform/types/ReasoningEngine.java index c440a1a..a93762d 100644 --- a/src/main/java/com/google/cloud/agentplatform/types/ReasoningEngine.java +++ b/src/main/java/com/google/cloud/agentplatform/types/ReasoningEngine.java @@ -86,6 +86,11 @@ public abstract class ReasoningEngine extends JsonSerializable { @JsonProperty("trafficConfig") public abstract Optional trafficConfig(); + /** Optional. Configures garbage collection of Runtime Revisions. */ + @JsonProperty("revisionGarbageCollectionStrategy") + public abstract Optional + revisionGarbageCollectionStrategy(); + /** Instantiates a builder for ReasoningEngine. */ @ExcludeFromGeneratedCoverageReport public static Builder builder() { @@ -348,6 +353,41 @@ public Builder clearTrafficConfig() { return trafficConfig(Optional.empty()); } + /** + * Setter for revisionGarbageCollectionStrategy. + * + *

revisionGarbageCollectionStrategy: Optional. Configures garbage collection of Runtime + * Revisions. + */ + @JsonProperty("revisionGarbageCollectionStrategy") + public abstract Builder revisionGarbageCollectionStrategy( + ReasoningEngineRevisionGarbageCollectionStrategy revisionGarbageCollectionStrategy); + + /** + * Setter for revisionGarbageCollectionStrategy builder. + * + *

revisionGarbageCollectionStrategy: Optional. Configures garbage collection of Runtime + * Revisions. + */ + @CanIgnoreReturnValue + public Builder revisionGarbageCollectionStrategy( + ReasoningEngineRevisionGarbageCollectionStrategy.Builder + revisionGarbageCollectionStrategyBuilder) { + return revisionGarbageCollectionStrategy(revisionGarbageCollectionStrategyBuilder.build()); + } + + @ExcludeFromGeneratedCoverageReport + abstract Builder revisionGarbageCollectionStrategy( + Optional + revisionGarbageCollectionStrategy); + + /** Clears the value of revisionGarbageCollectionStrategy field. */ + @ExcludeFromGeneratedCoverageReport + @CanIgnoreReturnValue + public Builder clearRevisionGarbageCollectionStrategy() { + return revisionGarbageCollectionStrategy(Optional.empty()); + } + public abstract ReasoningEngine build(); } diff --git a/src/main/java/com/google/cloud/agentplatform/types/ReasoningEngineRevisionGarbageCollectionStrategy.java b/src/main/java/com/google/cloud/agentplatform/types/ReasoningEngineRevisionGarbageCollectionStrategy.java new file mode 100644 index 0000000..4f9a145 --- /dev/null +++ b/src/main/java/com/google/cloud/agentplatform/types/ReasoningEngineRevisionGarbageCollectionStrategy.java @@ -0,0 +1,99 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Auto-generated code. Do not edit. + +package com.google.cloud.agentplatform.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.google.auto.value.AutoValue; +import com.google.errorprone.annotations.CanIgnoreReturnValue; +import com.google.genai.JsonSerializable; +import java.util.Optional; + +/** Configures garbage collection of Runtime Revisions. */ +@AutoValue +@JsonDeserialize(builder = ReasoningEngineRevisionGarbageCollectionStrategy.Builder.class) +public abstract class ReasoningEngineRevisionGarbageCollectionStrategy extends JsonSerializable { + /** Optional. Keeps only the latest N Runtime Revisions active. */ + @JsonProperty("keepNLatest") + public abstract Optional + keepNLatest(); + + /** Instantiates a builder for ReasoningEngineRevisionGarbageCollectionStrategy. */ + @ExcludeFromGeneratedCoverageReport + public static Builder builder() { + return new AutoValue_ReasoningEngineRevisionGarbageCollectionStrategy.Builder(); + } + + /** Creates a builder with the same values as this instance. */ + public abstract Builder toBuilder(); + + /** Builder for ReasoningEngineRevisionGarbageCollectionStrategy. */ + @AutoValue.Builder + public abstract static class Builder { + /** + * For internal usage. Please use `ReasoningEngineRevisionGarbageCollectionStrategy.builder()` + * for instantiation. + */ + @JsonCreator + private static Builder create() { + return new AutoValue_ReasoningEngineRevisionGarbageCollectionStrategy.Builder(); + } + + /** + * Setter for keepNLatest. + * + *

keepNLatest: Optional. Keeps only the latest N Runtime Revisions active. + */ + @JsonProperty("keepNLatest") + public abstract Builder keepNLatest( + ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest keepNLatest); + + /** + * Setter for keepNLatest builder. + * + *

keepNLatest: Optional. Keeps only the latest N Runtime Revisions active. + */ + @CanIgnoreReturnValue + public Builder keepNLatest( + ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest.Builder keepNLatestBuilder) { + return keepNLatest(keepNLatestBuilder.build()); + } + + @ExcludeFromGeneratedCoverageReport + abstract Builder keepNLatest( + Optional keepNLatest); + + /** Clears the value of keepNLatest field. */ + @ExcludeFromGeneratedCoverageReport + @CanIgnoreReturnValue + public Builder clearKeepNLatest() { + return keepNLatest(Optional.empty()); + } + + public abstract ReasoningEngineRevisionGarbageCollectionStrategy build(); + } + + /** Deserializes a JSON string to a ReasoningEngineRevisionGarbageCollectionStrategy object. */ + @ExcludeFromGeneratedCoverageReport + public static ReasoningEngineRevisionGarbageCollectionStrategy fromJson(String jsonString) { + return JsonSerializable.fromJsonString( + jsonString, ReasoningEngineRevisionGarbageCollectionStrategy.class); + } +} diff --git a/src/main/java/com/google/cloud/agentplatform/types/ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest.java b/src/main/java/com/google/cloud/agentplatform/types/ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest.java new file mode 100644 index 0000000..e46397f --- /dev/null +++ b/src/main/java/com/google/cloud/agentplatform/types/ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest.java @@ -0,0 +1,105 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Auto-generated code. Do not edit. + +package com.google.cloud.agentplatform.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.google.auto.value.AutoValue; +import com.google.errorprone.annotations.CanIgnoreReturnValue; +import com.google.genai.JsonSerializable; +import java.util.Optional; + +/** Keeps only the latest N Runtime Revisions active. */ +@AutoValue +@JsonDeserialize( + builder = ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest.Builder.class) +public abstract class ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest + extends JsonSerializable { + /** + * Required. Specifies the maximum number of Runtime Revisions to keep active. If an update to + * Reasoning Engine would result in exceeding this number of active Runtime Revisions, a new + * Runtime Revision will be created, while the oldest Runtime Revision will be automatically + * deleted, providing it's not configured to serve traffic via `traffic_config`. If the oldest + * Runtime Revision is configured to serve traffic, the update will fail validation. No changes + * will be made to the Reasoning Engine, existing Runtime Revisions, and no new Runtime Revision + * will be created. + */ + @JsonProperty("maxRevisions") + public abstract Optional maxRevisions(); + + /** Instantiates a builder for ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest. */ + @ExcludeFromGeneratedCoverageReport + public static Builder builder() { + return new AutoValue_ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest.Builder(); + } + + /** Creates a builder with the same values as this instance. */ + public abstract Builder toBuilder(); + + /** Builder for ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest. */ + @AutoValue.Builder + public abstract static class Builder { + /** + * For internal usage. Please use + * `ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest.builder()` for instantiation. + */ + @JsonCreator + private static Builder create() { + return new AutoValue_ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest.Builder(); + } + + /** + * Setter for maxRevisions. + * + *

maxRevisions: Required. Specifies the maximum number of Runtime Revisions to keep active. + * If an update to Reasoning Engine would result in exceeding this number of active Runtime + * Revisions, a new Runtime Revision will be created, while the oldest Runtime Revision will be + * automatically deleted, providing it's not configured to serve traffic via `traffic_config`. + * If the oldest Runtime Revision is configured to serve traffic, the update will fail + * validation. No changes will be made to the Reasoning Engine, existing Runtime Revisions, and + * no new Runtime Revision will be created. + */ + @JsonProperty("maxRevisions") + public abstract Builder maxRevisions(Integer maxRevisions); + + @ExcludeFromGeneratedCoverageReport + abstract Builder maxRevisions(Optional maxRevisions); + + /** Clears the value of maxRevisions field. */ + @ExcludeFromGeneratedCoverageReport + @CanIgnoreReturnValue + public Builder clearMaxRevisions() { + return maxRevisions(Optional.empty()); + } + + public abstract ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest build(); + } + + /** + * Deserializes a JSON string to a ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest + * object. + */ + @ExcludeFromGeneratedCoverageReport + public static ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest fromJson( + String jsonString) { + return JsonSerializable.fromJsonString( + jsonString, ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest.class); + } +} diff --git a/src/main/java/com/google/cloud/agentplatform/types/State.java b/src/main/java/com/google/cloud/agentplatform/types/State.java index 919f267..3f3b44a 100644 --- a/src/main/java/com/google/cloud/agentplatform/types/State.java +++ b/src/main/java/com/google/cloud/agentplatform/types/State.java @@ -34,8 +34,8 @@ public enum Known { /** Is deployed and ready to be used. */ ACTIVE, - /** Is deprecated, may not be used, only preserved for historical purposes. */ - DEPRECATED + /** Is archived and can no longer receive traffic, only preserved for historical purposes. */ + ARCHIVED } private Known stateEnum;