From a7daf5107b1a82e78ebccfe08a0f545a91ee6e2e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 10:52:21 -0400 Subject: [PATCH] Automated Protos Update (#74) Co-authored-by: viambot --- api_version.lock | 2 +- .../fileupload/v1/FileUploadServiceGrpc.java | 16 +- .../v1/MLInferenceServiceGrpc.java | 256 +++++ .../viam/app/mlinference/v1/MlInference.java | 894 +++++++++++++++ core/sdk/src/main/gen/viam/app/v1/App.java | 1010 ++++++++++++++++- core/sdk/src/main/gen/viam/app/v1/Robot.java | 161 ++- core/sdk/src/main/resources/protofds/viam.api | Bin 522967 -> 525706 bytes 7 files changed, 2310 insertions(+), 29 deletions(-) create mode 100644 core/sdk/src/main/gen/viam/app/mlinference/v1/MLInferenceServiceGrpc.java create mode 100644 core/sdk/src/main/gen/viam/app/mlinference/v1/MlInference.java diff --git a/api_version.lock b/api_version.lock index 16403e4f5..83689945e 100644 --- a/api_version.lock +++ b/api_version.lock @@ -1 +1 @@ -v0.1.341 +v0.1.345 diff --git a/core/sdk/src/main/gen/proto/rpc/examples/fileupload/v1/FileUploadServiceGrpc.java b/core/sdk/src/main/gen/proto/rpc/examples/fileupload/v1/FileUploadServiceGrpc.java index 255fcd72a..01d011d87 100644 --- a/core/sdk/src/main/gen/proto/rpc/examples/fileupload/v1/FileUploadServiceGrpc.java +++ b/core/sdk/src/main/gen/proto/rpc/examples/fileupload/v1/FileUploadServiceGrpc.java @@ -22,7 +22,7 @@ private FileUploadServiceGrpc() {} fullMethodName = SERVICE_NAME + '/' + "UploadFile", requestType = proto.rpc.examples.fileupload.v1.Fileupload.UploadFileRequest.class, responseType = proto.rpc.examples.fileupload.v1.Fileupload.UploadFileResponse.class, - methodType = io.grpc.MethodDescriptor.MethodType.BIDI_STREAMING) + methodType = io.grpc.MethodDescriptor.MethodType.CLIENT_STREAMING) public static io.grpc.MethodDescriptor getUploadFileMethod() { io.grpc.MethodDescriptor getUploadFileMethod; @@ -31,7 +31,7 @@ proto.rpc.examples.fileupload.v1.Fileupload.UploadFileResponse> getUploadFileMet if ((getUploadFileMethod = FileUploadServiceGrpc.getUploadFileMethod) == null) { FileUploadServiceGrpc.getUploadFileMethod = getUploadFileMethod = io.grpc.MethodDescriptor.newBuilder() - .setType(io.grpc.MethodDescriptor.MethodType.BIDI_STREAMING) + .setType(io.grpc.MethodDescriptor.MethodType.CLIENT_STREAMING) .setFullMethodName(generateFullMethodName(SERVICE_NAME, "UploadFile")) .setSampledToLocalTracing(true) .setRequestMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller( @@ -94,10 +94,6 @@ public FileUploadServiceFutureStub newStub(io.grpc.Channel channel, io.grpc.Call public interface AsyncService { /** - *
-     * Due to an issue described by https://github.com/improbable-eng/ts-protoc-gen/pull/264
-     * we use a streaming response but only expect one response.
-     * 
*/ default io.grpc.stub.StreamObserver uploadFile( io.grpc.stub.StreamObserver responseObserver) { @@ -133,14 +129,10 @@ protected FileUploadServiceStub build( } /** - *
-     * Due to an issue described by https://github.com/improbable-eng/ts-protoc-gen/pull/264
-     * we use a streaming response but only expect one response.
-     * 
*/ public io.grpc.stub.StreamObserver uploadFile( io.grpc.stub.StreamObserver responseObserver) { - return io.grpc.stub.ClientCalls.asyncBidiStreamingCall( + return io.grpc.stub.ClientCalls.asyncClientStreamingCall( getChannel().newCall(getUploadFileMethod(), getCallOptions()), responseObserver); } } @@ -221,7 +213,7 @@ public static final io.grpc.ServerServiceDefinition bindService(AsyncService ser return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) .addMethod( getUploadFileMethod(), - io.grpc.stub.ServerCalls.asyncBidiStreamingCall( + io.grpc.stub.ServerCalls.asyncClientStreamingCall( new MethodHandlers< proto.rpc.examples.fileupload.v1.Fileupload.UploadFileRequest, proto.rpc.examples.fileupload.v1.Fileupload.UploadFileResponse>( diff --git a/core/sdk/src/main/gen/viam/app/mlinference/v1/MLInferenceServiceGrpc.java b/core/sdk/src/main/gen/viam/app/mlinference/v1/MLInferenceServiceGrpc.java new file mode 100644 index 000000000..dbe9cb1f0 --- /dev/null +++ b/core/sdk/src/main/gen/viam/app/mlinference/v1/MLInferenceServiceGrpc.java @@ -0,0 +1,256 @@ +package viam.app.mlinference.v1; + +import static io.grpc.MethodDescriptor.generateFullMethodName; + +/** + */ +@javax.annotation.Generated( + value = "by gRPC proto compiler (version 1.65.1)", + comments = "Source: app/mlinference/v1/ml_inference.proto") +@io.grpc.stub.annotations.GrpcGenerated +public final class MLInferenceServiceGrpc { + + private MLInferenceServiceGrpc() {} + + public static final java.lang.String SERVICE_NAME = "viam.app.mlinference.v1.MLInferenceService"; + + // Static method descriptors that strictly reflect the proto. + private static volatile io.grpc.MethodDescriptor getGetInferenceMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "GetInference", + requestType = viam.app.mlinference.v1.MlInference.GetInferenceRequest.class, + responseType = viam.app.mlinference.v1.MlInference.GetInferenceResponse.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getGetInferenceMethod() { + io.grpc.MethodDescriptor getGetInferenceMethod; + if ((getGetInferenceMethod = MLInferenceServiceGrpc.getGetInferenceMethod) == null) { + synchronized (MLInferenceServiceGrpc.class) { + if ((getGetInferenceMethod = MLInferenceServiceGrpc.getGetInferenceMethod) == null) { + MLInferenceServiceGrpc.getGetInferenceMethod = getGetInferenceMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "GetInference")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller( + viam.app.mlinference.v1.MlInference.GetInferenceRequest.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller( + viam.app.mlinference.v1.MlInference.GetInferenceResponse.getDefaultInstance())) + .build(); + } + } + } + return getGetInferenceMethod; + } + + /** + * Creates a new async stub that supports all call types for the service + */ + public static MLInferenceServiceStub newStub(io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public MLInferenceServiceStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new MLInferenceServiceStub(channel, callOptions); + } + }; + return MLInferenceServiceStub.newStub(factory, channel); + } + + /** + * Creates a new blocking-style stub that supports unary and streaming output calls on the service + */ + public static MLInferenceServiceBlockingStub newBlockingStub( + io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public MLInferenceServiceBlockingStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new MLInferenceServiceBlockingStub(channel, callOptions); + } + }; + return MLInferenceServiceBlockingStub.newStub(factory, channel); + } + + /** + * Creates a new ListenableFuture-style stub that supports unary calls on the service + */ + public static MLInferenceServiceFutureStub newFutureStub( + io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public MLInferenceServiceFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new MLInferenceServiceFutureStub(channel, callOptions); + } + }; + return MLInferenceServiceFutureStub.newStub(factory, channel); + } + + /** + */ + public interface AsyncService { + + /** + */ + default void getInference(viam.app.mlinference.v1.MlInference.GetInferenceRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetInferenceMethod(), responseObserver); + } + } + + /** + * Base class for the server implementation of the service MLInferenceService. + */ + public static abstract class MLInferenceServiceImplBase + implements io.grpc.BindableService, AsyncService { + + @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { + return MLInferenceServiceGrpc.bindService(this); + } + } + + /** + * A stub to allow clients to do asynchronous rpc calls to service MLInferenceService. + */ + public static final class MLInferenceServiceStub + extends io.grpc.stub.AbstractAsyncStub { + private MLInferenceServiceStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected MLInferenceServiceStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new MLInferenceServiceStub(channel, callOptions); + } + + /** + */ + public void getInference(viam.app.mlinference.v1.MlInference.GetInferenceRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getGetInferenceMethod(), getCallOptions()), request, responseObserver); + } + } + + /** + * A stub to allow clients to do synchronous rpc calls to service MLInferenceService. + */ + public static final class MLInferenceServiceBlockingStub + extends io.grpc.stub.AbstractBlockingStub { + private MLInferenceServiceBlockingStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected MLInferenceServiceBlockingStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new MLInferenceServiceBlockingStub(channel, callOptions); + } + + /** + */ + public viam.app.mlinference.v1.MlInference.GetInferenceResponse getInference(viam.app.mlinference.v1.MlInference.GetInferenceRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getGetInferenceMethod(), getCallOptions(), request); + } + } + + /** + * A stub to allow clients to do ListenableFuture-style rpc calls to service MLInferenceService. + */ + public static final class MLInferenceServiceFutureStub + extends io.grpc.stub.AbstractFutureStub { + private MLInferenceServiceFutureStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected MLInferenceServiceFutureStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new MLInferenceServiceFutureStub(channel, callOptions); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture getInference( + viam.app.mlinference.v1.MlInference.GetInferenceRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getGetInferenceMethod(), getCallOptions()), request); + } + } + + private static final int METHODID_GET_INFERENCE = 0; + + private static final class MethodHandlers implements + io.grpc.stub.ServerCalls.UnaryMethod, + io.grpc.stub.ServerCalls.ServerStreamingMethod, + io.grpc.stub.ServerCalls.ClientStreamingMethod, + io.grpc.stub.ServerCalls.BidiStreamingMethod { + private final AsyncService serviceImpl; + private final int methodId; + + MethodHandlers(AsyncService serviceImpl, int methodId) { + this.serviceImpl = serviceImpl; + this.methodId = methodId; + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public void invoke(Req request, io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + case METHODID_GET_INFERENCE: + serviceImpl.getInference((viam.app.mlinference.v1.MlInference.GetInferenceRequest) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + default: + throw new AssertionError(); + } + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public io.grpc.stub.StreamObserver invoke( + io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + default: + throw new AssertionError(); + } + } + } + + public static final io.grpc.ServerServiceDefinition bindService(AsyncService service) { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + getGetInferenceMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + viam.app.mlinference.v1.MlInference.GetInferenceRequest, + viam.app.mlinference.v1.MlInference.GetInferenceResponse>( + service, METHODID_GET_INFERENCE))) + .build(); + } + + private static volatile io.grpc.ServiceDescriptor serviceDescriptor; + + public static io.grpc.ServiceDescriptor getServiceDescriptor() { + io.grpc.ServiceDescriptor result = serviceDescriptor; + if (result == null) { + synchronized (MLInferenceServiceGrpc.class) { + result = serviceDescriptor; + if (result == null) { + serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME) + .addMethod(getGetInferenceMethod()) + .build(); + } + } + } + return result; + } +} diff --git a/core/sdk/src/main/gen/viam/app/mlinference/v1/MlInference.java b/core/sdk/src/main/gen/viam/app/mlinference/v1/MlInference.java new file mode 100644 index 000000000..6f5fa2830 --- /dev/null +++ b/core/sdk/src/main/gen/viam/app/mlinference/v1/MlInference.java @@ -0,0 +1,894 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// NO CHECKED-IN PROTOBUF GENCODE +// source: app/mlinference/v1/ml_inference.proto +// Protobuf Java Version: 4.27.2 + +package viam.app.mlinference.v1; + +public final class MlInference { + private MlInference() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + public interface GetInferenceRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:viam.app.mlinference.v1.GetInferenceRequest) + com.google.protobuf.MessageLiteOrBuilder { + + /** + *
+     * The model framework and model type are inferred from the ML model registry item;
+     * For valid model types (classification, detections) we will return the formatted
+     * labels or annotations from the associated inference outputs.
+     * 
+ * + * string registry_item_id = 1 [json_name = "registryItemId"]; + * @return The registryItemId. + */ + java.lang.String getRegistryItemId(); + /** + *
+     * The model framework and model type are inferred from the ML model registry item;
+     * For valid model types (classification, detections) we will return the formatted
+     * labels or annotations from the associated inference outputs.
+     * 
+ * + * string registry_item_id = 1 [json_name = "registryItemId"]; + * @return The bytes for registryItemId. + */ + com.google.protobuf.ByteString + getRegistryItemIdBytes(); + + /** + * string registry_item_version = 2 [json_name = "registryItemVersion"]; + * @return The registryItemVersion. + */ + java.lang.String getRegistryItemVersion(); + /** + * string registry_item_version = 2 [json_name = "registryItemVersion"]; + * @return The bytes for registryItemVersion. + */ + com.google.protobuf.ByteString + getRegistryItemVersionBytes(); + + /** + * .viam.app.data.v1.BinaryID binary_id = 3 [json_name = "binaryId"]; + * @return Whether the binaryId field is set. + */ + boolean hasBinaryId(); + /** + * .viam.app.data.v1.BinaryID binary_id = 3 [json_name = "binaryId"]; + * @return The binaryId. + */ + viam.app.data.v1.Data.BinaryID getBinaryId(); + + /** + * string organization_id = 4 [json_name = "organizationId"]; + * @return The organizationId. + */ + java.lang.String getOrganizationId(); + /** + * string organization_id = 4 [json_name = "organizationId"]; + * @return The bytes for organizationId. + */ + com.google.protobuf.ByteString + getOrganizationIdBytes(); + } + /** + * Protobuf type {@code viam.app.mlinference.v1.GetInferenceRequest} + */ + public static final class GetInferenceRequest extends + com.google.protobuf.GeneratedMessageLite< + GetInferenceRequest, GetInferenceRequest.Builder> implements + // @@protoc_insertion_point(message_implements:viam.app.mlinference.v1.GetInferenceRequest) + GetInferenceRequestOrBuilder { + private GetInferenceRequest() { + registryItemId_ = ""; + registryItemVersion_ = ""; + organizationId_ = ""; + } + private int bitField0_; + public static final int REGISTRY_ITEM_ID_FIELD_NUMBER = 1; + private java.lang.String registryItemId_; + /** + *
+     * The model framework and model type are inferred from the ML model registry item;
+     * For valid model types (classification, detections) we will return the formatted
+     * labels or annotations from the associated inference outputs.
+     * 
+ * + * string registry_item_id = 1 [json_name = "registryItemId"]; + * @return The registryItemId. + */ + @java.lang.Override + public java.lang.String getRegistryItemId() { + return registryItemId_; + } + /** + *
+     * The model framework and model type are inferred from the ML model registry item;
+     * For valid model types (classification, detections) we will return the formatted
+     * labels or annotations from the associated inference outputs.
+     * 
+ * + * string registry_item_id = 1 [json_name = "registryItemId"]; + * @return The bytes for registryItemId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getRegistryItemIdBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(registryItemId_); + } + /** + *
+     * The model framework and model type are inferred from the ML model registry item;
+     * For valid model types (classification, detections) we will return the formatted
+     * labels or annotations from the associated inference outputs.
+     * 
+ * + * string registry_item_id = 1 [json_name = "registryItemId"]; + * @param value The registryItemId to set. + */ + private void setRegistryItemId( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + registryItemId_ = value; + } + /** + *
+     * The model framework and model type are inferred from the ML model registry item;
+     * For valid model types (classification, detections) we will return the formatted
+     * labels or annotations from the associated inference outputs.
+     * 
+ * + * string registry_item_id = 1 [json_name = "registryItemId"]; + */ + private void clearRegistryItemId() { + + registryItemId_ = getDefaultInstance().getRegistryItemId(); + } + /** + *
+     * The model framework and model type are inferred from the ML model registry item;
+     * For valid model types (classification, detections) we will return the formatted
+     * labels or annotations from the associated inference outputs.
+     * 
+ * + * string registry_item_id = 1 [json_name = "registryItemId"]; + * @param value The bytes for registryItemId to set. + */ + private void setRegistryItemIdBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + registryItemId_ = value.toStringUtf8(); + + } + + public static final int REGISTRY_ITEM_VERSION_FIELD_NUMBER = 2; + private java.lang.String registryItemVersion_; + /** + * string registry_item_version = 2 [json_name = "registryItemVersion"]; + * @return The registryItemVersion. + */ + @java.lang.Override + public java.lang.String getRegistryItemVersion() { + return registryItemVersion_; + } + /** + * string registry_item_version = 2 [json_name = "registryItemVersion"]; + * @return The bytes for registryItemVersion. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getRegistryItemVersionBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(registryItemVersion_); + } + /** + * string registry_item_version = 2 [json_name = "registryItemVersion"]; + * @param value The registryItemVersion to set. + */ + private void setRegistryItemVersion( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + registryItemVersion_ = value; + } + /** + * string registry_item_version = 2 [json_name = "registryItemVersion"]; + */ + private void clearRegistryItemVersion() { + + registryItemVersion_ = getDefaultInstance().getRegistryItemVersion(); + } + /** + * string registry_item_version = 2 [json_name = "registryItemVersion"]; + * @param value The bytes for registryItemVersion to set. + */ + private void setRegistryItemVersionBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + registryItemVersion_ = value.toStringUtf8(); + + } + + public static final int BINARY_ID_FIELD_NUMBER = 3; + private viam.app.data.v1.Data.BinaryID binaryId_; + /** + * .viam.app.data.v1.BinaryID binary_id = 3 [json_name = "binaryId"]; + */ + @java.lang.Override + public boolean hasBinaryId() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .viam.app.data.v1.BinaryID binary_id = 3 [json_name = "binaryId"]; + */ + @java.lang.Override + public viam.app.data.v1.Data.BinaryID getBinaryId() { + return binaryId_ == null ? viam.app.data.v1.Data.BinaryID.getDefaultInstance() : binaryId_; + } + /** + * .viam.app.data.v1.BinaryID binary_id = 3 [json_name = "binaryId"]; + */ + private void setBinaryId(viam.app.data.v1.Data.BinaryID value) { + value.getClass(); + binaryId_ = value; + bitField0_ |= 0x00000001; + } + /** + * .viam.app.data.v1.BinaryID binary_id = 3 [json_name = "binaryId"]; + */ + @java.lang.SuppressWarnings({"ReferenceEquality"}) + private void mergeBinaryId(viam.app.data.v1.Data.BinaryID value) { + value.getClass(); + if (binaryId_ != null && + binaryId_ != viam.app.data.v1.Data.BinaryID.getDefaultInstance()) { + binaryId_ = + viam.app.data.v1.Data.BinaryID.newBuilder(binaryId_).mergeFrom(value).buildPartial(); + } else { + binaryId_ = value; + } + bitField0_ |= 0x00000001; + } + /** + * .viam.app.data.v1.BinaryID binary_id = 3 [json_name = "binaryId"]; + */ + private void clearBinaryId() { binaryId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + } + + public static final int ORGANIZATION_ID_FIELD_NUMBER = 4; + private java.lang.String organizationId_; + /** + * string organization_id = 4 [json_name = "organizationId"]; + * @return The organizationId. + */ + @java.lang.Override + public java.lang.String getOrganizationId() { + return organizationId_; + } + /** + * string organization_id = 4 [json_name = "organizationId"]; + * @return The bytes for organizationId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getOrganizationIdBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(organizationId_); + } + /** + * string organization_id = 4 [json_name = "organizationId"]; + * @param value The organizationId to set. + */ + private void setOrganizationId( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + organizationId_ = value; + } + /** + * string organization_id = 4 [json_name = "organizationId"]; + */ + private void clearOrganizationId() { + + organizationId_ = getDefaultInstance().getOrganizationId(); + } + /** + * string organization_id = 4 [json_name = "organizationId"]; + * @param value The bytes for organizationId to set. + */ + private void setOrganizationIdBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + organizationId_ = value.toStringUtf8(); + + } + + public static viam.app.mlinference.v1.MlInference.GetInferenceRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static viam.app.mlinference.v1.MlInference.GetInferenceRequest 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 viam.app.mlinference.v1.MlInference.GetInferenceRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static viam.app.mlinference.v1.MlInference.GetInferenceRequest 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 viam.app.mlinference.v1.MlInference.GetInferenceRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static viam.app.mlinference.v1.MlInference.GetInferenceRequest 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 viam.app.mlinference.v1.MlInference.GetInferenceRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static viam.app.mlinference.v1.MlInference.GetInferenceRequest 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 viam.app.mlinference.v1.MlInference.GetInferenceRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input); + } + + public static viam.app.mlinference.v1.MlInference.GetInferenceRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry); + } + public static viam.app.mlinference.v1.MlInference.GetInferenceRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static viam.app.mlinference.v1.MlInference.GetInferenceRequest 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(viam.app.mlinference.v1.MlInference.GetInferenceRequest prototype) { + return DEFAULT_INSTANCE.createBuilder(prototype); + } + + /** + * Protobuf type {@code viam.app.mlinference.v1.GetInferenceRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageLite.Builder< + viam.app.mlinference.v1.MlInference.GetInferenceRequest, Builder> implements + // @@protoc_insertion_point(builder_implements:viam.app.mlinference.v1.GetInferenceRequest) + viam.app.mlinference.v1.MlInference.GetInferenceRequestOrBuilder { + // Construct using viam.app.mlinference.v1.MlInference.GetInferenceRequest.newBuilder() + private Builder() { + super(DEFAULT_INSTANCE); + } + + + /** + *
+       * The model framework and model type are inferred from the ML model registry item;
+       * For valid model types (classification, detections) we will return the formatted
+       * labels or annotations from the associated inference outputs.
+       * 
+ * + * string registry_item_id = 1 [json_name = "registryItemId"]; + * @return The registryItemId. + */ + @java.lang.Override + public java.lang.String getRegistryItemId() { + return instance.getRegistryItemId(); + } + /** + *
+       * The model framework and model type are inferred from the ML model registry item;
+       * For valid model types (classification, detections) we will return the formatted
+       * labels or annotations from the associated inference outputs.
+       * 
+ * + * string registry_item_id = 1 [json_name = "registryItemId"]; + * @return The bytes for registryItemId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getRegistryItemIdBytes() { + return instance.getRegistryItemIdBytes(); + } + /** + *
+       * The model framework and model type are inferred from the ML model registry item;
+       * For valid model types (classification, detections) we will return the formatted
+       * labels or annotations from the associated inference outputs.
+       * 
+ * + * string registry_item_id = 1 [json_name = "registryItemId"]; + * @param value The registryItemId to set. + * @return This builder for chaining. + */ + public Builder setRegistryItemId( + java.lang.String value) { + copyOnWrite(); + instance.setRegistryItemId(value); + return this; + } + /** + *
+       * The model framework and model type are inferred from the ML model registry item;
+       * For valid model types (classification, detections) we will return the formatted
+       * labels or annotations from the associated inference outputs.
+       * 
+ * + * string registry_item_id = 1 [json_name = "registryItemId"]; + * @return This builder for chaining. + */ + public Builder clearRegistryItemId() { + copyOnWrite(); + instance.clearRegistryItemId(); + return this; + } + /** + *
+       * The model framework and model type are inferred from the ML model registry item;
+       * For valid model types (classification, detections) we will return the formatted
+       * labels or annotations from the associated inference outputs.
+       * 
+ * + * string registry_item_id = 1 [json_name = "registryItemId"]; + * @param value The bytes for registryItemId to set. + * @return This builder for chaining. + */ + public Builder setRegistryItemIdBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setRegistryItemIdBytes(value); + return this; + } + + /** + * string registry_item_version = 2 [json_name = "registryItemVersion"]; + * @return The registryItemVersion. + */ + @java.lang.Override + public java.lang.String getRegistryItemVersion() { + return instance.getRegistryItemVersion(); + } + /** + * string registry_item_version = 2 [json_name = "registryItemVersion"]; + * @return The bytes for registryItemVersion. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getRegistryItemVersionBytes() { + return instance.getRegistryItemVersionBytes(); + } + /** + * string registry_item_version = 2 [json_name = "registryItemVersion"]; + * @param value The registryItemVersion to set. + * @return This builder for chaining. + */ + public Builder setRegistryItemVersion( + java.lang.String value) { + copyOnWrite(); + instance.setRegistryItemVersion(value); + return this; + } + /** + * string registry_item_version = 2 [json_name = "registryItemVersion"]; + * @return This builder for chaining. + */ + public Builder clearRegistryItemVersion() { + copyOnWrite(); + instance.clearRegistryItemVersion(); + return this; + } + /** + * string registry_item_version = 2 [json_name = "registryItemVersion"]; + * @param value The bytes for registryItemVersion to set. + * @return This builder for chaining. + */ + public Builder setRegistryItemVersionBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setRegistryItemVersionBytes(value); + return this; + } + + /** + * .viam.app.data.v1.BinaryID binary_id = 3 [json_name = "binaryId"]; + */ + @java.lang.Override + public boolean hasBinaryId() { + return instance.hasBinaryId(); + } + /** + * .viam.app.data.v1.BinaryID binary_id = 3 [json_name = "binaryId"]; + */ + @java.lang.Override + public viam.app.data.v1.Data.BinaryID getBinaryId() { + return instance.getBinaryId(); + } + /** + * .viam.app.data.v1.BinaryID binary_id = 3 [json_name = "binaryId"]; + */ + public Builder setBinaryId(viam.app.data.v1.Data.BinaryID value) { + copyOnWrite(); + instance.setBinaryId(value); + return this; + } + /** + * .viam.app.data.v1.BinaryID binary_id = 3 [json_name = "binaryId"]; + */ + public Builder setBinaryId( + viam.app.data.v1.Data.BinaryID.Builder builderForValue) { + copyOnWrite(); + instance.setBinaryId(builderForValue.build()); + return this; + } + /** + * .viam.app.data.v1.BinaryID binary_id = 3 [json_name = "binaryId"]; + */ + public Builder mergeBinaryId(viam.app.data.v1.Data.BinaryID value) { + copyOnWrite(); + instance.mergeBinaryId(value); + return this; + } + /** + * .viam.app.data.v1.BinaryID binary_id = 3 [json_name = "binaryId"]; + */ + public Builder clearBinaryId() { copyOnWrite(); + instance.clearBinaryId(); + return this; + } + + /** + * string organization_id = 4 [json_name = "organizationId"]; + * @return The organizationId. + */ + @java.lang.Override + public java.lang.String getOrganizationId() { + return instance.getOrganizationId(); + } + /** + * string organization_id = 4 [json_name = "organizationId"]; + * @return The bytes for organizationId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getOrganizationIdBytes() { + return instance.getOrganizationIdBytes(); + } + /** + * string organization_id = 4 [json_name = "organizationId"]; + * @param value The organizationId to set. + * @return This builder for chaining. + */ + public Builder setOrganizationId( + java.lang.String value) { + copyOnWrite(); + instance.setOrganizationId(value); + return this; + } + /** + * string organization_id = 4 [json_name = "organizationId"]; + * @return This builder for chaining. + */ + public Builder clearOrganizationId() { + copyOnWrite(); + instance.clearOrganizationId(); + return this; + } + /** + * string organization_id = 4 [json_name = "organizationId"]; + * @param value The bytes for organizationId to set. + * @return This builder for chaining. + */ + public Builder setOrganizationIdBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setOrganizationIdBytes(value); + return this; + } + + // @@protoc_insertion_point(builder_scope:viam.app.mlinference.v1.GetInferenceRequest) + } + @java.lang.Override + @java.lang.SuppressWarnings({"unchecked", "fallthrough"}) + 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 viam.app.mlinference.v1.MlInference.GetInferenceRequest(); + } + case NEW_BUILDER: { + return new Builder(); + } + case BUILD_MESSAGE_INFO: { + java.lang.Object[] objects = new java.lang.Object[] { + "bitField0_", + "registryItemId_", + "registryItemVersion_", + "binaryId_", + "organizationId_", + }; + java.lang.String info = + "\u0000\u0004\u0000\u0001\u0001\u0004\u0004\u0000\u0000\u0000\u0001\u0208\u0002\u0208" + + "\u0003\u1009\u0000\u0004\u0208"; + return newMessageInfo(DEFAULT_INSTANCE, info, objects); + } + // fall through + case GET_DEFAULT_INSTANCE: { + return DEFAULT_INSTANCE; + } + case GET_PARSER: { + com.google.protobuf.Parser parser = PARSER; + if (parser == null) { + synchronized (viam.app.mlinference.v1.MlInference.GetInferenceRequest.class) { + parser = PARSER; + if (parser == null) { + parser = + new DefaultInstanceBasedParser( + DEFAULT_INSTANCE); + PARSER = parser; + } + } + } + return parser; + } + case GET_MEMOIZED_IS_INITIALIZED: { + return (byte) 1; + } + case SET_MEMOIZED_IS_INITIALIZED: { + return null; + } + } + throw new UnsupportedOperationException(); + } + + + // @@protoc_insertion_point(class_scope:viam.app.mlinference.v1.GetInferenceRequest) + private static final viam.app.mlinference.v1.MlInference.GetInferenceRequest DEFAULT_INSTANCE; + static { + GetInferenceRequest defaultInstance = new GetInferenceRequest(); + // New instances are implicitly immutable so no need to make + // immutable. + DEFAULT_INSTANCE = defaultInstance; + com.google.protobuf.GeneratedMessageLite.registerDefaultInstance( + GetInferenceRequest.class, defaultInstance); + } + + public static viam.app.mlinference.v1.MlInference.GetInferenceRequest 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 GetInferenceResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:viam.app.mlinference.v1.GetInferenceResponse) + com.google.protobuf.MessageLiteOrBuilder { + } + /** + * Protobuf type {@code viam.app.mlinference.v1.GetInferenceResponse} + */ + public static final class GetInferenceResponse extends + com.google.protobuf.GeneratedMessageLite< + GetInferenceResponse, GetInferenceResponse.Builder> implements + // @@protoc_insertion_point(message_implements:viam.app.mlinference.v1.GetInferenceResponse) + GetInferenceResponseOrBuilder { + private GetInferenceResponse() { + } + public static viam.app.mlinference.v1.MlInference.GetInferenceResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static viam.app.mlinference.v1.MlInference.GetInferenceResponse 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 viam.app.mlinference.v1.MlInference.GetInferenceResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static viam.app.mlinference.v1.MlInference.GetInferenceResponse 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 viam.app.mlinference.v1.MlInference.GetInferenceResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static viam.app.mlinference.v1.MlInference.GetInferenceResponse 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 viam.app.mlinference.v1.MlInference.GetInferenceResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static viam.app.mlinference.v1.MlInference.GetInferenceResponse 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 viam.app.mlinference.v1.MlInference.GetInferenceResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input); + } + + public static viam.app.mlinference.v1.MlInference.GetInferenceResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry); + } + public static viam.app.mlinference.v1.MlInference.GetInferenceResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static viam.app.mlinference.v1.MlInference.GetInferenceResponse 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(viam.app.mlinference.v1.MlInference.GetInferenceResponse prototype) { + return DEFAULT_INSTANCE.createBuilder(prototype); + } + + /** + * Protobuf type {@code viam.app.mlinference.v1.GetInferenceResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageLite.Builder< + viam.app.mlinference.v1.MlInference.GetInferenceResponse, Builder> implements + // @@protoc_insertion_point(builder_implements:viam.app.mlinference.v1.GetInferenceResponse) + viam.app.mlinference.v1.MlInference.GetInferenceResponseOrBuilder { + // Construct using viam.app.mlinference.v1.MlInference.GetInferenceResponse.newBuilder() + private Builder() { + super(DEFAULT_INSTANCE); + } + + + // @@protoc_insertion_point(builder_scope:viam.app.mlinference.v1.GetInferenceResponse) + } + @java.lang.Override + @java.lang.SuppressWarnings({"unchecked", "fallthrough"}) + 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 viam.app.mlinference.v1.MlInference.GetInferenceResponse(); + } + case NEW_BUILDER: { + return new Builder(); + } + case BUILD_MESSAGE_INFO: { + java.lang.Object[] objects = null;java.lang.String info = + "\u0000\u0000"; + return newMessageInfo(DEFAULT_INSTANCE, info, objects); + } + // fall through + case GET_DEFAULT_INSTANCE: { + return DEFAULT_INSTANCE; + } + case GET_PARSER: { + com.google.protobuf.Parser parser = PARSER; + if (parser == null) { + synchronized (viam.app.mlinference.v1.MlInference.GetInferenceResponse.class) { + parser = PARSER; + if (parser == null) { + parser = + new DefaultInstanceBasedParser( + DEFAULT_INSTANCE); + PARSER = parser; + } + } + } + return parser; + } + case GET_MEMOIZED_IS_INITIALIZED: { + return (byte) 1; + } + case SET_MEMOIZED_IS_INITIALIZED: { + return null; + } + } + throw new UnsupportedOperationException(); + } + + + // @@protoc_insertion_point(class_scope:viam.app.mlinference.v1.GetInferenceResponse) + private static final viam.app.mlinference.v1.MlInference.GetInferenceResponse DEFAULT_INSTANCE; + static { + GetInferenceResponse defaultInstance = new GetInferenceResponse(); + // New instances are implicitly immutable so no need to make + // immutable. + DEFAULT_INSTANCE = defaultInstance; + com.google.protobuf.GeneratedMessageLite.registerDefaultInstance( + GetInferenceResponse.class, defaultInstance); + } + + public static viam.app.mlinference.v1.MlInference.GetInferenceResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static volatile com.google.protobuf.Parser PARSER; + + public static com.google.protobuf.Parser parser() { + return DEFAULT_INSTANCE.getParserForType(); + } + } + + + static { + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/core/sdk/src/main/gen/viam/app/v1/App.java b/core/sdk/src/main/gen/viam/app/v1/App.java index aaf8c47af..ed51eaf8d 100644 --- a/core/sdk/src/main/gen/viam/app/v1/App.java +++ b/core/sdk/src/main/gen/viam/app/v1/App.java @@ -342,7 +342,7 @@ public enum Visibility VISIBILITY_UNSPECIFIED(0), /** *
-     * Private modules are visible only within your org
+     * Private registry items are visible only within the owning org
      * 
* * VISIBILITY_PRIVATE = 1; @@ -350,12 +350,20 @@ public enum Visibility VISIBILITY_PRIVATE(1), /** *
-     * Public modules are visible to everyone
+     * Public registry items are visible to everyone
      * 
* * VISIBILITY_PUBLIC = 2; */ VISIBILITY_PUBLIC(2), + /** + *
+     * Public Unlisted registry items are usable in everyone's robot but are hidden from the registry page as if they are private
+     * 
+ * + * VISIBILITY_PUBLIC_UNLISTED = 3; + */ + VISIBILITY_PUBLIC_UNLISTED(3), UNRECOGNIZED(-1), ; @@ -365,7 +373,7 @@ public enum Visibility public static final int VISIBILITY_UNSPECIFIED_VALUE = 0; /** *
-     * Private modules are visible only within your org
+     * Private registry items are visible only within the owning org
      * 
* * VISIBILITY_PRIVATE = 1; @@ -373,12 +381,20 @@ public enum Visibility public static final int VISIBILITY_PRIVATE_VALUE = 1; /** *
-     * Public modules are visible to everyone
+     * Public registry items are visible to everyone
      * 
* * VISIBILITY_PUBLIC = 2; */ public static final int VISIBILITY_PUBLIC_VALUE = 2; + /** + *
+     * Public Unlisted registry items are usable in everyone's robot but are hidden from the registry page as if they are private
+     * 
+ * + * VISIBILITY_PUBLIC_UNLISTED = 3; + */ + public static final int VISIBILITY_PUBLIC_UNLISTED_VALUE = 3; @java.lang.Override @@ -405,6 +421,7 @@ public static Visibility forNumber(int value) { case 0: return VISIBILITY_UNSPECIFIED; case 1: return VISIBILITY_PRIVATE; case 2: return VISIBILITY_PUBLIC; + case 3: return VISIBILITY_PUBLIC_UNLISTED; default: return null; } } @@ -56671,6 +56688,35 @@ public interface ModuleVersionOrBuilder extends */ com.google.protobuf.ByteString getEntrypointBytes(); + + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return Whether the firstRun field is set. + */ + boolean hasFirstRun(); + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return The firstRun. + */ + java.lang.String getFirstRun(); + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return The bytes for firstRun. + */ + com.google.protobuf.ByteString + getFirstRunBytes(); } /** * Protobuf type {@code viam.app.v1.ModuleVersion} @@ -56685,7 +56731,9 @@ private ModuleVersion() { files_ = emptyProtobufList(); models_ = emptyProtobufList(); entrypoint_ = ""; + firstRun_ = ""; } + private int bitField0_; public static final int VERSION_FIELD_NUMBER = 1; private java.lang.String version_; /** @@ -57096,6 +57144,85 @@ private void setEntrypointBytes( } + public static final int FIRST_RUN_FIELD_NUMBER = 5; + private java.lang.String firstRun_; + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return Whether the firstRun field is set. + */ + @java.lang.Override + public boolean hasFirstRun() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return The firstRun. + */ + @java.lang.Override + public java.lang.String getFirstRun() { + return firstRun_; + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return The bytes for firstRun. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getFirstRunBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(firstRun_); + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @param value The firstRun to set. + */ + private void setFirstRun( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + bitField0_ |= 0x00000001; + firstRun_ = value; + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + */ + private void clearFirstRun() { + bitField0_ = (bitField0_ & ~0x00000001); + firstRun_ = getDefaultInstance().getFirstRun(); + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @param value The bytes for firstRun to set. + */ + private void setFirstRunBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + firstRun_ = value.toStringUtf8(); + bitField0_ |= 0x00000001; + } + public static viam.app.v1.App.ModuleVersion parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { @@ -57631,6 +57758,87 @@ public Builder setEntrypointBytes( return this; } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return Whether the firstRun field is set. + */ + @java.lang.Override + public boolean hasFirstRun() { + return instance.hasFirstRun(); + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return The firstRun. + */ + @java.lang.Override + public java.lang.String getFirstRun() { + return instance.getFirstRun(); + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return The bytes for firstRun. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getFirstRunBytes() { + return instance.getFirstRunBytes(); + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @param value The firstRun to set. + * @return This builder for chaining. + */ + public Builder setFirstRun( + java.lang.String value) { + copyOnWrite(); + instance.setFirstRun(value); + return this; + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return This builder for chaining. + */ + public Builder clearFirstRun() { + copyOnWrite(); + instance.clearFirstRun(); + return this; + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @param value The bytes for firstRun to set. + * @return This builder for chaining. + */ + public Builder setFirstRunBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setFirstRunBytes(value); + return this; + } + // @@protoc_insertion_point(builder_scope:viam.app.v1.ModuleVersion) } @java.lang.Override @@ -57647,16 +57855,18 @@ protected final java.lang.Object dynamicMethod( } case BUILD_MESSAGE_INFO: { java.lang.Object[] objects = new java.lang.Object[] { + "bitField0_", "version_", "files_", viam.app.v1.App.Uploads.class, "models_", viam.app.v1.App.Model.class, "entrypoint_", + "firstRun_", }; java.lang.String info = - "\u0000\u0004\u0000\u0000\u0001\u0004\u0004\u0000\u0002\u0000\u0001\u0208\u0002\u001b" + - "\u0003\u001b\u0004\u0208"; + "\u0000\u0005\u0000\u0001\u0001\u0005\u0005\u0000\u0002\u0000\u0001\u0208\u0002\u001b" + + "\u0003\u001b\u0004\u0208\u0005\u1208\u0000"; return newMessageInfo(DEFAULT_INSTANCE, info, objects); } // fall through @@ -57789,6 +57999,35 @@ public interface ModuleMetadataOrBuilder extends */ com.google.protobuf.ByteString getEntrypointBytes(); + + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 4 [json_name = "firstRun"]; + * @return Whether the firstRun field is set. + */ + boolean hasFirstRun(); + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 4 [json_name = "firstRun"]; + * @return The firstRun. + */ + java.lang.String getFirstRun(); + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 4 [json_name = "firstRun"]; + * @return The bytes for firstRun. + */ + com.google.protobuf.ByteString + getFirstRunBytes(); } /** * Protobuf type {@code viam.app.v1.ModuleMetadata} @@ -57802,7 +58041,9 @@ private ModuleMetadata() { models_ = emptyProtobufList(); versions_ = emptyProtobufList(); entrypoint_ = ""; + firstRun_ = ""; } + private int bitField0_; public static final int MODELS_FIELD_NUMBER = 1; private com.google.protobuf.Internal.ProtobufList models_; /** @@ -58157,6 +58398,85 @@ private void setEntrypointBytes( } + public static final int FIRST_RUN_FIELD_NUMBER = 4; + private java.lang.String firstRun_; + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 4 [json_name = "firstRun"]; + * @return Whether the firstRun field is set. + */ + @java.lang.Override + public boolean hasFirstRun() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 4 [json_name = "firstRun"]; + * @return The firstRun. + */ + @java.lang.Override + public java.lang.String getFirstRun() { + return firstRun_; + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 4 [json_name = "firstRun"]; + * @return The bytes for firstRun. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getFirstRunBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(firstRun_); + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 4 [json_name = "firstRun"]; + * @param value The firstRun to set. + */ + private void setFirstRun( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + bitField0_ |= 0x00000001; + firstRun_ = value; + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 4 [json_name = "firstRun"]; + */ + private void clearFirstRun() { + bitField0_ = (bitField0_ & ~0x00000001); + firstRun_ = getDefaultInstance().getFirstRun(); + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 4 [json_name = "firstRun"]; + * @param value The bytes for firstRun to set. + */ + private void setFirstRunBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + firstRun_ = value.toStringUtf8(); + bitField0_ |= 0x00000001; + } + public static viam.app.v1.App.ModuleMetadata parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { @@ -58635,6 +58955,87 @@ public Builder setEntrypointBytes( return this; } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 4 [json_name = "firstRun"]; + * @return Whether the firstRun field is set. + */ + @java.lang.Override + public boolean hasFirstRun() { + return instance.hasFirstRun(); + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 4 [json_name = "firstRun"]; + * @return The firstRun. + */ + @java.lang.Override + public java.lang.String getFirstRun() { + return instance.getFirstRun(); + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 4 [json_name = "firstRun"]; + * @return The bytes for firstRun. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getFirstRunBytes() { + return instance.getFirstRunBytes(); + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 4 [json_name = "firstRun"]; + * @param value The firstRun to set. + * @return This builder for chaining. + */ + public Builder setFirstRun( + java.lang.String value) { + copyOnWrite(); + instance.setFirstRun(value); + return this; + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 4 [json_name = "firstRun"]; + * @return This builder for chaining. + */ + public Builder clearFirstRun() { + copyOnWrite(); + instance.clearFirstRun(); + return this; + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 4 [json_name = "firstRun"]; + * @param value The bytes for firstRun to set. + * @return This builder for chaining. + */ + public Builder setFirstRunBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setFirstRunBytes(value); + return this; + } + // @@protoc_insertion_point(builder_scope:viam.app.v1.ModuleMetadata) } @java.lang.Override @@ -58651,15 +59052,17 @@ protected final java.lang.Object dynamicMethod( } case BUILD_MESSAGE_INFO: { java.lang.Object[] objects = new java.lang.Object[] { + "bitField0_", "models_", viam.app.v1.App.Model.class, "versions_", viam.app.v1.App.ModuleVersion.class, "entrypoint_", + "firstRun_", }; java.lang.String info = - "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0002\u0000\u0001\u001b\u0002\u001b" + - "\u0003\u0208"; + "\u0000\u0004\u0000\u0001\u0001\u0004\u0004\u0000\u0002\u0000\u0001\u001b\u0002\u001b" + + "\u0003\u0208\u0004\u1208\u0000"; return newMessageInfo(DEFAULT_INSTANCE, info, objects); } // fall through @@ -70071,6 +70474,35 @@ public interface UpdateModuleRequestOrBuilder extends */ com.google.protobuf.ByteString getEntrypointBytes(); + + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 7 [json_name = "firstRun"]; + * @return Whether the firstRun field is set. + */ + boolean hasFirstRun(); + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 7 [json_name = "firstRun"]; + * @return The firstRun. + */ + java.lang.String getFirstRun(); + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 7 [json_name = "firstRun"]; + * @return The bytes for firstRun. + */ + com.google.protobuf.ByteString + getFirstRunBytes(); } /** * Protobuf type {@code viam.app.v1.UpdateModuleRequest} @@ -70086,7 +70518,9 @@ private UpdateModuleRequest() { description_ = ""; models_ = emptyProtobufList(); entrypoint_ = ""; + firstRun_ = ""; } + private int bitField0_; public static final int MODULE_ID_FIELD_NUMBER = 1; private java.lang.String moduleId_; /** @@ -70555,6 +70989,85 @@ private void setEntrypointBytes( } + public static final int FIRST_RUN_FIELD_NUMBER = 7; + private java.lang.String firstRun_; + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 7 [json_name = "firstRun"]; + * @return Whether the firstRun field is set. + */ + @java.lang.Override + public boolean hasFirstRun() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 7 [json_name = "firstRun"]; + * @return The firstRun. + */ + @java.lang.Override + public java.lang.String getFirstRun() { + return firstRun_; + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 7 [json_name = "firstRun"]; + * @return The bytes for firstRun. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getFirstRunBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(firstRun_); + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 7 [json_name = "firstRun"]; + * @param value The firstRun to set. + */ + private void setFirstRun( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + bitField0_ |= 0x00000001; + firstRun_ = value; + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 7 [json_name = "firstRun"]; + */ + private void clearFirstRun() { + bitField0_ = (bitField0_ & ~0x00000001); + firstRun_ = getDefaultInstance().getFirstRun(); + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 7 [json_name = "firstRun"]; + * @param value The bytes for firstRun to set. + */ + private void setFirstRunBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + firstRun_ = value.toStringUtf8(); + bitField0_ |= 0x00000001; + } + public static viam.app.v1.App.UpdateModuleRequest parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { @@ -71144,6 +71657,87 @@ public Builder setEntrypointBytes( return this; } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 7 [json_name = "firstRun"]; + * @return Whether the firstRun field is set. + */ + @java.lang.Override + public boolean hasFirstRun() { + return instance.hasFirstRun(); + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 7 [json_name = "firstRun"]; + * @return The firstRun. + */ + @java.lang.Override + public java.lang.String getFirstRun() { + return instance.getFirstRun(); + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 7 [json_name = "firstRun"]; + * @return The bytes for firstRun. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getFirstRunBytes() { + return instance.getFirstRunBytes(); + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 7 [json_name = "firstRun"]; + * @param value The firstRun to set. + * @return This builder for chaining. + */ + public Builder setFirstRun( + java.lang.String value) { + copyOnWrite(); + instance.setFirstRun(value); + return this; + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 7 [json_name = "firstRun"]; + * @return This builder for chaining. + */ + public Builder clearFirstRun() { + copyOnWrite(); + instance.clearFirstRun(); + return this; + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 7 [json_name = "firstRun"]; + * @param value The bytes for firstRun to set. + * @return This builder for chaining. + */ + public Builder setFirstRunBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setFirstRunBytes(value); + return this; + } + // @@protoc_insertion_point(builder_scope:viam.app.v1.UpdateModuleRequest) } @java.lang.Override @@ -71160,6 +71754,7 @@ protected final java.lang.Object dynamicMethod( } case BUILD_MESSAGE_INFO: { java.lang.Object[] objects = new java.lang.Object[] { + "bitField0_", "moduleId_", "visibility_", "url_", @@ -71167,10 +71762,11 @@ protected final java.lang.Object dynamicMethod( "models_", viam.app.v1.App.Model.class, "entrypoint_", + "firstRun_", }; java.lang.String info = - "\u0000\u0006\u0000\u0000\u0001\u0006\u0006\u0000\u0001\u0000\u0001\u0208\u0002\f" + - "\u0003\u0208\u0004\u0208\u0005\u001b\u0006\u0208"; + "\u0000\u0007\u0000\u0001\u0001\u0007\u0007\u0000\u0001\u0000\u0001\u0208\u0002\f" + + "\u0003\u0208\u0004\u0208\u0005\u001b\u0006\u0208\u0007\u1208\u0000"; return newMessageInfo(DEFAULT_INSTANCE, info, objects); } // fall through @@ -74525,6 +75121,35 @@ public interface ModuleOrBuilder extends */ com.google.protobuf.ByteString getPublicNamespaceBytes(); + + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 13 [json_name = "firstRun"]; + * @return Whether the firstRun field is set. + */ + boolean hasFirstRun(); + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 13 [json_name = "firstRun"]; + * @return The firstRun. + */ + java.lang.String getFirstRun(); + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 13 [json_name = "firstRun"]; + * @return The bytes for firstRun. + */ + com.google.protobuf.ByteString + getFirstRunBytes(); } /** * Protobuf type {@code viam.app.v1.Module} @@ -74544,7 +75169,9 @@ private Module() { organizationId_ = ""; entrypoint_ = ""; publicNamespace_ = ""; + firstRun_ = ""; } + private int bitField0_; public static final int MODULE_ID_FIELD_NUMBER = 1; private java.lang.String moduleId_; /** @@ -75444,6 +76071,85 @@ private void setPublicNamespaceBytes( } + public static final int FIRST_RUN_FIELD_NUMBER = 13; + private java.lang.String firstRun_; + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 13 [json_name = "firstRun"]; + * @return Whether the firstRun field is set. + */ + @java.lang.Override + public boolean hasFirstRun() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 13 [json_name = "firstRun"]; + * @return The firstRun. + */ + @java.lang.Override + public java.lang.String getFirstRun() { + return firstRun_; + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 13 [json_name = "firstRun"]; + * @return The bytes for firstRun. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getFirstRunBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(firstRun_); + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 13 [json_name = "firstRun"]; + * @param value The firstRun to set. + */ + private void setFirstRun( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + bitField0_ |= 0x00000001; + firstRun_ = value; + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 13 [json_name = "firstRun"]; + */ + private void clearFirstRun() { + bitField0_ = (bitField0_ & ~0x00000001); + firstRun_ = getDefaultInstance().getFirstRun(); + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 13 [json_name = "firstRun"]; + * @param value The bytes for firstRun to set. + */ + private void setFirstRunBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + firstRun_ = value.toStringUtf8(); + bitField0_ |= 0x00000001; + } + public static viam.app.v1.App.Module parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { @@ -76487,6 +77193,87 @@ public Builder setPublicNamespaceBytes( return this; } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 13 [json_name = "firstRun"]; + * @return Whether the firstRun field is set. + */ + @java.lang.Override + public boolean hasFirstRun() { + return instance.hasFirstRun(); + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 13 [json_name = "firstRun"]; + * @return The firstRun. + */ + @java.lang.Override + public java.lang.String getFirstRun() { + return instance.getFirstRun(); + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 13 [json_name = "firstRun"]; + * @return The bytes for firstRun. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getFirstRunBytes() { + return instance.getFirstRunBytes(); + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 13 [json_name = "firstRun"]; + * @param value The firstRun to set. + * @return This builder for chaining. + */ + public Builder setFirstRun( + java.lang.String value) { + copyOnWrite(); + instance.setFirstRun(value); + return this; + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 13 [json_name = "firstRun"]; + * @return This builder for chaining. + */ + public Builder clearFirstRun() { + copyOnWrite(); + instance.clearFirstRun(); + return this; + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 13 [json_name = "firstRun"]; + * @param value The bytes for firstRun to set. + * @return This builder for chaining. + */ + public Builder setFirstRunBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setFirstRunBytes(value); + return this; + } + // @@protoc_insertion_point(builder_scope:viam.app.v1.Module) } @java.lang.Override @@ -76503,6 +77290,7 @@ protected final java.lang.Object dynamicMethod( } case BUILD_MESSAGE_INFO: { java.lang.Object[] objects = new java.lang.Object[] { + "bitField0_", "moduleId_", "name_", "visibility_", @@ -76517,11 +77305,12 @@ protected final java.lang.Object dynamicMethod( "organizationId_", "entrypoint_", "publicNamespace_", + "firstRun_", }; java.lang.String info = - "\u0000\f\u0000\u0000\u0001\f\f\u0000\u0002\u0000\u0001\u0208\u0002\u0208\u0003\f" + + "\u0000\r\u0000\u0001\u0001\r\r\u0000\u0002\u0000\u0001\u0208\u0002\u0208\u0003\f" + "\u0004\u001b\u0005\u0208\u0006\u0208\u0007\u001b\b\u0002\t\u0002\n\u0208\u000b\u0208" + - "\f\u0208"; + "\f\u0208\r\u1208\u0000"; return newMessageInfo(DEFAULT_INSTANCE, info, objects); } // fall through @@ -76671,6 +77460,35 @@ public interface VersionHistoryOrBuilder extends */ com.google.protobuf.ByteString getEntrypointBytes(); + + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return Whether the firstRun field is set. + */ + boolean hasFirstRun(); + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return The firstRun. + */ + java.lang.String getFirstRun(); + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return The bytes for firstRun. + */ + com.google.protobuf.ByteString + getFirstRunBytes(); } /** * Protobuf type {@code viam.app.v1.VersionHistory} @@ -76685,7 +77503,9 @@ private VersionHistory() { files_ = emptyProtobufList(); models_ = emptyProtobufList(); entrypoint_ = ""; + firstRun_ = ""; } + private int bitField0_; public static final int VERSION_FIELD_NUMBER = 1; private java.lang.String version_; /** @@ -77096,6 +77916,85 @@ private void setEntrypointBytes( } + public static final int FIRST_RUN_FIELD_NUMBER = 5; + private java.lang.String firstRun_; + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return Whether the firstRun field is set. + */ + @java.lang.Override + public boolean hasFirstRun() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return The firstRun. + */ + @java.lang.Override + public java.lang.String getFirstRun() { + return firstRun_; + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return The bytes for firstRun. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getFirstRunBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(firstRun_); + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @param value The firstRun to set. + */ + private void setFirstRun( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + bitField0_ |= 0x00000001; + firstRun_ = value; + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + */ + private void clearFirstRun() { + bitField0_ = (bitField0_ & ~0x00000001); + firstRun_ = getDefaultInstance().getFirstRun(); + } + /** + *
+     * The path to a setup script that is run before a newly downloaded module starts.
+     * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @param value The bytes for firstRun to set. + */ + private void setFirstRunBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + firstRun_ = value.toStringUtf8(); + bitField0_ |= 0x00000001; + } + public static viam.app.v1.App.VersionHistory parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { @@ -77631,6 +78530,87 @@ public Builder setEntrypointBytes( return this; } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return Whether the firstRun field is set. + */ + @java.lang.Override + public boolean hasFirstRun() { + return instance.hasFirstRun(); + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return The firstRun. + */ + @java.lang.Override + public java.lang.String getFirstRun() { + return instance.getFirstRun(); + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return The bytes for firstRun. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getFirstRunBytes() { + return instance.getFirstRunBytes(); + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @param value The firstRun to set. + * @return This builder for chaining. + */ + public Builder setFirstRun( + java.lang.String value) { + copyOnWrite(); + instance.setFirstRun(value); + return this; + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @return This builder for chaining. + */ + public Builder clearFirstRun() { + copyOnWrite(); + instance.clearFirstRun(); + return this; + } + /** + *
+       * The path to a setup script that is run before a newly downloaded module starts.
+       * 
+ * + * optional string first_run = 5 [json_name = "firstRun"]; + * @param value The bytes for firstRun to set. + * @return This builder for chaining. + */ + public Builder setFirstRunBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setFirstRunBytes(value); + return this; + } + // @@protoc_insertion_point(builder_scope:viam.app.v1.VersionHistory) } @java.lang.Override @@ -77647,16 +78627,18 @@ protected final java.lang.Object dynamicMethod( } case BUILD_MESSAGE_INFO: { java.lang.Object[] objects = new java.lang.Object[] { + "bitField0_", "version_", "files_", viam.app.v1.App.Uploads.class, "models_", viam.app.v1.App.Model.class, "entrypoint_", + "firstRun_", }; java.lang.String info = - "\u0000\u0004\u0000\u0000\u0001\u0004\u0004\u0000\u0002\u0000\u0001\u0208\u0002\u001b" + - "\u0003\u001b\u0004\u0208"; + "\u0000\u0005\u0000\u0001\u0001\u0005\u0005\u0000\u0002\u0000\u0001\u0208\u0002\u001b" + + "\u0003\u001b\u0004\u0208\u0005\u1208\u0000"; return newMessageInfo(DEFAULT_INSTANCE, info, objects); } // fall through diff --git a/core/sdk/src/main/gen/viam/app/v1/Robot.java b/core/sdk/src/main/gen/viam/app/v1/Robot.java index 0e9b1b7d4..c0c23f223 100644 --- a/core/sdk/src/main/gen/viam/app/v1/Robot.java +++ b/core/sdk/src/main/gen/viam/app/v1/Robot.java @@ -24912,6 +24912,25 @@ java.lang.String getEnvOrThrow( * @return The status. */ viam.app.v1.Robot.AppValidationStatus getStatus(); + + /** + *
+     * timeout for first_run script
+     * 
+ * + * .google.protobuf.Duration first_run_timeout = 8 [json_name = "firstRunTimeout"]; + * @return Whether the firstRunTimeout field is set. + */ + boolean hasFirstRunTimeout(); + /** + *
+     * timeout for first_run script
+     * 
+ * + * .google.protobuf.Duration first_run_timeout = 8 [json_name = "firstRunTimeout"]; + * @return The firstRunTimeout. + */ + com.google.protobuf.Duration getFirstRunTimeout(); } /** *
@@ -25429,6 +25448,72 @@ private void mergeStatus(viam.app.v1.Robot.AppValidationStatus value) {
       bitField0_ = (bitField0_ & ~0x00000001);
     }
 
+    public static final int FIRST_RUN_TIMEOUT_FIELD_NUMBER = 8;
+    private com.google.protobuf.Duration firstRunTimeout_;
+    /**
+     * 
+     * timeout for first_run script
+     * 
+ * + * .google.protobuf.Duration first_run_timeout = 8 [json_name = "firstRunTimeout"]; + */ + @java.lang.Override + public boolean hasFirstRunTimeout() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + *
+     * timeout for first_run script
+     * 
+ * + * .google.protobuf.Duration first_run_timeout = 8 [json_name = "firstRunTimeout"]; + */ + @java.lang.Override + public com.google.protobuf.Duration getFirstRunTimeout() { + return firstRunTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : firstRunTimeout_; + } + /** + *
+     * timeout for first_run script
+     * 
+ * + * .google.protobuf.Duration first_run_timeout = 8 [json_name = "firstRunTimeout"]; + */ + private void setFirstRunTimeout(com.google.protobuf.Duration value) { + value.getClass(); + firstRunTimeout_ = value; + bitField0_ |= 0x00000002; + } + /** + *
+     * timeout for first_run script
+     * 
+ * + * .google.protobuf.Duration first_run_timeout = 8 [json_name = "firstRunTimeout"]; + */ + @java.lang.SuppressWarnings({"ReferenceEquality"}) + private void mergeFirstRunTimeout(com.google.protobuf.Duration value) { + value.getClass(); + if (firstRunTimeout_ != null && + firstRunTimeout_ != com.google.protobuf.Duration.getDefaultInstance()) { + firstRunTimeout_ = + com.google.protobuf.Duration.newBuilder(firstRunTimeout_).mergeFrom(value).buildPartial(); + } else { + firstRunTimeout_ = value; + } + bitField0_ |= 0x00000002; + } + /** + *
+     * timeout for first_run script
+     * 
+ * + * .google.protobuf.Duration first_run_timeout = 8 [json_name = "firstRunTimeout"]; + */ + private void clearFirstRunTimeout() { firstRunTimeout_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + } + public static viam.app.v1.Robot.ModuleConfig parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { @@ -26054,6 +26139,77 @@ public Builder mergeStatus(viam.app.v1.Robot.AppValidationStatus value) { return this; } + /** + *
+       * timeout for first_run script
+       * 
+ * + * .google.protobuf.Duration first_run_timeout = 8 [json_name = "firstRunTimeout"]; + */ + @java.lang.Override + public boolean hasFirstRunTimeout() { + return instance.hasFirstRunTimeout(); + } + /** + *
+       * timeout for first_run script
+       * 
+ * + * .google.protobuf.Duration first_run_timeout = 8 [json_name = "firstRunTimeout"]; + */ + @java.lang.Override + public com.google.protobuf.Duration getFirstRunTimeout() { + return instance.getFirstRunTimeout(); + } + /** + *
+       * timeout for first_run script
+       * 
+ * + * .google.protobuf.Duration first_run_timeout = 8 [json_name = "firstRunTimeout"]; + */ + public Builder setFirstRunTimeout(com.google.protobuf.Duration value) { + copyOnWrite(); + instance.setFirstRunTimeout(value); + return this; + } + /** + *
+       * timeout for first_run script
+       * 
+ * + * .google.protobuf.Duration first_run_timeout = 8 [json_name = "firstRunTimeout"]; + */ + public Builder setFirstRunTimeout( + com.google.protobuf.Duration.Builder builderForValue) { + copyOnWrite(); + instance.setFirstRunTimeout(builderForValue.build()); + return this; + } + /** + *
+       * timeout for first_run script
+       * 
+ * + * .google.protobuf.Duration first_run_timeout = 8 [json_name = "firstRunTimeout"]; + */ + public Builder mergeFirstRunTimeout(com.google.protobuf.Duration value) { + copyOnWrite(); + instance.mergeFirstRunTimeout(value); + return this; + } + /** + *
+       * timeout for first_run script
+       * 
+ * + * .google.protobuf.Duration first_run_timeout = 8 [json_name = "firstRunTimeout"]; + */ + public Builder clearFirstRunTimeout() { copyOnWrite(); + instance.clearFirstRunTimeout(); + return this; + } + // @@protoc_insertion_point(builder_scope:viam.app.v1.ModuleConfig) } @java.lang.Override @@ -26079,10 +26235,11 @@ protected final java.lang.Object dynamicMethod( "env_", EnvDefaultEntryHolder.defaultEntry, "status_", + "firstRunTimeout_", }; java.lang.String info = - "\u0000\u0007\u0000\u0001\u0001\u0007\u0007\u0001\u0000\u0000\u0001\u0208\u0002\u0208" + - "\u0003\u0208\u0004\u0208\u0005\u0208\u00062\u0007\u1009\u0000"; + "\u0000\b\u0000\u0001\u0001\b\b\u0001\u0000\u0000\u0001\u0208\u0002\u0208\u0003\u0208" + + "\u0004\u0208\u0005\u0208\u00062\u0007\u1009\u0000\b\u1009\u0001"; return newMessageInfo(DEFAULT_INSTANCE, info, objects); } // fall through diff --git a/core/sdk/src/main/resources/protofds/viam.api b/core/sdk/src/main/resources/protofds/viam.api index 3bb2765b2d218ef65072b84bbdc53c8308a765ab..35ec9fcb4c976ce229677f2837f3a4bf6e5f65e5 100644 GIT binary patch delta 15803 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 A6#xJL delta 13132 zcmY*fX^<5~wyvt1eJisr&`|6xOS8!$OCzg-$_}D52(Fd> z?^`+*`CWJ4b(;#ZQ4|P27TvraeiTJ1;rnr_n=FYkkr001#i{N=gQ!MSL{LN|9fD(b zRmY(eP`&z)2t*KzUfz{PE`V1r*+9z$lsUXCo7B_jf znUWX5>n1GRju=Z3D}Hm(u%vnE{kavtYgvW|2zRqB0}z~VR%Sdvkh~e=`K_kHbZf53 z-Q#-SYV#=ySo>QurfNX+s8g!*0Rs8fR;{C3G#RxYmwW#1-;NrWCkG&p%a~WcNWY!q z;u1?{&BrxurU#Rb#dz-yGnh0&jF*j~>mi!vU?$|o-BUhlf)&LhRA@rR3;+o36Y83& z1A^#;l1sE`7>m2ShmB|mue)UJXdpyGir$mkKDkeKwktqnd5^6R5M1w3CQBd)-h(V# zY9dS%bHBg0^<@+D?ySf}RjdaU>WWN^>qawu?T?b&pL_A%*~#KPq8ZXM@i_APn>CL{ zY9D|}xko47&|y+ulP}sNRnNMo=+UrIRHogrSSIIAO}xCr=XV zwL6CPP;TV!duJcYyK}WXWEVgf6v6!=ECBXn8H=gjqo!gKUQ=x|l&shzfk_Ae6Yz+g z4j?!_k}(AUg4`o00OeFH{^fs_Kz#SC1L+cvphH~bfUp~A=DnFJu%6+Tw8g@{t&V>$QGJQx?}IzG^= z)8dN^tY@*<$MP@?yyAdZA6IJzcI;ek(F6TDShlWVgF8cm|j4E<-?s z+3qr|&kT3C41tg#pve$WTWyAbpzd%PHi*S8-{Z+8B^tnQmoFRNo_=u3q=zSUi)Kuo zGH3D>zk2eNVDtmkS04_hjtX9XyZUcEQjcEguT8oPM%g_WD7~b;-TcQ|qhy&Pd%V{of>& z^HRU5E}ow%X_EQ$+rS)=mq*EK?*;XeiT8<2^_b16?;rKIRS#?-Y6R_TBGYMpoZb<7 ze+zv*L+DxX^TZmlS-tysHNA$DDd!LADHG|XcZ zs4B#UveP$mu&F-$QSY9q|(k_V*C0=}M&dgdXvW$(~C^ z-|UMnMLtD{7ellHN)m(hVu(Y6!wB(Wh;`1j3p>m&g*ZA{Ge-#AGLN;rRi``#{iP5` zCQHW%U(SX>UuO@%e>n`=<}vs$hwXahG59ZsSN72(oQ@Ih4ZYXx2&Z#|dqeC&6rZj~ z_-csLCvzjj(11<#h~fTfsA^~P4iJAe#2M7`VSg>eankZRHsDM0Sle-;bav2R3vs4o z^=BZreWCZB&20vA+ZSRx8;RUz=-l>)L5GrlrTvqs?ZogbkXddtBGUda(?ly1gS1+QBHiiSLFP=dC#Q z|A&#S#;o#8RQdhT`^i>$CP(^yDC)ImI3_K}-;K84#yn0cKMF*5py z6MwZ~!Td>bqJ!vH_DKPY;-7@dyuDztjGu(qu^uxlBz7PfcbWKe*?|HUi+3PYja@7j z??8xyMQ6hT{5;8Y6lGf%gLR0_Y@lIbHT)|~ zc3vm0>IG{WBL6DL6rTscDzBCX`(Ghucer8W)c;koy_2}U?5hG6&i~@85Jze|z7VXh zLL9357#2>x-z4oji>rEk69%F4!Wme6!x!ALBv{|DmNyy}meS!cXjd{M>D*admb}$P zwCb*qFCOMKaP9?`=H67*uwofQ8eoI1&$JU_ z&`*?y?bx|=c${~?4@FlOt`_*f4e}WL@56?9{aWCEA9gN_Iv9F!EKVg2yNZrwr(C;4 zlwz<>g|=N1gLNuwe_1rvuxiKRbn;MFaZ~nm0gETh(*>;BV4Wt5um3E({%1n(oPGUg z@eMr_O0zl5(r^D+w*e4hDFB-dfEey)T^k^V_Svv*mK#6{9};o;m(aUl#b;Cemryp> zMVhU}&tr4eMIl6yfNSM3+|P%_rs%Xo{Jh(n=RkX!^yWx&8ks}wX;QY(uUv?)6g0u< z$@`a!!9Au+n=qfkZMw7_h!~pFB{~pG2n_Q~8N?-nliD3cv*fOBqFYxyFaxGtJJ_y5 z4E{`My9zKm*ld~H*HLuI5@AHMrQJq|!JaK`cOeFQwnTT~N$^P+pORi1-PG|tMueA) zg?tKwohQA;cCb&;IFEznYI{nLb-uLQG$Cebe%58p2k@USZMP;y-1*XO)4(tXX zctWHNY+epxZMSI?gT8=i+wd6lLK&Ez0yEE83nf2S*<|#O0+7=2dt2R z*{fm3WfigMhs2;)NZVbBwLiM6rK6KClK51%(S*Uc-E|L;&mw6LWZ<*MFOso2)eu8( zkY%Q4pt}mfkW<0;UUBMfj$ZMf|kD4HcK$Qi)R+aw78M zEHS4~W0YvAY{RQFI)j?Xpp7*$2wKx67#T1 zo{`?OW|cGmhVwHLE%#b1lX-fXtW4(i6xU@}N_$k|Q7U+JX)-iabBNCi*>Tpy!x;s{CXMWCo2s(;Cy;KYpgFAEzcV3WwY44Y~(|4y=-0@ z4K}lj!^Xzs``%(`c4L7|2$_uqGCX{2lyNIJY92l|%1gQYQ(`{W;b!SQXS>yWu7J(1 zTg}(YaEt3Mgh(0Kq)dzO#DN-RLIZPMFmgDqgNZ47ol z#;F*=?p_W|-@V`oEnTNd&9R}}F_Gx3fzH*!QU z0_v@c5Y6iy)}^2Jh4DRWCiU(19Ldym^9?zsVh-bbX8cBP~KaQl7tPH<9FuNH0k!lJKT>8Bm-l|>G<{ZM-U zw6)DK#D|=2))qIM7|qA5?c`nrDALESNW^gd*p-+VMf#W}?r+F2f0}gYCkA%?)NRl3 zVu(-O_Dl@cr_z4>03*EvQh)sPCPK^u1u;2q2i(Na4)y^~%=IQF;O8=FeZ3gMjM=?E zFJSABJa@97UAv=%ypsY(YdM%K>MsTjJm@+MpQ6JYl=d!)7&#o2_AZJTDhD|NtAe11 zFcbO`=|jsP7Wq4pl1Am74!F5(*@PA-u<%I+=R^g9HG(_~v{#d}`>ibdRmsd6wdV%$$ z#BZ-0O@h&!mfkORGzmkTmiT-rhGgRN+w&(G{70rVn-AddlazJ!UYh9Po{^$mNzc-; z_uN@}?*n&DnsWd6;{!8ClnCro>3%3^&uRIu3I@CzGur`wJ{Tk(OjZsP;fPsIm^S#%Qnq;$LwJ_L z?6S_wA^fEB=2>C>NHZBEuHH#TC&3A+KUM9bA^*8hIfU_mKf3%%(g8O0)}~U5)H@uw77u9 z7>kwN^XLWEVud}glVM>6=8_4+MVGEQWj}7Hp!l{@yP{3$}mC26l#Ne{Zf|S|#D&2h33#>}c zH=8do>asj(b-gGrTVB9oyIZd8=N!GjTCQx<1x9KslC{^1L4#KmWSr(>Wt%R&pt3^Q zrb`T!6&(0gCN>VDt5ndeq%&`#+9q#~5XH&wMhH=cr{*dOB%VW8aj9?-5JO~@!gbal zBZ5n?HOZ0@Vo2GV0v0d9)+l=w1r{&C)+l^&^)oD7f~`xUaxtK6UBR$ko>6}*IpY6SiJVypzPj2FR(VK295NUCorzPHYGoli$9ldDq!*2 zYm>59p7a81lWM|inG}A=i__03Z?|3CE4c8UQ|Pkekp2q2xVNcfTnjNa=`vb`-MPHC zIdR(IzfIZO0Ah%5Q)rb#4Ikzm$+1!5+WtG-{K1RgbvqP(d}OJK>89}Gqr*_yp>P!9 zih~`?y-Fnyv=mn)J8uw~{#6B9Tq0F&EzlQQRckR=A|A4=bnr0^qZoPJq(du<}C==`$6 zj~Tq<#qY0Zp0B9j(vm(&MNe^QGIFeFF%A#RM-lCq!&j93EF=d16=grti4p7-r9aYB zVl{%jro4SN7=8rC&ngOsz~$^It97(DlK01o71=jj3_iuIyy0RHgZ74s&C5lM7;o_9 z;v!sw82gp?mW{E7G4?Bax3@-zcvInw%GE)L{DIAOO$_%pmCBmkiw_|Frn2XVwGe+t zdGA^AwG@AcFD$>w*J|;1mA&sGggCGfCx-jGZh;d+`&}+@CcX~Z?K-xPRcpi6Q=h6JHPUkCgYRO?*AIKT^{CV!vK%f2?reXH^LC z=Uf60j5r^_|6{kQ5kvfAv#Ax40P`mbe?(^a{K^5&(;4m)w{YnW`X^kt9QX$0c0hTb z+uSzLIeS1!bLYK5C-<2Onrm@F>>0pj2@+#@e5UM03^DkhsRriWjTpf`Q~Gz!6n@B$ z(+8FJPaA9_gB|2yfit)f&awDH1s%-~hr|em2PPOXf_ScEzOl(ZOYbkat1wyo)d7{kehUF-#T$Zhy$D4h~fUN(O-hXUvTj_jS;d75`X{*ldCuOfExB6L~ z93B{P+Ts6`Qsz367~(%EdmRZ3^UpXI>9s;XWh||cI|I(`hoG5pL6|> zko^x2@_Zgh&$<3b2k_6iL;W_C_Pp|@Mdq7k8^?Oy?F!p;X)n0OO^6l(Y_y5te!(?v zVrXYCn9f}!@BsE-RnSeBmJrDTo0dcjyvlR%kMO4>tRw!y2rXqs6x1{8pBRO}1CuN<{AWb=>xLNOGa~zSgFhrn&yKt&t@sX# z&yH+!#or)7d`=XY8+Sqs1lSCO7z3FTW%#{`_0I?3&xu-_-+zb^Y);grOpjzIg3XP* z`8F8-dJ5lJF4#^uzULVhE z@k%F72ytK|P7L=-Cr%9UN;hy|n3uVM6M_z$r!(3zj=KgA5_AB6S@rF=iCvw7ZF{Th zFA$p>``eONo)xF7&utRfRA$x;-~5%>uffH?5=-X&cTuK#$5zp@kAJNC!*9i*ATtbq zDcC$te;;_~l6wCZLyNx;Wc}!2Y%tBaR!$}p|1G9=IvF4vz6*GWWKIUyn=M2tCj)f) z8#M*SQ%TM5#BVyCx=3OErviMz7z(pL72te#o2H=0olX{iC&qU=eUZYFoW4k5Upq}o zD@_6VIca`OwCVKoMGBkQ&leM8FZ-E^@z0Q(vz47qCLa^Mvu6VwMNKB`UuS~`rrW~@ zl(PYTT;X42mg2|o!22~Ye`s3@&tC$pbZ)(+tjzf!Fn^8&gf|q>oR$FLdp>B~S_c7y y>iM8;J4?MB)(e68Nf1h$Yd}+7Ky6j#=nM$%g<#Gt#|8cs;a|G?mg8YrqyGbv3%bex