From d218f7665f8b2bde4378d7f62cb7e1eb656203e0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 20 Jul 2026 15:38:27 +0000 Subject: [PATCH] [WORKFLOW] Generate buf for version v0.1.573 --- api_version.lock | 2 +- .../src/main/gen/com/viam/robot/v1/Robot.java | 1702 ++++++++++++++++- .../main/gen/viam/app/v1/AppOuterClass.java | 623 +++++- core/sdk/src/main/resources/protofds/viam.api | Bin 740249 -> 743306 bytes 4 files changed, 2301 insertions(+), 26 deletions(-) diff --git a/api_version.lock b/api_version.lock index 2926c1580..e457a8487 100644 --- a/api_version.lock +++ b/api_version.lock @@ -1 +1 @@ -v0.1.569 +v0.1.573 diff --git a/core/sdk/src/main/gen/com/viam/robot/v1/Robot.java b/core/sdk/src/main/gen/com/viam/robot/v1/Robot.java index f141f067c..122f962b5 100644 --- a/core/sdk/src/main/gen/com/viam/robot/v1/Robot.java +++ b/core/sdk/src/main/gen/com/viam/robot/v1/Robot.java @@ -20955,6 +20955,20 @@ public interface GetMachineStatusResponseOrBuilder extends * repeated .viam.robot.v1.ModuleStatus modules = 5 [json_name = "modules"]; */ int getModulesCount(); + + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + java.util.List + getPackagesList(); + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + com.viam.robot.v1.Robot.PackageStatus getPackages(int index); + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + int getPackagesCount(); } /** * Protobuf type {@code viam.robot.v1.GetMachineStatusResponse} @@ -20968,6 +20982,7 @@ private GetMachineStatusResponse() { resources_ = emptyProtobufList(); jobStatuses_ = emptyProtobufList(); modules_ = emptyProtobufList(); + packages_ = emptyProtobufList(); } /** * Protobuf enum {@code viam.robot.v1.GetMachineStatusResponse.State} @@ -21469,6 +21484,103 @@ private void removeModules(int index) { modules_.remove(index); } + public static final int PACKAGES_FIELD_NUMBER = 6; + private com.google.protobuf.Internal.ProtobufList packages_; + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + @java.lang.Override + public java.util.List getPackagesList() { + return packages_; + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + public java.util.List + getPackagesOrBuilderList() { + return packages_; + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + @java.lang.Override + public int getPackagesCount() { + return packages_.size(); + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + @java.lang.Override + public com.viam.robot.v1.Robot.PackageStatus getPackages(int index) { + return packages_.get(index); + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + public com.viam.robot.v1.Robot.PackageStatusOrBuilder getPackagesOrBuilder( + int index) { + return packages_.get(index); + } + private void ensurePackagesIsMutable() { + com.google.protobuf.Internal.ProtobufList tmp = packages_; + if (!tmp.isModifiable()) { + packages_ = + com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp); + } + } + + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + @java.lang.SuppressWarnings("ReturnValueIgnored") + private void setPackages( + int index, com.viam.robot.v1.Robot.PackageStatus value) { + value.getClass(); // minimal bytecode null check + ensurePackagesIsMutable(); + packages_.set(index, value); + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + @java.lang.SuppressWarnings("ReturnValueIgnored") + private void addPackages(com.viam.robot.v1.Robot.PackageStatus value) { + value.getClass(); // minimal bytecode null check + ensurePackagesIsMutable(); + packages_.add(value); + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + @java.lang.SuppressWarnings("ReturnValueIgnored") + private void addPackages( + int index, com.viam.robot.v1.Robot.PackageStatus value) { + value.getClass(); // minimal bytecode null check + ensurePackagesIsMutable(); + packages_.add(index, value); + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + private void addAllPackages( + java.lang.Iterable values) { + ensurePackagesIsMutable(); + com.google.protobuf.AbstractMessageLite.addAll( + values, packages_); + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + private void clearPackages() { + packages_ = emptyProtobufList(); + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + private void removePackages(int index) { + ensurePackagesIsMutable(); + packages_.remove(index); + } + public static com.viam.robot.v1.Robot.GetMachineStatusResponse parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { @@ -21966,6 +22078,108 @@ public Builder removeModules(int index) { return this; } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + @java.lang.Override + public java.util.List getPackagesList() { + return java.util.Collections.unmodifiableList( + instance.getPackagesList()); + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + @java.lang.Override + public int getPackagesCount() { + return instance.getPackagesCount(); + }/** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + @java.lang.Override + public com.viam.robot.v1.Robot.PackageStatus getPackages(int index) { + return instance.getPackages(index); + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + public Builder setPackages( + int index, com.viam.robot.v1.Robot.PackageStatus value) { + copyOnWrite(); + instance.setPackages(index, value); + return this; + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + public Builder setPackages( + int index, com.viam.robot.v1.Robot.PackageStatus.Builder builderForValue) { + copyOnWrite(); + instance.setPackages(index, + builderForValue.build()); + return this; + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + public Builder addPackages(com.viam.robot.v1.Robot.PackageStatus value) { + copyOnWrite(); + instance.addPackages(value); + return this; + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + public Builder addPackages( + int index, com.viam.robot.v1.Robot.PackageStatus value) { + copyOnWrite(); + instance.addPackages(index, value); + return this; + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + public Builder addPackages( + com.viam.robot.v1.Robot.PackageStatus.Builder builderForValue) { + copyOnWrite(); + instance.addPackages(builderForValue.build()); + return this; + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + public Builder addPackages( + int index, com.viam.robot.v1.Robot.PackageStatus.Builder builderForValue) { + copyOnWrite(); + instance.addPackages(index, + builderForValue.build()); + return this; + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + public Builder addAllPackages( + java.lang.Iterable values) { + copyOnWrite(); + instance.addAllPackages(values); + return this; + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + public Builder clearPackages() { + copyOnWrite(); + instance.clearPackages(); + return this; + } + /** + * repeated .viam.robot.v1.PackageStatus packages = 6 [json_name = "packages"]; + */ + public Builder removePackages(int index) { + copyOnWrite(); + instance.removePackages(index); + return this; + } + // @@protoc_insertion_point(builder_scope:viam.robot.v1.GetMachineStatusResponse) } @java.lang.Override @@ -21991,10 +22205,12 @@ protected final java.lang.Object dynamicMethod( com.viam.robot.v1.Robot.JobStatus.class, "modules_", com.viam.robot.v1.Robot.ModuleStatus.class, + "packages_", + com.viam.robot.v1.Robot.PackageStatus.class, }; java.lang.String info = - "\u0000\u0005\u0000\u0001\u0001\u0005\u0005\u0000\u0003\u0000\u0001\u001b\u0002\u1009" + - "\u0000\u0003\f\u0004\u001b\u0005\u001b"; + "\u0000\u0006\u0000\u0001\u0001\u0006\u0006\u0000\u0004\u0000\u0001\u001b\u0002\u1009" + + "\u0000\u0003\f\u0004\u001b\u0005\u001b\u0006\u001b"; return newMessageInfo(DEFAULT_INSTANCE, info, objects); } case GET_DEFAULT_INSTANCE: { @@ -25121,6 +25337,1488 @@ public static com.google.protobuf.Parser parser() { } } + public interface PackageStatusOrBuilder extends + // @@protoc_insertion_point(interface_extends:viam.robot.v1.PackageStatus) + com.google.protobuf.MessageLiteOrBuilder { + + /** + *
+     * the package name as declared in the robot config (PackageConfig.Name)
+     * 
+ * + * string name = 1 [json_name = "name"]; + * @return The name. + */ + java.lang.String getName(); + /** + *
+     * the package name as declared in the robot config (PackageConfig.Name)
+     * 
+ * + * string name = 1 [json_name = "name"]; + * @return The bytes for name. + */ + com.google.protobuf.ByteString + getNameBytes(); + + /** + *
+     * the package type (module, ml_model, slam_map, etc.)
+     * 
+ * + * .viam.app.packages.v1.PackageType type = 2 [json_name = "type"]; + * @return The enum numeric value on the wire for type. + */ + int getTypeValue(); + /** + *
+     * the package type (module, ml_model, slam_map, etc.)
+     * 
+ * + * .viam.app.packages.v1.PackageType type = 2 [json_name = "type"]; + * @return The type. + */ + viam.app.packages.v1.Packages.PackageType getType(); + + /** + *
+     * current lifecycle state
+     * 
+ * + * .viam.robot.v1.PackageStatus.State state = 3 [json_name = "state"]; + * @return The enum numeric value on the wire for state. + */ + int getStateValue(); + /** + *
+     * current lifecycle state
+     * 
+ * + * .viam.robot.v1.PackageStatus.State state = 3 [json_name = "state"]; + * @return The state. + */ + com.viam.robot.v1.Robot.PackageStatus.State getState(); + + /** + *
+     * human-readable error detail when state == STATE_FAILED
+     * 
+ * + * string error = 4 [json_name = "error"]; + * @return The error. + */ + java.lang.String getError(); + /** + *
+     * human-readable error detail when state == STATE_FAILED
+     * 
+ * + * string error = 4 [json_name = "error"]; + * @return The bytes for error. + */ + com.google.protobuf.ByteString + getErrorBytes(); + + /** + *
+     * when this status was last updated
+     * 
+ * + * .google.protobuf.Timestamp last_updated = 5 [json_name = "lastUpdated"]; + * @return Whether the lastUpdated field is set. + */ + boolean hasLastUpdated(); + /** + *
+     * when this status was last updated
+     * 
+ * + * .google.protobuf.Timestamp last_updated = 5 [json_name = "lastUpdated"]; + * @return The lastUpdated. + */ + com.google.protobuf.Timestamp getLastUpdated(); + + /** + *
+     * the version string from PackageConfig
+     * 
+ * + * string version = 6 [json_name = "version"]; + * @return The version. + */ + java.lang.String getVersion(); + /** + *
+     * the version string from PackageConfig
+     * 
+ * + * string version = 6 [json_name = "version"]; + * @return The bytes for version. + */ + com.google.protobuf.ByteString + getVersionBytes(); + + /** + *
+     * number of bytes of the package tarball downloaded so far. Only populated
+     * while state == STATE_DOWNLOADING; equals total_bytes once the download completes.
+     * 
+ * + * uint64 bytes_downloaded = 7 [json_name = "bytesDownloaded"]; + * @return The bytesDownloaded. + */ + long getBytesDownloaded(); + + /** + *
+     * total size of the package tarball in bytes. Zero if the size is unknown.
+     * 
+ * + * uint64 total_bytes = 8 [json_name = "totalBytes"]; + * @return The totalBytes. + */ + long getTotalBytes(); + } + /** + * Protobuf type {@code viam.robot.v1.PackageStatus} + */ + public static final class PackageStatus extends + com.google.protobuf.GeneratedMessageLite< + PackageStatus, PackageStatus.Builder> implements + // @@protoc_insertion_point(message_implements:viam.robot.v1.PackageStatus) + PackageStatusOrBuilder { + private PackageStatus() { + name_ = ""; + error_ = ""; + version_ = ""; + } + /** + * Protobuf enum {@code viam.robot.v1.PackageStatus.State} + */ + public enum State + implements com.google.protobuf.Internal.EnumLite { + /** + *
+       * state is unknown or has not been set yet
+       * 
+ * + * STATE_UNSPECIFIED = 0; + */ + STATE_UNSPECIFIED(0), + /** + *
+       * package tarball is actively being fetched from the cloud
+       * 
+ * + * STATE_DOWNLOADING = 1; + */ + STATE_DOWNLOADING(1), + /** + *
+       * tarball has been downloaded and is being extracted/verified
+       * 
+ * + * STATE_LOADING = 2; + */ + STATE_LOADING(2), + /** + *
+       * first_run.sh script is executing (module packages only)
+       * 
+ * + * STATE_FIRST_RUN = 3; + */ + STATE_FIRST_RUN(3), + /** + *
+       * package is fully installed and available for use
+       * 
+ * + * STATE_READY = 4; + */ + STATE_READY(4), + /** + *
+       * package failed to download, extract, or complete first run
+       * 
+ * + * STATE_FAILED = 5; + */ + STATE_FAILED(5), + UNRECOGNIZED(-1), + ; + + /** + *
+       * state is unknown or has not been set yet
+       * 
+ * + * STATE_UNSPECIFIED = 0; + */ + public static final int STATE_UNSPECIFIED_VALUE = 0; + /** + *
+       * package tarball is actively being fetched from the cloud
+       * 
+ * + * STATE_DOWNLOADING = 1; + */ + public static final int STATE_DOWNLOADING_VALUE = 1; + /** + *
+       * tarball has been downloaded and is being extracted/verified
+       * 
+ * + * STATE_LOADING = 2; + */ + public static final int STATE_LOADING_VALUE = 2; + /** + *
+       * first_run.sh script is executing (module packages only)
+       * 
+ * + * STATE_FIRST_RUN = 3; + */ + public static final int STATE_FIRST_RUN_VALUE = 3; + /** + *
+       * package is fully installed and available for use
+       * 
+ * + * STATE_READY = 4; + */ + public static final int STATE_READY_VALUE = 4; + /** + *
+       * package failed to download, extract, or complete first run
+       * 
+ * + * STATE_FAILED = 5; + */ + public static final int STATE_FAILED_VALUE = 5; + + + @java.lang.Override + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static State valueOf(int value) { + return forNumber(value); + } + + public static State forNumber(int value) { + switch (value) { + case 0: return STATE_UNSPECIFIED; + case 1: return STATE_DOWNLOADING; + case 2: return STATE_LOADING; + case 3: return STATE_FIRST_RUN; + case 4: return STATE_READY; + case 5: return STATE_FAILED; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + State> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + @java.lang.Override + public State findValueByNumber(int number) { + return State.forNumber(number); + } + }; + + public static com.google.protobuf.Internal.EnumVerifier + internalGetVerifier() { + return StateVerifier.INSTANCE; + } + + private static final class StateVerifier implements + com.google.protobuf.Internal.EnumVerifier { + static final com.google.protobuf.Internal.EnumVerifier + INSTANCE = new StateVerifier(); + @java.lang.Override + public boolean isInRange(int number) { + return State.forNumber(number) != null; + } + }; + + private final int value; + + private State(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:viam.robot.v1.PackageStatus.State) + } + + private int bitField0_; + public static final int NAME_FIELD_NUMBER = 1; + private java.lang.String name_; + /** + *
+     * the package name as declared in the robot config (PackageConfig.Name)
+     * 
+ * + * string name = 1 [json_name = "name"]; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + return name_; + } + /** + *
+     * the package name as declared in the robot config (PackageConfig.Name)
+     * 
+ * + * string name = 1 [json_name = "name"]; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNameBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(name_); + } + /** + *
+     * the package name as declared in the robot config (PackageConfig.Name)
+     * 
+ * + * string name = 1 [json_name = "name"]; + * @param value The name to set. + */ + @java.lang.SuppressWarnings("ReturnValueIgnored") + private void setName( + java.lang.String value) { + value.getClass(); // minimal bytecode null check + + name_ = value; + } + /** + *
+     * the package name as declared in the robot config (PackageConfig.Name)
+     * 
+ * + * string name = 1 [json_name = "name"]; + */ + private void clearName() { + + name_ = getDefaultInstance().getName(); + } + /** + *
+     * the package name as declared in the robot config (PackageConfig.Name)
+     * 
+ * + * string name = 1 [json_name = "name"]; + * @param value The bytes for name to set. + */ + private void setNameBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + name_ = value.toStringUtf8(); + + } + + public static final int TYPE_FIELD_NUMBER = 2; + private int type_; + /** + *
+     * the package type (module, ml_model, slam_map, etc.)
+     * 
+ * + * .viam.app.packages.v1.PackageType type = 2 [json_name = "type"]; + * @return The enum numeric value on the wire for type. + */ + @java.lang.Override + public int getTypeValue() { + return type_; + } + /** + *
+     * the package type (module, ml_model, slam_map, etc.)
+     * 
+ * + * .viam.app.packages.v1.PackageType type = 2 [json_name = "type"]; + * @return The type. + */ + @java.lang.Override + public viam.app.packages.v1.Packages.PackageType getType() { + viam.app.packages.v1.Packages.PackageType result = viam.app.packages.v1.Packages.PackageType.forNumber(type_); + return result == null ? viam.app.packages.v1.Packages.PackageType.UNRECOGNIZED : result; + } + /** + *
+     * the package type (module, ml_model, slam_map, etc.)
+     * 
+ * + * .viam.app.packages.v1.PackageType type = 2 [json_name = "type"]; + * @param value The enum numeric value on the wire for type to set. + * @throws IllegalArgumentException if UNRECOGNIZED is provided. + */ + private void setTypeValue(int value) { + type_ = value; + } + /** + *
+     * the package type (module, ml_model, slam_map, etc.)
+     * 
+ * + * .viam.app.packages.v1.PackageType type = 2 [json_name = "type"]; + * @param value The type to set. + */ + private void setType(viam.app.packages.v1.Packages.PackageType value) { + type_ = value.getNumber(); + + } + /** + *
+     * the package type (module, ml_model, slam_map, etc.)
+     * 
+ * + * .viam.app.packages.v1.PackageType type = 2 [json_name = "type"]; + */ + private void clearType() { + + type_ = 0; + } + + public static final int STATE_FIELD_NUMBER = 3; + private int state_; + /** + *
+     * current lifecycle state
+     * 
+ * + * .viam.robot.v1.PackageStatus.State state = 3 [json_name = "state"]; + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override + public int getStateValue() { + return state_; + } + /** + *
+     * current lifecycle state
+     * 
+ * + * .viam.robot.v1.PackageStatus.State state = 3 [json_name = "state"]; + * @return The state. + */ + @java.lang.Override + public com.viam.robot.v1.Robot.PackageStatus.State getState() { + com.viam.robot.v1.Robot.PackageStatus.State result = com.viam.robot.v1.Robot.PackageStatus.State.forNumber(state_); + return result == null ? com.viam.robot.v1.Robot.PackageStatus.State.UNRECOGNIZED : result; + } + /** + *
+     * current lifecycle state
+     * 
+ * + * .viam.robot.v1.PackageStatus.State state = 3 [json_name = "state"]; + * @param value The enum numeric value on the wire for state to set. + * @throws IllegalArgumentException if UNRECOGNIZED is provided. + */ + private void setStateValue(int value) { + state_ = value; + } + /** + *
+     * current lifecycle state
+     * 
+ * + * .viam.robot.v1.PackageStatus.State state = 3 [json_name = "state"]; + * @param value The state to set. + */ + private void setState(com.viam.robot.v1.Robot.PackageStatus.State value) { + state_ = value.getNumber(); + + } + /** + *
+     * current lifecycle state
+     * 
+ * + * .viam.robot.v1.PackageStatus.State state = 3 [json_name = "state"]; + */ + private void clearState() { + + state_ = 0; + } + + public static final int ERROR_FIELD_NUMBER = 4; + private java.lang.String error_; + /** + *
+     * human-readable error detail when state == STATE_FAILED
+     * 
+ * + * string error = 4 [json_name = "error"]; + * @return The error. + */ + @java.lang.Override + public java.lang.String getError() { + return error_; + } + /** + *
+     * human-readable error detail when state == STATE_FAILED
+     * 
+ * + * string error = 4 [json_name = "error"]; + * @return The bytes for error. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getErrorBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(error_); + } + /** + *
+     * human-readable error detail when state == STATE_FAILED
+     * 
+ * + * string error = 4 [json_name = "error"]; + * @param value The error to set. + */ + @java.lang.SuppressWarnings("ReturnValueIgnored") + private void setError( + java.lang.String value) { + value.getClass(); // minimal bytecode null check + + error_ = value; + } + /** + *
+     * human-readable error detail when state == STATE_FAILED
+     * 
+ * + * string error = 4 [json_name = "error"]; + */ + private void clearError() { + + error_ = getDefaultInstance().getError(); + } + /** + *
+     * human-readable error detail when state == STATE_FAILED
+     * 
+ * + * string error = 4 [json_name = "error"]; + * @param value The bytes for error to set. + */ + private void setErrorBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + error_ = value.toStringUtf8(); + + } + + public static final int LAST_UPDATED_FIELD_NUMBER = 5; + private com.google.protobuf.Timestamp lastUpdated_; + /** + *
+     * when this status was last updated
+     * 
+ * + * .google.protobuf.Timestamp last_updated = 5 [json_name = "lastUpdated"]; + */ + @java.lang.Override + public boolean hasLastUpdated() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+     * when this status was last updated
+     * 
+ * + * .google.protobuf.Timestamp last_updated = 5 [json_name = "lastUpdated"]; + */ + @java.lang.Override + public com.google.protobuf.Timestamp getLastUpdated() { + return lastUpdated_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : lastUpdated_; + } + /** + *
+     * when this status was last updated
+     * 
+ * + * .google.protobuf.Timestamp last_updated = 5 [json_name = "lastUpdated"]; + */ + @java.lang.SuppressWarnings("ReturnValueIgnored") + private void setLastUpdated(com.google.protobuf.Timestamp value) { + value.getClass(); // minimal bytecode null check + lastUpdated_ = value; + bitField0_ |= 0x00000001; + } + /** + *
+     * when this status was last updated
+     * 
+ * + * .google.protobuf.Timestamp last_updated = 5 [json_name = "lastUpdated"]; + */ + @java.lang.SuppressWarnings({"ReferenceEquality", "ReturnValueIgnored"}) + private void mergeLastUpdated(com.google.protobuf.Timestamp value) { + value.getClass(); // minimal bytecode null check + if (lastUpdated_ != null && + lastUpdated_ != com.google.protobuf.Timestamp.getDefaultInstance()) { + lastUpdated_ = + com.google.protobuf.Timestamp.newBuilder(lastUpdated_).mergeFrom(value).buildPartial(); + } else { + lastUpdated_ = value; + } + bitField0_ |= 0x00000001; + } + /** + *
+     * when this status was last updated
+     * 
+ * + * .google.protobuf.Timestamp last_updated = 5 [json_name = "lastUpdated"]; + */ + private void clearLastUpdated() { + lastUpdated_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + } + + public static final int VERSION_FIELD_NUMBER = 6; + private java.lang.String version_; + /** + *
+     * the version string from PackageConfig
+     * 
+ * + * string version = 6 [json_name = "version"]; + * @return The version. + */ + @java.lang.Override + public java.lang.String getVersion() { + return version_; + } + /** + *
+     * the version string from PackageConfig
+     * 
+ * + * string version = 6 [json_name = "version"]; + * @return The bytes for version. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getVersionBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(version_); + } + /** + *
+     * the version string from PackageConfig
+     * 
+ * + * string version = 6 [json_name = "version"]; + * @param value The version to set. + */ + @java.lang.SuppressWarnings("ReturnValueIgnored") + private void setVersion( + java.lang.String value) { + value.getClass(); // minimal bytecode null check + + version_ = value; + } + /** + *
+     * the version string from PackageConfig
+     * 
+ * + * string version = 6 [json_name = "version"]; + */ + private void clearVersion() { + + version_ = getDefaultInstance().getVersion(); + } + /** + *
+     * the version string from PackageConfig
+     * 
+ * + * string version = 6 [json_name = "version"]; + * @param value The bytes for version to set. + */ + private void setVersionBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + version_ = value.toStringUtf8(); + + } + + public static final int BYTES_DOWNLOADED_FIELD_NUMBER = 7; + private long bytesDownloaded_; + /** + *
+     * number of bytes of the package tarball downloaded so far. Only populated
+     * while state == STATE_DOWNLOADING; equals total_bytes once the download completes.
+     * 
+ * + * uint64 bytes_downloaded = 7 [json_name = "bytesDownloaded"]; + * @return The bytesDownloaded. + */ + @java.lang.Override + public long getBytesDownloaded() { + return bytesDownloaded_; + } + /** + *
+     * number of bytes of the package tarball downloaded so far. Only populated
+     * while state == STATE_DOWNLOADING; equals total_bytes once the download completes.
+     * 
+ * + * uint64 bytes_downloaded = 7 [json_name = "bytesDownloaded"]; + * @param value The bytesDownloaded to set. + */ + private void setBytesDownloaded(long value) { + + bytesDownloaded_ = value; + } + /** + *
+     * number of bytes of the package tarball downloaded so far. Only populated
+     * while state == STATE_DOWNLOADING; equals total_bytes once the download completes.
+     * 
+ * + * uint64 bytes_downloaded = 7 [json_name = "bytesDownloaded"]; + */ + private void clearBytesDownloaded() { + + bytesDownloaded_ = 0L; + } + + public static final int TOTAL_BYTES_FIELD_NUMBER = 8; + private long totalBytes_; + /** + *
+     * total size of the package tarball in bytes. Zero if the size is unknown.
+     * 
+ * + * uint64 total_bytes = 8 [json_name = "totalBytes"]; + * @return The totalBytes. + */ + @java.lang.Override + public long getTotalBytes() { + return totalBytes_; + } + /** + *
+     * total size of the package tarball in bytes. Zero if the size is unknown.
+     * 
+ * + * uint64 total_bytes = 8 [json_name = "totalBytes"]; + * @param value The totalBytes to set. + */ + private void setTotalBytes(long value) { + + totalBytes_ = value; + } + /** + *
+     * total size of the package tarball in bytes. Zero if the size is unknown.
+     * 
+ * + * uint64 total_bytes = 8 [json_name = "totalBytes"]; + */ + private void clearTotalBytes() { + + totalBytes_ = 0L; + } + + public static com.viam.robot.v1.Robot.PackageStatus parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static com.viam.robot.v1.Robot.PackageStatus parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data, extensionRegistry); + } + public static com.viam.robot.v1.Robot.PackageStatus parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static com.viam.robot.v1.Robot.PackageStatus parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data, extensionRegistry); + } + public static com.viam.robot.v1.Robot.PackageStatus parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static com.viam.robot.v1.Robot.PackageStatus parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data, extensionRegistry); + } + public static com.viam.robot.v1.Robot.PackageStatus parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static com.viam.robot.v1.Robot.PackageStatus parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input, extensionRegistry); + } + + public static com.viam.robot.v1.Robot.PackageStatus parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input); + } + + public static com.viam.robot.v1.Robot.PackageStatus parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry); + } + public static com.viam.robot.v1.Robot.PackageStatus parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static com.viam.robot.v1.Robot.PackageStatus parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input, extensionRegistry); + } + + public static Builder newBuilder() { + return (Builder) DEFAULT_INSTANCE.createBuilder(); + } + public static Builder newBuilder(com.viam.robot.v1.Robot.PackageStatus prototype) { + return DEFAULT_INSTANCE.createBuilder(prototype); + } + + /** + * Protobuf type {@code viam.robot.v1.PackageStatus} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageLite.Builder< + com.viam.robot.v1.Robot.PackageStatus, Builder> implements + // @@protoc_insertion_point(builder_implements:viam.robot.v1.PackageStatus) + com.viam.robot.v1.Robot.PackageStatusOrBuilder { + // Construct using com.viam.robot.v1.Robot.PackageStatus.newBuilder() + private Builder() { + super(DEFAULT_INSTANCE); + } + + + /** + *
+       * the package name as declared in the robot config (PackageConfig.Name)
+       * 
+ * + * string name = 1 [json_name = "name"]; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + return instance.getName(); + } + /** + *
+       * the package name as declared in the robot config (PackageConfig.Name)
+       * 
+ * + * string name = 1 [json_name = "name"]; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNameBytes() { + return instance.getNameBytes(); + } + /** + *
+       * the package name as declared in the robot config (PackageConfig.Name)
+       * 
+ * + * string name = 1 [json_name = "name"]; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName( + java.lang.String value) { + copyOnWrite(); + instance.setName(value); + return this; + } + /** + *
+       * the package name as declared in the robot config (PackageConfig.Name)
+       * 
+ * + * string name = 1 [json_name = "name"]; + * @return This builder for chaining. + */ + public Builder clearName() { + copyOnWrite(); + instance.clearName(); + return this; + } + /** + *
+       * the package name as declared in the robot config (PackageConfig.Name)
+       * 
+ * + * string name = 1 [json_name = "name"]; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setNameBytes(value); + return this; + } + + /** + *
+       * the package type (module, ml_model, slam_map, etc.)
+       * 
+ * + * .viam.app.packages.v1.PackageType type = 2 [json_name = "type"]; + * @return The enum numeric value on the wire for type. + */ + @java.lang.Override + public int getTypeValue() { + return instance.getTypeValue(); + } + /** + *
+       * the package type (module, ml_model, slam_map, etc.)
+       * 
+ * + * .viam.app.packages.v1.PackageType type = 2 [json_name = "type"]; + * @param value The type to set. + * @return This builder for chaining. + */ + public Builder setTypeValue(int value) { + copyOnWrite(); + instance.setTypeValue(value); + return this; + } + /** + *
+       * the package type (module, ml_model, slam_map, etc.)
+       * 
+ * + * .viam.app.packages.v1.PackageType type = 2 [json_name = "type"]; + * @return The type. + */ + @java.lang.Override + public viam.app.packages.v1.Packages.PackageType getType() { + return instance.getType(); + } + /** + *
+       * the package type (module, ml_model, slam_map, etc.)
+       * 
+ * + * .viam.app.packages.v1.PackageType type = 2 [json_name = "type"]; + * @param value The enum numeric value on the wire for type to set. + * @throws IllegalArgumentException if UNRECOGNIZED is provided. + * @return This builder for chaining. + */ + public Builder setType(viam.app.packages.v1.Packages.PackageType value) { + copyOnWrite(); + instance.setType(value); + return this; + } + /** + *
+       * the package type (module, ml_model, slam_map, etc.)
+       * 
+ * + * .viam.app.packages.v1.PackageType type = 2 [json_name = "type"]; + * @return This builder for chaining. + */ + public Builder clearType() { + copyOnWrite(); + instance.clearType(); + return this; + } + + /** + *
+       * current lifecycle state
+       * 
+ * + * .viam.robot.v1.PackageStatus.State state = 3 [json_name = "state"]; + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override + public int getStateValue() { + return instance.getStateValue(); + } + /** + *
+       * current lifecycle state
+       * 
+ * + * .viam.robot.v1.PackageStatus.State state = 3 [json_name = "state"]; + * @param value The state to set. + * @return This builder for chaining. + */ + public Builder setStateValue(int value) { + copyOnWrite(); + instance.setStateValue(value); + return this; + } + /** + *
+       * current lifecycle state
+       * 
+ * + * .viam.robot.v1.PackageStatus.State state = 3 [json_name = "state"]; + * @return The state. + */ + @java.lang.Override + public com.viam.robot.v1.Robot.PackageStatus.State getState() { + return instance.getState(); + } + /** + *
+       * current lifecycle state
+       * 
+ * + * .viam.robot.v1.PackageStatus.State state = 3 [json_name = "state"]; + * @param value The enum numeric value on the wire for state to set. + * @throws IllegalArgumentException if UNRECOGNIZED is provided. + * @return This builder for chaining. + */ + public Builder setState(com.viam.robot.v1.Robot.PackageStatus.State value) { + copyOnWrite(); + instance.setState(value); + return this; + } + /** + *
+       * current lifecycle state
+       * 
+ * + * .viam.robot.v1.PackageStatus.State state = 3 [json_name = "state"]; + * @return This builder for chaining. + */ + public Builder clearState() { + copyOnWrite(); + instance.clearState(); + return this; + } + + /** + *
+       * human-readable error detail when state == STATE_FAILED
+       * 
+ * + * string error = 4 [json_name = "error"]; + * @return The error. + */ + @java.lang.Override + public java.lang.String getError() { + return instance.getError(); + } + /** + *
+       * human-readable error detail when state == STATE_FAILED
+       * 
+ * + * string error = 4 [json_name = "error"]; + * @return The bytes for error. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getErrorBytes() { + return instance.getErrorBytes(); + } + /** + *
+       * human-readable error detail when state == STATE_FAILED
+       * 
+ * + * string error = 4 [json_name = "error"]; + * @param value The error to set. + * @return This builder for chaining. + */ + public Builder setError( + java.lang.String value) { + copyOnWrite(); + instance.setError(value); + return this; + } + /** + *
+       * human-readable error detail when state == STATE_FAILED
+       * 
+ * + * string error = 4 [json_name = "error"]; + * @return This builder for chaining. + */ + public Builder clearError() { + copyOnWrite(); + instance.clearError(); + return this; + } + /** + *
+       * human-readable error detail when state == STATE_FAILED
+       * 
+ * + * string error = 4 [json_name = "error"]; + * @param value The bytes for error to set. + * @return This builder for chaining. + */ + public Builder setErrorBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setErrorBytes(value); + return this; + } + + /** + *
+       * when this status was last updated
+       * 
+ * + * .google.protobuf.Timestamp last_updated = 5 [json_name = "lastUpdated"]; + */ + @java.lang.Override + public boolean hasLastUpdated() { + return instance.hasLastUpdated(); + } + /** + *
+       * when this status was last updated
+       * 
+ * + * .google.protobuf.Timestamp last_updated = 5 [json_name = "lastUpdated"]; + */ + @java.lang.Override + public com.google.protobuf.Timestamp getLastUpdated() { + return instance.getLastUpdated(); + } + /** + *
+       * when this status was last updated
+       * 
+ * + * .google.protobuf.Timestamp last_updated = 5 [json_name = "lastUpdated"]; + */ + public Builder setLastUpdated(com.google.protobuf.Timestamp value) { + copyOnWrite(); + instance.setLastUpdated(value); + return this; + } + /** + *
+       * when this status was last updated
+       * 
+ * + * .google.protobuf.Timestamp last_updated = 5 [json_name = "lastUpdated"]; + */ + public Builder setLastUpdated( + com.google.protobuf.Timestamp.Builder builderForValue) { + copyOnWrite(); + instance.setLastUpdated(builderForValue.build()); + return this; + } + /** + *
+       * when this status was last updated
+       * 
+ * + * .google.protobuf.Timestamp last_updated = 5 [json_name = "lastUpdated"]; + */ + public Builder mergeLastUpdated(com.google.protobuf.Timestamp value) { + copyOnWrite(); + instance.mergeLastUpdated(value); + return this; + } + /** + *
+       * when this status was last updated
+       * 
+ * + * .google.protobuf.Timestamp last_updated = 5 [json_name = "lastUpdated"]; + */ + public Builder clearLastUpdated() { copyOnWrite(); + instance.clearLastUpdated(); + return this; + } + + /** + *
+       * the version string from PackageConfig
+       * 
+ * + * string version = 6 [json_name = "version"]; + * @return The version. + */ + @java.lang.Override + public java.lang.String getVersion() { + return instance.getVersion(); + } + /** + *
+       * the version string from PackageConfig
+       * 
+ * + * string version = 6 [json_name = "version"]; + * @return The bytes for version. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getVersionBytes() { + return instance.getVersionBytes(); + } + /** + *
+       * the version string from PackageConfig
+       * 
+ * + * string version = 6 [json_name = "version"]; + * @param value The version to set. + * @return This builder for chaining. + */ + public Builder setVersion( + java.lang.String value) { + copyOnWrite(); + instance.setVersion(value); + return this; + } + /** + *
+       * the version string from PackageConfig
+       * 
+ * + * string version = 6 [json_name = "version"]; + * @return This builder for chaining. + */ + public Builder clearVersion() { + copyOnWrite(); + instance.clearVersion(); + return this; + } + /** + *
+       * the version string from PackageConfig
+       * 
+ * + * string version = 6 [json_name = "version"]; + * @param value The bytes for version to set. + * @return This builder for chaining. + */ + public Builder setVersionBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setVersionBytes(value); + return this; + } + + /** + *
+       * number of bytes of the package tarball downloaded so far. Only populated
+       * while state == STATE_DOWNLOADING; equals total_bytes once the download completes.
+       * 
+ * + * uint64 bytes_downloaded = 7 [json_name = "bytesDownloaded"]; + * @return The bytesDownloaded. + */ + @java.lang.Override + public long getBytesDownloaded() { + return instance.getBytesDownloaded(); + } + /** + *
+       * number of bytes of the package tarball downloaded so far. Only populated
+       * while state == STATE_DOWNLOADING; equals total_bytes once the download completes.
+       * 
+ * + * uint64 bytes_downloaded = 7 [json_name = "bytesDownloaded"]; + * @param value The bytesDownloaded to set. + * @return This builder for chaining. + */ + public Builder setBytesDownloaded(long value) { + copyOnWrite(); + instance.setBytesDownloaded(value); + return this; + } + /** + *
+       * number of bytes of the package tarball downloaded so far. Only populated
+       * while state == STATE_DOWNLOADING; equals total_bytes once the download completes.
+       * 
+ * + * uint64 bytes_downloaded = 7 [json_name = "bytesDownloaded"]; + * @return This builder for chaining. + */ + public Builder clearBytesDownloaded() { + copyOnWrite(); + instance.clearBytesDownloaded(); + return this; + } + + /** + *
+       * total size of the package tarball in bytes. Zero if the size is unknown.
+       * 
+ * + * uint64 total_bytes = 8 [json_name = "totalBytes"]; + * @return The totalBytes. + */ + @java.lang.Override + public long getTotalBytes() { + return instance.getTotalBytes(); + } + /** + *
+       * total size of the package tarball in bytes. Zero if the size is unknown.
+       * 
+ * + * uint64 total_bytes = 8 [json_name = "totalBytes"]; + * @param value The totalBytes to set. + * @return This builder for chaining. + */ + public Builder setTotalBytes(long value) { + copyOnWrite(); + instance.setTotalBytes(value); + return this; + } + /** + *
+       * total size of the package tarball in bytes. Zero if the size is unknown.
+       * 
+ * + * uint64 total_bytes = 8 [json_name = "totalBytes"]; + * @return This builder for chaining. + */ + public Builder clearTotalBytes() { + copyOnWrite(); + instance.clearTotalBytes(); + return this; + } + + // @@protoc_insertion_point(builder_scope:viam.robot.v1.PackageStatus) + } + @java.lang.Override + @java.lang.SuppressWarnings({"ThrowNull"}) + protected final java.lang.Object dynamicMethod( + com.google.protobuf.GeneratedMessageLite.MethodToInvoke method, + java.lang.Object arg0, java.lang.Object arg1) { + switch (method) { + case NEW_MUTABLE_INSTANCE: { + return new com.viam.robot.v1.Robot.PackageStatus(); + } + case NEW_BUILDER: { + return new Builder(); + } + case BUILD_MESSAGE_INFO: { + java.lang.Object[] objects = new java.lang.Object[] { + "bitField0_", + "name_", + "type_", + "state_", + "error_", + "lastUpdated_", + "version_", + "bytesDownloaded_", + "totalBytes_", + }; + java.lang.String info = + "\u0000\b\u0000\u0001\u0001\b\b\u0000\u0000\u0000\u0001\u0208\u0002\f\u0003\f\u0004" + + "\u0208\u0005\u1009\u0000\u0006\u0208\u0007\u0003\b\u0003"; + return newMessageInfo(DEFAULT_INSTANCE, info, objects); + } + case GET_DEFAULT_INSTANCE: { + return DEFAULT_INSTANCE; + } + case GET_PARSER: { + com.google.protobuf.Parser parser = PARSER; + if (parser == null) { + synchronized (com.viam.robot.v1.Robot.PackageStatus.class) { + parser = PARSER; + if (parser == null) { + parser = + new DefaultInstanceBasedParser( + DEFAULT_INSTANCE); + PARSER = parser; + } + } + } + return parser; + } + case GET_MEMOIZED_IS_INITIALIZED: { + return (byte) 1; + } + // SET_MEMOIZED_IS_INITIALIZED is never called for this message. + // So it can do anything. Combine with default case for smaller codegen. + case SET_MEMOIZED_IS_INITIALIZED: + } + // Should never happen. Generates tight code to throw an exception. + throw null; + } + + + // @@protoc_insertion_point(class_scope:viam.robot.v1.PackageStatus) + private static final com.viam.robot.v1.Robot.PackageStatus DEFAULT_INSTANCE; + static { + PackageStatus defaultInstance = new PackageStatus(); + // New instances are implicitly immutable so no need to make + // immutable. + DEFAULT_INSTANCE = defaultInstance; + com.google.protobuf.GeneratedMessageLite.registerDefaultInstance( + PackageStatus.class, defaultInstance); + } + + public static com.viam.robot.v1.Robot.PackageStatus getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static volatile com.google.protobuf.Parser PARSER; + + public static com.google.protobuf.Parser parser() { + return DEFAULT_INSTANCE.getParserForType(); + } + } + public interface ConfigStatusOrBuilder extends // @@protoc_insertion_point(interface_extends:viam.robot.v1.ConfigStatus) com.google.protobuf.MessageLiteOrBuilder { diff --git a/core/sdk/src/main/gen/viam/app/v1/AppOuterClass.java b/core/sdk/src/main/gen/viam/app/v1/AppOuterClass.java index b8589a69f..b112961ba 100644 --- a/core/sdk/src/main/gen/viam/app/v1/AppOuterClass.java +++ b/core/sdk/src/main/gen/viam/app/v1/AppOuterClass.java @@ -89603,6 +89603,35 @@ public interface ModuleVersionOrBuilder extends * @return The deprecatedStatus. */ viam.app.v1.AppOuterClass.DeprecatedStatus getDeprecatedStatus(); + + /** + *
+     * The minimum version of viam-server required to run this version of the module.
+     * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return Whether the minViamServerVersion field is set. + */ + boolean hasMinViamServerVersion(); + /** + *
+     * The minimum version of viam-server required to run this version of the module.
+     * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return The minViamServerVersion. + */ + java.lang.String getMinViamServerVersion(); + /** + *
+     * The minimum version of viam-server required to run this version of the module.
+     * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return The bytes for minViamServerVersion. + */ + com.google.protobuf.ByteString + getMinViamServerVersionBytes(); } /** * Protobuf type {@code viam.app.v1.ModuleVersion} @@ -89620,6 +89649,7 @@ private ModuleVersion() { firstRun_ = ""; markdownDescription_ = ""; apps_ = emptyProtobufList(); + minViamServerVersion_ = ""; } private int bitField0_; public static final int VERSION_FIELD_NUMBER = 1; @@ -90409,6 +90439,86 @@ private void clearDeprecatedStatus() { bitField0_ = (bitField0_ & ~0x00000004); } + public static final int MIN_VIAM_SERVER_VERSION_FIELD_NUMBER = 9; + private java.lang.String minViamServerVersion_; + /** + *
+     * The minimum version of viam-server required to run this version of the module.
+     * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return Whether the minViamServerVersion field is set. + */ + @java.lang.Override + public boolean hasMinViamServerVersion() { + return ((bitField0_ & 0x00000008) != 0); + } + /** + *
+     * The minimum version of viam-server required to run this version of the module.
+     * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return The minViamServerVersion. + */ + @java.lang.Override + public java.lang.String getMinViamServerVersion() { + return minViamServerVersion_; + } + /** + *
+     * The minimum version of viam-server required to run this version of the module.
+     * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return The bytes for minViamServerVersion. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMinViamServerVersionBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(minViamServerVersion_); + } + /** + *
+     * The minimum version of viam-server required to run this version of the module.
+     * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @param value The minViamServerVersion to set. + */ + @java.lang.SuppressWarnings("ReturnValueIgnored") + private void setMinViamServerVersion( + java.lang.String value) { + value.getClass(); // minimal bytecode null check + bitField0_ |= 0x00000008; + minViamServerVersion_ = value; + } + /** + *
+     * The minimum version of viam-server required to run this version of the module.
+     * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + */ + private void clearMinViamServerVersion() { + bitField0_ = (bitField0_ & ~0x00000008); + minViamServerVersion_ = getDefaultInstance().getMinViamServerVersion(); + } + /** + *
+     * The minimum version of viam-server required to run this version of the module.
+     * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @param value The bytes for minViamServerVersion to set. + */ + private void setMinViamServerVersionBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + minViamServerVersion_ = value.toStringUtf8(); + bitField0_ |= 0x00000008; + } + public static viam.app.v1.AppOuterClass.ModuleVersion parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { @@ -91327,6 +91437,87 @@ public Builder mergeDeprecatedStatus(viam.app.v1.AppOuterClass.DeprecatedStatus return this; } + /** + *
+       * The minimum version of viam-server required to run this version of the module.
+       * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return Whether the minViamServerVersion field is set. + */ + @java.lang.Override + public boolean hasMinViamServerVersion() { + return instance.hasMinViamServerVersion(); + } + /** + *
+       * The minimum version of viam-server required to run this version of the module.
+       * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return The minViamServerVersion. + */ + @java.lang.Override + public java.lang.String getMinViamServerVersion() { + return instance.getMinViamServerVersion(); + } + /** + *
+       * The minimum version of viam-server required to run this version of the module.
+       * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return The bytes for minViamServerVersion. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMinViamServerVersionBytes() { + return instance.getMinViamServerVersionBytes(); + } + /** + *
+       * The minimum version of viam-server required to run this version of the module.
+       * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @param value The minViamServerVersion to set. + * @return This builder for chaining. + */ + public Builder setMinViamServerVersion( + java.lang.String value) { + copyOnWrite(); + instance.setMinViamServerVersion(value); + return this; + } + /** + *
+       * The minimum version of viam-server required to run this version of the module.
+       * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return This builder for chaining. + */ + public Builder clearMinViamServerVersion() { + copyOnWrite(); + instance.clearMinViamServerVersion(); + return this; + } + /** + *
+       * The minimum version of viam-server required to run this version of the module.
+       * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @param value The bytes for minViamServerVersion to set. + * @return This builder for chaining. + */ + public Builder setMinViamServerVersionBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setMinViamServerVersionBytes(value); + return this; + } + // @@protoc_insertion_point(builder_scope:viam.app.v1.ModuleVersion) } @java.lang.Override @@ -91355,10 +91546,12 @@ protected final java.lang.Object dynamicMethod( "apps_", viam.app.v1.AppOuterClass.App.class, "deprecatedStatus_", + "minViamServerVersion_", }; java.lang.String info = - "\u0000\b\u0000\u0001\u0001\b\b\u0000\u0003\u0000\u0001\u0208\u0002\u001b\u0003\u001b" + - "\u0004\u0208\u0005\u1208\u0000\u0006\u1208\u0001\u0007\u001b\b\u1009\u0002"; + "\u0000\t\u0000\u0001\u0001\t\t\u0000\u0003\u0000\u0001\u0208\u0002\u001b\u0003\u001b" + + "\u0004\u0208\u0005\u1208\u0000\u0006\u1208\u0001\u0007\u001b\b\u1009\u0002\t\u1208" + + "\u0003"; return newMessageInfo(DEFAULT_INSTANCE, info, objects); } case GET_DEFAULT_INSTANCE: { @@ -91631,6 +91824,35 @@ public interface ModuleMetadataOrBuilder extends * @return The language. */ viam.app.v1.AppOuterClass.ModuleLanguage getLanguage(); + + /** + *
+     * The minimum version of viam-server required to run the module.
+     * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return Whether the minViamServerVersion field is set. + */ + boolean hasMinViamServerVersion(); + /** + *
+     * The minimum version of viam-server required to run the module.
+     * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return The minViamServerVersion. + */ + java.lang.String getMinViamServerVersion(); + /** + *
+     * The minimum version of viam-server required to run the module.
+     * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return The bytes for minViamServerVersion. + */ + com.google.protobuf.ByteString + getMinViamServerVersionBytes(); } /** * Protobuf type {@code viam.app.v1.ModuleMetadata} @@ -91647,6 +91869,7 @@ private ModuleMetadata() { firstRun_ = ""; markdownDescription_ = ""; apps_ = emptyProtobufList(); + minViamServerVersion_ = ""; } private int bitField0_; public static final int MODELS_FIELD_NUMBER = 1; @@ -92461,6 +92684,86 @@ private void clearLanguage() { language_ = 0; } + public static final int MIN_VIAM_SERVER_VERSION_FIELD_NUMBER = 9; + private java.lang.String minViamServerVersion_; + /** + *
+     * The minimum version of viam-server required to run the module.
+     * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return Whether the minViamServerVersion field is set. + */ + @java.lang.Override + public boolean hasMinViamServerVersion() { + return ((bitField0_ & 0x00000010) != 0); + } + /** + *
+     * The minimum version of viam-server required to run the module.
+     * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return The minViamServerVersion. + */ + @java.lang.Override + public java.lang.String getMinViamServerVersion() { + return minViamServerVersion_; + } + /** + *
+     * The minimum version of viam-server required to run the module.
+     * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return The bytes for minViamServerVersion. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMinViamServerVersionBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(minViamServerVersion_); + } + /** + *
+     * The minimum version of viam-server required to run the module.
+     * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @param value The minViamServerVersion to set. + */ + @java.lang.SuppressWarnings("ReturnValueIgnored") + private void setMinViamServerVersion( + java.lang.String value) { + value.getClass(); // minimal bytecode null check + bitField0_ |= 0x00000010; + minViamServerVersion_ = value; + } + /** + *
+     * The minimum version of viam-server required to run the module.
+     * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + */ + private void clearMinViamServerVersion() { + bitField0_ = (bitField0_ & ~0x00000010); + minViamServerVersion_ = getDefaultInstance().getMinViamServerVersion(); + } + /** + *
+     * The minimum version of viam-server required to run the module.
+     * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @param value The bytes for minViamServerVersion to set. + */ + private void setMinViamServerVersionBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + minViamServerVersion_ = value.toStringUtf8(); + bitField0_ |= 0x00000010; + } + public static viam.app.v1.AppOuterClass.ModuleMetadata parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { @@ -93409,6 +93712,87 @@ public Builder clearLanguage() { return this; } + /** + *
+       * The minimum version of viam-server required to run the module.
+       * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return Whether the minViamServerVersion field is set. + */ + @java.lang.Override + public boolean hasMinViamServerVersion() { + return instance.hasMinViamServerVersion(); + } + /** + *
+       * The minimum version of viam-server required to run the module.
+       * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return The minViamServerVersion. + */ + @java.lang.Override + public java.lang.String getMinViamServerVersion() { + return instance.getMinViamServerVersion(); + } + /** + *
+       * The minimum version of viam-server required to run the module.
+       * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return The bytes for minViamServerVersion. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMinViamServerVersionBytes() { + return instance.getMinViamServerVersionBytes(); + } + /** + *
+       * The minimum version of viam-server required to run the module.
+       * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @param value The minViamServerVersion to set. + * @return This builder for chaining. + */ + public Builder setMinViamServerVersion( + java.lang.String value) { + copyOnWrite(); + instance.setMinViamServerVersion(value); + return this; + } + /** + *
+       * The minimum version of viam-server required to run the module.
+       * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @return This builder for chaining. + */ + public Builder clearMinViamServerVersion() { + copyOnWrite(); + instance.clearMinViamServerVersion(); + return this; + } + /** + *
+       * The minimum version of viam-server required to run the module.
+       * 
+ * + * optional string min_viam_server_version = 9 [json_name = "minViamServerVersion"]; + * @param value The bytes for minViamServerVersion to set. + * @return This builder for chaining. + */ + public Builder setMinViamServerVersionBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setMinViamServerVersionBytes(value); + return this; + } + // @@protoc_insertion_point(builder_scope:viam.app.v1.ModuleMetadata) } @java.lang.Override @@ -93437,11 +93821,12 @@ protected final java.lang.Object dynamicMethod( viam.app.v1.AppOuterClass.App.class, "sourceType_", "language_", + "minViamServerVersion_", }; java.lang.String info = - "\u0000\b\u0000\u0001\u0001\b\b\u0000\u0003\u0000\u0001\u001b\u0002\u001b\u0003\u0208" + + "\u0000\t\u0000\u0001\u0001\t\t\u0000\u0003\u0000\u0001\u001b\u0002\u001b\u0003\u0208" + "\u0004\u1208\u0000\u0005\u1208\u0001\u0006\u001b\u0007\u100c\u0002\b\u100c\u0003" + - ""; + "\t\u1208\u0004"; return newMessageInfo(DEFAULT_INSTANCE, info, objects); } case GET_DEFAULT_INSTANCE: { @@ -93912,7 +94297,7 @@ public interface MLModelMetadataOrBuilder extends * * repeated string versions = 1 [json_name = "versions", deprecated = true]; * @deprecated viam.app.v1.MLModelMetadata.versions is deprecated. - * See app/v1/app.proto;l=1463 + * See app/v1/app.proto;l=1467 * @return A list containing the versions. */ @java.lang.Deprecated java.util.List @@ -93924,7 +94309,7 @@ public interface MLModelMetadataOrBuilder extends * * repeated string versions = 1 [json_name = "versions", deprecated = true]; * @deprecated viam.app.v1.MLModelMetadata.versions is deprecated. - * See app/v1/app.proto;l=1463 + * See app/v1/app.proto;l=1467 * @return The count of versions. */ @java.lang.Deprecated int getVersionsCount(); @@ -93935,7 +94320,7 @@ public interface MLModelMetadataOrBuilder extends * * repeated string versions = 1 [json_name = "versions", deprecated = true]; * @deprecated viam.app.v1.MLModelMetadata.versions is deprecated. - * See app/v1/app.proto;l=1463 + * See app/v1/app.proto;l=1467 * @param index The index of the element to return. * @return The versions at the given index. */ @@ -93947,7 +94332,7 @@ public interface MLModelMetadataOrBuilder extends * * repeated string versions = 1 [json_name = "versions", deprecated = true]; * @deprecated viam.app.v1.MLModelMetadata.versions is deprecated. - * See app/v1/app.proto;l=1463 + * See app/v1/app.proto;l=1467 * @param index The index of the element to return. * @return The versions at the given index. */ @@ -94011,7 +94396,7 @@ private MLModelMetadata() { * * repeated string versions = 1 [json_name = "versions", deprecated = true]; * @deprecated viam.app.v1.MLModelMetadata.versions is deprecated. - * See app/v1/app.proto;l=1463 + * See app/v1/app.proto;l=1467 * @return A list containing the versions. */ @java.lang.Override @@ -94025,7 +94410,7 @@ private MLModelMetadata() { * * repeated string versions = 1 [json_name = "versions", deprecated = true]; * @deprecated viam.app.v1.MLModelMetadata.versions is deprecated. - * See app/v1/app.proto;l=1463 + * See app/v1/app.proto;l=1467 * @return The count of versions. */ @java.lang.Override @@ -94039,7 +94424,7 @@ private MLModelMetadata() { * * repeated string versions = 1 [json_name = "versions", deprecated = true]; * @deprecated viam.app.v1.MLModelMetadata.versions is deprecated. - * See app/v1/app.proto;l=1463 + * See app/v1/app.proto;l=1467 * @param index The index of the element to return. * @return The versions at the given index. */ @@ -94054,7 +94439,7 @@ private MLModelMetadata() { * * repeated string versions = 1 [json_name = "versions", deprecated = true]; * @deprecated viam.app.v1.MLModelMetadata.versions is deprecated. - * See app/v1/app.proto;l=1463 + * See app/v1/app.proto;l=1467 * @param index The index of the value to return. * @return The bytes of the versions at the given index. */ @@ -94428,7 +94813,7 @@ private Builder() { * * repeated string versions = 1 [json_name = "versions", deprecated = true]; * @deprecated viam.app.v1.MLModelMetadata.versions is deprecated. - * See app/v1/app.proto;l=1463 + * See app/v1/app.proto;l=1467 * @return A list containing the versions. */ @java.lang.Override @@ -94444,7 +94829,7 @@ private Builder() { * * repeated string versions = 1 [json_name = "versions", deprecated = true]; * @deprecated viam.app.v1.MLModelMetadata.versions is deprecated. - * See app/v1/app.proto;l=1463 + * See app/v1/app.proto;l=1467 * @return The count of versions. */ @java.lang.Override @@ -94458,7 +94843,7 @@ private Builder() { * * repeated string versions = 1 [json_name = "versions", deprecated = true]; * @deprecated viam.app.v1.MLModelMetadata.versions is deprecated. - * See app/v1/app.proto;l=1463 + * See app/v1/app.proto;l=1467 * @param index The index of the element to return. * @return The versions at the given index. */ @@ -94473,7 +94858,7 @@ private Builder() { * * repeated string versions = 1 [json_name = "versions", deprecated = true]; * @deprecated viam.app.v1.MLModelMetadata.versions is deprecated. - * See app/v1/app.proto;l=1463 + * See app/v1/app.proto;l=1467 * @param index The index of the value to return. * @return The bytes of the versions at the given index. */ @@ -94489,7 +94874,7 @@ private Builder() { * * repeated string versions = 1 [json_name = "versions", deprecated = true]; * @deprecated viam.app.v1.MLModelMetadata.versions is deprecated. - * See app/v1/app.proto;l=1463 + * See app/v1/app.proto;l=1467 * @param index The index to set the value at. * @param value The versions to set. * @return This builder for chaining. @@ -94507,7 +94892,7 @@ private Builder() { * * repeated string versions = 1 [json_name = "versions", deprecated = true]; * @deprecated viam.app.v1.MLModelMetadata.versions is deprecated. - * See app/v1/app.proto;l=1463 + * See app/v1/app.proto;l=1467 * @param value The versions to add. * @return This builder for chaining. */ @@ -94524,7 +94909,7 @@ private Builder() { * * repeated string versions = 1 [json_name = "versions", deprecated = true]; * @deprecated viam.app.v1.MLModelMetadata.versions is deprecated. - * See app/v1/app.proto;l=1463 + * See app/v1/app.proto;l=1467 * @param values The versions to add. * @return This builder for chaining. */ @@ -94541,7 +94926,7 @@ private Builder() { * * repeated string versions = 1 [json_name = "versions", deprecated = true]; * @deprecated viam.app.v1.MLModelMetadata.versions is deprecated. - * See app/v1/app.proto;l=1463 + * See app/v1/app.proto;l=1467 * @return This builder for chaining. */ @java.lang.Deprecated public Builder clearVersions() { @@ -94556,7 +94941,7 @@ private Builder() { * * repeated string versions = 1 [json_name = "versions", deprecated = true]; * @deprecated viam.app.v1.MLModelMetadata.versions is deprecated. - * See app/v1/app.proto;l=1463 + * See app/v1/app.proto;l=1467 * @param value The bytes of the versions to add. * @return This builder for chaining. */ @@ -114831,6 +115216,35 @@ public interface UpdateModuleMetadataOrBuilder extends * @return The language. */ viam.app.v1.AppOuterClass.ModuleLanguage getLanguage(); + + /** + *
+     * The minimum version of viam-server required to run the module.
+     * 
+ * + * optional string min_viam_server_version = 6 [json_name = "minViamServerVersion"]; + * @return Whether the minViamServerVersion field is set. + */ + boolean hasMinViamServerVersion(); + /** + *
+     * The minimum version of viam-server required to run the module.
+     * 
+ * + * optional string min_viam_server_version = 6 [json_name = "minViamServerVersion"]; + * @return The minViamServerVersion. + */ + java.lang.String getMinViamServerVersion(); + /** + *
+     * The minimum version of viam-server required to run the module.
+     * 
+ * + * optional string min_viam_server_version = 6 [json_name = "minViamServerVersion"]; + * @return The bytes for minViamServerVersion. + */ + com.google.protobuf.ByteString + getMinViamServerVersionBytes(); } /** * Protobuf type {@code viam.app.v1.UpdateModuleMetadata} @@ -114844,6 +115258,7 @@ private UpdateModuleMetadata() { models_ = emptyProtobufList(); entrypoint_ = ""; apps_ = emptyProtobufList(); + minViamServerVersion_ = ""; } private int bitField0_; public static final int MODELS_FIELD_NUMBER = 1; @@ -115346,6 +115761,86 @@ private void clearLanguage() { language_ = 0; } + public static final int MIN_VIAM_SERVER_VERSION_FIELD_NUMBER = 6; + private java.lang.String minViamServerVersion_; + /** + *
+     * The minimum version of viam-server required to run the module.
+     * 
+ * + * optional string min_viam_server_version = 6 [json_name = "minViamServerVersion"]; + * @return Whether the minViamServerVersion field is set. + */ + @java.lang.Override + public boolean hasMinViamServerVersion() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + *
+     * The minimum version of viam-server required to run the module.
+     * 
+ * + * optional string min_viam_server_version = 6 [json_name = "minViamServerVersion"]; + * @return The minViamServerVersion. + */ + @java.lang.Override + public java.lang.String getMinViamServerVersion() { + return minViamServerVersion_; + } + /** + *
+     * The minimum version of viam-server required to run the module.
+     * 
+ * + * optional string min_viam_server_version = 6 [json_name = "minViamServerVersion"]; + * @return The bytes for minViamServerVersion. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMinViamServerVersionBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(minViamServerVersion_); + } + /** + *
+     * The minimum version of viam-server required to run the module.
+     * 
+ * + * optional string min_viam_server_version = 6 [json_name = "minViamServerVersion"]; + * @param value The minViamServerVersion to set. + */ + @java.lang.SuppressWarnings("ReturnValueIgnored") + private void setMinViamServerVersion( + java.lang.String value) { + value.getClass(); // minimal bytecode null check + bitField0_ |= 0x00000004; + minViamServerVersion_ = value; + } + /** + *
+     * The minimum version of viam-server required to run the module.
+     * 
+ * + * optional string min_viam_server_version = 6 [json_name = "minViamServerVersion"]; + */ + private void clearMinViamServerVersion() { + bitField0_ = (bitField0_ & ~0x00000004); + minViamServerVersion_ = getDefaultInstance().getMinViamServerVersion(); + } + /** + *
+     * The minimum version of viam-server required to run the module.
+     * 
+ * + * optional string min_viam_server_version = 6 [json_name = "minViamServerVersion"]; + * @param value The bytes for minViamServerVersion to set. + */ + private void setMinViamServerVersionBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + minViamServerVersion_ = value.toStringUtf8(); + bitField0_ |= 0x00000004; + } + public static viam.app.v1.AppOuterClass.UpdateModuleMetadata parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { @@ -115970,6 +116465,87 @@ public Builder clearLanguage() { return this; } + /** + *
+       * The minimum version of viam-server required to run the module.
+       * 
+ * + * optional string min_viam_server_version = 6 [json_name = "minViamServerVersion"]; + * @return Whether the minViamServerVersion field is set. + */ + @java.lang.Override + public boolean hasMinViamServerVersion() { + return instance.hasMinViamServerVersion(); + } + /** + *
+       * The minimum version of viam-server required to run the module.
+       * 
+ * + * optional string min_viam_server_version = 6 [json_name = "minViamServerVersion"]; + * @return The minViamServerVersion. + */ + @java.lang.Override + public java.lang.String getMinViamServerVersion() { + return instance.getMinViamServerVersion(); + } + /** + *
+       * The minimum version of viam-server required to run the module.
+       * 
+ * + * optional string min_viam_server_version = 6 [json_name = "minViamServerVersion"]; + * @return The bytes for minViamServerVersion. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMinViamServerVersionBytes() { + return instance.getMinViamServerVersionBytes(); + } + /** + *
+       * The minimum version of viam-server required to run the module.
+       * 
+ * + * optional string min_viam_server_version = 6 [json_name = "minViamServerVersion"]; + * @param value The minViamServerVersion to set. + * @return This builder for chaining. + */ + public Builder setMinViamServerVersion( + java.lang.String value) { + copyOnWrite(); + instance.setMinViamServerVersion(value); + return this; + } + /** + *
+       * The minimum version of viam-server required to run the module.
+       * 
+ * + * optional string min_viam_server_version = 6 [json_name = "minViamServerVersion"]; + * @return This builder for chaining. + */ + public Builder clearMinViamServerVersion() { + copyOnWrite(); + instance.clearMinViamServerVersion(); + return this; + } + /** + *
+       * The minimum version of viam-server required to run the module.
+       * 
+ * + * optional string min_viam_server_version = 6 [json_name = "minViamServerVersion"]; + * @param value The bytes for minViamServerVersion to set. + * @return This builder for chaining. + */ + public Builder setMinViamServerVersionBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setMinViamServerVersionBytes(value); + return this; + } + // @@protoc_insertion_point(builder_scope:viam.app.v1.UpdateModuleMetadata) } @java.lang.Override @@ -115994,10 +116570,11 @@ protected final java.lang.Object dynamicMethod( viam.app.v1.AppOuterClass.App.class, "sourceType_", "language_", + "minViamServerVersion_", }; java.lang.String info = - "\u0000\u0005\u0000\u0001\u0001\u0005\u0005\u0000\u0002\u0000\u0001\u001b\u0002\u0208" + - "\u0003\u001b\u0004\u100c\u0000\u0005\u100c\u0001"; + "\u0000\u0006\u0000\u0001\u0001\u0006\u0006\u0000\u0002\u0000\u0001\u001b\u0002\u0208" + + "\u0003\u001b\u0004\u100c\u0000\u0005\u100c\u0001\u0006\u1208\u0002"; return newMessageInfo(DEFAULT_INSTANCE, info, objects); } case GET_DEFAULT_INSTANCE: { diff --git a/core/sdk/src/main/resources/protofds/viam.api b/core/sdk/src/main/resources/protofds/viam.api index 3a4e6fa3ecff669f18da1791e208ae3465cceca5..221f8f20cabe5396da1e8020c3227379e464c285 100644 GIT binary patch delta 38011 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%0Df(FWh&sWd6~{(zT;2vUP|`NuMOYtBLE`WK->R- zaNh63TmxhN{uGD6Disj(_uGJk5x>UwP%3!XSoobiZicw*Q5e| zOWl-PuXopI;87PeuXi6yez_!bP>mmgw++WW;(aXD-agI%!uD9o-iV?C!P=C)cNfAD zpzX6jliSJOasg3Yn=;q%VZ?3z`c%MAq8dkZo6k>jSNZjUD8fzJ;D)4lXXZa^{HCgn zJh%F=Z%FYo`iiu@HSGG;f@d_qDSGC5ePfEB zSQZV4>IGUOK#Xim@fU?`?m$)V#?)@Ty);%frucbfS>fXQxm3WYfVttkx7lzv%F}>Q}KTsSMkgSBxcL00(I%l;ZU2wI@+&p>2%q&nG; zmx0jkNZFS%sFL~5lzm(vL_mPHZh$72XP9!o21fUvDPHy{A}snRgghu#Kz2cJLdfhb zU)xsViDAHZA113USrbEU>r?@47|^R(H#u8KgI2U_z$ zN-{0X*(DJW)oEcn`;|Tr^V34^tW=}y9(k#P(rk7;qP=tR_*+4Bg*K zU`N10*)^ReyFUQhM@m2%)~uRqEM%j4OX!|Wfh@ESgn$U&61vw<=9GH&P9~`W?ZYE7 zk)0h@HOGcgXMR#E47f8hu6IUqZfLe1QPkPQpG!tN2Lh>9psiLQ!t=s*b~yzk9`i!C zzU(ZU+~L{b2}A<{+6Dq7wDW!Y1RCLr9j$;c%@56JRg)X|dz)`-AgF+zO4o?D?WB@j z?h0*NLl~;td|TVC5-$jY#jdQoA-N#rw^vm6yQwY~`nm_f3gl8;;{_Pug}&~A&@S}D z$8NH@C=3sAvMMXkI!Go_Tja+#pb_q3cBl}mtcybawuoA77gqP7+XZ$(ZV8V9>^5+B zZXv_qF6a90V{pgF^2?Ypf`vwrY*1uMgc?35@Rgu&Z5I0kN_^0u6y+&DfB;c_D&$u%yM2*-!A|B;w6DC|>|+4JJD~LrhYTRqj`P>ja|v zsvp<)tHfKw;0@=|en@T&-HF70^62%@{@I`iM7e>s+(4|n9=d%h5Y^Yi-R-Idh>_RB zefJw=28AE-W;hI5%{=)d1m6nT0IBKiUy0udgAbhf{mFVq0pX8WM$!JV|9;ZECNsD8 zz8|+pMCkp{ttf#Qdf%=n!>D^D{wNGSb#&d4{K(g0cd>o!XDJXv8qki0Kx9AmlN1ov zkNqUoJ=BNmpM-8((%l3YXxkOgi^la}@^PIC}?>^)-J;$BY;U z$li9p+y+sfKwFT|oFYk{b454+gacMXjB?OIW3knhEADh%wWM7|eUV?FCLYiHs zM!`O6`sbzH)Cxiu=yg>y=cV1$N-nDBrQOupN5k^OwCiCYRDoVq#1qqeKclg%MmD+= z)AqXo%z`GR?Xpk^U7*+1{5UDi_a)LL*9bEVs|<$S<};OQxuGTx{|m)9nNyW0F!-v z+WfNifLQs8$BcB;YW`HZ!AOwMZf63uG9%3y^B7)eO9FwLlF92b*bS zQ`#CxA%w*T~nZs%`(@{%ZPVI1JnlGbNul;0ycG_)hL3C1}4K9#QIy=oz(yF}x zF+DroYPY#SVm&+Uwz>V}*POH)r9h|xwN_+j4mQ~(djJYVcaBPBy}+kic{JnfXvqS! z=RW<+lI7Mkzc6mSP-nO`?T&5x3C&IOP}*kdoixxFKpXYBHQ%xj#*4Y>cJ@dIXq0&* zZM{HuUfS)H`hsba?HUYWnC7M360Dy(_x!q3HSPdH|!v|eY0+W5G?Mbn+6^y06BN>bU33Q~+^bnJRr%To5_NRv^0g1bkJvL-| zbiK>>B$JHXUFt~(J2~+3X>0;M~@$K=CJChp(BU&v~@r}b%20vZa|8?I_)+dK%8Ek=8VCT zk+~+B@N}lyV~y{DhnWVj#`i!VDr?jO_c!+OW^MB1)0rMU)@r^`J2=dA+O_G<-8@8P zZF>Liy2d9Lv_9GQnanSHuJ_pPqi>Rjh3b79)BH}5byU4?V|p*UT_P8TjcIoI zYLWdb@pI{5Qe>AA{gHew%{xf7$o^`P&!@xBU5f;h{k&S_VbmT_^|F~3+4`gE*reyC z%t3pC?6_`n3EO71o^@(HNm;NgH7k-%pLJMd|CLjgDzO=Z;2$Lv)#8uAS&C{65mj>>Myt> zS-m;)R?i(fT~t%t;hPmQ5>m6eHEnbV*Tm(|zL=Sps!fdQwJ3nJH&fC}e@oO-Gy={bP_GE43p=k3TDGh9JXb$*eVFU+0=r zW$vfW9Qd**YTr7rZswe!W1$~5s=D*lb#>^dvt-^{9ro98V{l~HSqJcLd-&PIhc#G~ z`|#O?j9gG{Ul!3Xj@O6IN}-mfaTwitX!Y#jV|WohX8fq0W6!CMJ#)!- zO(MP~|Am^OTG|YHee1EN(tSJ8bW)}A&Kh>+h@oRJK75qPH{SwO&#a9eb@p&#>R$XG zWnj;fP$Hu04DeD8i0u#n#Elt|d-npQ=4M26+jS z95I9{95$kRb?k`R(2+w%4n3DBj61Vu-K2&NXzZ49fEhY&iuT;sIi!)}rifqK+}D^S z3bR!1PSrEVj~O#;)VS)1;b#v!^KWNTYo^cnf@nd5q#ck3n89UMEpm%fFtoE&5=}q@ zgyuxyF0K8l=ZqgYbX1Qq!-k$^T7vnGfq0IiGOK?%hdyC@_P~MF#z+6&s&;%3`S7WA z&WYTtH-HaqjUC1(4TA&JH0MQOkJddc^SE1E8K$UW*Im(neYxO4fnDIBlTmqcNw)}L5A)v?3>pJD&A zSiV$rHdE}L)!z&oGrBt57T#!3u}lQN(@fx&djrgO#c+E+^bBW7cg`sQc2I8Z~u-BH-S^_ZmlGnuZ*2QO#3^(B>3l5E+5=-eG?mq84G zu-~mQSu4YV8nW+Aj(H`sZ;k&`pZEF}22`GJVL%k`RSVNz`*4=QQD6@+4o7ZfWX^}f z=m>sdB?=yO{vJWr0}pc*L zhrIVdoOnpy|IQGS`Ec@+S2Mq<9brx#9^R=a?;rL}ms}JdR@2pv=mbAz&XWQWT^G4S zD)FXo%QD9&OHa>sJ&IID8j@}Q22#b(MDC0h2;(!6drJg_@tKIXM0(UWNN7`( z41Kyyj~W2YO_AH80MXnOxp#>`BkSHJ4rbXM1)E)r1|#`=WR7>EXs|-`LKNDaGzeCp h-LeCbeIashYk;u65ba()W6IL4ndM8jX5aa@{{zXJ2M7QF delta 35298 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