Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down
8 changes: 8 additions & 0 deletions src/main/java/com/google/cloud/agentplatform/MemoryBanks.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,11 @@ public abstract class ReasoningEngine extends JsonSerializable {
@JsonProperty("trafficConfig")
public abstract Optional<ReasoningEngineTrafficConfig> trafficConfig();

/** Optional. Configures garbage collection of Runtime Revisions. */
@JsonProperty("revisionGarbageCollectionStrategy")
public abstract Optional<ReasoningEngineRevisionGarbageCollectionStrategy>
revisionGarbageCollectionStrategy();

/** Instantiates a builder for ReasoningEngine. */
@ExcludeFromGeneratedCoverageReport
public static Builder builder() {
Expand Down Expand Up @@ -348,6 +353,41 @@ public Builder clearTrafficConfig() {
return trafficConfig(Optional.empty());
}

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

/**
* Setter for revisionGarbageCollectionStrategy builder.
*
* <p>revisionGarbageCollectionStrategy: Optional. Configures garbage collection of Runtime
* Revisions.
*/
@CanIgnoreReturnValue
public Builder revisionGarbageCollectionStrategy(
ReasoningEngineRevisionGarbageCollectionStrategy.Builder
revisionGarbageCollectionStrategyBuilder) {
return revisionGarbageCollectionStrategy(revisionGarbageCollectionStrategyBuilder.build());
}

@ExcludeFromGeneratedCoverageReport
abstract Builder revisionGarbageCollectionStrategy(
Optional<ReasoningEngineRevisionGarbageCollectionStrategy>
revisionGarbageCollectionStrategy);

/** Clears the value of revisionGarbageCollectionStrategy field. */
@ExcludeFromGeneratedCoverageReport
@CanIgnoreReturnValue
public Builder clearRevisionGarbageCollectionStrategy() {
return revisionGarbageCollectionStrategy(Optional.empty());
}

public abstract ReasoningEngine build();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -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<ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest>
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.
*
* <p>keepNLatest: Optional. Keeps only the latest N Runtime Revisions active.
*/
@JsonProperty("keepNLatest")
public abstract Builder keepNLatest(
ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest keepNLatest);

/**
* Setter for keepNLatest builder.
*
* <p>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<ReasoningEngineRevisionGarbageCollectionStrategyKeepNLatest> 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);
}
}
Original file line number Diff line number Diff line change
@@ -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<Integer> 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.
*
* <p>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<Integer> 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);
}
}
4 changes: 2 additions & 2 deletions src/main/java/com/google/cloud/agentplatform/types/State.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Loading