From 52ea48d06d23356e2ef839973c7376ddff086e29 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 11:50:13 -0500 Subject: [PATCH] Automated Protos Update (#82) Co-authored-by: viambot --- api_version.lock | 2 +- .../longrunning/CancelOperationRequest.java | 6 +- .../longrunning/DeleteOperationRequest.java | 6 +- .../longrunning/GetOperationRequest.java | 6 +- .../longrunning/ListOperationsRequest.java | 6 +- .../longrunning/ListOperationsResponse.java | 6 +- .../gen/com/google/longrunning/Operation.java | 22 +- .../com/google/longrunning/OperationInfo.java | 14 +- .../longrunning/OperationOrBuilder.java | 4 +- .../google/longrunning/OperationsGrpc.java | 120 +- .../longrunning/WaitOperationRequest.java | 6 +- .../src/main/gen/com/viam/robot/v1/Robot.java | 161 +- .../src/main/gen/viam/app/data/v1/Data.java | 4176 ++++++++- .../gen/viam/app/data/v1/DataServiceGrpc.java | 200 +- core/sdk/src/main/gen/viam/app/v1/App.java | 7770 ++++++++++++++++- .../main/gen/viam/app/v1/AppServiceGrpc.java | 773 +- core/sdk/src/main/resources/protofds/viam.api | Bin 537505 -> 548821 bytes 17 files changed, 12636 insertions(+), 642 deletions(-) diff --git a/api_version.lock b/api_version.lock index 5251064ba..ac9b40f34 100644 --- a/api_version.lock +++ b/api_version.lock @@ -1 +1 @@ -v0.1.361 +v0.1.367 diff --git a/core/sdk/src/main/gen/com/google/longrunning/CancelOperationRequest.java b/core/sdk/src/main/gen/com/google/longrunning/CancelOperationRequest.java index d0de6bb4f..0ed763bd2 100644 --- a/core/sdk/src/main/gen/com/google/longrunning/CancelOperationRequest.java +++ b/core/sdk/src/main/gen/com/google/longrunning/CancelOperationRequest.java @@ -7,7 +7,8 @@ /** *
- * The request message for [Operations.CancelOperation][google.longrunning.Operations.CancelOperation].
+ * The request message for
+ * [Operations.CancelOperation][google.longrunning.Operations.CancelOperation].
  * 
* * Protobuf type {@code google.longrunning.CancelOperationRequest} @@ -172,7 +173,8 @@ public static Builder newBuilder(com.google.longrunning.CancelOperationRequest p /** *
-   * The request message for [Operations.CancelOperation][google.longrunning.Operations.CancelOperation].
+   * The request message for
+   * [Operations.CancelOperation][google.longrunning.Operations.CancelOperation].
    * 
* * Protobuf type {@code google.longrunning.CancelOperationRequest} diff --git a/core/sdk/src/main/gen/com/google/longrunning/DeleteOperationRequest.java b/core/sdk/src/main/gen/com/google/longrunning/DeleteOperationRequest.java index 076534f7f..7b2b2e54a 100644 --- a/core/sdk/src/main/gen/com/google/longrunning/DeleteOperationRequest.java +++ b/core/sdk/src/main/gen/com/google/longrunning/DeleteOperationRequest.java @@ -7,7 +7,8 @@ /** *
- * The request message for [Operations.DeleteOperation][google.longrunning.Operations.DeleteOperation].
+ * The request message for
+ * [Operations.DeleteOperation][google.longrunning.Operations.DeleteOperation].
  * 
* * Protobuf type {@code google.longrunning.DeleteOperationRequest} @@ -172,7 +173,8 @@ public static Builder newBuilder(com.google.longrunning.DeleteOperationRequest p /** *
-   * The request message for [Operations.DeleteOperation][google.longrunning.Operations.DeleteOperation].
+   * The request message for
+   * [Operations.DeleteOperation][google.longrunning.Operations.DeleteOperation].
    * 
* * Protobuf type {@code google.longrunning.DeleteOperationRequest} diff --git a/core/sdk/src/main/gen/com/google/longrunning/GetOperationRequest.java b/core/sdk/src/main/gen/com/google/longrunning/GetOperationRequest.java index ed72e0264..c1fa41b75 100644 --- a/core/sdk/src/main/gen/com/google/longrunning/GetOperationRequest.java +++ b/core/sdk/src/main/gen/com/google/longrunning/GetOperationRequest.java @@ -7,7 +7,8 @@ /** *
- * The request message for [Operations.GetOperation][google.longrunning.Operations.GetOperation].
+ * The request message for
+ * [Operations.GetOperation][google.longrunning.Operations.GetOperation].
  * 
* * Protobuf type {@code google.longrunning.GetOperationRequest} @@ -172,7 +173,8 @@ public static Builder newBuilder(com.google.longrunning.GetOperationRequest prot /** *
-   * The request message for [Operations.GetOperation][google.longrunning.Operations.GetOperation].
+   * The request message for
+   * [Operations.GetOperation][google.longrunning.Operations.GetOperation].
    * 
* * Protobuf type {@code google.longrunning.GetOperationRequest} diff --git a/core/sdk/src/main/gen/com/google/longrunning/ListOperationsRequest.java b/core/sdk/src/main/gen/com/google/longrunning/ListOperationsRequest.java index b12ff3a9f..02a15db6c 100644 --- a/core/sdk/src/main/gen/com/google/longrunning/ListOperationsRequest.java +++ b/core/sdk/src/main/gen/com/google/longrunning/ListOperationsRequest.java @@ -7,7 +7,8 @@ /** *
- * The request message for [Operations.ListOperations][google.longrunning.Operations.ListOperations].
+ * The request message for
+ * [Operations.ListOperations][google.longrunning.Operations.ListOperations].
  * 
* * Protobuf type {@code google.longrunning.ListOperationsRequest} @@ -346,7 +347,8 @@ public static Builder newBuilder(com.google.longrunning.ListOperationsRequest pr /** *
-   * The request message for [Operations.ListOperations][google.longrunning.Operations.ListOperations].
+   * The request message for
+   * [Operations.ListOperations][google.longrunning.Operations.ListOperations].
    * 
* * Protobuf type {@code google.longrunning.ListOperationsRequest} diff --git a/core/sdk/src/main/gen/com/google/longrunning/ListOperationsResponse.java b/core/sdk/src/main/gen/com/google/longrunning/ListOperationsResponse.java index e8ef187e9..d1227426d 100644 --- a/core/sdk/src/main/gen/com/google/longrunning/ListOperationsResponse.java +++ b/core/sdk/src/main/gen/com/google/longrunning/ListOperationsResponse.java @@ -7,7 +7,8 @@ /** *
- * The response message for [Operations.ListOperations][google.longrunning.Operations.ListOperations].
+ * The response message for
+ * [Operations.ListOperations][google.longrunning.Operations.ListOperations].
  * 
* * Protobuf type {@code google.longrunning.ListOperationsResponse} @@ -311,7 +312,8 @@ public static Builder newBuilder(com.google.longrunning.ListOperationsResponse p /** *
-   * The response message for [Operations.ListOperations][google.longrunning.Operations.ListOperations].
+   * The response message for
+   * [Operations.ListOperations][google.longrunning.Operations.ListOperations].
    * 
* * Protobuf type {@code google.longrunning.ListOperationsResponse} diff --git a/core/sdk/src/main/gen/com/google/longrunning/Operation.java b/core/sdk/src/main/gen/com/google/longrunning/Operation.java index 81daa94a7..cf4082872 100644 --- a/core/sdk/src/main/gen/com/google/longrunning/Operation.java +++ b/core/sdk/src/main/gen/com/google/longrunning/Operation.java @@ -340,7 +340,7 @@ private void clearError() { public static final int RESPONSE_FIELD_NUMBER = 5; /** *
-   * The normal response of the operation in case of success.  If the original
+   * The normal, successful response of the operation.  If the original
    * method returns no data on success, such as `Delete`, the response is
    * `google.protobuf.Empty`.  If the original method is standard
    * `Get`/`Create`/`Update`, the response should be the resource.  For other
@@ -358,7 +358,7 @@ public boolean hasResponse() {
   }
   /**
    * 
-   * The normal response of the operation in case of success.  If the original
+   * The normal, successful response of the operation.  If the original
    * method returns no data on success, such as `Delete`, the response is
    * `google.protobuf.Empty`.  If the original method is standard
    * `Get`/`Create`/`Update`, the response should be the resource.  For other
@@ -379,7 +379,7 @@ public com.google.protobuf.Any getResponse() {
   }
   /**
    * 
-   * The normal response of the operation in case of success.  If the original
+   * The normal, successful response of the operation.  If the original
    * method returns no data on success, such as `Delete`, the response is
    * `google.protobuf.Empty`.  If the original method is standard
    * `Get`/`Create`/`Update`, the response should be the resource.  For other
@@ -398,7 +398,7 @@ private void setResponse(com.google.protobuf.Any value) {
   }
   /**
    * 
-   * The normal response of the operation in case of success.  If the original
+   * The normal, successful response of the operation.  If the original
    * method returns no data on success, such as `Delete`, the response is
    * `google.protobuf.Empty`.  If the original method is standard
    * `Get`/`Create`/`Update`, the response should be the resource.  For other
@@ -423,7 +423,7 @@ private void mergeResponse(com.google.protobuf.Any value) {
   }
   /**
    * 
-   * The normal response of the operation in case of success.  If the original
+   * The normal, successful response of the operation.  If the original
    * method returns no data on success, such as `Delete`, the response is
    * `google.protobuf.Empty`.  If the original method is standard
    * `Get`/`Create`/`Update`, the response should be the resource.  For other
@@ -844,7 +844,7 @@ public Builder clearError() {
 
     /**
      * 
-     * The normal response of the operation in case of success.  If the original
+     * The normal, successful response of the operation.  If the original
      * method returns no data on success, such as `Delete`, the response is
      * `google.protobuf.Empty`.  If the original method is standard
      * `Get`/`Create`/`Update`, the response should be the resource.  For other
@@ -862,7 +862,7 @@ public boolean hasResponse() {
     }
     /**
      * 
-     * The normal response of the operation in case of success.  If the original
+     * The normal, successful response of the operation.  If the original
      * method returns no data on success, such as `Delete`, the response is
      * `google.protobuf.Empty`.  If the original method is standard
      * `Get`/`Create`/`Update`, the response should be the resource.  For other
@@ -880,7 +880,7 @@ public com.google.protobuf.Any getResponse() {
     }
     /**
      * 
-     * The normal response of the operation in case of success.  If the original
+     * The normal, successful response of the operation.  If the original
      * method returns no data on success, such as `Delete`, the response is
      * `google.protobuf.Empty`.  If the original method is standard
      * `Get`/`Create`/`Update`, the response should be the resource.  For other
@@ -899,7 +899,7 @@ public Builder setResponse(com.google.protobuf.Any value) {
     }
     /**
      * 
-     * The normal response of the operation in case of success.  If the original
+     * The normal, successful response of the operation.  If the original
      * method returns no data on success, such as `Delete`, the response is
      * `google.protobuf.Empty`.  If the original method is standard
      * `Get`/`Create`/`Update`, the response should be the resource.  For other
@@ -919,7 +919,7 @@ public Builder setResponse(
     }
     /**
      * 
-     * The normal response of the operation in case of success.  If the original
+     * The normal, successful response of the operation.  If the original
      * method returns no data on success, such as `Delete`, the response is
      * `google.protobuf.Empty`.  If the original method is standard
      * `Get`/`Create`/`Update`, the response should be the resource.  For other
@@ -938,7 +938,7 @@ public Builder mergeResponse(com.google.protobuf.Any value) {
     }
     /**
      * 
-     * The normal response of the operation in case of success.  If the original
+     * The normal, successful response of the operation.  If the original
      * method returns no data on success, such as `Delete`, the response is
      * `google.protobuf.Empty`.  If the original method is standard
      * `Get`/`Create`/`Update`, the response should be the resource.  For other
diff --git a/core/sdk/src/main/gen/com/google/longrunning/OperationInfo.java b/core/sdk/src/main/gen/com/google/longrunning/OperationInfo.java
index d98f63dee..fcdf07822 100644
--- a/core/sdk/src/main/gen/com/google/longrunning/OperationInfo.java
+++ b/core/sdk/src/main/gen/com/google/longrunning/OperationInfo.java
@@ -11,11 +11,10 @@
  *
  * Example:
  *
- * rpc LongRunningRecognize(LongRunningRecognizeRequest)
- * returns (google.longrunning.Operation) {
+ * rpc Export(ExportRequest) returns (google.longrunning.Operation) {
  * option (google.longrunning.operation_info) = {
- * response_type: "LongRunningRecognizeResponse"
- * metadata_type: "LongRunningRecognizeMetadata"
+ * response_type: "ExportResponse"
+ * metadata_type: "ExportMetadata"
  * };
  * }
  * 
@@ -319,11 +318,10 @@ public static Builder newBuilder(com.google.longrunning.OperationInfo prototype) * * Example: * - * rpc LongRunningRecognize(LongRunningRecognizeRequest) - * returns (google.longrunning.Operation) { + * rpc Export(ExportRequest) returns (google.longrunning.Operation) { * option (google.longrunning.operation_info) = { - * response_type: "LongRunningRecognizeResponse" - * metadata_type: "LongRunningRecognizeMetadata" + * response_type: "ExportResponse" + * metadata_type: "ExportMetadata" * }; * } *
diff --git a/core/sdk/src/main/gen/com/google/longrunning/OperationOrBuilder.java b/core/sdk/src/main/gen/com/google/longrunning/OperationOrBuilder.java index dc286cdb4..f7f84869b 100644 --- a/core/sdk/src/main/gen/com/google/longrunning/OperationOrBuilder.java +++ b/core/sdk/src/main/gen/com/google/longrunning/OperationOrBuilder.java @@ -91,7 +91,7 @@ public interface OperationOrBuilder extends /** *
-   * The normal response of the operation in case of success.  If the original
+   * The normal, successful response of the operation.  If the original
    * method returns no data on success, such as `Delete`, the response is
    * `google.protobuf.Empty`.  If the original method is standard
    * `Get`/`Create`/`Update`, the response should be the resource.  For other
@@ -107,7 +107,7 @@ public interface OperationOrBuilder extends
   boolean hasResponse();
   /**
    * 
-   * The normal response of the operation in case of success.  If the original
+   * The normal, successful response of the operation.  If the original
    * method returns no data on success, such as `Delete`, the response is
    * `google.protobuf.Empty`.  If the original method is standard
    * `Get`/`Create`/`Update`, the response should be the resource.  For other
diff --git a/core/sdk/src/main/gen/com/google/longrunning/OperationsGrpc.java b/core/sdk/src/main/gen/com/google/longrunning/OperationsGrpc.java
index 74c671de8..0c74e2683 100644
--- a/core/sdk/src/main/gen/com/google/longrunning/OperationsGrpc.java
+++ b/core/sdk/src/main/gen/com/google/longrunning/OperationsGrpc.java
@@ -6,12 +6,12 @@
  * 
  * Manages long-running operations with an API service.
  * When an API method normally takes long time to complete, it can be designed
- * to return [Operation][google.longrunning.Operation] to the client, and the client can use this
- * interface to receive the real response asynchronously by polling the
- * operation resource, or pass the operation resource to another API (such as
- * Google Cloud Pub/Sub API) to receive the response.  Any API service that
- * returns long-running operations should implement the `Operations` interface
- * so developers can have a consistent client experience.
+ * to return [Operation][google.longrunning.Operation] to the client, and the
+ * client can use this interface to receive the real response asynchronously by
+ * polling the operation resource, or pass the operation resource to another API
+ * (such as Pub/Sub API) to receive the response.  Any API service that returns
+ * long-running operations should implement the `Operations` interface so
+ * developers can have a consistent client experience.
  * 
*/ @javax.annotation.Generated( @@ -223,12 +223,12 @@ public OperationsFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOptions *
    * Manages long-running operations with an API service.
    * When an API method normally takes long time to complete, it can be designed
-   * to return [Operation][google.longrunning.Operation] to the client, and the client can use this
-   * interface to receive the real response asynchronously by polling the
-   * operation resource, or pass the operation resource to another API (such as
-   * Google Cloud Pub/Sub API) to receive the response.  Any API service that
-   * returns long-running operations should implement the `Operations` interface
-   * so developers can have a consistent client experience.
+   * to return [Operation][google.longrunning.Operation] to the client, and the
+   * client can use this interface to receive the real response asynchronously by
+   * polling the operation resource, or pass the operation resource to another API
+   * (such as Pub/Sub API) to receive the response.  Any API service that returns
+   * long-running operations should implement the `Operations` interface so
+   * developers can have a consistent client experience.
    * 
*/ public interface AsyncService { @@ -237,13 +237,6 @@ public interface AsyncService { *
      * Lists operations that match the specified filter in the request. If the
      * server doesn't support this method, it returns `UNIMPLEMENTED`.
-     * NOTE: the `name` binding allows API services to override the binding
-     * to use different resource name schemes, such as `users/*/operations`. To
-     * override the binding, API services can add a binding such as
-     * `"/v1/{name=users/*}/operations"` to their service configuration.
-     * For backwards compatibility, the default name includes the operations
-     * collection id, however overriding users must ensure the name binding
-     * is the parent resource, without the operations collection id.
      * 
*/ default void listOperations(com.google.longrunning.ListOperationsRequest request, @@ -286,8 +279,9 @@ default void deleteOperation(com.google.longrunning.DeleteOperationRequest reque * other methods to check whether the cancellation succeeded or whether the * operation completed despite cancellation. On successful cancellation, * the operation is not deleted; instead, it becomes an operation with - * an [Operation.error][google.longrunning.Operation.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, - * corresponding to `Code.CANCELLED`. + * an [Operation.error][google.longrunning.Operation.error] value with a + * [google.rpc.Status.code][google.rpc.Status.code] of `1`, corresponding to + * `Code.CANCELLED`. *
*/ default void cancelOperation(com.google.longrunning.CancelOperationRequest request, @@ -319,12 +313,12 @@ default void waitOperation(com.google.longrunning.WaitOperationRequest request, *
    * Manages long-running operations with an API service.
    * When an API method normally takes long time to complete, it can be designed
-   * to return [Operation][google.longrunning.Operation] to the client, and the client can use this
-   * interface to receive the real response asynchronously by polling the
-   * operation resource, or pass the operation resource to another API (such as
-   * Google Cloud Pub/Sub API) to receive the response.  Any API service that
-   * returns long-running operations should implement the `Operations` interface
-   * so developers can have a consistent client experience.
+   * to return [Operation][google.longrunning.Operation] to the client, and the
+   * client can use this interface to receive the real response asynchronously by
+   * polling the operation resource, or pass the operation resource to another API
+   * (such as Pub/Sub API) to receive the response.  Any API service that returns
+   * long-running operations should implement the `Operations` interface so
+   * developers can have a consistent client experience.
    * 
*/ public static abstract class OperationsImplBase @@ -340,12 +334,12 @@ public static abstract class OperationsImplBase *
    * Manages long-running operations with an API service.
    * When an API method normally takes long time to complete, it can be designed
-   * to return [Operation][google.longrunning.Operation] to the client, and the client can use this
-   * interface to receive the real response asynchronously by polling the
-   * operation resource, or pass the operation resource to another API (such as
-   * Google Cloud Pub/Sub API) to receive the response.  Any API service that
-   * returns long-running operations should implement the `Operations` interface
-   * so developers can have a consistent client experience.
+   * to return [Operation][google.longrunning.Operation] to the client, and the
+   * client can use this interface to receive the real response asynchronously by
+   * polling the operation resource, or pass the operation resource to another API
+   * (such as Pub/Sub API) to receive the response.  Any API service that returns
+   * long-running operations should implement the `Operations` interface so
+   * developers can have a consistent client experience.
    * 
*/ public static final class OperationsStub @@ -365,13 +359,6 @@ protected OperationsStub build( *
      * Lists operations that match the specified filter in the request. If the
      * server doesn't support this method, it returns `UNIMPLEMENTED`.
-     * NOTE: the `name` binding allows API services to override the binding
-     * to use different resource name schemes, such as `users/*/operations`. To
-     * override the binding, API services can add a binding such as
-     * `"/v1/{name=users/*}/operations"` to their service configuration.
-     * For backwards compatibility, the default name includes the operations
-     * collection id, however overriding users must ensure the name binding
-     * is the parent resource, without the operations collection id.
      * 
*/ public void listOperations(com.google.longrunning.ListOperationsRequest request, @@ -417,8 +404,9 @@ public void deleteOperation(com.google.longrunning.DeleteOperationRequest reques * other methods to check whether the cancellation succeeded or whether the * operation completed despite cancellation. On successful cancellation, * the operation is not deleted; instead, it becomes an operation with - * an [Operation.error][google.longrunning.Operation.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, - * corresponding to `Code.CANCELLED`. + * an [Operation.error][google.longrunning.Operation.error] value with a + * [google.rpc.Status.code][google.rpc.Status.code] of `1`, corresponding to + * `Code.CANCELLED`. *
*/ public void cancelOperation(com.google.longrunning.CancelOperationRequest request, @@ -452,12 +440,12 @@ public void waitOperation(com.google.longrunning.WaitOperationRequest request, *
    * Manages long-running operations with an API service.
    * When an API method normally takes long time to complete, it can be designed
-   * to return [Operation][google.longrunning.Operation] to the client, and the client can use this
-   * interface to receive the real response asynchronously by polling the
-   * operation resource, or pass the operation resource to another API (such as
-   * Google Cloud Pub/Sub API) to receive the response.  Any API service that
-   * returns long-running operations should implement the `Operations` interface
-   * so developers can have a consistent client experience.
+   * to return [Operation][google.longrunning.Operation] to the client, and the
+   * client can use this interface to receive the real response asynchronously by
+   * polling the operation resource, or pass the operation resource to another API
+   * (such as Pub/Sub API) to receive the response.  Any API service that returns
+   * long-running operations should implement the `Operations` interface so
+   * developers can have a consistent client experience.
    * 
*/ public static final class OperationsBlockingStub @@ -477,13 +465,6 @@ protected OperationsBlockingStub build( *
      * Lists operations that match the specified filter in the request. If the
      * server doesn't support this method, it returns `UNIMPLEMENTED`.
-     * NOTE: the `name` binding allows API services to override the binding
-     * to use different resource name schemes, such as `users/*/operations`. To
-     * override the binding, API services can add a binding such as
-     * `"/v1/{name=users/*}/operations"` to their service configuration.
-     * For backwards compatibility, the default name includes the operations
-     * collection id, however overriding users must ensure the name binding
-     * is the parent resource, without the operations collection id.
      * 
*/ public com.google.longrunning.ListOperationsResponse listOperations(com.google.longrunning.ListOperationsRequest request) { @@ -526,8 +507,9 @@ public com.google.protobuf.Empty deleteOperation(com.google.longrunning.DeleteOp * other methods to check whether the cancellation succeeded or whether the * operation completed despite cancellation. On successful cancellation, * the operation is not deleted; instead, it becomes an operation with - * an [Operation.error][google.longrunning.Operation.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, - * corresponding to `Code.CANCELLED`. + * an [Operation.error][google.longrunning.Operation.error] value with a + * [google.rpc.Status.code][google.rpc.Status.code] of `1`, corresponding to + * `Code.CANCELLED`. *
*/ public com.google.protobuf.Empty cancelOperation(com.google.longrunning.CancelOperationRequest request) { @@ -559,12 +541,12 @@ public com.google.longrunning.Operation waitOperation(com.google.longrunning.Wai *
    * Manages long-running operations with an API service.
    * When an API method normally takes long time to complete, it can be designed
-   * to return [Operation][google.longrunning.Operation] to the client, and the client can use this
-   * interface to receive the real response asynchronously by polling the
-   * operation resource, or pass the operation resource to another API (such as
-   * Google Cloud Pub/Sub API) to receive the response.  Any API service that
-   * returns long-running operations should implement the `Operations` interface
-   * so developers can have a consistent client experience.
+   * to return [Operation][google.longrunning.Operation] to the client, and the
+   * client can use this interface to receive the real response asynchronously by
+   * polling the operation resource, or pass the operation resource to another API
+   * (such as Pub/Sub API) to receive the response.  Any API service that returns
+   * long-running operations should implement the `Operations` interface so
+   * developers can have a consistent client experience.
    * 
*/ public static final class OperationsFutureStub @@ -584,13 +566,6 @@ protected OperationsFutureStub build( *
      * Lists operations that match the specified filter in the request. If the
      * server doesn't support this method, it returns `UNIMPLEMENTED`.
-     * NOTE: the `name` binding allows API services to override the binding
-     * to use different resource name schemes, such as `users/*/operations`. To
-     * override the binding, API services can add a binding such as
-     * `"/v1/{name=users/*}/operations"` to their service configuration.
-     * For backwards compatibility, the default name includes the operations
-     * collection id, however overriding users must ensure the name binding
-     * is the parent resource, without the operations collection id.
      * 
*/ public com.google.common.util.concurrent.ListenableFuture listOperations( @@ -636,8 +611,9 @@ public com.google.common.util.concurrent.ListenableFuture */ public com.google.common.util.concurrent.ListenableFuture cancelOperation( diff --git a/core/sdk/src/main/gen/com/google/longrunning/WaitOperationRequest.java b/core/sdk/src/main/gen/com/google/longrunning/WaitOperationRequest.java index 49ef5e072..817d6ba82 100644 --- a/core/sdk/src/main/gen/com/google/longrunning/WaitOperationRequest.java +++ b/core/sdk/src/main/gen/com/google/longrunning/WaitOperationRequest.java @@ -7,7 +7,8 @@ /** *
- * The request message for [Operations.WaitOperation][google.longrunning.Operations.WaitOperation].
+ * The request message for
+ * [Operations.WaitOperation][google.longrunning.Operations.WaitOperation].
  * 
* * Protobuf type {@code google.longrunning.WaitOperationRequest} @@ -249,7 +250,8 @@ public static Builder newBuilder(com.google.longrunning.WaitOperationRequest pro /** *
-   * The request message for [Operations.WaitOperation][google.longrunning.Operations.WaitOperation].
+   * The request message for
+   * [Operations.WaitOperation][google.longrunning.Operations.WaitOperation].
    * 
* * Protobuf type {@code google.longrunning.WaitOperationRequest} 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 64f0620b0..0c1dbb708 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 @@ -18481,6 +18481,25 @@ public interface ResourceStatusOrBuilder extends */ com.google.protobuf.ByteString getErrorBytes(); + + /** + *
+     * infomation about resource orgID, locationID and partID
+     * 
+ * + * optional .viam.robot.v1.GetCloudMetadataResponse cloud_metadata = 6 [json_name = "cloudMetadata"]; + * @return Whether the cloudMetadata field is set. + */ + boolean hasCloudMetadata(); + /** + *
+     * infomation about resource orgID, locationID and partID
+     * 
+ * + * optional .viam.robot.v1.GetCloudMetadataResponse cloud_metadata = 6 [json_name = "cloudMetadata"]; + * @return The cloudMetadata. + */ + com.viam.robot.v1.Robot.GetCloudMetadataResponse getCloudMetadata(); } /** * Protobuf type {@code viam.robot.v1.ResourceStatus} @@ -18995,6 +19014,72 @@ private void setErrorBytes( } + public static final int CLOUD_METADATA_FIELD_NUMBER = 6; + private com.viam.robot.v1.Robot.GetCloudMetadataResponse cloudMetadata_; + /** + *
+     * infomation about resource orgID, locationID and partID
+     * 
+ * + * optional .viam.robot.v1.GetCloudMetadataResponse cloud_metadata = 6 [json_name = "cloudMetadata"]; + */ + @java.lang.Override + public boolean hasCloudMetadata() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + *
+     * infomation about resource orgID, locationID and partID
+     * 
+ * + * optional .viam.robot.v1.GetCloudMetadataResponse cloud_metadata = 6 [json_name = "cloudMetadata"]; + */ + @java.lang.Override + public com.viam.robot.v1.Robot.GetCloudMetadataResponse getCloudMetadata() { + return cloudMetadata_ == null ? com.viam.robot.v1.Robot.GetCloudMetadataResponse.getDefaultInstance() : cloudMetadata_; + } + /** + *
+     * infomation about resource orgID, locationID and partID
+     * 
+ * + * optional .viam.robot.v1.GetCloudMetadataResponse cloud_metadata = 6 [json_name = "cloudMetadata"]; + */ + private void setCloudMetadata(com.viam.robot.v1.Robot.GetCloudMetadataResponse value) { + value.getClass(); + cloudMetadata_ = value; + bitField0_ |= 0x00000004; + } + /** + *
+     * infomation about resource orgID, locationID and partID
+     * 
+ * + * optional .viam.robot.v1.GetCloudMetadataResponse cloud_metadata = 6 [json_name = "cloudMetadata"]; + */ + @java.lang.SuppressWarnings({"ReferenceEquality"}) + private void mergeCloudMetadata(com.viam.robot.v1.Robot.GetCloudMetadataResponse value) { + value.getClass(); + if (cloudMetadata_ != null && + cloudMetadata_ != com.viam.robot.v1.Robot.GetCloudMetadataResponse.getDefaultInstance()) { + cloudMetadata_ = + com.viam.robot.v1.Robot.GetCloudMetadataResponse.newBuilder(cloudMetadata_).mergeFrom(value).buildPartial(); + } else { + cloudMetadata_ = value; + } + bitField0_ |= 0x00000004; + } + /** + *
+     * infomation about resource orgID, locationID and partID
+     * 
+ * + * optional .viam.robot.v1.GetCloudMetadataResponse cloud_metadata = 6 [json_name = "cloudMetadata"]; + */ + private void clearCloudMetadata() { cloudMetadata_ = null; + bitField0_ = (bitField0_ & ~0x00000004); + } + public static com.viam.robot.v1.Robot.ResourceStatus parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { @@ -19443,6 +19528,77 @@ public Builder setErrorBytes( return this; } + /** + *
+       * infomation about resource orgID, locationID and partID
+       * 
+ * + * optional .viam.robot.v1.GetCloudMetadataResponse cloud_metadata = 6 [json_name = "cloudMetadata"]; + */ + @java.lang.Override + public boolean hasCloudMetadata() { + return instance.hasCloudMetadata(); + } + /** + *
+       * infomation about resource orgID, locationID and partID
+       * 
+ * + * optional .viam.robot.v1.GetCloudMetadataResponse cloud_metadata = 6 [json_name = "cloudMetadata"]; + */ + @java.lang.Override + public com.viam.robot.v1.Robot.GetCloudMetadataResponse getCloudMetadata() { + return instance.getCloudMetadata(); + } + /** + *
+       * infomation about resource orgID, locationID and partID
+       * 
+ * + * optional .viam.robot.v1.GetCloudMetadataResponse cloud_metadata = 6 [json_name = "cloudMetadata"]; + */ + public Builder setCloudMetadata(com.viam.robot.v1.Robot.GetCloudMetadataResponse value) { + copyOnWrite(); + instance.setCloudMetadata(value); + return this; + } + /** + *
+       * infomation about resource orgID, locationID and partID
+       * 
+ * + * optional .viam.robot.v1.GetCloudMetadataResponse cloud_metadata = 6 [json_name = "cloudMetadata"]; + */ + public Builder setCloudMetadata( + com.viam.robot.v1.Robot.GetCloudMetadataResponse.Builder builderForValue) { + copyOnWrite(); + instance.setCloudMetadata(builderForValue.build()); + return this; + } + /** + *
+       * infomation about resource orgID, locationID and partID
+       * 
+ * + * optional .viam.robot.v1.GetCloudMetadataResponse cloud_metadata = 6 [json_name = "cloudMetadata"]; + */ + public Builder mergeCloudMetadata(com.viam.robot.v1.Robot.GetCloudMetadataResponse value) { + copyOnWrite(); + instance.mergeCloudMetadata(value); + return this; + } + /** + *
+       * infomation about resource orgID, locationID and partID
+       * 
+ * + * optional .viam.robot.v1.GetCloudMetadataResponse cloud_metadata = 6 [json_name = "cloudMetadata"]; + */ + public Builder clearCloudMetadata() { copyOnWrite(); + instance.clearCloudMetadata(); + return this; + } + // @@protoc_insertion_point(builder_scope:viam.robot.v1.ResourceStatus) } @java.lang.Override @@ -19465,10 +19621,11 @@ protected final java.lang.Object dynamicMethod( "lastUpdated_", "revision_", "error_", + "cloudMetadata_", }; java.lang.String info = - "\u0000\u0005\u0000\u0001\u0001\u0005\u0005\u0000\u0000\u0000\u0001\u1009\u0000\u0002" + - "\f\u0003\u1009\u0001\u0004\u0208\u0005\u0208"; + "\u0000\u0006\u0000\u0001\u0001\u0006\u0006\u0000\u0000\u0000\u0001\u1009\u0000\u0002" + + "\f\u0003\u1009\u0001\u0004\u0208\u0005\u0208\u0006\u1009\u0002"; return newMessageInfo(DEFAULT_INSTANCE, info, objects); } // fall through diff --git a/core/sdk/src/main/gen/viam/app/data/v1/Data.java b/core/sdk/src/main/gen/viam/app/data/v1/Data.java index 5d8b1bfe9..903a22111 100644 --- a/core/sdk/src/main/gen/viam/app/data/v1/Data.java +++ b/core/sdk/src/main/gen/viam/app/data/v1/Data.java @@ -5795,7 +5795,7 @@ public static com.google.protobuf.Parser parser() { } } - public interface TabularDataByFilterRequestOrBuilder extends + @java.lang.Deprecated public interface TabularDataByFilterRequestOrBuilder extends // @@protoc_insertion_point(interface_extends:viam.app.data.v1.TabularDataByFilterRequest) com.google.protobuf.MessageLiteOrBuilder { @@ -5829,7 +5829,7 @@ public interface TabularDataByFilterRequestOrBuilder extends * * Protobuf type {@code viam.app.data.v1.TabularDataByFilterRequest} */ - public static final class TabularDataByFilterRequest extends + @java.lang.Deprecated public static final class TabularDataByFilterRequest extends com.google.protobuf.GeneratedMessageLite< TabularDataByFilterRequest, TabularDataByFilterRequest.Builder> implements // @@protoc_insertion_point(message_implements:viam.app.data.v1.TabularDataByFilterRequest) @@ -6217,7 +6217,7 @@ public static com.google.protobuf.Parser parser() { } } - public interface TabularDataByFilterResponseOrBuilder extends + @java.lang.Deprecated public interface TabularDataByFilterResponseOrBuilder extends // @@protoc_insertion_point(interface_extends:viam.app.data.v1.TabularDataByFilterResponse) com.google.protobuf.MessageLiteOrBuilder { @@ -6280,7 +6280,7 @@ public interface TabularDataByFilterResponseOrBuilder extends * * Protobuf type {@code viam.app.data.v1.TabularDataByFilterResponse} */ - public static final class TabularDataByFilterResponse extends + @java.lang.Deprecated public static final class TabularDataByFilterResponse extends com.google.protobuf.GeneratedMessageLite< TabularDataByFilterResponse, TabularDataByFilterResponse.Builder> implements // @@protoc_insertion_point(message_implements:viam.app.data.v1.TabularDataByFilterResponse) @@ -7068,7 +7068,7 @@ public static com.google.protobuf.Parser parser() { } } - public interface TabularDataOrBuilder extends + @java.lang.Deprecated public interface TabularDataOrBuilder extends // @@protoc_insertion_point(interface_extends:viam.app.data.v1.TabularData) com.google.protobuf.MessageLiteOrBuilder { @@ -7118,7 +7118,7 @@ public interface TabularDataOrBuilder extends * * Protobuf type {@code viam.app.data.v1.TabularData} */ - public static final class TabularData extends + @java.lang.Deprecated public static final class TabularData extends com.google.protobuf.GeneratedMessageLite< TabularData, TabularData.Builder> implements // @@protoc_insertion_point(message_implements:viam.app.data.v1.TabularData) @@ -8128,20 +8128,6 @@ public interface TabularDataBySQLResponseOrBuilder extends // @@protoc_insertion_point(interface_extends:viam.app.data.v1.TabularDataBySQLResponse) com.google.protobuf.MessageLiteOrBuilder { - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - java.util.List - getDataList(); - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - com.google.protobuf.Struct getData(int index); - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - int getDataCount(); - /** * repeated bytes raw_data = 2 [json_name = "rawData"]; * @return A list containing the rawData. @@ -8172,103 +8158,8 @@ public static final class TabularDataBySQLResponse extends // @@protoc_insertion_point(message_implements:viam.app.data.v1.TabularDataBySQLResponse) TabularDataBySQLResponseOrBuilder { private TabularDataBySQLResponse() { - data_ = emptyProtobufList(); rawData_ = emptyProtobufList(); } - public static final int DATA_FIELD_NUMBER = 1; - private com.google.protobuf.Internal.ProtobufList data_; - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - @java.lang.Override - public java.util.List getDataList() { - return data_; - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - public java.util.List - getDataOrBuilderList() { - return data_; - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - @java.lang.Override - public int getDataCount() { - return data_.size(); - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - @java.lang.Override - public com.google.protobuf.Struct getData(int index) { - return data_.get(index); - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - public com.google.protobuf.StructOrBuilder getDataOrBuilder( - int index) { - return data_.get(index); - } - private void ensureDataIsMutable() { - com.google.protobuf.Internal.ProtobufList tmp = data_; - if (!tmp.isModifiable()) { - data_ = - com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp); - } - } - - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - private void setData( - int index, com.google.protobuf.Struct value) { - value.getClass(); - ensureDataIsMutable(); - data_.set(index, value); - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - private void addData(com.google.protobuf.Struct value) { - value.getClass(); - ensureDataIsMutable(); - data_.add(value); - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - private void addData( - int index, com.google.protobuf.Struct value) { - value.getClass(); - ensureDataIsMutable(); - data_.add(index, value); - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - private void addAllData( - java.lang.Iterable values) { - ensureDataIsMutable(); - com.google.protobuf.AbstractMessageLite.addAll( - values, data_); - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - private void clearData() { - data_ = emptyProtobufList(); - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - private void removeData(int index) { - ensureDataIsMutable(); - data_.remove(index); - } - public static final int RAW_DATA_FIELD_NUMBER = 2; private com.google.protobuf.Internal.ProtobufList rawData_; /** @@ -8442,108 +8333,6 @@ private Builder() { } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - @java.lang.Override - public java.util.List getDataList() { - return java.util.Collections.unmodifiableList( - instance.getDataList()); - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - @java.lang.Override - public int getDataCount() { - return instance.getDataCount(); - }/** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - @java.lang.Override - public com.google.protobuf.Struct getData(int index) { - return instance.getData(index); - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - public Builder setData( - int index, com.google.protobuf.Struct value) { - copyOnWrite(); - instance.setData(index, value); - return this; - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - public Builder setData( - int index, com.google.protobuf.Struct.Builder builderForValue) { - copyOnWrite(); - instance.setData(index, - builderForValue.build()); - return this; - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - public Builder addData(com.google.protobuf.Struct value) { - copyOnWrite(); - instance.addData(value); - return this; - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - public Builder addData( - int index, com.google.protobuf.Struct value) { - copyOnWrite(); - instance.addData(index, value); - return this; - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - public Builder addData( - com.google.protobuf.Struct.Builder builderForValue) { - copyOnWrite(); - instance.addData(builderForValue.build()); - return this; - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - public Builder addData( - int index, com.google.protobuf.Struct.Builder builderForValue) { - copyOnWrite(); - instance.addData(index, - builderForValue.build()); - return this; - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - public Builder addAllData( - java.lang.Iterable values) { - copyOnWrite(); - instance.addAllData(values); - return this; - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - public Builder clearData() { - copyOnWrite(); - instance.clearData(); - return this; - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - public Builder removeData(int index) { - copyOnWrite(); - instance.removeData(index); - return this; - } - /** * repeated bytes raw_data = 2 [json_name = "rawData"]; * @return A list containing the rawData. @@ -8629,13 +8418,10 @@ protected final java.lang.Object dynamicMethod( } case BUILD_MESSAGE_INFO: { java.lang.Object[] objects = new java.lang.Object[] { - "data_", - com.google.protobuf.Struct.class, "rawData_", }; java.lang.String info = - "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0002\u0000\u0001\u001b\u0002\u001c" + - ""; + "\u0000\u0001\u0000\u0000\u0002\u0002\u0001\u0000\u0001\u0000\u0002\u001c"; return newMessageInfo(DEFAULT_INSTANCE, info, objects); } // fall through @@ -9259,20 +9045,6 @@ public interface TabularDataByMQLResponseOrBuilder extends // @@protoc_insertion_point(interface_extends:viam.app.data.v1.TabularDataByMQLResponse) com.google.protobuf.MessageLiteOrBuilder { - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - java.util.List - getDataList(); - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - com.google.protobuf.Struct getData(int index); - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - int getDataCount(); - /** * repeated bytes raw_data = 2 [json_name = "rawData"]; * @return A list containing the rawData. @@ -9303,103 +9075,8 @@ public static final class TabularDataByMQLResponse extends // @@protoc_insertion_point(message_implements:viam.app.data.v1.TabularDataByMQLResponse) TabularDataByMQLResponseOrBuilder { private TabularDataByMQLResponse() { - data_ = emptyProtobufList(); rawData_ = emptyProtobufList(); } - public static final int DATA_FIELD_NUMBER = 1; - private com.google.protobuf.Internal.ProtobufList data_; - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - @java.lang.Override - public java.util.List getDataList() { - return data_; - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - public java.util.List - getDataOrBuilderList() { - return data_; - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - @java.lang.Override - public int getDataCount() { - return data_.size(); - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - @java.lang.Override - public com.google.protobuf.Struct getData(int index) { - return data_.get(index); - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - public com.google.protobuf.StructOrBuilder getDataOrBuilder( - int index) { - return data_.get(index); - } - private void ensureDataIsMutable() { - com.google.protobuf.Internal.ProtobufList tmp = data_; - if (!tmp.isModifiable()) { - data_ = - com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp); - } - } - - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - private void setData( - int index, com.google.protobuf.Struct value) { - value.getClass(); - ensureDataIsMutable(); - data_.set(index, value); - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - private void addData(com.google.protobuf.Struct value) { - value.getClass(); - ensureDataIsMutable(); - data_.add(value); - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - private void addData( - int index, com.google.protobuf.Struct value) { - value.getClass(); - ensureDataIsMutable(); - data_.add(index, value); - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - private void addAllData( - java.lang.Iterable values) { - ensureDataIsMutable(); - com.google.protobuf.AbstractMessageLite.addAll( - values, data_); - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - private void clearData() { - data_ = emptyProtobufList(); - } - /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; - */ - private void removeData(int index) { - ensureDataIsMutable(); - data_.remove(index); - } - public static final int RAW_DATA_FIELD_NUMBER = 2; private com.google.protobuf.Internal.ProtobufList rawData_; /** @@ -9574,177 +9251,3797 @@ private Builder() { /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; + * repeated bytes raw_data = 2 [json_name = "rawData"]; + * @return A list containing the rawData. */ @java.lang.Override - public java.util.List getDataList() { + public java.util.List + getRawDataList() { return java.util.Collections.unmodifiableList( - instance.getDataList()); + instance.getRawDataList()); } /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; + * repeated bytes raw_data = 2 [json_name = "rawData"]; + * @return The count of rawData. + */ + @java.lang.Override + public int getRawDataCount() { + return instance.getRawDataCount(); + } + /** + * repeated bytes raw_data = 2 [json_name = "rawData"]; + * @param index The index of the element to return. + * @return The rawData at the given index. + */ + @java.lang.Override + public com.google.protobuf.ByteString getRawData(int index) { + return instance.getRawData(index); + } + /** + * repeated bytes raw_data = 2 [json_name = "rawData"]; + * @param value The rawData to set. + * @return This builder for chaining. + */ + public Builder setRawData( + int index, com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setRawData(index, value); + return this; + } + /** + * repeated bytes raw_data = 2 [json_name = "rawData"]; + * @param value The rawData to add. + * @return This builder for chaining. + */ + public Builder addRawData(com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.addRawData(value); + return this; + } + /** + * repeated bytes raw_data = 2 [json_name = "rawData"]; + * @param values The rawData to add. + * @return This builder for chaining. + */ + public Builder addAllRawData( + java.lang.Iterable values) { + copyOnWrite(); + instance.addAllRawData(values); + return this; + } + /** + * repeated bytes raw_data = 2 [json_name = "rawData"]; + * @return This builder for chaining. + */ + public Builder clearRawData() { + copyOnWrite(); + instance.clearRawData(); + return this; + } + + // @@protoc_insertion_point(builder_scope:viam.app.data.v1.TabularDataByMQLResponse) + } + @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.data.v1.Data.TabularDataByMQLResponse(); + } + case NEW_BUILDER: { + return new Builder(); + } + case BUILD_MESSAGE_INFO: { + java.lang.Object[] objects = new java.lang.Object[] { + "rawData_", + }; + java.lang.String info = + "\u0000\u0001\u0000\u0000\u0002\u0002\u0001\u0000\u0001\u0000\u0002\u001c"; + 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.data.v1.Data.TabularDataByMQLResponse.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.data.v1.TabularDataByMQLResponse) + private static final viam.app.data.v1.Data.TabularDataByMQLResponse DEFAULT_INSTANCE; + static { + TabularDataByMQLResponse defaultInstance = new TabularDataByMQLResponse(); + // New instances are implicitly immutable so no need to make + // immutable. + DEFAULT_INSTANCE = defaultInstance; + com.google.protobuf.GeneratedMessageLite.registerDefaultInstance( + TabularDataByMQLResponse.class, defaultInstance); + } + + public static viam.app.data.v1.Data.TabularDataByMQLResponse 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 ExportTabularDataRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:viam.app.data.v1.ExportTabularDataRequest) + com.google.protobuf.MessageLiteOrBuilder { + + /** + * string part_id = 1 [json_name = "partId"]; + * @return The partId. + */ + java.lang.String getPartId(); + /** + * string part_id = 1 [json_name = "partId"]; + * @return The bytes for partId. + */ + com.google.protobuf.ByteString + getPartIdBytes(); + + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @return The resourceName. + */ + java.lang.String getResourceName(); + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @return The bytes for resourceName. + */ + com.google.protobuf.ByteString + getResourceNameBytes(); + + /** + * string resource_subtype = 3 [json_name = "resourceSubtype"]; + * @return The resourceSubtype. + */ + java.lang.String getResourceSubtype(); + /** + * string resource_subtype = 3 [json_name = "resourceSubtype"]; + * @return The bytes for resourceSubtype. + */ + com.google.protobuf.ByteString + getResourceSubtypeBytes(); + + /** + * string method_name = 4 [json_name = "methodName"]; + * @return The methodName. + */ + java.lang.String getMethodName(); + /** + * string method_name = 4 [json_name = "methodName"]; + * @return The bytes for methodName. + */ + com.google.protobuf.ByteString + getMethodNameBytes(); + + /** + * .viam.app.data.v1.CaptureInterval interval = 5 [json_name = "interval"]; + * @return Whether the interval field is set. + */ + boolean hasInterval(); + /** + * .viam.app.data.v1.CaptureInterval interval = 5 [json_name = "interval"]; + * @return The interval. + */ + viam.app.data.v1.Data.CaptureInterval getInterval(); + } + /** + *
+   * ExportTabularDataRequest requests tabular data from the specified data source.
+   * 
+ * + * Protobuf type {@code viam.app.data.v1.ExportTabularDataRequest} + */ + public static final class ExportTabularDataRequest extends + com.google.protobuf.GeneratedMessageLite< + ExportTabularDataRequest, ExportTabularDataRequest.Builder> implements + // @@protoc_insertion_point(message_implements:viam.app.data.v1.ExportTabularDataRequest) + ExportTabularDataRequestOrBuilder { + private ExportTabularDataRequest() { + partId_ = ""; + resourceName_ = ""; + resourceSubtype_ = ""; + methodName_ = ""; + } + private int bitField0_; + public static final int PART_ID_FIELD_NUMBER = 1; + private java.lang.String partId_; + /** + * string part_id = 1 [json_name = "partId"]; + * @return The partId. + */ + @java.lang.Override + public java.lang.String getPartId() { + return partId_; + } + /** + * string part_id = 1 [json_name = "partId"]; + * @return The bytes for partId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPartIdBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(partId_); + } + /** + * string part_id = 1 [json_name = "partId"]; + * @param value The partId to set. + */ + private void setPartId( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + partId_ = value; + } + /** + * string part_id = 1 [json_name = "partId"]; + */ + private void clearPartId() { + + partId_ = getDefaultInstance().getPartId(); + } + /** + * string part_id = 1 [json_name = "partId"]; + * @param value The bytes for partId to set. + */ + private void setPartIdBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + partId_ = value.toStringUtf8(); + + } + + public static final int RESOURCE_NAME_FIELD_NUMBER = 2; + private java.lang.String resourceName_; + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @return The resourceName. + */ + @java.lang.Override + public java.lang.String getResourceName() { + return resourceName_; + } + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @return The bytes for resourceName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getResourceNameBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(resourceName_); + } + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @param value The resourceName to set. + */ + private void setResourceName( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + resourceName_ = value; + } + /** + * string resource_name = 2 [json_name = "resourceName"]; + */ + private void clearResourceName() { + + resourceName_ = getDefaultInstance().getResourceName(); + } + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @param value The bytes for resourceName to set. + */ + private void setResourceNameBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + resourceName_ = value.toStringUtf8(); + + } + + public static final int RESOURCE_SUBTYPE_FIELD_NUMBER = 3; + private java.lang.String resourceSubtype_; + /** + * string resource_subtype = 3 [json_name = "resourceSubtype"]; + * @return The resourceSubtype. + */ + @java.lang.Override + public java.lang.String getResourceSubtype() { + return resourceSubtype_; + } + /** + * string resource_subtype = 3 [json_name = "resourceSubtype"]; + * @return The bytes for resourceSubtype. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getResourceSubtypeBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(resourceSubtype_); + } + /** + * string resource_subtype = 3 [json_name = "resourceSubtype"]; + * @param value The resourceSubtype to set. + */ + private void setResourceSubtype( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + resourceSubtype_ = value; + } + /** + * string resource_subtype = 3 [json_name = "resourceSubtype"]; + */ + private void clearResourceSubtype() { + + resourceSubtype_ = getDefaultInstance().getResourceSubtype(); + } + /** + * string resource_subtype = 3 [json_name = "resourceSubtype"]; + * @param value The bytes for resourceSubtype to set. + */ + private void setResourceSubtypeBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + resourceSubtype_ = value.toStringUtf8(); + + } + + public static final int METHOD_NAME_FIELD_NUMBER = 4; + private java.lang.String methodName_; + /** + * string method_name = 4 [json_name = "methodName"]; + * @return The methodName. + */ + @java.lang.Override + public java.lang.String getMethodName() { + return methodName_; + } + /** + * string method_name = 4 [json_name = "methodName"]; + * @return The bytes for methodName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMethodNameBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(methodName_); + } + /** + * string method_name = 4 [json_name = "methodName"]; + * @param value The methodName to set. + */ + private void setMethodName( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + methodName_ = value; + } + /** + * string method_name = 4 [json_name = "methodName"]; + */ + private void clearMethodName() { + + methodName_ = getDefaultInstance().getMethodName(); + } + /** + * string method_name = 4 [json_name = "methodName"]; + * @param value The bytes for methodName to set. + */ + private void setMethodNameBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + methodName_ = value.toStringUtf8(); + + } + + public static final int INTERVAL_FIELD_NUMBER = 5; + private viam.app.data.v1.Data.CaptureInterval interval_; + /** + * .viam.app.data.v1.CaptureInterval interval = 5 [json_name = "interval"]; + */ + @java.lang.Override + public boolean hasInterval() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .viam.app.data.v1.CaptureInterval interval = 5 [json_name = "interval"]; + */ + @java.lang.Override + public viam.app.data.v1.Data.CaptureInterval getInterval() { + return interval_ == null ? viam.app.data.v1.Data.CaptureInterval.getDefaultInstance() : interval_; + } + /** + * .viam.app.data.v1.CaptureInterval interval = 5 [json_name = "interval"]; + */ + private void setInterval(viam.app.data.v1.Data.CaptureInterval value) { + value.getClass(); + interval_ = value; + bitField0_ |= 0x00000001; + } + /** + * .viam.app.data.v1.CaptureInterval interval = 5 [json_name = "interval"]; + */ + @java.lang.SuppressWarnings({"ReferenceEquality"}) + private void mergeInterval(viam.app.data.v1.Data.CaptureInterval value) { + value.getClass(); + if (interval_ != null && + interval_ != viam.app.data.v1.Data.CaptureInterval.getDefaultInstance()) { + interval_ = + viam.app.data.v1.Data.CaptureInterval.newBuilder(interval_).mergeFrom(value).buildPartial(); + } else { + interval_ = value; + } + bitField0_ |= 0x00000001; + } + /** + * .viam.app.data.v1.CaptureInterval interval = 5 [json_name = "interval"]; + */ + private void clearInterval() { interval_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + } + + public static viam.app.data.v1.Data.ExportTabularDataRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static viam.app.data.v1.Data.ExportTabularDataRequest 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.data.v1.Data.ExportTabularDataRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static viam.app.data.v1.Data.ExportTabularDataRequest 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.data.v1.Data.ExportTabularDataRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static viam.app.data.v1.Data.ExportTabularDataRequest 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.data.v1.Data.ExportTabularDataRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static viam.app.data.v1.Data.ExportTabularDataRequest 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.data.v1.Data.ExportTabularDataRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input); + } + + public static viam.app.data.v1.Data.ExportTabularDataRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry); + } + public static viam.app.data.v1.Data.ExportTabularDataRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static viam.app.data.v1.Data.ExportTabularDataRequest 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.data.v1.Data.ExportTabularDataRequest prototype) { + return DEFAULT_INSTANCE.createBuilder(prototype); + } + + /** + *
+     * ExportTabularDataRequest requests tabular data from the specified data source.
+     * 
+ * + * Protobuf type {@code viam.app.data.v1.ExportTabularDataRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageLite.Builder< + viam.app.data.v1.Data.ExportTabularDataRequest, Builder> implements + // @@protoc_insertion_point(builder_implements:viam.app.data.v1.ExportTabularDataRequest) + viam.app.data.v1.Data.ExportTabularDataRequestOrBuilder { + // Construct using viam.app.data.v1.Data.ExportTabularDataRequest.newBuilder() + private Builder() { + super(DEFAULT_INSTANCE); + } + + + /** + * string part_id = 1 [json_name = "partId"]; + * @return The partId. + */ + @java.lang.Override + public java.lang.String getPartId() { + return instance.getPartId(); + } + /** + * string part_id = 1 [json_name = "partId"]; + * @return The bytes for partId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPartIdBytes() { + return instance.getPartIdBytes(); + } + /** + * string part_id = 1 [json_name = "partId"]; + * @param value The partId to set. + * @return This builder for chaining. + */ + public Builder setPartId( + java.lang.String value) { + copyOnWrite(); + instance.setPartId(value); + return this; + } + /** + * string part_id = 1 [json_name = "partId"]; + * @return This builder for chaining. + */ + public Builder clearPartId() { + copyOnWrite(); + instance.clearPartId(); + return this; + } + /** + * string part_id = 1 [json_name = "partId"]; + * @param value The bytes for partId to set. + * @return This builder for chaining. + */ + public Builder setPartIdBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setPartIdBytes(value); + return this; + } + + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @return The resourceName. + */ + @java.lang.Override + public java.lang.String getResourceName() { + return instance.getResourceName(); + } + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @return The bytes for resourceName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getResourceNameBytes() { + return instance.getResourceNameBytes(); + } + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @param value The resourceName to set. + * @return This builder for chaining. + */ + public Builder setResourceName( + java.lang.String value) { + copyOnWrite(); + instance.setResourceName(value); + return this; + } + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @return This builder for chaining. + */ + public Builder clearResourceName() { + copyOnWrite(); + instance.clearResourceName(); + return this; + } + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @param value The bytes for resourceName to set. + * @return This builder for chaining. + */ + public Builder setResourceNameBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setResourceNameBytes(value); + return this; + } + + /** + * string resource_subtype = 3 [json_name = "resourceSubtype"]; + * @return The resourceSubtype. + */ + @java.lang.Override + public java.lang.String getResourceSubtype() { + return instance.getResourceSubtype(); + } + /** + * string resource_subtype = 3 [json_name = "resourceSubtype"]; + * @return The bytes for resourceSubtype. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getResourceSubtypeBytes() { + return instance.getResourceSubtypeBytes(); + } + /** + * string resource_subtype = 3 [json_name = "resourceSubtype"]; + * @param value The resourceSubtype to set. + * @return This builder for chaining. + */ + public Builder setResourceSubtype( + java.lang.String value) { + copyOnWrite(); + instance.setResourceSubtype(value); + return this; + } + /** + * string resource_subtype = 3 [json_name = "resourceSubtype"]; + * @return This builder for chaining. + */ + public Builder clearResourceSubtype() { + copyOnWrite(); + instance.clearResourceSubtype(); + return this; + } + /** + * string resource_subtype = 3 [json_name = "resourceSubtype"]; + * @param value The bytes for resourceSubtype to set. + * @return This builder for chaining. + */ + public Builder setResourceSubtypeBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setResourceSubtypeBytes(value); + return this; + } + + /** + * string method_name = 4 [json_name = "methodName"]; + * @return The methodName. + */ + @java.lang.Override + public java.lang.String getMethodName() { + return instance.getMethodName(); + } + /** + * string method_name = 4 [json_name = "methodName"]; + * @return The bytes for methodName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMethodNameBytes() { + return instance.getMethodNameBytes(); + } + /** + * string method_name = 4 [json_name = "methodName"]; + * @param value The methodName to set. + * @return This builder for chaining. + */ + public Builder setMethodName( + java.lang.String value) { + copyOnWrite(); + instance.setMethodName(value); + return this; + } + /** + * string method_name = 4 [json_name = "methodName"]; + * @return This builder for chaining. + */ + public Builder clearMethodName() { + copyOnWrite(); + instance.clearMethodName(); + return this; + } + /** + * string method_name = 4 [json_name = "methodName"]; + * @param value The bytes for methodName to set. + * @return This builder for chaining. + */ + public Builder setMethodNameBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setMethodNameBytes(value); + return this; + } + + /** + * .viam.app.data.v1.CaptureInterval interval = 5 [json_name = "interval"]; + */ + @java.lang.Override + public boolean hasInterval() { + return instance.hasInterval(); + } + /** + * .viam.app.data.v1.CaptureInterval interval = 5 [json_name = "interval"]; + */ + @java.lang.Override + public viam.app.data.v1.Data.CaptureInterval getInterval() { + return instance.getInterval(); + } + /** + * .viam.app.data.v1.CaptureInterval interval = 5 [json_name = "interval"]; + */ + public Builder setInterval(viam.app.data.v1.Data.CaptureInterval value) { + copyOnWrite(); + instance.setInterval(value); + return this; + } + /** + * .viam.app.data.v1.CaptureInterval interval = 5 [json_name = "interval"]; + */ + public Builder setInterval( + viam.app.data.v1.Data.CaptureInterval.Builder builderForValue) { + copyOnWrite(); + instance.setInterval(builderForValue.build()); + return this; + } + /** + * .viam.app.data.v1.CaptureInterval interval = 5 [json_name = "interval"]; + */ + public Builder mergeInterval(viam.app.data.v1.Data.CaptureInterval value) { + copyOnWrite(); + instance.mergeInterval(value); + return this; + } + /** + * .viam.app.data.v1.CaptureInterval interval = 5 [json_name = "interval"]; + */ + public Builder clearInterval() { copyOnWrite(); + instance.clearInterval(); + return this; + } + + // @@protoc_insertion_point(builder_scope:viam.app.data.v1.ExportTabularDataRequest) + } + @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.data.v1.Data.ExportTabularDataRequest(); + } + case NEW_BUILDER: { + return new Builder(); + } + case BUILD_MESSAGE_INFO: { + java.lang.Object[] objects = new java.lang.Object[] { + "bitField0_", + "partId_", + "resourceName_", + "resourceSubtype_", + "methodName_", + "interval_", + }; + java.lang.String info = + "\u0000\u0005\u0000\u0001\u0001\u0005\u0005\u0000\u0000\u0000\u0001\u0208\u0002\u0208" + + "\u0003\u0208\u0004\u0208\u0005\u1009\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.data.v1.Data.ExportTabularDataRequest.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.data.v1.ExportTabularDataRequest) + private static final viam.app.data.v1.Data.ExportTabularDataRequest DEFAULT_INSTANCE; + static { + ExportTabularDataRequest defaultInstance = new ExportTabularDataRequest(); + // New instances are implicitly immutable so no need to make + // immutable. + DEFAULT_INSTANCE = defaultInstance; + com.google.protobuf.GeneratedMessageLite.registerDefaultInstance( + ExportTabularDataRequest.class, defaultInstance); + } + + public static viam.app.data.v1.Data.ExportTabularDataRequest 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 ExportTabularDataResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:viam.app.data.v1.ExportTabularDataResponse) + com.google.protobuf.MessageLiteOrBuilder { + + /** + * string part_id = 1 [json_name = "partId"]; + * @return The partId. + */ + java.lang.String getPartId(); + /** + * string part_id = 1 [json_name = "partId"]; + * @return The bytes for partId. + */ + com.google.protobuf.ByteString + getPartIdBytes(); + + /** + * string component_name = 2 [json_name = "componentName"]; + * @return The componentName. + */ + java.lang.String getComponentName(); + /** + * string component_name = 2 [json_name = "componentName"]; + * @return The bytes for componentName. + */ + com.google.protobuf.ByteString + getComponentNameBytes(); + + /** + * string component_type = 3 [json_name = "componentType"]; + * @return The componentType. + */ + java.lang.String getComponentType(); + /** + * string component_type = 3 [json_name = "componentType"]; + * @return The bytes for componentType. + */ + com.google.protobuf.ByteString + getComponentTypeBytes(); + + /** + * string method_name = 4 [json_name = "methodName"]; + * @return The methodName. + */ + java.lang.String getMethodName(); + /** + * string method_name = 4 [json_name = "methodName"]; + * @return The bytes for methodName. + */ + com.google.protobuf.ByteString + getMethodNameBytes(); + + /** + * .google.protobuf.Timestamp time_captured = 5 [json_name = "timeCaptured"]; + * @return Whether the timeCaptured field is set. + */ + boolean hasTimeCaptured(); + /** + * .google.protobuf.Timestamp time_captured = 5 [json_name = "timeCaptured"]; + * @return The timeCaptured. + */ + com.google.protobuf.Timestamp getTimeCaptured(); + + /** + * string organization_id = 6 [json_name = "organizationId"]; + * @return The organizationId. + */ + java.lang.String getOrganizationId(); + /** + * string organization_id = 6 [json_name = "organizationId"]; + * @return The bytes for organizationId. + */ + com.google.protobuf.ByteString + getOrganizationIdBytes(); + + /** + * string location_id = 7 [json_name = "locationId"]; + * @return The locationId. + */ + java.lang.String getLocationId(); + /** + * string location_id = 7 [json_name = "locationId"]; + * @return The bytes for locationId. + */ + com.google.protobuf.ByteString + getLocationIdBytes(); + + /** + * string robot_name = 8 [json_name = "robotName"]; + * @return The robotName. + */ + java.lang.String getRobotName(); + /** + * string robot_name = 8 [json_name = "robotName"]; + * @return The bytes for robotName. + */ + com.google.protobuf.ByteString + getRobotNameBytes(); + + /** + * string robot_id = 9 [json_name = "robotId"]; + * @return The robotId. + */ + java.lang.String getRobotId(); + /** + * string robot_id = 9 [json_name = "robotId"]; + * @return The bytes for robotId. + */ + com.google.protobuf.ByteString + getRobotIdBytes(); + + /** + * string part_name = 10 [json_name = "partName"]; + * @return The partName. + */ + java.lang.String getPartName(); + /** + * string part_name = 10 [json_name = "partName"]; + * @return The bytes for partName. + */ + com.google.protobuf.ByteString + getPartNameBytes(); + + /** + * map<string, .google.protobuf.Any> method_parameters = 11 [json_name = "methodParameters"]; + */ + int getMethodParametersCount(); + /** + * map<string, .google.protobuf.Any> method_parameters = 11 [json_name = "methodParameters"]; + */ + boolean containsMethodParameters( + java.lang.String key); + /** + * Use {@link #getMethodParametersMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getMethodParameters(); + /** + * map<string, .google.protobuf.Any> method_parameters = 11 [json_name = "methodParameters"]; + */ + java.util.Map + getMethodParametersMap(); + /** + * map<string, .google.protobuf.Any> method_parameters = 11 [json_name = "methodParameters"]; + */ + + /* nullable */ +com.google.protobuf.Any getMethodParametersOrDefault( + java.lang.String key, + /* nullable */ +com.google.protobuf.Any defaultValue); + /** + * map<string, .google.protobuf.Any> method_parameters = 11 [json_name = "methodParameters"]; + */ + + com.google.protobuf.Any getMethodParametersOrThrow( + java.lang.String key); + + /** + * repeated string tags = 12 [json_name = "tags"]; + * @return A list containing the tags. + */ + java.util.List + getTagsList(); + /** + * repeated string tags = 12 [json_name = "tags"]; + * @return The count of tags. + */ + int getTagsCount(); + /** + * repeated string tags = 12 [json_name = "tags"]; + * @param index The index of the element to return. + * @return The tags at the given index. + */ + java.lang.String getTags(int index); + /** + * repeated string tags = 12 [json_name = "tags"]; + * @param index The index of the element to return. + * @return The tags at the given index. + */ + com.google.protobuf.ByteString + getTagsBytes(int index); + + /** + * .google.protobuf.Struct payload = 13 [json_name = "payload"]; + * @return Whether the payload field is set. + */ + boolean hasPayload(); + /** + * .google.protobuf.Struct payload = 13 [json_name = "payload"]; + * @return The payload. + */ + com.google.protobuf.Struct getPayload(); + } + /** + *
+   * ExportTabularDataResponse provides unified tabular data and metadata for a single data point from the specified data source.
+   * 
+ * + * Protobuf type {@code viam.app.data.v1.ExportTabularDataResponse} + */ + public static final class ExportTabularDataResponse extends + com.google.protobuf.GeneratedMessageLite< + ExportTabularDataResponse, ExportTabularDataResponse.Builder> implements + // @@protoc_insertion_point(message_implements:viam.app.data.v1.ExportTabularDataResponse) + ExportTabularDataResponseOrBuilder { + private ExportTabularDataResponse() { + partId_ = ""; + componentName_ = ""; + componentType_ = ""; + methodName_ = ""; + organizationId_ = ""; + locationId_ = ""; + robotName_ = ""; + robotId_ = ""; + partName_ = ""; + tags_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList(); + } + private int bitField0_; + public static final int PART_ID_FIELD_NUMBER = 1; + private java.lang.String partId_; + /** + * string part_id = 1 [json_name = "partId"]; + * @return The partId. + */ + @java.lang.Override + public java.lang.String getPartId() { + return partId_; + } + /** + * string part_id = 1 [json_name = "partId"]; + * @return The bytes for partId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPartIdBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(partId_); + } + /** + * string part_id = 1 [json_name = "partId"]; + * @param value The partId to set. + */ + private void setPartId( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + partId_ = value; + } + /** + * string part_id = 1 [json_name = "partId"]; + */ + private void clearPartId() { + + partId_ = getDefaultInstance().getPartId(); + } + /** + * string part_id = 1 [json_name = "partId"]; + * @param value The bytes for partId to set. + */ + private void setPartIdBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + partId_ = value.toStringUtf8(); + + } + + public static final int COMPONENT_NAME_FIELD_NUMBER = 2; + private java.lang.String componentName_; + /** + * string component_name = 2 [json_name = "componentName"]; + * @return The componentName. + */ + @java.lang.Override + public java.lang.String getComponentName() { + return componentName_; + } + /** + * string component_name = 2 [json_name = "componentName"]; + * @return The bytes for componentName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getComponentNameBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(componentName_); + } + /** + * string component_name = 2 [json_name = "componentName"]; + * @param value The componentName to set. + */ + private void setComponentName( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + componentName_ = value; + } + /** + * string component_name = 2 [json_name = "componentName"]; + */ + private void clearComponentName() { + + componentName_ = getDefaultInstance().getComponentName(); + } + /** + * string component_name = 2 [json_name = "componentName"]; + * @param value The bytes for componentName to set. + */ + private void setComponentNameBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + componentName_ = value.toStringUtf8(); + + } + + public static final int COMPONENT_TYPE_FIELD_NUMBER = 3; + private java.lang.String componentType_; + /** + * string component_type = 3 [json_name = "componentType"]; + * @return The componentType. + */ + @java.lang.Override + public java.lang.String getComponentType() { + return componentType_; + } + /** + * string component_type = 3 [json_name = "componentType"]; + * @return The bytes for componentType. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getComponentTypeBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(componentType_); + } + /** + * string component_type = 3 [json_name = "componentType"]; + * @param value The componentType to set. + */ + private void setComponentType( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + componentType_ = value; + } + /** + * string component_type = 3 [json_name = "componentType"]; + */ + private void clearComponentType() { + + componentType_ = getDefaultInstance().getComponentType(); + } + /** + * string component_type = 3 [json_name = "componentType"]; + * @param value The bytes for componentType to set. + */ + private void setComponentTypeBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + componentType_ = value.toStringUtf8(); + + } + + public static final int METHOD_NAME_FIELD_NUMBER = 4; + private java.lang.String methodName_; + /** + * string method_name = 4 [json_name = "methodName"]; + * @return The methodName. + */ + @java.lang.Override + public java.lang.String getMethodName() { + return methodName_; + } + /** + * string method_name = 4 [json_name = "methodName"]; + * @return The bytes for methodName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMethodNameBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(methodName_); + } + /** + * string method_name = 4 [json_name = "methodName"]; + * @param value The methodName to set. + */ + private void setMethodName( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + methodName_ = value; + } + /** + * string method_name = 4 [json_name = "methodName"]; + */ + private void clearMethodName() { + + methodName_ = getDefaultInstance().getMethodName(); + } + /** + * string method_name = 4 [json_name = "methodName"]; + * @param value The bytes for methodName to set. + */ + private void setMethodNameBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + methodName_ = value.toStringUtf8(); + + } + + public static final int TIME_CAPTURED_FIELD_NUMBER = 5; + private com.google.protobuf.Timestamp timeCaptured_; + /** + * .google.protobuf.Timestamp time_captured = 5 [json_name = "timeCaptured"]; + */ + @java.lang.Override + public boolean hasTimeCaptured() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .google.protobuf.Timestamp time_captured = 5 [json_name = "timeCaptured"]; + */ + @java.lang.Override + public com.google.protobuf.Timestamp getTimeCaptured() { + return timeCaptured_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timeCaptured_; + } + /** + * .google.protobuf.Timestamp time_captured = 5 [json_name = "timeCaptured"]; + */ + private void setTimeCaptured(com.google.protobuf.Timestamp value) { + value.getClass(); + timeCaptured_ = value; + bitField0_ |= 0x00000001; + } + /** + * .google.protobuf.Timestamp time_captured = 5 [json_name = "timeCaptured"]; + */ + @java.lang.SuppressWarnings({"ReferenceEquality"}) + private void mergeTimeCaptured(com.google.protobuf.Timestamp value) { + value.getClass(); + if (timeCaptured_ != null && + timeCaptured_ != com.google.protobuf.Timestamp.getDefaultInstance()) { + timeCaptured_ = + com.google.protobuf.Timestamp.newBuilder(timeCaptured_).mergeFrom(value).buildPartial(); + } else { + timeCaptured_ = value; + } + bitField0_ |= 0x00000001; + } + /** + * .google.protobuf.Timestamp time_captured = 5 [json_name = "timeCaptured"]; + */ + private void clearTimeCaptured() { timeCaptured_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + } + + public static final int ORGANIZATION_ID_FIELD_NUMBER = 6; + private java.lang.String organizationId_; + /** + * string organization_id = 6 [json_name = "organizationId"]; + * @return The organizationId. + */ + @java.lang.Override + public java.lang.String getOrganizationId() { + return organizationId_; + } + /** + * string organization_id = 6 [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 = 6 [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 = 6 [json_name = "organizationId"]; + */ + private void clearOrganizationId() { + + organizationId_ = getDefaultInstance().getOrganizationId(); + } + /** + * string organization_id = 6 [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 final int LOCATION_ID_FIELD_NUMBER = 7; + private java.lang.String locationId_; + /** + * string location_id = 7 [json_name = "locationId"]; + * @return The locationId. + */ + @java.lang.Override + public java.lang.String getLocationId() { + return locationId_; + } + /** + * string location_id = 7 [json_name = "locationId"]; + * @return The bytes for locationId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getLocationIdBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(locationId_); + } + /** + * string location_id = 7 [json_name = "locationId"]; + * @param value The locationId to set. + */ + private void setLocationId( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + locationId_ = value; + } + /** + * string location_id = 7 [json_name = "locationId"]; + */ + private void clearLocationId() { + + locationId_ = getDefaultInstance().getLocationId(); + } + /** + * string location_id = 7 [json_name = "locationId"]; + * @param value The bytes for locationId to set. + */ + private void setLocationIdBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + locationId_ = value.toStringUtf8(); + + } + + public static final int ROBOT_NAME_FIELD_NUMBER = 8; + private java.lang.String robotName_; + /** + * string robot_name = 8 [json_name = "robotName"]; + * @return The robotName. + */ + @java.lang.Override + public java.lang.String getRobotName() { + return robotName_; + } + /** + * string robot_name = 8 [json_name = "robotName"]; + * @return The bytes for robotName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getRobotNameBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(robotName_); + } + /** + * string robot_name = 8 [json_name = "robotName"]; + * @param value The robotName to set. + */ + private void setRobotName( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + robotName_ = value; + } + /** + * string robot_name = 8 [json_name = "robotName"]; + */ + private void clearRobotName() { + + robotName_ = getDefaultInstance().getRobotName(); + } + /** + * string robot_name = 8 [json_name = "robotName"]; + * @param value The bytes for robotName to set. + */ + private void setRobotNameBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + robotName_ = value.toStringUtf8(); + + } + + public static final int ROBOT_ID_FIELD_NUMBER = 9; + private java.lang.String robotId_; + /** + * string robot_id = 9 [json_name = "robotId"]; + * @return The robotId. + */ + @java.lang.Override + public java.lang.String getRobotId() { + return robotId_; + } + /** + * string robot_id = 9 [json_name = "robotId"]; + * @return The bytes for robotId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getRobotIdBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(robotId_); + } + /** + * string robot_id = 9 [json_name = "robotId"]; + * @param value The robotId to set. + */ + private void setRobotId( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + robotId_ = value; + } + /** + * string robot_id = 9 [json_name = "robotId"]; + */ + private void clearRobotId() { + + robotId_ = getDefaultInstance().getRobotId(); + } + /** + * string robot_id = 9 [json_name = "robotId"]; + * @param value The bytes for robotId to set. + */ + private void setRobotIdBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + robotId_ = value.toStringUtf8(); + + } + + public static final int PART_NAME_FIELD_NUMBER = 10; + private java.lang.String partName_; + /** + * string part_name = 10 [json_name = "partName"]; + * @return The partName. + */ + @java.lang.Override + public java.lang.String getPartName() { + return partName_; + } + /** + * string part_name = 10 [json_name = "partName"]; + * @return The bytes for partName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPartNameBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(partName_); + } + /** + * string part_name = 10 [json_name = "partName"]; + * @param value The partName to set. + */ + private void setPartName( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + partName_ = value; + } + /** + * string part_name = 10 [json_name = "partName"]; + */ + private void clearPartName() { + + partName_ = getDefaultInstance().getPartName(); + } + /** + * string part_name = 10 [json_name = "partName"]; + * @param value The bytes for partName to set. + */ + private void setPartNameBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + partName_ = value.toStringUtf8(); + + } + + public static final int METHOD_PARAMETERS_FIELD_NUMBER = 11; + private static final class MethodParametersDefaultEntryHolder { + static final com.google.protobuf.MapEntryLite< + java.lang.String, com.google.protobuf.Any> defaultEntry = + com.google.protobuf.MapEntryLite + .newDefaultInstance( + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.MESSAGE, + com.google.protobuf.Any.getDefaultInstance()); + } + private com.google.protobuf.MapFieldLite< + java.lang.String, com.google.protobuf.Any> methodParameters_ = + com.google.protobuf.MapFieldLite.emptyMapField(); + private com.google.protobuf.MapFieldLite + internalGetMethodParameters() { + return methodParameters_; + } + private com.google.protobuf.MapFieldLite + internalGetMutableMethodParameters() { + if (!methodParameters_.isMutable()) { + methodParameters_ = methodParameters_.mutableCopy(); + } + return methodParameters_; + } + @java.lang.Override + + public int getMethodParametersCount() { + return internalGetMethodParameters().size(); + } + /** + * map<string, .google.protobuf.Any> method_parameters = 11 [json_name = "methodParameters"]; + */ + @java.lang.Override + + public boolean containsMethodParameters( + java.lang.String key) { + java.lang.Class keyClass = key.getClass(); + return internalGetMethodParameters().containsKey(key); + } + /** + * Use {@link #getMethodParametersMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getMethodParameters() { + return getMethodParametersMap(); + } + /** + * map<string, .google.protobuf.Any> method_parameters = 11 [json_name = "methodParameters"]; + */ + @java.lang.Override + + public java.util.Map getMethodParametersMap() { + return java.util.Collections.unmodifiableMap( + internalGetMethodParameters()); + } + /** + * map<string, .google.protobuf.Any> method_parameters = 11 [json_name = "methodParameters"]; + */ + @java.lang.Override + + public /* nullable */ +com.google.protobuf.Any getMethodParametersOrDefault( + java.lang.String key, + /* nullable */ +com.google.protobuf.Any defaultValue) { + java.lang.Class keyClass = key.getClass(); + java.util.Map map = + internalGetMethodParameters(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, .google.protobuf.Any> method_parameters = 11 [json_name = "methodParameters"]; + */ + @java.lang.Override + + public com.google.protobuf.Any getMethodParametersOrThrow( + java.lang.String key) { + java.lang.Class keyClass = key.getClass(); + java.util.Map map = + internalGetMethodParameters(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + /** + * map<string, .google.protobuf.Any> method_parameters = 11 [json_name = "methodParameters"]; + */ + private java.util.Map + getMutableMethodParametersMap() { + return internalGetMutableMethodParameters(); + } + + public static final int TAGS_FIELD_NUMBER = 12; + private com.google.protobuf.Internal.ProtobufList tags_; + /** + * repeated string tags = 12 [json_name = "tags"]; + * @return A list containing the tags. + */ + @java.lang.Override + public java.util.List getTagsList() { + return tags_; + } + /** + * repeated string tags = 12 [json_name = "tags"]; + * @return The count of tags. + */ + @java.lang.Override + public int getTagsCount() { + return tags_.size(); + } + /** + * repeated string tags = 12 [json_name = "tags"]; + * @param index The index of the element to return. + * @return The tags at the given index. + */ + @java.lang.Override + public java.lang.String getTags(int index) { + return tags_.get(index); + } + /** + * repeated string tags = 12 [json_name = "tags"]; + * @param index The index of the value to return. + * @return The bytes of the tags at the given index. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTagsBytes(int index) { + return com.google.protobuf.ByteString.copyFromUtf8( + tags_.get(index)); + } + private void ensureTagsIsMutable() { + com.google.protobuf.Internal.ProtobufList tmp = + tags_; if (!tmp.isModifiable()) { + tags_ = + com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp); + } + } + /** + * repeated string tags = 12 [json_name = "tags"]; + * @param index The index to set the value at. + * @param value The tags to set. + */ + private void setTags( + int index, java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + ensureTagsIsMutable(); + tags_.set(index, value); + } + /** + * repeated string tags = 12 [json_name = "tags"]; + * @param value The tags to add. + */ + private void addTags( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + ensureTagsIsMutable(); + tags_.add(value); + } + /** + * repeated string tags = 12 [json_name = "tags"]; + * @param values The tags to add. + */ + private void addAllTags( + java.lang.Iterable values) { + ensureTagsIsMutable(); + com.google.protobuf.AbstractMessageLite.addAll( + values, tags_); + } + /** + * repeated string tags = 12 [json_name = "tags"]; + */ + private void clearTags() { + tags_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList(); + } + /** + * repeated string tags = 12 [json_name = "tags"]; + * @param value The bytes of the tags to add. + */ + private void addTagsBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + ensureTagsIsMutable(); + tags_.add(value.toStringUtf8()); + } + + public static final int PAYLOAD_FIELD_NUMBER = 13; + private com.google.protobuf.Struct payload_; + /** + * .google.protobuf.Struct payload = 13 [json_name = "payload"]; + */ + @java.lang.Override + public boolean hasPayload() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .google.protobuf.Struct payload = 13 [json_name = "payload"]; + */ + @java.lang.Override + public com.google.protobuf.Struct getPayload() { + return payload_ == null ? com.google.protobuf.Struct.getDefaultInstance() : payload_; + } + /** + * .google.protobuf.Struct payload = 13 [json_name = "payload"]; + */ + private void setPayload(com.google.protobuf.Struct value) { + value.getClass(); + payload_ = value; + bitField0_ |= 0x00000002; + } + /** + * .google.protobuf.Struct payload = 13 [json_name = "payload"]; + */ + @java.lang.SuppressWarnings({"ReferenceEquality"}) + private void mergePayload(com.google.protobuf.Struct value) { + value.getClass(); + if (payload_ != null && + payload_ != com.google.protobuf.Struct.getDefaultInstance()) { + payload_ = + com.google.protobuf.Struct.newBuilder(payload_).mergeFrom(value).buildPartial(); + } else { + payload_ = value; + } + bitField0_ |= 0x00000002; + } + /** + * .google.protobuf.Struct payload = 13 [json_name = "payload"]; + */ + private void clearPayload() { payload_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + } + + public static viam.app.data.v1.Data.ExportTabularDataResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static viam.app.data.v1.Data.ExportTabularDataResponse 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.data.v1.Data.ExportTabularDataResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static viam.app.data.v1.Data.ExportTabularDataResponse 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.data.v1.Data.ExportTabularDataResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static viam.app.data.v1.Data.ExportTabularDataResponse 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.data.v1.Data.ExportTabularDataResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static viam.app.data.v1.Data.ExportTabularDataResponse 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.data.v1.Data.ExportTabularDataResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input); + } + + public static viam.app.data.v1.Data.ExportTabularDataResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry); + } + public static viam.app.data.v1.Data.ExportTabularDataResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static viam.app.data.v1.Data.ExportTabularDataResponse 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.data.v1.Data.ExportTabularDataResponse prototype) { + return DEFAULT_INSTANCE.createBuilder(prototype); + } + + /** + *
+     * ExportTabularDataResponse provides unified tabular data and metadata for a single data point from the specified data source.
+     * 
+ * + * Protobuf type {@code viam.app.data.v1.ExportTabularDataResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageLite.Builder< + viam.app.data.v1.Data.ExportTabularDataResponse, Builder> implements + // @@protoc_insertion_point(builder_implements:viam.app.data.v1.ExportTabularDataResponse) + viam.app.data.v1.Data.ExportTabularDataResponseOrBuilder { + // Construct using viam.app.data.v1.Data.ExportTabularDataResponse.newBuilder() + private Builder() { + super(DEFAULT_INSTANCE); + } + + + /** + * string part_id = 1 [json_name = "partId"]; + * @return The partId. + */ + @java.lang.Override + public java.lang.String getPartId() { + return instance.getPartId(); + } + /** + * string part_id = 1 [json_name = "partId"]; + * @return The bytes for partId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPartIdBytes() { + return instance.getPartIdBytes(); + } + /** + * string part_id = 1 [json_name = "partId"]; + * @param value The partId to set. + * @return This builder for chaining. + */ + public Builder setPartId( + java.lang.String value) { + copyOnWrite(); + instance.setPartId(value); + return this; + } + /** + * string part_id = 1 [json_name = "partId"]; + * @return This builder for chaining. + */ + public Builder clearPartId() { + copyOnWrite(); + instance.clearPartId(); + return this; + } + /** + * string part_id = 1 [json_name = "partId"]; + * @param value The bytes for partId to set. + * @return This builder for chaining. + */ + public Builder setPartIdBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setPartIdBytes(value); + return this; + } + + /** + * string component_name = 2 [json_name = "componentName"]; + * @return The componentName. + */ + @java.lang.Override + public java.lang.String getComponentName() { + return instance.getComponentName(); + } + /** + * string component_name = 2 [json_name = "componentName"]; + * @return The bytes for componentName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getComponentNameBytes() { + return instance.getComponentNameBytes(); + } + /** + * string component_name = 2 [json_name = "componentName"]; + * @param value The componentName to set. + * @return This builder for chaining. + */ + public Builder setComponentName( + java.lang.String value) { + copyOnWrite(); + instance.setComponentName(value); + return this; + } + /** + * string component_name = 2 [json_name = "componentName"]; + * @return This builder for chaining. + */ + public Builder clearComponentName() { + copyOnWrite(); + instance.clearComponentName(); + return this; + } + /** + * string component_name = 2 [json_name = "componentName"]; + * @param value The bytes for componentName to set. + * @return This builder for chaining. + */ + public Builder setComponentNameBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setComponentNameBytes(value); + return this; + } + + /** + * string component_type = 3 [json_name = "componentType"]; + * @return The componentType. + */ + @java.lang.Override + public java.lang.String getComponentType() { + return instance.getComponentType(); + } + /** + * string component_type = 3 [json_name = "componentType"]; + * @return The bytes for componentType. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getComponentTypeBytes() { + return instance.getComponentTypeBytes(); + } + /** + * string component_type = 3 [json_name = "componentType"]; + * @param value The componentType to set. + * @return This builder for chaining. + */ + public Builder setComponentType( + java.lang.String value) { + copyOnWrite(); + instance.setComponentType(value); + return this; + } + /** + * string component_type = 3 [json_name = "componentType"]; + * @return This builder for chaining. + */ + public Builder clearComponentType() { + copyOnWrite(); + instance.clearComponentType(); + return this; + } + /** + * string component_type = 3 [json_name = "componentType"]; + * @param value The bytes for componentType to set. + * @return This builder for chaining. + */ + public Builder setComponentTypeBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setComponentTypeBytes(value); + return this; + } + + /** + * string method_name = 4 [json_name = "methodName"]; + * @return The methodName. + */ + @java.lang.Override + public java.lang.String getMethodName() { + return instance.getMethodName(); + } + /** + * string method_name = 4 [json_name = "methodName"]; + * @return The bytes for methodName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMethodNameBytes() { + return instance.getMethodNameBytes(); + } + /** + * string method_name = 4 [json_name = "methodName"]; + * @param value The methodName to set. + * @return This builder for chaining. + */ + public Builder setMethodName( + java.lang.String value) { + copyOnWrite(); + instance.setMethodName(value); + return this; + } + /** + * string method_name = 4 [json_name = "methodName"]; + * @return This builder for chaining. + */ + public Builder clearMethodName() { + copyOnWrite(); + instance.clearMethodName(); + return this; + } + /** + * string method_name = 4 [json_name = "methodName"]; + * @param value The bytes for methodName to set. + * @return This builder for chaining. + */ + public Builder setMethodNameBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setMethodNameBytes(value); + return this; + } + + /** + * .google.protobuf.Timestamp time_captured = 5 [json_name = "timeCaptured"]; + */ + @java.lang.Override + public boolean hasTimeCaptured() { + return instance.hasTimeCaptured(); + } + /** + * .google.protobuf.Timestamp time_captured = 5 [json_name = "timeCaptured"]; + */ + @java.lang.Override + public com.google.protobuf.Timestamp getTimeCaptured() { + return instance.getTimeCaptured(); + } + /** + * .google.protobuf.Timestamp time_captured = 5 [json_name = "timeCaptured"]; + */ + public Builder setTimeCaptured(com.google.protobuf.Timestamp value) { + copyOnWrite(); + instance.setTimeCaptured(value); + return this; + } + /** + * .google.protobuf.Timestamp time_captured = 5 [json_name = "timeCaptured"]; + */ + public Builder setTimeCaptured( + com.google.protobuf.Timestamp.Builder builderForValue) { + copyOnWrite(); + instance.setTimeCaptured(builderForValue.build()); + return this; + } + /** + * .google.protobuf.Timestamp time_captured = 5 [json_name = "timeCaptured"]; + */ + public Builder mergeTimeCaptured(com.google.protobuf.Timestamp value) { + copyOnWrite(); + instance.mergeTimeCaptured(value); + return this; + } + /** + * .google.protobuf.Timestamp time_captured = 5 [json_name = "timeCaptured"]; + */ + public Builder clearTimeCaptured() { copyOnWrite(); + instance.clearTimeCaptured(); + return this; + } + + /** + * string organization_id = 6 [json_name = "organizationId"]; + * @return The organizationId. + */ + @java.lang.Override + public java.lang.String getOrganizationId() { + return instance.getOrganizationId(); + } + /** + * string organization_id = 6 [json_name = "organizationId"]; + * @return The bytes for organizationId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getOrganizationIdBytes() { + return instance.getOrganizationIdBytes(); + } + /** + * string organization_id = 6 [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 = 6 [json_name = "organizationId"]; + * @return This builder for chaining. + */ + public Builder clearOrganizationId() { + copyOnWrite(); + instance.clearOrganizationId(); + return this; + } + /** + * string organization_id = 6 [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; + } + + /** + * string location_id = 7 [json_name = "locationId"]; + * @return The locationId. + */ + @java.lang.Override + public java.lang.String getLocationId() { + return instance.getLocationId(); + } + /** + * string location_id = 7 [json_name = "locationId"]; + * @return The bytes for locationId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getLocationIdBytes() { + return instance.getLocationIdBytes(); + } + /** + * string location_id = 7 [json_name = "locationId"]; + * @param value The locationId to set. + * @return This builder for chaining. + */ + public Builder setLocationId( + java.lang.String value) { + copyOnWrite(); + instance.setLocationId(value); + return this; + } + /** + * string location_id = 7 [json_name = "locationId"]; + * @return This builder for chaining. + */ + public Builder clearLocationId() { + copyOnWrite(); + instance.clearLocationId(); + return this; + } + /** + * string location_id = 7 [json_name = "locationId"]; + * @param value The bytes for locationId to set. + * @return This builder for chaining. + */ + public Builder setLocationIdBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setLocationIdBytes(value); + return this; + } + + /** + * string robot_name = 8 [json_name = "robotName"]; + * @return The robotName. + */ + @java.lang.Override + public java.lang.String getRobotName() { + return instance.getRobotName(); + } + /** + * string robot_name = 8 [json_name = "robotName"]; + * @return The bytes for robotName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getRobotNameBytes() { + return instance.getRobotNameBytes(); + } + /** + * string robot_name = 8 [json_name = "robotName"]; + * @param value The robotName to set. + * @return This builder for chaining. + */ + public Builder setRobotName( + java.lang.String value) { + copyOnWrite(); + instance.setRobotName(value); + return this; + } + /** + * string robot_name = 8 [json_name = "robotName"]; + * @return This builder for chaining. + */ + public Builder clearRobotName() { + copyOnWrite(); + instance.clearRobotName(); + return this; + } + /** + * string robot_name = 8 [json_name = "robotName"]; + * @param value The bytes for robotName to set. + * @return This builder for chaining. + */ + public Builder setRobotNameBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setRobotNameBytes(value); + return this; + } + + /** + * string robot_id = 9 [json_name = "robotId"]; + * @return The robotId. + */ + @java.lang.Override + public java.lang.String getRobotId() { + return instance.getRobotId(); + } + /** + * string robot_id = 9 [json_name = "robotId"]; + * @return The bytes for robotId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getRobotIdBytes() { + return instance.getRobotIdBytes(); + } + /** + * string robot_id = 9 [json_name = "robotId"]; + * @param value The robotId to set. + * @return This builder for chaining. + */ + public Builder setRobotId( + java.lang.String value) { + copyOnWrite(); + instance.setRobotId(value); + return this; + } + /** + * string robot_id = 9 [json_name = "robotId"]; + * @return This builder for chaining. + */ + public Builder clearRobotId() { + copyOnWrite(); + instance.clearRobotId(); + return this; + } + /** + * string robot_id = 9 [json_name = "robotId"]; + * @param value The bytes for robotId to set. + * @return This builder for chaining. + */ + public Builder setRobotIdBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setRobotIdBytes(value); + return this; + } + + /** + * string part_name = 10 [json_name = "partName"]; + * @return The partName. + */ + @java.lang.Override + public java.lang.String getPartName() { + return instance.getPartName(); + } + /** + * string part_name = 10 [json_name = "partName"]; + * @return The bytes for partName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPartNameBytes() { + return instance.getPartNameBytes(); + } + /** + * string part_name = 10 [json_name = "partName"]; + * @param value The partName to set. + * @return This builder for chaining. + */ + public Builder setPartName( + java.lang.String value) { + copyOnWrite(); + instance.setPartName(value); + return this; + } + /** + * string part_name = 10 [json_name = "partName"]; + * @return This builder for chaining. + */ + public Builder clearPartName() { + copyOnWrite(); + instance.clearPartName(); + return this; + } + /** + * string part_name = 10 [json_name = "partName"]; + * @param value The bytes for partName to set. + * @return This builder for chaining. + */ + public Builder setPartNameBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setPartNameBytes(value); + return this; + } + + @java.lang.Override + + public int getMethodParametersCount() { + return instance.getMethodParametersMap().size(); + } + /** + * map<string, .google.protobuf.Any> method_parameters = 11 [json_name = "methodParameters"]; + */ + @java.lang.Override + + public boolean containsMethodParameters( + java.lang.String key) { + java.lang.Class keyClass = key.getClass(); + return instance.getMethodParametersMap().containsKey(key); + } + + public Builder clearMethodParameters() { + copyOnWrite(); + instance.getMutableMethodParametersMap().clear(); + return this; + } + /** + * map<string, .google.protobuf.Any> method_parameters = 11 [json_name = "methodParameters"]; + */ + + public Builder removeMethodParameters( + java.lang.String key) { + java.lang.Class keyClass = key.getClass(); + copyOnWrite(); + instance.getMutableMethodParametersMap().remove(key); + return this; + } + /** + * Use {@link #getMethodParametersMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getMethodParameters() { + return getMethodParametersMap(); + } + /** + * map<string, .google.protobuf.Any> method_parameters = 11 [json_name = "methodParameters"]; + */ + @java.lang.Override + public java.util.Map getMethodParametersMap() { + return java.util.Collections.unmodifiableMap( + instance.getMethodParametersMap()); + } + /** + * map<string, .google.protobuf.Any> method_parameters = 11 [json_name = "methodParameters"]; + */ + @java.lang.Override + + public /* nullable */ +com.google.protobuf.Any getMethodParametersOrDefault( + java.lang.String key, + /* nullable */ +com.google.protobuf.Any defaultValue) { + java.lang.Class keyClass = key.getClass(); + java.util.Map map = + instance.getMethodParametersMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, .google.protobuf.Any> method_parameters = 11 [json_name = "methodParameters"]; + */ + @java.lang.Override + + public com.google.protobuf.Any getMethodParametersOrThrow( + java.lang.String key) { + java.lang.Class keyClass = key.getClass(); + java.util.Map map = + instance.getMethodParametersMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + /** + * map<string, .google.protobuf.Any> method_parameters = 11 [json_name = "methodParameters"]; + */ + public Builder putMethodParameters( + java.lang.String key, + com.google.protobuf.Any value) { + java.lang.Class keyClass = key.getClass(); + java.lang.Class valueClass = value.getClass(); + copyOnWrite(); + instance.getMutableMethodParametersMap().put(key, value); + return this; + } + /** + * map<string, .google.protobuf.Any> method_parameters = 11 [json_name = "methodParameters"]; + */ + public Builder putAllMethodParameters( + java.util.Map values) { + copyOnWrite(); + instance.getMutableMethodParametersMap().putAll(values); + return this; + } + + /** + * repeated string tags = 12 [json_name = "tags"]; + * @return A list containing the tags. + */ + @java.lang.Override + public java.util.List + getTagsList() { + return java.util.Collections.unmodifiableList( + instance.getTagsList()); + } + /** + * repeated string tags = 12 [json_name = "tags"]; + * @return The count of tags. + */ + @java.lang.Override + public int getTagsCount() { + return instance.getTagsCount(); + } + /** + * repeated string tags = 12 [json_name = "tags"]; + * @param index The index of the element to return. + * @return The tags at the given index. + */ + @java.lang.Override + public java.lang.String getTags(int index) { + return instance.getTags(index); + } + /** + * repeated string tags = 12 [json_name = "tags"]; + * @param index The index of the value to return. + * @return The bytes of the tags at the given index. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTagsBytes(int index) { + return instance.getTagsBytes(index); + } + /** + * repeated string tags = 12 [json_name = "tags"]; + * @param index The index to set the value at. + * @param value The tags to set. + * @return This builder for chaining. + */ + public Builder setTags( + int index, java.lang.String value) { + copyOnWrite(); + instance.setTags(index, value); + return this; + } + /** + * repeated string tags = 12 [json_name = "tags"]; + * @param value The tags to add. + * @return This builder for chaining. + */ + public Builder addTags( + java.lang.String value) { + copyOnWrite(); + instance.addTags(value); + return this; + } + /** + * repeated string tags = 12 [json_name = "tags"]; + * @param values The tags to add. + * @return This builder for chaining. + */ + public Builder addAllTags( + java.lang.Iterable values) { + copyOnWrite(); + instance.addAllTags(values); + return this; + } + /** + * repeated string tags = 12 [json_name = "tags"]; + * @return This builder for chaining. + */ + public Builder clearTags() { + copyOnWrite(); + instance.clearTags(); + return this; + } + /** + * repeated string tags = 12 [json_name = "tags"]; + * @param value The bytes of the tags to add. + * @return This builder for chaining. + */ + public Builder addTagsBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.addTagsBytes(value); + return this; + } + + /** + * .google.protobuf.Struct payload = 13 [json_name = "payload"]; + */ + @java.lang.Override + public boolean hasPayload() { + return instance.hasPayload(); + } + /** + * .google.protobuf.Struct payload = 13 [json_name = "payload"]; + */ + @java.lang.Override + public com.google.protobuf.Struct getPayload() { + return instance.getPayload(); + } + /** + * .google.protobuf.Struct payload = 13 [json_name = "payload"]; + */ + public Builder setPayload(com.google.protobuf.Struct value) { + copyOnWrite(); + instance.setPayload(value); + return this; + } + /** + * .google.protobuf.Struct payload = 13 [json_name = "payload"]; + */ + public Builder setPayload( + com.google.protobuf.Struct.Builder builderForValue) { + copyOnWrite(); + instance.setPayload(builderForValue.build()); + return this; + } + /** + * .google.protobuf.Struct payload = 13 [json_name = "payload"]; + */ + public Builder mergePayload(com.google.protobuf.Struct value) { + copyOnWrite(); + instance.mergePayload(value); + return this; + } + /** + * .google.protobuf.Struct payload = 13 [json_name = "payload"]; + */ + public Builder clearPayload() { copyOnWrite(); + instance.clearPayload(); + return this; + } + + // @@protoc_insertion_point(builder_scope:viam.app.data.v1.ExportTabularDataResponse) + } + @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.data.v1.Data.ExportTabularDataResponse(); + } + case NEW_BUILDER: { + return new Builder(); + } + case BUILD_MESSAGE_INFO: { + java.lang.Object[] objects = new java.lang.Object[] { + "bitField0_", + "partId_", + "componentName_", + "componentType_", + "methodName_", + "timeCaptured_", + "organizationId_", + "locationId_", + "robotName_", + "robotId_", + "partName_", + "methodParameters_", + MethodParametersDefaultEntryHolder.defaultEntry, + "tags_", + "payload_", + }; + java.lang.String info = + "\u0000\r\u0000\u0001\u0001\r\r\u0001\u0001\u0000\u0001\u0208\u0002\u0208\u0003\u0208" + + "\u0004\u0208\u0005\u1009\u0000\u0006\u0208\u0007\u0208\b\u0208\t\u0208\n\u0208\u000b" + + "2\f\u021a\r\u1009\u0001"; + 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.data.v1.Data.ExportTabularDataResponse.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.data.v1.ExportTabularDataResponse) + private static final viam.app.data.v1.Data.ExportTabularDataResponse DEFAULT_INSTANCE; + static { + ExportTabularDataResponse defaultInstance = new ExportTabularDataResponse(); + // New instances are implicitly immutable so no need to make + // immutable. + DEFAULT_INSTANCE = defaultInstance; + com.google.protobuf.GeneratedMessageLite.registerDefaultInstance( + ExportTabularDataResponse.class, defaultInstance); + } + + public static viam.app.data.v1.Data.ExportTabularDataResponse 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 GetLatestTabularDataRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:viam.app.data.v1.GetLatestTabularDataRequest) + com.google.protobuf.MessageLiteOrBuilder { + + /** + * string part_id = 1 [json_name = "partId"]; + * @return The partId. + */ + java.lang.String getPartId(); + /** + * string part_id = 1 [json_name = "partId"]; + * @return The bytes for partId. + */ + com.google.protobuf.ByteString + getPartIdBytes(); + + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @return The resourceName. + */ + java.lang.String getResourceName(); + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @return The bytes for resourceName. + */ + com.google.protobuf.ByteString + getResourceNameBytes(); + + /** + * string method_name = 3 [json_name = "methodName"]; + * @return The methodName. + */ + java.lang.String getMethodName(); + /** + * string method_name = 3 [json_name = "methodName"]; + * @return The bytes for methodName. + */ + com.google.protobuf.ByteString + getMethodNameBytes(); + + /** + * string resource_subtype = 4 [json_name = "resourceSubtype"]; + * @return The resourceSubtype. + */ + java.lang.String getResourceSubtype(); + /** + * string resource_subtype = 4 [json_name = "resourceSubtype"]; + * @return The bytes for resourceSubtype. + */ + com.google.protobuf.ByteString + getResourceSubtypeBytes(); + } + /** + *
+   * GetLatestTabularDataRequest requests the most recent tabular data captured from the specified data source.
+   * 
+ * + * Protobuf type {@code viam.app.data.v1.GetLatestTabularDataRequest} + */ + public static final class GetLatestTabularDataRequest extends + com.google.protobuf.GeneratedMessageLite< + GetLatestTabularDataRequest, GetLatestTabularDataRequest.Builder> implements + // @@protoc_insertion_point(message_implements:viam.app.data.v1.GetLatestTabularDataRequest) + GetLatestTabularDataRequestOrBuilder { + private GetLatestTabularDataRequest() { + partId_ = ""; + resourceName_ = ""; + methodName_ = ""; + resourceSubtype_ = ""; + } + public static final int PART_ID_FIELD_NUMBER = 1; + private java.lang.String partId_; + /** + * string part_id = 1 [json_name = "partId"]; + * @return The partId. + */ + @java.lang.Override + public java.lang.String getPartId() { + return partId_; + } + /** + * string part_id = 1 [json_name = "partId"]; + * @return The bytes for partId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPartIdBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(partId_); + } + /** + * string part_id = 1 [json_name = "partId"]; + * @param value The partId to set. + */ + private void setPartId( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + partId_ = value; + } + /** + * string part_id = 1 [json_name = "partId"]; + */ + private void clearPartId() { + + partId_ = getDefaultInstance().getPartId(); + } + /** + * string part_id = 1 [json_name = "partId"]; + * @param value The bytes for partId to set. + */ + private void setPartIdBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + partId_ = value.toStringUtf8(); + + } + + public static final int RESOURCE_NAME_FIELD_NUMBER = 2; + private java.lang.String resourceName_; + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @return The resourceName. + */ + @java.lang.Override + public java.lang.String getResourceName() { + return resourceName_; + } + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @return The bytes for resourceName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getResourceNameBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(resourceName_); + } + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @param value The resourceName to set. + */ + private void setResourceName( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + resourceName_ = value; + } + /** + * string resource_name = 2 [json_name = "resourceName"]; + */ + private void clearResourceName() { + + resourceName_ = getDefaultInstance().getResourceName(); + } + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @param value The bytes for resourceName to set. + */ + private void setResourceNameBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + resourceName_ = value.toStringUtf8(); + + } + + public static final int METHOD_NAME_FIELD_NUMBER = 3; + private java.lang.String methodName_; + /** + * string method_name = 3 [json_name = "methodName"]; + * @return The methodName. + */ + @java.lang.Override + public java.lang.String getMethodName() { + return methodName_; + } + /** + * string method_name = 3 [json_name = "methodName"]; + * @return The bytes for methodName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMethodNameBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(methodName_); + } + /** + * string method_name = 3 [json_name = "methodName"]; + * @param value The methodName to set. + */ + private void setMethodName( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + methodName_ = value; + } + /** + * string method_name = 3 [json_name = "methodName"]; + */ + private void clearMethodName() { + + methodName_ = getDefaultInstance().getMethodName(); + } + /** + * string method_name = 3 [json_name = "methodName"]; + * @param value The bytes for methodName to set. + */ + private void setMethodNameBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + methodName_ = value.toStringUtf8(); + + } + + public static final int RESOURCE_SUBTYPE_FIELD_NUMBER = 4; + private java.lang.String resourceSubtype_; + /** + * string resource_subtype = 4 [json_name = "resourceSubtype"]; + * @return The resourceSubtype. + */ + @java.lang.Override + public java.lang.String getResourceSubtype() { + return resourceSubtype_; + } + /** + * string resource_subtype = 4 [json_name = "resourceSubtype"]; + * @return The bytes for resourceSubtype. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getResourceSubtypeBytes() { + return com.google.protobuf.ByteString.copyFromUtf8(resourceSubtype_); + } + /** + * string resource_subtype = 4 [json_name = "resourceSubtype"]; + * @param value The resourceSubtype to set. + */ + private void setResourceSubtype( + java.lang.String value) { + java.lang.Class valueClass = value.getClass(); + + resourceSubtype_ = value; + } + /** + * string resource_subtype = 4 [json_name = "resourceSubtype"]; + */ + private void clearResourceSubtype() { + + resourceSubtype_ = getDefaultInstance().getResourceSubtype(); + } + /** + * string resource_subtype = 4 [json_name = "resourceSubtype"]; + * @param value The bytes for resourceSubtype to set. + */ + private void setResourceSubtypeBytes( + com.google.protobuf.ByteString value) { + checkByteStringIsUtf8(value); + resourceSubtype_ = value.toStringUtf8(); + + } + + public static viam.app.data.v1.Data.GetLatestTabularDataRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static viam.app.data.v1.Data.GetLatestTabularDataRequest 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.data.v1.Data.GetLatestTabularDataRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static viam.app.data.v1.Data.GetLatestTabularDataRequest 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.data.v1.Data.GetLatestTabularDataRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static viam.app.data.v1.Data.GetLatestTabularDataRequest 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.data.v1.Data.GetLatestTabularDataRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static viam.app.data.v1.Data.GetLatestTabularDataRequest 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.data.v1.Data.GetLatestTabularDataRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input); + } + + public static viam.app.data.v1.Data.GetLatestTabularDataRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry); + } + public static viam.app.data.v1.Data.GetLatestTabularDataRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static viam.app.data.v1.Data.GetLatestTabularDataRequest 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.data.v1.Data.GetLatestTabularDataRequest prototype) { + return DEFAULT_INSTANCE.createBuilder(prototype); + } + + /** + *
+     * GetLatestTabularDataRequest requests the most recent tabular data captured from the specified data source.
+     * 
+ * + * Protobuf type {@code viam.app.data.v1.GetLatestTabularDataRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageLite.Builder< + viam.app.data.v1.Data.GetLatestTabularDataRequest, Builder> implements + // @@protoc_insertion_point(builder_implements:viam.app.data.v1.GetLatestTabularDataRequest) + viam.app.data.v1.Data.GetLatestTabularDataRequestOrBuilder { + // Construct using viam.app.data.v1.Data.GetLatestTabularDataRequest.newBuilder() + private Builder() { + super(DEFAULT_INSTANCE); + } + + + /** + * string part_id = 1 [json_name = "partId"]; + * @return The partId. + */ + @java.lang.Override + public java.lang.String getPartId() { + return instance.getPartId(); + } + /** + * string part_id = 1 [json_name = "partId"]; + * @return The bytes for partId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPartIdBytes() { + return instance.getPartIdBytes(); + } + /** + * string part_id = 1 [json_name = "partId"]; + * @param value The partId to set. + * @return This builder for chaining. + */ + public Builder setPartId( + java.lang.String value) { + copyOnWrite(); + instance.setPartId(value); + return this; + } + /** + * string part_id = 1 [json_name = "partId"]; + * @return This builder for chaining. + */ + public Builder clearPartId() { + copyOnWrite(); + instance.clearPartId(); + return this; + } + /** + * string part_id = 1 [json_name = "partId"]; + * @param value The bytes for partId to set. + * @return This builder for chaining. + */ + public Builder setPartIdBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setPartIdBytes(value); + return this; + } + + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @return The resourceName. + */ + @java.lang.Override + public java.lang.String getResourceName() { + return instance.getResourceName(); + } + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @return The bytes for resourceName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getResourceNameBytes() { + return instance.getResourceNameBytes(); + } + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @param value The resourceName to set. + * @return This builder for chaining. + */ + public Builder setResourceName( + java.lang.String value) { + copyOnWrite(); + instance.setResourceName(value); + return this; + } + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @return This builder for chaining. + */ + public Builder clearResourceName() { + copyOnWrite(); + instance.clearResourceName(); + return this; + } + /** + * string resource_name = 2 [json_name = "resourceName"]; + * @param value The bytes for resourceName to set. + * @return This builder for chaining. + */ + public Builder setResourceNameBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setResourceNameBytes(value); + return this; + } + + /** + * string method_name = 3 [json_name = "methodName"]; + * @return The methodName. + */ + @java.lang.Override + public java.lang.String getMethodName() { + return instance.getMethodName(); + } + /** + * string method_name = 3 [json_name = "methodName"]; + * @return The bytes for methodName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMethodNameBytes() { + return instance.getMethodNameBytes(); + } + /** + * string method_name = 3 [json_name = "methodName"]; + * @param value The methodName to set. + * @return This builder for chaining. + */ + public Builder setMethodName( + java.lang.String value) { + copyOnWrite(); + instance.setMethodName(value); + return this; + } + /** + * string method_name = 3 [json_name = "methodName"]; + * @return This builder for chaining. + */ + public Builder clearMethodName() { + copyOnWrite(); + instance.clearMethodName(); + return this; + } + /** + * string method_name = 3 [json_name = "methodName"]; + * @param value The bytes for methodName to set. + * @return This builder for chaining. + */ + public Builder setMethodNameBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setMethodNameBytes(value); + return this; + } + + /** + * string resource_subtype = 4 [json_name = "resourceSubtype"]; + * @return The resourceSubtype. + */ + @java.lang.Override + public java.lang.String getResourceSubtype() { + return instance.getResourceSubtype(); + } + /** + * string resource_subtype = 4 [json_name = "resourceSubtype"]; + * @return The bytes for resourceSubtype. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getResourceSubtypeBytes() { + return instance.getResourceSubtypeBytes(); + } + /** + * string resource_subtype = 4 [json_name = "resourceSubtype"]; + * @param value The resourceSubtype to set. + * @return This builder for chaining. + */ + public Builder setResourceSubtype( + java.lang.String value) { + copyOnWrite(); + instance.setResourceSubtype(value); + return this; + } + /** + * string resource_subtype = 4 [json_name = "resourceSubtype"]; + * @return This builder for chaining. + */ + public Builder clearResourceSubtype() { + copyOnWrite(); + instance.clearResourceSubtype(); + return this; + } + /** + * string resource_subtype = 4 [json_name = "resourceSubtype"]; + * @param value The bytes for resourceSubtype to set. + * @return This builder for chaining. + */ + public Builder setResourceSubtypeBytes( + com.google.protobuf.ByteString value) { + copyOnWrite(); + instance.setResourceSubtypeBytes(value); + return this; + } + + // @@protoc_insertion_point(builder_scope:viam.app.data.v1.GetLatestTabularDataRequest) + } + @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.data.v1.Data.GetLatestTabularDataRequest(); + } + case NEW_BUILDER: { + return new Builder(); + } + case BUILD_MESSAGE_INFO: { + java.lang.Object[] objects = new java.lang.Object[] { + "partId_", + "resourceName_", + "methodName_", + "resourceSubtype_", + }; + java.lang.String info = + "\u0000\u0004\u0000\u0000\u0001\u0004\u0004\u0000\u0000\u0000\u0001\u0208\u0002\u0208" + + "\u0003\u0208\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.data.v1.Data.GetLatestTabularDataRequest.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.data.v1.GetLatestTabularDataRequest) + private static final viam.app.data.v1.Data.GetLatestTabularDataRequest DEFAULT_INSTANCE; + static { + GetLatestTabularDataRequest defaultInstance = new GetLatestTabularDataRequest(); + // New instances are implicitly immutable so no need to make + // immutable. + DEFAULT_INSTANCE = defaultInstance; + com.google.protobuf.GeneratedMessageLite.registerDefaultInstance( + GetLatestTabularDataRequest.class, defaultInstance); + } + + public static viam.app.data.v1.Data.GetLatestTabularDataRequest 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 GetLatestTabularDataResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:viam.app.data.v1.GetLatestTabularDataResponse) + com.google.protobuf.MessageLiteOrBuilder { + + /** + * .google.protobuf.Timestamp time_captured = 1 [json_name = "timeCaptured"]; + * @return Whether the timeCaptured field is set. + */ + boolean hasTimeCaptured(); + /** + * .google.protobuf.Timestamp time_captured = 1 [json_name = "timeCaptured"]; + * @return The timeCaptured. + */ + com.google.protobuf.Timestamp getTimeCaptured(); + + /** + * .google.protobuf.Timestamp time_synced = 2 [json_name = "timeSynced"]; + * @return Whether the timeSynced field is set. + */ + boolean hasTimeSynced(); + /** + * .google.protobuf.Timestamp time_synced = 2 [json_name = "timeSynced"]; + * @return The timeSynced. + */ + com.google.protobuf.Timestamp getTimeSynced(); + + /** + * .google.protobuf.Struct payload = 3 [json_name = "payload"]; + * @return Whether the payload field is set. + */ + boolean hasPayload(); + /** + * .google.protobuf.Struct payload = 3 [json_name = "payload"]; + * @return The payload. + */ + com.google.protobuf.Struct getPayload(); + } + /** + *
+   * GetLatestTabularDataResponse provides the data, time synced, and time captured of the most recent tabular data captured
+   * from the requested data source, as long as it was synced within the last year.
+   * 
+ * + * Protobuf type {@code viam.app.data.v1.GetLatestTabularDataResponse} + */ + public static final class GetLatestTabularDataResponse extends + com.google.protobuf.GeneratedMessageLite< + GetLatestTabularDataResponse, GetLatestTabularDataResponse.Builder> implements + // @@protoc_insertion_point(message_implements:viam.app.data.v1.GetLatestTabularDataResponse) + GetLatestTabularDataResponseOrBuilder { + private GetLatestTabularDataResponse() { + } + private int bitField0_; + public static final int TIME_CAPTURED_FIELD_NUMBER = 1; + private com.google.protobuf.Timestamp timeCaptured_; + /** + * .google.protobuf.Timestamp time_captured = 1 [json_name = "timeCaptured"]; + */ + @java.lang.Override + public boolean hasTimeCaptured() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .google.protobuf.Timestamp time_captured = 1 [json_name = "timeCaptured"]; + */ + @java.lang.Override + public com.google.protobuf.Timestamp getTimeCaptured() { + return timeCaptured_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timeCaptured_; + } + /** + * .google.protobuf.Timestamp time_captured = 1 [json_name = "timeCaptured"]; + */ + private void setTimeCaptured(com.google.protobuf.Timestamp value) { + value.getClass(); + timeCaptured_ = value; + bitField0_ |= 0x00000001; + } + /** + * .google.protobuf.Timestamp time_captured = 1 [json_name = "timeCaptured"]; + */ + @java.lang.SuppressWarnings({"ReferenceEquality"}) + private void mergeTimeCaptured(com.google.protobuf.Timestamp value) { + value.getClass(); + if (timeCaptured_ != null && + timeCaptured_ != com.google.protobuf.Timestamp.getDefaultInstance()) { + timeCaptured_ = + com.google.protobuf.Timestamp.newBuilder(timeCaptured_).mergeFrom(value).buildPartial(); + } else { + timeCaptured_ = value; + } + bitField0_ |= 0x00000001; + } + /** + * .google.protobuf.Timestamp time_captured = 1 [json_name = "timeCaptured"]; + */ + private void clearTimeCaptured() { timeCaptured_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + } + + public static final int TIME_SYNCED_FIELD_NUMBER = 2; + private com.google.protobuf.Timestamp timeSynced_; + /** + * .google.protobuf.Timestamp time_synced = 2 [json_name = "timeSynced"]; + */ + @java.lang.Override + public boolean hasTimeSynced() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .google.protobuf.Timestamp time_synced = 2 [json_name = "timeSynced"]; + */ + @java.lang.Override + public com.google.protobuf.Timestamp getTimeSynced() { + return timeSynced_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timeSynced_; + } + /** + * .google.protobuf.Timestamp time_synced = 2 [json_name = "timeSynced"]; + */ + private void setTimeSynced(com.google.protobuf.Timestamp value) { + value.getClass(); + timeSynced_ = value; + bitField0_ |= 0x00000002; + } + /** + * .google.protobuf.Timestamp time_synced = 2 [json_name = "timeSynced"]; + */ + @java.lang.SuppressWarnings({"ReferenceEquality"}) + private void mergeTimeSynced(com.google.protobuf.Timestamp value) { + value.getClass(); + if (timeSynced_ != null && + timeSynced_ != com.google.protobuf.Timestamp.getDefaultInstance()) { + timeSynced_ = + com.google.protobuf.Timestamp.newBuilder(timeSynced_).mergeFrom(value).buildPartial(); + } else { + timeSynced_ = value; + } + bitField0_ |= 0x00000002; + } + /** + * .google.protobuf.Timestamp time_synced = 2 [json_name = "timeSynced"]; + */ + private void clearTimeSynced() { timeSynced_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + } + + public static final int PAYLOAD_FIELD_NUMBER = 3; + private com.google.protobuf.Struct payload_; + /** + * .google.protobuf.Struct payload = 3 [json_name = "payload"]; + */ + @java.lang.Override + public boolean hasPayload() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + * .google.protobuf.Struct payload = 3 [json_name = "payload"]; + */ + @java.lang.Override + public com.google.protobuf.Struct getPayload() { + return payload_ == null ? com.google.protobuf.Struct.getDefaultInstance() : payload_; + } + /** + * .google.protobuf.Struct payload = 3 [json_name = "payload"]; + */ + private void setPayload(com.google.protobuf.Struct value) { + value.getClass(); + payload_ = value; + bitField0_ |= 0x00000004; + } + /** + * .google.protobuf.Struct payload = 3 [json_name = "payload"]; + */ + @java.lang.SuppressWarnings({"ReferenceEquality"}) + private void mergePayload(com.google.protobuf.Struct value) { + value.getClass(); + if (payload_ != null && + payload_ != com.google.protobuf.Struct.getDefaultInstance()) { + payload_ = + com.google.protobuf.Struct.newBuilder(payload_).mergeFrom(value).buildPartial(); + } else { + payload_ = value; + } + bitField0_ |= 0x00000004; + } + /** + * .google.protobuf.Struct payload = 3 [json_name = "payload"]; + */ + private void clearPayload() { payload_ = null; + bitField0_ = (bitField0_ & ~0x00000004); + } + + public static viam.app.data.v1.Data.GetLatestTabularDataResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static viam.app.data.v1.Data.GetLatestTabularDataResponse 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.data.v1.Data.GetLatestTabularDataResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static viam.app.data.v1.Data.GetLatestTabularDataResponse 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.data.v1.Data.GetLatestTabularDataResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, data); + } + public static viam.app.data.v1.Data.GetLatestTabularDataResponse 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.data.v1.Data.GetLatestTabularDataResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static viam.app.data.v1.Data.GetLatestTabularDataResponse 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.data.v1.Data.GetLatestTabularDataResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input); + } + + public static viam.app.data.v1.Data.GetLatestTabularDataResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry); + } + public static viam.app.data.v1.Data.GetLatestTabularDataResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageLite.parseFrom( + DEFAULT_INSTANCE, input); + } + public static viam.app.data.v1.Data.GetLatestTabularDataResponse 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.data.v1.Data.GetLatestTabularDataResponse prototype) { + return DEFAULT_INSTANCE.createBuilder(prototype); + } + + /** + *
+     * GetLatestTabularDataResponse provides the data, time synced, and time captured of the most recent tabular data captured
+     * from the requested data source, as long as it was synced within the last year.
+     * 
+ * + * Protobuf type {@code viam.app.data.v1.GetLatestTabularDataResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageLite.Builder< + viam.app.data.v1.Data.GetLatestTabularDataResponse, Builder> implements + // @@protoc_insertion_point(builder_implements:viam.app.data.v1.GetLatestTabularDataResponse) + viam.app.data.v1.Data.GetLatestTabularDataResponseOrBuilder { + // Construct using viam.app.data.v1.Data.GetLatestTabularDataResponse.newBuilder() + private Builder() { + super(DEFAULT_INSTANCE); + } + + + /** + * .google.protobuf.Timestamp time_captured = 1 [json_name = "timeCaptured"]; */ @java.lang.Override - public int getDataCount() { - return instance.getDataCount(); - }/** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; + public boolean hasTimeCaptured() { + return instance.hasTimeCaptured(); + } + /** + * .google.protobuf.Timestamp time_captured = 1 [json_name = "timeCaptured"]; */ @java.lang.Override - public com.google.protobuf.Struct getData(int index) { - return instance.getData(index); + public com.google.protobuf.Timestamp getTimeCaptured() { + return instance.getTimeCaptured(); } /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; + * .google.protobuf.Timestamp time_captured = 1 [json_name = "timeCaptured"]; */ - public Builder setData( - int index, com.google.protobuf.Struct value) { + public Builder setTimeCaptured(com.google.protobuf.Timestamp value) { copyOnWrite(); - instance.setData(index, value); + instance.setTimeCaptured(value); return this; - } + } /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; + * .google.protobuf.Timestamp time_captured = 1 [json_name = "timeCaptured"]; */ - public Builder setData( - int index, com.google.protobuf.Struct.Builder builderForValue) { + public Builder setTimeCaptured( + com.google.protobuf.Timestamp.Builder builderForValue) { copyOnWrite(); - instance.setData(index, - builderForValue.build()); + instance.setTimeCaptured(builderForValue.build()); return this; } /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; + * .google.protobuf.Timestamp time_captured = 1 [json_name = "timeCaptured"]; */ - public Builder addData(com.google.protobuf.Struct value) { + public Builder mergeTimeCaptured(com.google.protobuf.Timestamp value) { copyOnWrite(); - instance.addData(value); + instance.mergeTimeCaptured(value); return this; } /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; + * .google.protobuf.Timestamp time_captured = 1 [json_name = "timeCaptured"]; */ - public Builder addData( - int index, com.google.protobuf.Struct value) { - copyOnWrite(); - instance.addData(index, value); + public Builder clearTimeCaptured() { copyOnWrite(); + instance.clearTimeCaptured(); return this; } + /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; + * .google.protobuf.Timestamp time_synced = 2 [json_name = "timeSynced"]; */ - public Builder addData( - com.google.protobuf.Struct.Builder builderForValue) { - copyOnWrite(); - instance.addData(builderForValue.build()); - return this; + @java.lang.Override + public boolean hasTimeSynced() { + return instance.hasTimeSynced(); } /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; + * .google.protobuf.Timestamp time_synced = 2 [json_name = "timeSynced"]; */ - public Builder addData( - int index, com.google.protobuf.Struct.Builder builderForValue) { - copyOnWrite(); - instance.addData(index, - builderForValue.build()); - return this; + @java.lang.Override + public com.google.protobuf.Timestamp getTimeSynced() { + return instance.getTimeSynced(); } /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; + * .google.protobuf.Timestamp time_synced = 2 [json_name = "timeSynced"]; */ - public Builder addAllData( - java.lang.Iterable values) { + public Builder setTimeSynced(com.google.protobuf.Timestamp value) { copyOnWrite(); - instance.addAllData(values); + instance.setTimeSynced(value); return this; - } + } /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; + * .google.protobuf.Timestamp time_synced = 2 [json_name = "timeSynced"]; */ - public Builder clearData() { + public Builder setTimeSynced( + com.google.protobuf.Timestamp.Builder builderForValue) { copyOnWrite(); - instance.clearData(); + instance.setTimeSynced(builderForValue.build()); return this; } /** - * repeated .google.protobuf.Struct data = 1 [json_name = "data"]; + * .google.protobuf.Timestamp time_synced = 2 [json_name = "timeSynced"]; */ - public Builder removeData(int index) { + public Builder mergeTimeSynced(com.google.protobuf.Timestamp value) { copyOnWrite(); - instance.removeData(index); + instance.mergeTimeSynced(value); return this; } - /** - * repeated bytes raw_data = 2 [json_name = "rawData"]; - * @return A list containing the rawData. + * .google.protobuf.Timestamp time_synced = 2 [json_name = "timeSynced"]; */ - @java.lang.Override - public java.util.List - getRawDataList() { - return java.util.Collections.unmodifiableList( - instance.getRawDataList()); + public Builder clearTimeSynced() { copyOnWrite(); + instance.clearTimeSynced(); + return this; } + /** - * repeated bytes raw_data = 2 [json_name = "rawData"]; - * @return The count of rawData. + * .google.protobuf.Struct payload = 3 [json_name = "payload"]; */ @java.lang.Override - public int getRawDataCount() { - return instance.getRawDataCount(); + public boolean hasPayload() { + return instance.hasPayload(); } /** - * repeated bytes raw_data = 2 [json_name = "rawData"]; - * @param index The index of the element to return. - * @return The rawData at the given index. + * .google.protobuf.Struct payload = 3 [json_name = "payload"]; */ @java.lang.Override - public com.google.protobuf.ByteString getRawData(int index) { - return instance.getRawData(index); + public com.google.protobuf.Struct getPayload() { + return instance.getPayload(); } /** - * repeated bytes raw_data = 2 [json_name = "rawData"]; - * @param value The rawData to set. - * @return This builder for chaining. + * .google.protobuf.Struct payload = 3 [json_name = "payload"]; */ - public Builder setRawData( - int index, com.google.protobuf.ByteString value) { + public Builder setPayload(com.google.protobuf.Struct value) { copyOnWrite(); - instance.setRawData(index, value); + instance.setPayload(value); return this; - } + } /** - * repeated bytes raw_data = 2 [json_name = "rawData"]; - * @param value The rawData to add. - * @return This builder for chaining. + * .google.protobuf.Struct payload = 3 [json_name = "payload"]; */ - public Builder addRawData(com.google.protobuf.ByteString value) { + public Builder setPayload( + com.google.protobuf.Struct.Builder builderForValue) { copyOnWrite(); - instance.addRawData(value); + instance.setPayload(builderForValue.build()); return this; } /** - * repeated bytes raw_data = 2 [json_name = "rawData"]; - * @param values The rawData to add. - * @return This builder for chaining. + * .google.protobuf.Struct payload = 3 [json_name = "payload"]; */ - public Builder addAllRawData( - java.lang.Iterable values) { + public Builder mergePayload(com.google.protobuf.Struct value) { copyOnWrite(); - instance.addAllRawData(values); + instance.mergePayload(value); return this; } /** - * repeated bytes raw_data = 2 [json_name = "rawData"]; - * @return This builder for chaining. + * .google.protobuf.Struct payload = 3 [json_name = "payload"]; */ - public Builder clearRawData() { - copyOnWrite(); - instance.clearRawData(); + public Builder clearPayload() { copyOnWrite(); + instance.clearPayload(); return this; } - // @@protoc_insertion_point(builder_scope:viam.app.data.v1.TabularDataByMQLResponse) + // @@protoc_insertion_point(builder_scope:viam.app.data.v1.GetLatestTabularDataResponse) } @java.lang.Override @java.lang.SuppressWarnings({"unchecked", "fallthrough"}) @@ -9753,20 +13050,21 @@ protected final java.lang.Object dynamicMethod( java.lang.Object arg0, java.lang.Object arg1) { switch (method) { case NEW_MUTABLE_INSTANCE: { - return new viam.app.data.v1.Data.TabularDataByMQLResponse(); + return new viam.app.data.v1.Data.GetLatestTabularDataResponse(); } case NEW_BUILDER: { return new Builder(); } case BUILD_MESSAGE_INFO: { java.lang.Object[] objects = new java.lang.Object[] { - "data_", - com.google.protobuf.Struct.class, - "rawData_", + "bitField0_", + "timeCaptured_", + "timeSynced_", + "payload_", }; java.lang.String info = - "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0002\u0000\u0001\u001b\u0002\u001c" + - ""; + "\u0000\u0003\u0000\u0001\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u1009\u0000\u0002" + + "\u1009\u0001\u0003\u1009\u0002"; return newMessageInfo(DEFAULT_INSTANCE, info, objects); } // fall through @@ -9774,13 +13072,13 @@ protected final java.lang.Object dynamicMethod( return DEFAULT_INSTANCE; } case GET_PARSER: { - com.google.protobuf.Parser parser = PARSER; + com.google.protobuf.Parser parser = PARSER; if (parser == null) { - synchronized (viam.app.data.v1.Data.TabularDataByMQLResponse.class) { + synchronized (viam.app.data.v1.Data.GetLatestTabularDataResponse.class) { parser = PARSER; if (parser == null) { parser = - new DefaultInstanceBasedParser( + new DefaultInstanceBasedParser( DEFAULT_INSTANCE); PARSER = parser; } @@ -9799,24 +13097,24 @@ protected final java.lang.Object dynamicMethod( } - // @@protoc_insertion_point(class_scope:viam.app.data.v1.TabularDataByMQLResponse) - private static final viam.app.data.v1.Data.TabularDataByMQLResponse DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:viam.app.data.v1.GetLatestTabularDataResponse) + private static final viam.app.data.v1.Data.GetLatestTabularDataResponse DEFAULT_INSTANCE; static { - TabularDataByMQLResponse defaultInstance = new TabularDataByMQLResponse(); + GetLatestTabularDataResponse defaultInstance = new GetLatestTabularDataResponse(); // New instances are implicitly immutable so no need to make // immutable. DEFAULT_INSTANCE = defaultInstance; com.google.protobuf.GeneratedMessageLite.registerDefaultInstance( - TabularDataByMQLResponse.class, defaultInstance); + GetLatestTabularDataResponse.class, defaultInstance); } - public static viam.app.data.v1.Data.TabularDataByMQLResponse getDefaultInstance() { + public static viam.app.data.v1.Data.GetLatestTabularDataResponse getDefaultInstance() { return DEFAULT_INSTANCE; } - private static volatile com.google.protobuf.Parser PARSER; + private static volatile com.google.protobuf.Parser PARSER; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return DEFAULT_INSTANCE.getParserForType(); } } diff --git a/core/sdk/src/main/gen/viam/app/data/v1/DataServiceGrpc.java b/core/sdk/src/main/gen/viam/app/data/v1/DataServiceGrpc.java index 3a8b2121c..47fd23a33 100644 --- a/core/sdk/src/main/gen/viam/app/data/v1/DataServiceGrpc.java +++ b/core/sdk/src/main/gen/viam/app/data/v1/DataServiceGrpc.java @@ -108,6 +108,66 @@ viam.app.data.v1.Data.TabularDataByMQLResponse> getTabularDataByMQLMethod() { return getTabularDataByMQLMethod; } + private static volatile io.grpc.MethodDescriptor getExportTabularDataMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "ExportTabularData", + requestType = viam.app.data.v1.Data.ExportTabularDataRequest.class, + responseType = viam.app.data.v1.Data.ExportTabularDataResponse.class, + methodType = io.grpc.MethodDescriptor.MethodType.SERVER_STREAMING) + public static io.grpc.MethodDescriptor getExportTabularDataMethod() { + io.grpc.MethodDescriptor getExportTabularDataMethod; + if ((getExportTabularDataMethod = DataServiceGrpc.getExportTabularDataMethod) == null) { + synchronized (DataServiceGrpc.class) { + if ((getExportTabularDataMethod = DataServiceGrpc.getExportTabularDataMethod) == null) { + DataServiceGrpc.getExportTabularDataMethod = getExportTabularDataMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.SERVER_STREAMING) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "ExportTabularData")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller( + viam.app.data.v1.Data.ExportTabularDataRequest.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller( + viam.app.data.v1.Data.ExportTabularDataResponse.getDefaultInstance())) + .build(); + } + } + } + return getExportTabularDataMethod; + } + + private static volatile io.grpc.MethodDescriptor getGetLatestTabularDataMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "GetLatestTabularData", + requestType = viam.app.data.v1.Data.GetLatestTabularDataRequest.class, + responseType = viam.app.data.v1.Data.GetLatestTabularDataResponse.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getGetLatestTabularDataMethod() { + io.grpc.MethodDescriptor getGetLatestTabularDataMethod; + if ((getGetLatestTabularDataMethod = DataServiceGrpc.getGetLatestTabularDataMethod) == null) { + synchronized (DataServiceGrpc.class) { + if ((getGetLatestTabularDataMethod = DataServiceGrpc.getGetLatestTabularDataMethod) == null) { + DataServiceGrpc.getGetLatestTabularDataMethod = getGetLatestTabularDataMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "GetLatestTabularData")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller( + viam.app.data.v1.Data.GetLatestTabularDataRequest.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller( + viam.app.data.v1.Data.GetLatestTabularDataResponse.getDefaultInstance())) + .build(); + } + } + } + return getGetLatestTabularDataMethod; + } + private static volatile io.grpc.MethodDescriptor getBinaryDataByFilterMethod; @@ -704,6 +764,7 @@ public interface AsyncService { * TabularDataByFilter queries tabular data and metadata based on given filters. *
*/ + @java.lang.Deprecated default void tabularDataByFilter(viam.app.data.v1.Data.TabularDataByFilterRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getTabularDataByFilterMethod(), responseObserver); @@ -729,6 +790,26 @@ default void tabularDataByMQL(viam.app.data.v1.Data.TabularDataByMQLRequest requ io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getTabularDataByMQLMethod(), responseObserver); } + /** + *
+     * ExportTabularData queries tabular data from the specified data source.
+     * 
+ */ + default void exportTabularData(viam.app.data.v1.Data.ExportTabularDataRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getExportTabularDataMethod(), responseObserver); + } + + /** + *
+     * GetLatestTabularData gets the most recent tabular data captured from the specified data source.
+     * 
+ */ + default void getLatestTabularData(viam.app.data.v1.Data.GetLatestTabularDataRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetLatestTabularDataMethod(), responseObserver); + } + /** *
      * BinaryDataByFilter queries binary data and metadata based on given filters.
@@ -950,6 +1031,7 @@ protected DataServiceStub build(
      * TabularDataByFilter queries tabular data and metadata based on given filters.
      * 
*/ + @java.lang.Deprecated public void tabularDataByFilter(viam.app.data.v1.Data.TabularDataByFilterRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ClientCalls.asyncUnaryCall( @@ -978,6 +1060,28 @@ public void tabularDataByMQL(viam.app.data.v1.Data.TabularDataByMQLRequest reque getChannel().newCall(getTabularDataByMQLMethod(), getCallOptions()), request, responseObserver); } + /** + *
+     * ExportTabularData queries tabular data from the specified data source.
+     * 
+ */ + public void exportTabularData(viam.app.data.v1.Data.ExportTabularDataRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncServerStreamingCall( + getChannel().newCall(getExportTabularDataMethod(), getCallOptions()), request, responseObserver); + } + + /** + *
+     * GetLatestTabularData gets the most recent tabular data captured from the specified data source.
+     * 
+ */ + public void getLatestTabularData(viam.app.data.v1.Data.GetLatestTabularDataRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getGetLatestTabularDataMethod(), getCallOptions()), request, responseObserver); + } + /** *
      * BinaryDataByFilter queries binary data and metadata based on given filters.
@@ -1203,6 +1307,7 @@ protected DataServiceBlockingStub build(
      * TabularDataByFilter queries tabular data and metadata based on given filters.
      * 
*/ + @java.lang.Deprecated public viam.app.data.v1.Data.TabularDataByFilterResponse tabularDataByFilter(viam.app.data.v1.Data.TabularDataByFilterRequest request) { return io.grpc.stub.ClientCalls.blockingUnaryCall( getChannel(), getTabularDataByFilterMethod(), getCallOptions(), request); @@ -1228,6 +1333,27 @@ public viam.app.data.v1.Data.TabularDataByMQLResponse tabularDataByMQL(viam.app. getChannel(), getTabularDataByMQLMethod(), getCallOptions(), request); } + /** + *
+     * ExportTabularData queries tabular data from the specified data source.
+     * 
+ */ + public java.util.Iterator exportTabularData( + viam.app.data.v1.Data.ExportTabularDataRequest request) { + return io.grpc.stub.ClientCalls.blockingServerStreamingCall( + getChannel(), getExportTabularDataMethod(), getCallOptions(), request); + } + + /** + *
+     * GetLatestTabularData gets the most recent tabular data captured from the specified data source.
+     * 
+ */ + public viam.app.data.v1.Data.GetLatestTabularDataResponse getLatestTabularData(viam.app.data.v1.Data.GetLatestTabularDataRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getGetLatestTabularDataMethod(), getCallOptions(), request); + } + /** *
      * BinaryDataByFilter queries binary data and metadata based on given filters.
@@ -1435,6 +1561,7 @@ protected DataServiceFutureStub build(
      * TabularDataByFilter queries tabular data and metadata based on given filters.
      * 
*/ + @java.lang.Deprecated public com.google.common.util.concurrent.ListenableFuture tabularDataByFilter( viam.app.data.v1.Data.TabularDataByFilterRequest request) { return io.grpc.stub.ClientCalls.futureUnaryCall( @@ -1463,6 +1590,17 @@ public com.google.common.util.concurrent.ListenableFuture + * GetLatestTabularData gets the most recent tabular data captured from the specified data source. + *
+ */ + public com.google.common.util.concurrent.ListenableFuture getLatestTabularData( + viam.app.data.v1.Data.GetLatestTabularDataRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getGetLatestTabularDataMethod(), getCallOptions()), request); + } + /** *
      * BinaryDataByFilter queries binary data and metadata based on given filters.
@@ -1667,24 +1805,26 @@ public com.google.common.util.concurrent.ListenableFuture implements
       io.grpc.stub.ServerCalls.UnaryMethod,
@@ -1715,6 +1855,14 @@ public void invoke(Req request, io.grpc.stub.StreamObserver responseObserv
           serviceImpl.tabularDataByMQL((viam.app.data.v1.Data.TabularDataByMQLRequest) request,
               (io.grpc.stub.StreamObserver) responseObserver);
           break;
+        case METHODID_EXPORT_TABULAR_DATA:
+          serviceImpl.exportTabularData((viam.app.data.v1.Data.ExportTabularDataRequest) request,
+              (io.grpc.stub.StreamObserver) responseObserver);
+          break;
+        case METHODID_GET_LATEST_TABULAR_DATA:
+          serviceImpl.getLatestTabularData((viam.app.data.v1.Data.GetLatestTabularDataRequest) request,
+              (io.grpc.stub.StreamObserver) responseObserver);
+          break;
         case METHODID_BINARY_DATA_BY_FILTER:
           serviceImpl.binaryDataByFilter((viam.app.data.v1.Data.BinaryDataByFilterRequest) request,
               (io.grpc.stub.StreamObserver) responseObserver);
@@ -1826,6 +1974,20 @@ public static final io.grpc.ServerServiceDefinition bindService(AsyncService ser
               viam.app.data.v1.Data.TabularDataByMQLRequest,
               viam.app.data.v1.Data.TabularDataByMQLResponse>(
                 service, METHODID_TABULAR_DATA_BY_MQL)))
+        .addMethod(
+          getExportTabularDataMethod(),
+          io.grpc.stub.ServerCalls.asyncServerStreamingCall(
+            new MethodHandlers<
+              viam.app.data.v1.Data.ExportTabularDataRequest,
+              viam.app.data.v1.Data.ExportTabularDataResponse>(
+                service, METHODID_EXPORT_TABULAR_DATA)))
+        .addMethod(
+          getGetLatestTabularDataMethod(),
+          io.grpc.stub.ServerCalls.asyncUnaryCall(
+            new MethodHandlers<
+              viam.app.data.v1.Data.GetLatestTabularDataRequest,
+              viam.app.data.v1.Data.GetLatestTabularDataResponse>(
+                service, METHODID_GET_LATEST_TABULAR_DATA)))
         .addMethod(
           getBinaryDataByFilterMethod(),
           io.grpc.stub.ServerCalls.asyncUnaryCall(
@@ -1967,6 +2129,8 @@ public static io.grpc.ServiceDescriptor getServiceDescriptor() {
               .addMethod(getTabularDataByFilterMethod())
               .addMethod(getTabularDataBySQLMethod())
               .addMethod(getTabularDataByMQLMethod())
+              .addMethod(getExportTabularDataMethod())
+              .addMethod(getGetLatestTabularDataMethod())
               .addMethod(getBinaryDataByFilterMethod())
               .addMethod(getBinaryDataByIDsMethod())
               .addMethod(getDeleteTabularDataMethod())
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 2550c2a80..1b239bbce 100644
--- a/core/sdk/src/main/gen/viam/app/v1/App.java
+++ b/core/sdk/src/main/gen/viam/app/v1/App.java
@@ -578,6 +578,443 @@ private Visibility(int value) {
     // @@protoc_insertion_point(enum_scope:viam.app.v1.Visibility)
   }
 
+  /**
+   * Protobuf enum {@code viam.app.v1.ClientAuthentication}
+   */
+  public enum ClientAuthentication
+      implements com.google.protobuf.Internal.EnumLite {
+    /**
+     * CLIENT_AUTHENTICATION_UNSPECIFIED = 0;
+     */
+    CLIENT_AUTHENTICATION_UNSPECIFIED(0),
+    /**
+     * CLIENT_AUTHENTICATION_REQUIRED = 1;
+     */
+    CLIENT_AUTHENTICATION_REQUIRED(1),
+    /**
+     * CLIENT_AUTHENTICATION_NOT_REQUIRED = 2;
+     */
+    CLIENT_AUTHENTICATION_NOT_REQUIRED(2),
+    /**
+     * CLIENT_AUTHENTICATION_NOT_REQUIRED_WHEN_USING_PKCE = 3;
+     */
+    CLIENT_AUTHENTICATION_NOT_REQUIRED_WHEN_USING_PKCE(3),
+    UNRECOGNIZED(-1),
+    ;
+
+    /**
+     * CLIENT_AUTHENTICATION_UNSPECIFIED = 0;
+     */
+    public static final int CLIENT_AUTHENTICATION_UNSPECIFIED_VALUE = 0;
+    /**
+     * CLIENT_AUTHENTICATION_REQUIRED = 1;
+     */
+    public static final int CLIENT_AUTHENTICATION_REQUIRED_VALUE = 1;
+    /**
+     * CLIENT_AUTHENTICATION_NOT_REQUIRED = 2;
+     */
+    public static final int CLIENT_AUTHENTICATION_NOT_REQUIRED_VALUE = 2;
+    /**
+     * CLIENT_AUTHENTICATION_NOT_REQUIRED_WHEN_USING_PKCE = 3;
+     */
+    public static final int CLIENT_AUTHENTICATION_NOT_REQUIRED_WHEN_USING_PKCE_VALUE = 3;
+
+
+    @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 ClientAuthentication valueOf(int value) {
+      return forNumber(value);
+    }
+
+    public static ClientAuthentication forNumber(int value) {
+      switch (value) {
+        case 0: return CLIENT_AUTHENTICATION_UNSPECIFIED;
+        case 1: return CLIENT_AUTHENTICATION_REQUIRED;
+        case 2: return CLIENT_AUTHENTICATION_NOT_REQUIRED;
+        case 3: return CLIENT_AUTHENTICATION_NOT_REQUIRED_WHEN_USING_PKCE;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        ClientAuthentication> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap() {
+            @java.lang.Override
+            public ClientAuthentication findValueByNumber(int number) {
+              return ClientAuthentication.forNumber(number);
+            }
+          };
+
+    public static com.google.protobuf.Internal.EnumVerifier 
+        internalGetVerifier() {
+      return ClientAuthenticationVerifier.INSTANCE;
+    }
+
+    private static final class ClientAuthenticationVerifier implements 
+         com.google.protobuf.Internal.EnumVerifier { 
+            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new ClientAuthenticationVerifier();
+            @java.lang.Override
+            public boolean isInRange(int number) {
+              return ClientAuthentication.forNumber(number) != null;
+            }
+          };
+
+    private final int value;
+
+    private ClientAuthentication(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:viam.app.v1.ClientAuthentication)
+  }
+
+  /**
+   * Protobuf enum {@code viam.app.v1.PKCE}
+   */
+  public enum PKCE
+      implements com.google.protobuf.Internal.EnumLite {
+    /**
+     * PKCE_UNSPECIFIED = 0;
+     */
+    PKCE_UNSPECIFIED(0),
+    /**
+     * PKCE_REQUIRED = 1;
+     */
+    PKCE_REQUIRED(1),
+    /**
+     * PKCE_NOT_REQUIRED = 2;
+     */
+    PKCE_NOT_REQUIRED(2),
+    /**
+     * PKCE_NOT_REQUIRED_WHEN_USING_CLIENT_AUTHENTICATION = 3;
+     */
+    PKCE_NOT_REQUIRED_WHEN_USING_CLIENT_AUTHENTICATION(3),
+    UNRECOGNIZED(-1),
+    ;
+
+    /**
+     * PKCE_UNSPECIFIED = 0;
+     */
+    public static final int PKCE_UNSPECIFIED_VALUE = 0;
+    /**
+     * PKCE_REQUIRED = 1;
+     */
+    public static final int PKCE_REQUIRED_VALUE = 1;
+    /**
+     * PKCE_NOT_REQUIRED = 2;
+     */
+    public static final int PKCE_NOT_REQUIRED_VALUE = 2;
+    /**
+     * PKCE_NOT_REQUIRED_WHEN_USING_CLIENT_AUTHENTICATION = 3;
+     */
+    public static final int PKCE_NOT_REQUIRED_WHEN_USING_CLIENT_AUTHENTICATION_VALUE = 3;
+
+
+    @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 PKCE valueOf(int value) {
+      return forNumber(value);
+    }
+
+    public static PKCE forNumber(int value) {
+      switch (value) {
+        case 0: return PKCE_UNSPECIFIED;
+        case 1: return PKCE_REQUIRED;
+        case 2: return PKCE_NOT_REQUIRED;
+        case 3: return PKCE_NOT_REQUIRED_WHEN_USING_CLIENT_AUTHENTICATION;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        PKCE> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap() {
+            @java.lang.Override
+            public PKCE findValueByNumber(int number) {
+              return PKCE.forNumber(number);
+            }
+          };
+
+    public static com.google.protobuf.Internal.EnumVerifier 
+        internalGetVerifier() {
+      return PKCEVerifier.INSTANCE;
+    }
+
+    private static final class PKCEVerifier implements 
+         com.google.protobuf.Internal.EnumVerifier { 
+            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new PKCEVerifier();
+            @java.lang.Override
+            public boolean isInRange(int number) {
+              return PKCE.forNumber(number) != null;
+            }
+          };
+
+    private final int value;
+
+    private PKCE(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:viam.app.v1.PKCE)
+  }
+
+  /**
+   * Protobuf enum {@code viam.app.v1.URLValidation}
+   */
+  public enum URLValidation
+      implements com.google.protobuf.Internal.EnumLite {
+    /**
+     * URL_VALIDATION_UNSPECIFIED = 0;
+     */
+    URL_VALIDATION_UNSPECIFIED(0),
+    /**
+     * URL_VALIDATION_EXACT_MATCH = 1;
+     */
+    URL_VALIDATION_EXACT_MATCH(1),
+    /**
+     * URL_VALIDATION_ALLOW_WILDCARDS = 2;
+     */
+    URL_VALIDATION_ALLOW_WILDCARDS(2),
+    UNRECOGNIZED(-1),
+    ;
+
+    /**
+     * URL_VALIDATION_UNSPECIFIED = 0;
+     */
+    public static final int URL_VALIDATION_UNSPECIFIED_VALUE = 0;
+    /**
+     * URL_VALIDATION_EXACT_MATCH = 1;
+     */
+    public static final int URL_VALIDATION_EXACT_MATCH_VALUE = 1;
+    /**
+     * URL_VALIDATION_ALLOW_WILDCARDS = 2;
+     */
+    public static final int URL_VALIDATION_ALLOW_WILDCARDS_VALUE = 2;
+
+
+    @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 URLValidation valueOf(int value) {
+      return forNumber(value);
+    }
+
+    public static URLValidation forNumber(int value) {
+      switch (value) {
+        case 0: return URL_VALIDATION_UNSPECIFIED;
+        case 1: return URL_VALIDATION_EXACT_MATCH;
+        case 2: return URL_VALIDATION_ALLOW_WILDCARDS;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        URLValidation> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap() {
+            @java.lang.Override
+            public URLValidation findValueByNumber(int number) {
+              return URLValidation.forNumber(number);
+            }
+          };
+
+    public static com.google.protobuf.Internal.EnumVerifier 
+        internalGetVerifier() {
+      return URLValidationVerifier.INSTANCE;
+    }
+
+    private static final class URLValidationVerifier implements 
+         com.google.protobuf.Internal.EnumVerifier { 
+            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new URLValidationVerifier();
+            @java.lang.Override
+            public boolean isInRange(int number) {
+              return URLValidation.forNumber(number) != null;
+            }
+          };
+
+    private final int value;
+
+    private URLValidation(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:viam.app.v1.URLValidation)
+  }
+
+  /**
+   * Protobuf enum {@code viam.app.v1.EnabledGrant}
+   */
+  public enum EnabledGrant
+      implements com.google.protobuf.Internal.EnumLite {
+    /**
+     * ENABLED_GRANT_UNSPECIFIED = 0;
+     */
+    ENABLED_GRANT_UNSPECIFIED(0),
+    /**
+     * ENABLED_GRANT_AUTHORIZATION_CODE = 1;
+     */
+    ENABLED_GRANT_AUTHORIZATION_CODE(1),
+    /**
+     * ENABLED_GRANT_IMPLICIT = 2;
+     */
+    ENABLED_GRANT_IMPLICIT(2),
+    /**
+     * ENABLED_GRANT_PASSWORD = 3;
+     */
+    ENABLED_GRANT_PASSWORD(3),
+    /**
+     * ENABLED_GRANT_REFRESH_TOKEN = 4;
+     */
+    ENABLED_GRANT_REFRESH_TOKEN(4),
+    /**
+     * ENABLED_GRANT_DEVICE_CODE = 5;
+     */
+    ENABLED_GRANT_DEVICE_CODE(5),
+    UNRECOGNIZED(-1),
+    ;
+
+    /**
+     * ENABLED_GRANT_UNSPECIFIED = 0;
+     */
+    public static final int ENABLED_GRANT_UNSPECIFIED_VALUE = 0;
+    /**
+     * ENABLED_GRANT_AUTHORIZATION_CODE = 1;
+     */
+    public static final int ENABLED_GRANT_AUTHORIZATION_CODE_VALUE = 1;
+    /**
+     * ENABLED_GRANT_IMPLICIT = 2;
+     */
+    public static final int ENABLED_GRANT_IMPLICIT_VALUE = 2;
+    /**
+     * ENABLED_GRANT_PASSWORD = 3;
+     */
+    public static final int ENABLED_GRANT_PASSWORD_VALUE = 3;
+    /**
+     * ENABLED_GRANT_REFRESH_TOKEN = 4;
+     */
+    public static final int ENABLED_GRANT_REFRESH_TOKEN_VALUE = 4;
+    /**
+     * ENABLED_GRANT_DEVICE_CODE = 5;
+     */
+    public static final int ENABLED_GRANT_DEVICE_CODE_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 EnabledGrant valueOf(int value) {
+      return forNumber(value);
+    }
+
+    public static EnabledGrant forNumber(int value) {
+      switch (value) {
+        case 0: return ENABLED_GRANT_UNSPECIFIED;
+        case 1: return ENABLED_GRANT_AUTHORIZATION_CODE;
+        case 2: return ENABLED_GRANT_IMPLICIT;
+        case 3: return ENABLED_GRANT_PASSWORD;
+        case 4: return ENABLED_GRANT_REFRESH_TOKEN;
+        case 5: return ENABLED_GRANT_DEVICE_CODE;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        EnabledGrant> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap() {
+            @java.lang.Override
+            public EnabledGrant findValueByNumber(int number) {
+              return EnabledGrant.forNumber(number);
+            }
+          };
+
+    public static com.google.protobuf.Internal.EnumVerifier 
+        internalGetVerifier() {
+      return EnabledGrantVerifier.INSTANCE;
+    }
+
+    private static final class EnabledGrantVerifier implements 
+         com.google.protobuf.Internal.EnumVerifier { 
+            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new EnabledGrantVerifier();
+            @java.lang.Override
+            public boolean isInRange(int number) {
+              return EnabledGrant.forNumber(number) != null;
+            }
+          };
+
+    private final int value;
+
+    private EnabledGrant(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:viam.app.v1.EnabledGrant)
+  }
+
   public interface RobotOrBuilder extends
       // @@protoc_insertion_point(interface_extends:viam.app.v1.Robot)
       com.google.protobuf.MessageLiteOrBuilder {
@@ -21415,7 +21852,7 @@ public interface LocationAuthOrBuilder extends
      *
      * string secret = 1 [json_name = "secret", deprecated = true];
      * @deprecated viam.app.v1.LocationAuth.secret is deprecated.
-     *     See app/v1/app.proto;l=503
+     *     See app/v1/app.proto;l=515
      * @return The secret.
      */
     @java.lang.Deprecated java.lang.String getSecret();
@@ -21426,7 +21863,7 @@ public interface LocationAuthOrBuilder extends
      *
      * string secret = 1 [json_name = "secret", deprecated = true];
      * @deprecated viam.app.v1.LocationAuth.secret is deprecated.
-     *     See app/v1/app.proto;l=503
+     *     See app/v1/app.proto;l=515
      * @return The bytes for secret.
      */
     @java.lang.Deprecated com.google.protobuf.ByteString
@@ -21500,7 +21937,7 @@ private LocationAuth() {
      *
      * string secret = 1 [json_name = "secret", deprecated = true];
      * @deprecated viam.app.v1.LocationAuth.secret is deprecated.
-     *     See app/v1/app.proto;l=503
+     *     See app/v1/app.proto;l=515
      * @return The secret.
      */
     @java.lang.Override
@@ -21514,7 +21951,7 @@ private LocationAuth() {
      *
      * string secret = 1 [json_name = "secret", deprecated = true];
      * @deprecated viam.app.v1.LocationAuth.secret is deprecated.
-     *     See app/v1/app.proto;l=503
+     *     See app/v1/app.proto;l=515
      * @return The bytes for secret.
      */
     @java.lang.Override
@@ -21529,7 +21966,7 @@ private LocationAuth() {
      *
      * string secret = 1 [json_name = "secret", deprecated = true];
      * @deprecated viam.app.v1.LocationAuth.secret is deprecated.
-     *     See app/v1/app.proto;l=503
+     *     See app/v1/app.proto;l=515
      * @param value The secret to set.
      */
     private void setSecret(
@@ -21545,7 +21982,7 @@ private void setSecret(
      *
      * string secret = 1 [json_name = "secret", deprecated = true];
      * @deprecated viam.app.v1.LocationAuth.secret is deprecated.
-     *     See app/v1/app.proto;l=503
+     *     See app/v1/app.proto;l=515
      */
     private void clearSecret() {
 
@@ -21558,7 +21995,7 @@ private void clearSecret() {
      *
      * string secret = 1 [json_name = "secret", deprecated = true];
      * @deprecated viam.app.v1.LocationAuth.secret is deprecated.
-     *     See app/v1/app.proto;l=503
+     *     See app/v1/app.proto;l=515
      * @param value The bytes for secret to set.
      */
     private void setSecretBytes(
@@ -21877,7 +22314,7 @@ private Builder() {
        *
        * string secret = 1 [json_name = "secret", deprecated = true];
        * @deprecated viam.app.v1.LocationAuth.secret is deprecated.
-       *     See app/v1/app.proto;l=503
+       *     See app/v1/app.proto;l=515
        * @return The secret.
        */
       @java.lang.Override
@@ -21891,7 +22328,7 @@ private Builder() {
        *
        * string secret = 1 [json_name = "secret", deprecated = true];
        * @deprecated viam.app.v1.LocationAuth.secret is deprecated.
-       *     See app/v1/app.proto;l=503
+       *     See app/v1/app.proto;l=515
        * @return The bytes for secret.
        */
       @java.lang.Override
@@ -21906,7 +22343,7 @@ private Builder() {
        *
        * string secret = 1 [json_name = "secret", deprecated = true];
        * @deprecated viam.app.v1.LocationAuth.secret is deprecated.
-       *     See app/v1/app.proto;l=503
+       *     See app/v1/app.proto;l=515
        * @param value The secret to set.
        * @return This builder for chaining.
        */
@@ -21923,7 +22360,7 @@ private Builder() {
        *
        * string secret = 1 [json_name = "secret", deprecated = true];
        * @deprecated viam.app.v1.LocationAuth.secret is deprecated.
-       *     See app/v1/app.proto;l=503
+       *     See app/v1/app.proto;l=515
        * @return This builder for chaining.
        */
       @java.lang.Deprecated public Builder clearSecret() {
@@ -21938,7 +22375,7 @@ private Builder() {
        *
        * string secret = 1 [json_name = "secret", deprecated = true];
        * @deprecated viam.app.v1.LocationAuth.secret is deprecated.
-       *     See app/v1/app.proto;l=503
+       *     See app/v1/app.proto;l=515
        * @param value The bytes for secret to set.
        * @return This builder for chaining.
        */
@@ -36484,7 +36921,7 @@ public interface GetRobotPartLogsRequestOrBuilder extends
      *
      * bool errors_only = 2 [json_name = "errorsOnly", deprecated = true];
      * @deprecated viam.app.v1.GetRobotPartLogsRequest.errors_only is deprecated.
-     *     See app/v1/app.proto;l=708
+     *     See app/v1/app.proto;l=720
      * @return The errorsOnly.
      */
     @java.lang.Deprecated boolean getErrorsOnly();
@@ -36686,7 +37123,7 @@ private void setIdBytes(
      *
      * bool errors_only = 2 [json_name = "errorsOnly", deprecated = true];
      * @deprecated viam.app.v1.GetRobotPartLogsRequest.errors_only is deprecated.
-     *     See app/v1/app.proto;l=708
+     *     See app/v1/app.proto;l=720
      * @return The errorsOnly.
      */
     @java.lang.Override
@@ -36700,7 +37137,7 @@ private void setIdBytes(
      *
      * bool errors_only = 2 [json_name = "errorsOnly", deprecated = true];
      * @deprecated viam.app.v1.GetRobotPartLogsRequest.errors_only is deprecated.
-     *     See app/v1/app.proto;l=708
+     *     See app/v1/app.proto;l=720
      * @param value The errorsOnly to set.
      */
     private void setErrorsOnly(boolean value) {
@@ -36714,7 +37151,7 @@ private void setErrorsOnly(boolean value) {
      *
      * bool errors_only = 2 [json_name = "errorsOnly", deprecated = true];
      * @deprecated viam.app.v1.GetRobotPartLogsRequest.errors_only is deprecated.
-     *     See app/v1/app.proto;l=708
+     *     See app/v1/app.proto;l=720
      */
     private void clearErrorsOnly() {
 
@@ -37294,7 +37731,7 @@ public Builder setIdBytes(
        *
        * bool errors_only = 2 [json_name = "errorsOnly", deprecated = true];
        * @deprecated viam.app.v1.GetRobotPartLogsRequest.errors_only is deprecated.
-       *     See app/v1/app.proto;l=708
+       *     See app/v1/app.proto;l=720
        * @return The errorsOnly.
        */
       @java.lang.Override
@@ -37308,7 +37745,7 @@ public Builder setIdBytes(
        *
        * bool errors_only = 2 [json_name = "errorsOnly", deprecated = true];
        * @deprecated viam.app.v1.GetRobotPartLogsRequest.errors_only is deprecated.
-       *     See app/v1/app.proto;l=708
+       *     See app/v1/app.proto;l=720
        * @param value The errorsOnly to set.
        * @return This builder for chaining.
        */
@@ -37324,7 +37761,7 @@ public Builder setIdBytes(
        *
        * bool errors_only = 2 [json_name = "errorsOnly", deprecated = true];
        * @deprecated viam.app.v1.GetRobotPartLogsRequest.errors_only is deprecated.
-       *     See app/v1/app.proto;l=708
+       *     See app/v1/app.proto;l=720
        * @return This builder for chaining.
        */
       @java.lang.Deprecated public Builder clearErrorsOnly() {
@@ -93464,6 +93901,7301 @@ public static com.google.protobuf.Parserstring org_id = 1 [json_name = "orgId"];
+     * @return The orgId.
+     */
+    java.lang.String getOrgId();
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The bytes for orgId.
+     */
+    com.google.protobuf.ByteString
+        getOrgIdBytes();
+
+    /**
+     * bytes logo = 2 [json_name = "logo"];
+     * @return The logo.
+     */
+    com.google.protobuf.ByteString getLogo();
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.OrganizationSetLogoRequest}
+   */
+  public  static final class OrganizationSetLogoRequest extends
+      com.google.protobuf.GeneratedMessageLite<
+          OrganizationSetLogoRequest, OrganizationSetLogoRequest.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.OrganizationSetLogoRequest)
+      OrganizationSetLogoRequestOrBuilder {
+    private OrganizationSetLogoRequest() {
+      orgId_ = "";
+      logo_ = com.google.protobuf.ByteString.EMPTY;
+    }
+    public static final int ORG_ID_FIELD_NUMBER = 1;
+    private java.lang.String orgId_;
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The orgId.
+     */
+    @java.lang.Override
+    public java.lang.String getOrgId() {
+      return orgId_;
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The bytes for orgId.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getOrgIdBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(orgId_);
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @param value The orgId to set.
+     */
+    private void setOrgId(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      orgId_ = value;
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     */
+    private void clearOrgId() {
+
+      orgId_ = getDefaultInstance().getOrgId();
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @param value The bytes for orgId to set.
+     */
+    private void setOrgIdBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      orgId_ = value.toStringUtf8();
+
+    }
+
+    public static final int LOGO_FIELD_NUMBER = 2;
+    private com.google.protobuf.ByteString logo_;
+    /**
+     * bytes logo = 2 [json_name = "logo"];
+     * @return The logo.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString getLogo() {
+      return logo_;
+    }
+    /**
+     * bytes logo = 2 [json_name = "logo"];
+     * @param value The logo to set.
+     */
+    private void setLogo(com.google.protobuf.ByteString value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      logo_ = value;
+    }
+    /**
+     * bytes logo = 2 [json_name = "logo"];
+     */
+    private void clearLogo() {
+
+      logo_ = getDefaultInstance().getLogo();
+    }
+
+    public static viam.app.v1.App.OrganizationSetLogoRequest parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.OrganizationSetLogoRequest 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.v1.App.OrganizationSetLogoRequest parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.OrganizationSetLogoRequest 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.v1.App.OrganizationSetLogoRequest parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.OrganizationSetLogoRequest 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.v1.App.OrganizationSetLogoRequest parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.OrganizationSetLogoRequest 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.v1.App.OrganizationSetLogoRequest parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.OrganizationSetLogoRequest parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.OrganizationSetLogoRequest parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.OrganizationSetLogoRequest 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.v1.App.OrganizationSetLogoRequest prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.OrganizationSetLogoRequest}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.OrganizationSetLogoRequest, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.OrganizationSetLogoRequest)
+        viam.app.v1.App.OrganizationSetLogoRequestOrBuilder {
+      // Construct using viam.app.v1.App.OrganizationSetLogoRequest.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return The orgId.
+       */
+      @java.lang.Override
+      public java.lang.String getOrgId() {
+        return instance.getOrgId();
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return The bytes for orgId.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getOrgIdBytes() {
+        return instance.getOrgIdBytes();
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @param value The orgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgId(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setOrgId(value);
+        return this;
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return This builder for chaining.
+       */
+      public Builder clearOrgId() {
+        copyOnWrite();
+        instance.clearOrgId();
+        return this;
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @param value The bytes for orgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgIdBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setOrgIdBytes(value);
+        return this;
+      }
+
+      /**
+       * bytes logo = 2 [json_name = "logo"];
+       * @return The logo.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString getLogo() {
+        return instance.getLogo();
+      }
+      /**
+       * bytes logo = 2 [json_name = "logo"];
+       * @param value The logo to set.
+       * @return This builder for chaining.
+       */
+      public Builder setLogo(com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setLogo(value);
+        return this;
+      }
+      /**
+       * bytes logo = 2 [json_name = "logo"];
+       * @return This builder for chaining.
+       */
+      public Builder clearLogo() {
+        copyOnWrite();
+        instance.clearLogo();
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.OrganizationSetLogoRequest)
+    }
+    @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.v1.App.OrganizationSetLogoRequest();
+        }
+        case NEW_BUILDER: {
+          return new Builder();
+        }
+        case BUILD_MESSAGE_INFO: {
+            java.lang.Object[] objects = new java.lang.Object[] {
+              "orgId_",
+              "logo_",
+            };
+            java.lang.String info =
+                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u0208\u0002\n" +
+                "";
+            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.v1.App.OrganizationSetLogoRequest.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.v1.OrganizationSetLogoRequest)
+    private static final viam.app.v1.App.OrganizationSetLogoRequest DEFAULT_INSTANCE;
+    static {
+      OrganizationSetLogoRequest defaultInstance = new OrganizationSetLogoRequest();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        OrganizationSetLogoRequest.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.OrganizationSetLogoRequest 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 OrganizationSetLogoResponseOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:viam.app.v1.OrganizationSetLogoResponse)
+      com.google.protobuf.MessageLiteOrBuilder {
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.OrganizationSetLogoResponse}
+   */
+  public  static final class OrganizationSetLogoResponse extends
+      com.google.protobuf.GeneratedMessageLite<
+          OrganizationSetLogoResponse, OrganizationSetLogoResponse.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.OrganizationSetLogoResponse)
+      OrganizationSetLogoResponseOrBuilder {
+    private OrganizationSetLogoResponse() {
+    }
+    public static viam.app.v1.App.OrganizationSetLogoResponse parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.OrganizationSetLogoResponse 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.v1.App.OrganizationSetLogoResponse parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.OrganizationSetLogoResponse 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.v1.App.OrganizationSetLogoResponse parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.OrganizationSetLogoResponse 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.v1.App.OrganizationSetLogoResponse parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.OrganizationSetLogoResponse 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.v1.App.OrganizationSetLogoResponse parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.OrganizationSetLogoResponse parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.OrganizationSetLogoResponse parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.OrganizationSetLogoResponse 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.v1.App.OrganizationSetLogoResponse prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.OrganizationSetLogoResponse}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.OrganizationSetLogoResponse, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.OrganizationSetLogoResponse)
+        viam.app.v1.App.OrganizationSetLogoResponseOrBuilder {
+      // Construct using viam.app.v1.App.OrganizationSetLogoResponse.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.OrganizationSetLogoResponse)
+    }
+    @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.v1.App.OrganizationSetLogoResponse();
+        }
+        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.v1.App.OrganizationSetLogoResponse.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.v1.OrganizationSetLogoResponse)
+    private static final viam.app.v1.App.OrganizationSetLogoResponse DEFAULT_INSTANCE;
+    static {
+      OrganizationSetLogoResponse defaultInstance = new OrganizationSetLogoResponse();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        OrganizationSetLogoResponse.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.OrganizationSetLogoResponse 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 OrganizationGetLogoRequestOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:viam.app.v1.OrganizationGetLogoRequest)
+      com.google.protobuf.MessageLiteOrBuilder {
+
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The orgId.
+     */
+    java.lang.String getOrgId();
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The bytes for orgId.
+     */
+    com.google.protobuf.ByteString
+        getOrgIdBytes();
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.OrganizationGetLogoRequest}
+   */
+  public  static final class OrganizationGetLogoRequest extends
+      com.google.protobuf.GeneratedMessageLite<
+          OrganizationGetLogoRequest, OrganizationGetLogoRequest.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.OrganizationGetLogoRequest)
+      OrganizationGetLogoRequestOrBuilder {
+    private OrganizationGetLogoRequest() {
+      orgId_ = "";
+    }
+    public static final int ORG_ID_FIELD_NUMBER = 1;
+    private java.lang.String orgId_;
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The orgId.
+     */
+    @java.lang.Override
+    public java.lang.String getOrgId() {
+      return orgId_;
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The bytes for orgId.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getOrgIdBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(orgId_);
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @param value The orgId to set.
+     */
+    private void setOrgId(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      orgId_ = value;
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     */
+    private void clearOrgId() {
+
+      orgId_ = getDefaultInstance().getOrgId();
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @param value The bytes for orgId to set.
+     */
+    private void setOrgIdBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      orgId_ = value.toStringUtf8();
+
+    }
+
+    public static viam.app.v1.App.OrganizationGetLogoRequest parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.OrganizationGetLogoRequest 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.v1.App.OrganizationGetLogoRequest parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.OrganizationGetLogoRequest 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.v1.App.OrganizationGetLogoRequest parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.OrganizationGetLogoRequest 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.v1.App.OrganizationGetLogoRequest parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.OrganizationGetLogoRequest 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.v1.App.OrganizationGetLogoRequest parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.OrganizationGetLogoRequest parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.OrganizationGetLogoRequest parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.OrganizationGetLogoRequest 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.v1.App.OrganizationGetLogoRequest prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.OrganizationGetLogoRequest}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.OrganizationGetLogoRequest, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.OrganizationGetLogoRequest)
+        viam.app.v1.App.OrganizationGetLogoRequestOrBuilder {
+      // Construct using viam.app.v1.App.OrganizationGetLogoRequest.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return The orgId.
+       */
+      @java.lang.Override
+      public java.lang.String getOrgId() {
+        return instance.getOrgId();
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return The bytes for orgId.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getOrgIdBytes() {
+        return instance.getOrgIdBytes();
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @param value The orgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgId(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setOrgId(value);
+        return this;
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return This builder for chaining.
+       */
+      public Builder clearOrgId() {
+        copyOnWrite();
+        instance.clearOrgId();
+        return this;
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @param value The bytes for orgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgIdBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setOrgIdBytes(value);
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.OrganizationGetLogoRequest)
+    }
+    @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.v1.App.OrganizationGetLogoRequest();
+        }
+        case NEW_BUILDER: {
+          return new Builder();
+        }
+        case BUILD_MESSAGE_INFO: {
+            java.lang.Object[] objects = new java.lang.Object[] {
+              "orgId_",
+            };
+            java.lang.String info =
+                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\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.v1.App.OrganizationGetLogoRequest.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.v1.OrganizationGetLogoRequest)
+    private static final viam.app.v1.App.OrganizationGetLogoRequest DEFAULT_INSTANCE;
+    static {
+      OrganizationGetLogoRequest defaultInstance = new OrganizationGetLogoRequest();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        OrganizationGetLogoRequest.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.OrganizationGetLogoRequest 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 OrganizationGetLogoResponseOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:viam.app.v1.OrganizationGetLogoResponse)
+      com.google.protobuf.MessageLiteOrBuilder {
+
+    /**
+     * string url = 1 [json_name = "url"];
+     * @return The url.
+     */
+    java.lang.String getUrl();
+    /**
+     * string url = 1 [json_name = "url"];
+     * @return The bytes for url.
+     */
+    com.google.protobuf.ByteString
+        getUrlBytes();
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.OrganizationGetLogoResponse}
+   */
+  public  static final class OrganizationGetLogoResponse extends
+      com.google.protobuf.GeneratedMessageLite<
+          OrganizationGetLogoResponse, OrganizationGetLogoResponse.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.OrganizationGetLogoResponse)
+      OrganizationGetLogoResponseOrBuilder {
+    private OrganizationGetLogoResponse() {
+      url_ = "";
+    }
+    public static final int URL_FIELD_NUMBER = 1;
+    private java.lang.String url_;
+    /**
+     * string url = 1 [json_name = "url"];
+     * @return The url.
+     */
+    @java.lang.Override
+    public java.lang.String getUrl() {
+      return url_;
+    }
+    /**
+     * string url = 1 [json_name = "url"];
+     * @return The bytes for url.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getUrlBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(url_);
+    }
+    /**
+     * string url = 1 [json_name = "url"];
+     * @param value The url to set.
+     */
+    private void setUrl(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      url_ = value;
+    }
+    /**
+     * string url = 1 [json_name = "url"];
+     */
+    private void clearUrl() {
+
+      url_ = getDefaultInstance().getUrl();
+    }
+    /**
+     * string url = 1 [json_name = "url"];
+     * @param value The bytes for url to set.
+     */
+    private void setUrlBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      url_ = value.toStringUtf8();
+
+    }
+
+    public static viam.app.v1.App.OrganizationGetLogoResponse parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.OrganizationGetLogoResponse 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.v1.App.OrganizationGetLogoResponse parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.OrganizationGetLogoResponse 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.v1.App.OrganizationGetLogoResponse parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.OrganizationGetLogoResponse 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.v1.App.OrganizationGetLogoResponse parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.OrganizationGetLogoResponse 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.v1.App.OrganizationGetLogoResponse parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.OrganizationGetLogoResponse parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.OrganizationGetLogoResponse parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.OrganizationGetLogoResponse 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.v1.App.OrganizationGetLogoResponse prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.OrganizationGetLogoResponse}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.OrganizationGetLogoResponse, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.OrganizationGetLogoResponse)
+        viam.app.v1.App.OrganizationGetLogoResponseOrBuilder {
+      // Construct using viam.app.v1.App.OrganizationGetLogoResponse.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      /**
+       * string url = 1 [json_name = "url"];
+       * @return The url.
+       */
+      @java.lang.Override
+      public java.lang.String getUrl() {
+        return instance.getUrl();
+      }
+      /**
+       * string url = 1 [json_name = "url"];
+       * @return The bytes for url.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getUrlBytes() {
+        return instance.getUrlBytes();
+      }
+      /**
+       * string url = 1 [json_name = "url"];
+       * @param value The url to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUrl(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setUrl(value);
+        return this;
+      }
+      /**
+       * string url = 1 [json_name = "url"];
+       * @return This builder for chaining.
+       */
+      public Builder clearUrl() {
+        copyOnWrite();
+        instance.clearUrl();
+        return this;
+      }
+      /**
+       * string url = 1 [json_name = "url"];
+       * @param value The bytes for url to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUrlBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setUrlBytes(value);
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.OrganizationGetLogoResponse)
+    }
+    @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.v1.App.OrganizationGetLogoResponse();
+        }
+        case NEW_BUILDER: {
+          return new Builder();
+        }
+        case BUILD_MESSAGE_INFO: {
+            java.lang.Object[] objects = new java.lang.Object[] {
+              "url_",
+            };
+            java.lang.String info =
+                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\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.v1.App.OrganizationGetLogoResponse.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.v1.OrganizationGetLogoResponse)
+    private static final viam.app.v1.App.OrganizationGetLogoResponse DEFAULT_INSTANCE;
+    static {
+      OrganizationGetLogoResponse defaultInstance = new OrganizationGetLogoResponse();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        OrganizationGetLogoResponse.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.OrganizationGetLogoResponse 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 EnableAuthServiceRequestOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:viam.app.v1.EnableAuthServiceRequest)
+      com.google.protobuf.MessageLiteOrBuilder {
+
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The orgId.
+     */
+    java.lang.String getOrgId();
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The bytes for orgId.
+     */
+    com.google.protobuf.ByteString
+        getOrgIdBytes();
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.EnableAuthServiceRequest}
+   */
+  public  static final class EnableAuthServiceRequest extends
+      com.google.protobuf.GeneratedMessageLite<
+          EnableAuthServiceRequest, EnableAuthServiceRequest.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.EnableAuthServiceRequest)
+      EnableAuthServiceRequestOrBuilder {
+    private EnableAuthServiceRequest() {
+      orgId_ = "";
+    }
+    public static final int ORG_ID_FIELD_NUMBER = 1;
+    private java.lang.String orgId_;
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The orgId.
+     */
+    @java.lang.Override
+    public java.lang.String getOrgId() {
+      return orgId_;
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The bytes for orgId.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getOrgIdBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(orgId_);
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @param value The orgId to set.
+     */
+    private void setOrgId(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      orgId_ = value;
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     */
+    private void clearOrgId() {
+
+      orgId_ = getDefaultInstance().getOrgId();
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @param value The bytes for orgId to set.
+     */
+    private void setOrgIdBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      orgId_ = value.toStringUtf8();
+
+    }
+
+    public static viam.app.v1.App.EnableAuthServiceRequest parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.EnableAuthServiceRequest 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.v1.App.EnableAuthServiceRequest parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.EnableAuthServiceRequest 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.v1.App.EnableAuthServiceRequest parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.EnableAuthServiceRequest 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.v1.App.EnableAuthServiceRequest parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.EnableAuthServiceRequest 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.v1.App.EnableAuthServiceRequest parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.EnableAuthServiceRequest parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.EnableAuthServiceRequest parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.EnableAuthServiceRequest 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.v1.App.EnableAuthServiceRequest prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.EnableAuthServiceRequest}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.EnableAuthServiceRequest, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.EnableAuthServiceRequest)
+        viam.app.v1.App.EnableAuthServiceRequestOrBuilder {
+      // Construct using viam.app.v1.App.EnableAuthServiceRequest.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return The orgId.
+       */
+      @java.lang.Override
+      public java.lang.String getOrgId() {
+        return instance.getOrgId();
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return The bytes for orgId.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getOrgIdBytes() {
+        return instance.getOrgIdBytes();
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @param value The orgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgId(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setOrgId(value);
+        return this;
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return This builder for chaining.
+       */
+      public Builder clearOrgId() {
+        copyOnWrite();
+        instance.clearOrgId();
+        return this;
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @param value The bytes for orgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgIdBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setOrgIdBytes(value);
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.EnableAuthServiceRequest)
+    }
+    @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.v1.App.EnableAuthServiceRequest();
+        }
+        case NEW_BUILDER: {
+          return new Builder();
+        }
+        case BUILD_MESSAGE_INFO: {
+            java.lang.Object[] objects = new java.lang.Object[] {
+              "orgId_",
+            };
+            java.lang.String info =
+                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\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.v1.App.EnableAuthServiceRequest.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.v1.EnableAuthServiceRequest)
+    private static final viam.app.v1.App.EnableAuthServiceRequest DEFAULT_INSTANCE;
+    static {
+      EnableAuthServiceRequest defaultInstance = new EnableAuthServiceRequest();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        EnableAuthServiceRequest.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.EnableAuthServiceRequest 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 EnableAuthServiceResponseOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:viam.app.v1.EnableAuthServiceResponse)
+      com.google.protobuf.MessageLiteOrBuilder {
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.EnableAuthServiceResponse}
+   */
+  public  static final class EnableAuthServiceResponse extends
+      com.google.protobuf.GeneratedMessageLite<
+          EnableAuthServiceResponse, EnableAuthServiceResponse.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.EnableAuthServiceResponse)
+      EnableAuthServiceResponseOrBuilder {
+    private EnableAuthServiceResponse() {
+    }
+    public static viam.app.v1.App.EnableAuthServiceResponse parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.EnableAuthServiceResponse 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.v1.App.EnableAuthServiceResponse parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.EnableAuthServiceResponse 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.v1.App.EnableAuthServiceResponse parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.EnableAuthServiceResponse 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.v1.App.EnableAuthServiceResponse parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.EnableAuthServiceResponse 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.v1.App.EnableAuthServiceResponse parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.EnableAuthServiceResponse parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.EnableAuthServiceResponse parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.EnableAuthServiceResponse 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.v1.App.EnableAuthServiceResponse prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.EnableAuthServiceResponse}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.EnableAuthServiceResponse, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.EnableAuthServiceResponse)
+        viam.app.v1.App.EnableAuthServiceResponseOrBuilder {
+      // Construct using viam.app.v1.App.EnableAuthServiceResponse.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.EnableAuthServiceResponse)
+    }
+    @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.v1.App.EnableAuthServiceResponse();
+        }
+        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.v1.App.EnableAuthServiceResponse.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.v1.EnableAuthServiceResponse)
+    private static final viam.app.v1.App.EnableAuthServiceResponse DEFAULT_INSTANCE;
+    static {
+      EnableAuthServiceResponse defaultInstance = new EnableAuthServiceResponse();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        EnableAuthServiceResponse.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.EnableAuthServiceResponse 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 DisableAuthServiceRequestOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:viam.app.v1.DisableAuthServiceRequest)
+      com.google.protobuf.MessageLiteOrBuilder {
+
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The orgId.
+     */
+    java.lang.String getOrgId();
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The bytes for orgId.
+     */
+    com.google.protobuf.ByteString
+        getOrgIdBytes();
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.DisableAuthServiceRequest}
+   */
+  public  static final class DisableAuthServiceRequest extends
+      com.google.protobuf.GeneratedMessageLite<
+          DisableAuthServiceRequest, DisableAuthServiceRequest.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.DisableAuthServiceRequest)
+      DisableAuthServiceRequestOrBuilder {
+    private DisableAuthServiceRequest() {
+      orgId_ = "";
+    }
+    public static final int ORG_ID_FIELD_NUMBER = 1;
+    private java.lang.String orgId_;
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The orgId.
+     */
+    @java.lang.Override
+    public java.lang.String getOrgId() {
+      return orgId_;
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The bytes for orgId.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getOrgIdBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(orgId_);
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @param value The orgId to set.
+     */
+    private void setOrgId(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      orgId_ = value;
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     */
+    private void clearOrgId() {
+
+      orgId_ = getDefaultInstance().getOrgId();
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @param value The bytes for orgId to set.
+     */
+    private void setOrgIdBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      orgId_ = value.toStringUtf8();
+
+    }
+
+    public static viam.app.v1.App.DisableAuthServiceRequest parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.DisableAuthServiceRequest 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.v1.App.DisableAuthServiceRequest parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.DisableAuthServiceRequest 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.v1.App.DisableAuthServiceRequest parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.DisableAuthServiceRequest 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.v1.App.DisableAuthServiceRequest parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.DisableAuthServiceRequest 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.v1.App.DisableAuthServiceRequest parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.DisableAuthServiceRequest parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.DisableAuthServiceRequest parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.DisableAuthServiceRequest 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.v1.App.DisableAuthServiceRequest prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.DisableAuthServiceRequest}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.DisableAuthServiceRequest, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.DisableAuthServiceRequest)
+        viam.app.v1.App.DisableAuthServiceRequestOrBuilder {
+      // Construct using viam.app.v1.App.DisableAuthServiceRequest.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return The orgId.
+       */
+      @java.lang.Override
+      public java.lang.String getOrgId() {
+        return instance.getOrgId();
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return The bytes for orgId.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getOrgIdBytes() {
+        return instance.getOrgIdBytes();
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @param value The orgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgId(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setOrgId(value);
+        return this;
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return This builder for chaining.
+       */
+      public Builder clearOrgId() {
+        copyOnWrite();
+        instance.clearOrgId();
+        return this;
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @param value The bytes for orgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgIdBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setOrgIdBytes(value);
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.DisableAuthServiceRequest)
+    }
+    @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.v1.App.DisableAuthServiceRequest();
+        }
+        case NEW_BUILDER: {
+          return new Builder();
+        }
+        case BUILD_MESSAGE_INFO: {
+            java.lang.Object[] objects = new java.lang.Object[] {
+              "orgId_",
+            };
+            java.lang.String info =
+                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\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.v1.App.DisableAuthServiceRequest.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.v1.DisableAuthServiceRequest)
+    private static final viam.app.v1.App.DisableAuthServiceRequest DEFAULT_INSTANCE;
+    static {
+      DisableAuthServiceRequest defaultInstance = new DisableAuthServiceRequest();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        DisableAuthServiceRequest.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.DisableAuthServiceRequest 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 DisableAuthServiceResponseOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:viam.app.v1.DisableAuthServiceResponse)
+      com.google.protobuf.MessageLiteOrBuilder {
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.DisableAuthServiceResponse}
+   */
+  public  static final class DisableAuthServiceResponse extends
+      com.google.protobuf.GeneratedMessageLite<
+          DisableAuthServiceResponse, DisableAuthServiceResponse.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.DisableAuthServiceResponse)
+      DisableAuthServiceResponseOrBuilder {
+    private DisableAuthServiceResponse() {
+    }
+    public static viam.app.v1.App.DisableAuthServiceResponse parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.DisableAuthServiceResponse 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.v1.App.DisableAuthServiceResponse parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.DisableAuthServiceResponse 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.v1.App.DisableAuthServiceResponse parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.DisableAuthServiceResponse 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.v1.App.DisableAuthServiceResponse parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.DisableAuthServiceResponse 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.v1.App.DisableAuthServiceResponse parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.DisableAuthServiceResponse parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.DisableAuthServiceResponse parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.DisableAuthServiceResponse 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.v1.App.DisableAuthServiceResponse prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.DisableAuthServiceResponse}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.DisableAuthServiceResponse, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.DisableAuthServiceResponse)
+        viam.app.v1.App.DisableAuthServiceResponseOrBuilder {
+      // Construct using viam.app.v1.App.DisableAuthServiceResponse.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.DisableAuthServiceResponse)
+    }
+    @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.v1.App.DisableAuthServiceResponse();
+        }
+        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.v1.App.DisableAuthServiceResponse.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.v1.DisableAuthServiceResponse)
+    private static final viam.app.v1.App.DisableAuthServiceResponse DEFAULT_INSTANCE;
+    static {
+      DisableAuthServiceResponse defaultInstance = new DisableAuthServiceResponse();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        DisableAuthServiceResponse.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.DisableAuthServiceResponse 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 CreateOAuthAppRequestOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:viam.app.v1.CreateOAuthAppRequest)
+      com.google.protobuf.MessageLiteOrBuilder {
+
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The orgId.
+     */
+    java.lang.String getOrgId();
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The bytes for orgId.
+     */
+    com.google.protobuf.ByteString
+        getOrgIdBytes();
+
+    /**
+     * string client_name = 2 [json_name = "clientName"];
+     * @return The clientName.
+     */
+    java.lang.String getClientName();
+    /**
+     * string client_name = 2 [json_name = "clientName"];
+     * @return The bytes for clientName.
+     */
+    com.google.protobuf.ByteString
+        getClientNameBytes();
+
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+     * @return Whether the oauthConfig field is set.
+     */
+    boolean hasOauthConfig();
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+     * @return The oauthConfig.
+     */
+    viam.app.v1.App.OAuthConfig getOauthConfig();
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.CreateOAuthAppRequest}
+   */
+  public  static final class CreateOAuthAppRequest extends
+      com.google.protobuf.GeneratedMessageLite<
+          CreateOAuthAppRequest, CreateOAuthAppRequest.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.CreateOAuthAppRequest)
+      CreateOAuthAppRequestOrBuilder {
+    private CreateOAuthAppRequest() {
+      orgId_ = "";
+      clientName_ = "";
+    }
+    private int bitField0_;
+    public static final int ORG_ID_FIELD_NUMBER = 1;
+    private java.lang.String orgId_;
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The orgId.
+     */
+    @java.lang.Override
+    public java.lang.String getOrgId() {
+      return orgId_;
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The bytes for orgId.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getOrgIdBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(orgId_);
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @param value The orgId to set.
+     */
+    private void setOrgId(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      orgId_ = value;
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     */
+    private void clearOrgId() {
+
+      orgId_ = getDefaultInstance().getOrgId();
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @param value The bytes for orgId to set.
+     */
+    private void setOrgIdBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      orgId_ = value.toStringUtf8();
+
+    }
+
+    public static final int CLIENT_NAME_FIELD_NUMBER = 2;
+    private java.lang.String clientName_;
+    /**
+     * string client_name = 2 [json_name = "clientName"];
+     * @return The clientName.
+     */
+    @java.lang.Override
+    public java.lang.String getClientName() {
+      return clientName_;
+    }
+    /**
+     * string client_name = 2 [json_name = "clientName"];
+     * @return The bytes for clientName.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getClientNameBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(clientName_);
+    }
+    /**
+     * string client_name = 2 [json_name = "clientName"];
+     * @param value The clientName to set.
+     */
+    private void setClientName(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      clientName_ = value;
+    }
+    /**
+     * string client_name = 2 [json_name = "clientName"];
+     */
+    private void clearClientName() {
+
+      clientName_ = getDefaultInstance().getClientName();
+    }
+    /**
+     * string client_name = 2 [json_name = "clientName"];
+     * @param value The bytes for clientName to set.
+     */
+    private void setClientNameBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      clientName_ = value.toStringUtf8();
+
+    }
+
+    public static final int OAUTH_CONFIG_FIELD_NUMBER = 3;
+    private viam.app.v1.App.OAuthConfig oauthConfig_;
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+     */
+    @java.lang.Override
+    public boolean hasOauthConfig() {
+      return ((bitField0_ & 0x00000001) != 0);
+    }
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+     */
+    @java.lang.Override
+    public viam.app.v1.App.OAuthConfig getOauthConfig() {
+      return oauthConfig_ == null ? viam.app.v1.App.OAuthConfig.getDefaultInstance() : oauthConfig_;
+    }
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+     */
+    private void setOauthConfig(viam.app.v1.App.OAuthConfig value) {
+      value.getClass();
+  oauthConfig_ = value;
+      bitField0_ |= 0x00000001;
+      }
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+     */
+    @java.lang.SuppressWarnings({"ReferenceEquality"})
+    private void mergeOauthConfig(viam.app.v1.App.OAuthConfig value) {
+      value.getClass();
+  if (oauthConfig_ != null &&
+          oauthConfig_ != viam.app.v1.App.OAuthConfig.getDefaultInstance()) {
+        oauthConfig_ =
+          viam.app.v1.App.OAuthConfig.newBuilder(oauthConfig_).mergeFrom(value).buildPartial();
+      } else {
+        oauthConfig_ = value;
+      }
+      bitField0_ |= 0x00000001;
+    }
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+     */
+    private void clearOauthConfig() {  oauthConfig_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+    }
+
+    public static viam.app.v1.App.CreateOAuthAppRequest parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.CreateOAuthAppRequest 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.v1.App.CreateOAuthAppRequest parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.CreateOAuthAppRequest 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.v1.App.CreateOAuthAppRequest parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.CreateOAuthAppRequest 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.v1.App.CreateOAuthAppRequest parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.CreateOAuthAppRequest 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.v1.App.CreateOAuthAppRequest parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.CreateOAuthAppRequest parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.CreateOAuthAppRequest parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.CreateOAuthAppRequest 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.v1.App.CreateOAuthAppRequest prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.CreateOAuthAppRequest}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.CreateOAuthAppRequest, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.CreateOAuthAppRequest)
+        viam.app.v1.App.CreateOAuthAppRequestOrBuilder {
+      // Construct using viam.app.v1.App.CreateOAuthAppRequest.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return The orgId.
+       */
+      @java.lang.Override
+      public java.lang.String getOrgId() {
+        return instance.getOrgId();
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return The bytes for orgId.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getOrgIdBytes() {
+        return instance.getOrgIdBytes();
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @param value The orgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgId(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setOrgId(value);
+        return this;
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return This builder for chaining.
+       */
+      public Builder clearOrgId() {
+        copyOnWrite();
+        instance.clearOrgId();
+        return this;
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @param value The bytes for orgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgIdBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setOrgIdBytes(value);
+        return this;
+      }
+
+      /**
+       * string client_name = 2 [json_name = "clientName"];
+       * @return The clientName.
+       */
+      @java.lang.Override
+      public java.lang.String getClientName() {
+        return instance.getClientName();
+      }
+      /**
+       * string client_name = 2 [json_name = "clientName"];
+       * @return The bytes for clientName.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getClientNameBytes() {
+        return instance.getClientNameBytes();
+      }
+      /**
+       * string client_name = 2 [json_name = "clientName"];
+       * @param value The clientName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientName(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setClientName(value);
+        return this;
+      }
+      /**
+       * string client_name = 2 [json_name = "clientName"];
+       * @return This builder for chaining.
+       */
+      public Builder clearClientName() {
+        copyOnWrite();
+        instance.clearClientName();
+        return this;
+      }
+      /**
+       * string client_name = 2 [json_name = "clientName"];
+       * @param value The bytes for clientName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientNameBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setClientNameBytes(value);
+        return this;
+      }
+
+      /**
+       * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+       */
+      @java.lang.Override
+      public boolean hasOauthConfig() {
+        return instance.hasOauthConfig();
+      }
+      /**
+       * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+       */
+      @java.lang.Override
+      public viam.app.v1.App.OAuthConfig getOauthConfig() {
+        return instance.getOauthConfig();
+      }
+      /**
+       * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+       */
+      public Builder setOauthConfig(viam.app.v1.App.OAuthConfig value) {
+        copyOnWrite();
+        instance.setOauthConfig(value);
+        return this;
+        }
+      /**
+       * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+       */
+      public Builder setOauthConfig(
+          viam.app.v1.App.OAuthConfig.Builder builderForValue) {
+        copyOnWrite();
+        instance.setOauthConfig(builderForValue.build());
+        return this;
+      }
+      /**
+       * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+       */
+      public Builder mergeOauthConfig(viam.app.v1.App.OAuthConfig value) {
+        copyOnWrite();
+        instance.mergeOauthConfig(value);
+        return this;
+      }
+      /**
+       * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+       */
+      public Builder clearOauthConfig() {  copyOnWrite();
+        instance.clearOauthConfig();
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.CreateOAuthAppRequest)
+    }
+    @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.v1.App.CreateOAuthAppRequest();
+        }
+        case NEW_BUILDER: {
+          return new Builder();
+        }
+        case BUILD_MESSAGE_INFO: {
+            java.lang.Object[] objects = new java.lang.Object[] {
+              "bitField0_",
+              "orgId_",
+              "clientName_",
+              "oauthConfig_",
+            };
+            java.lang.String info =
+                "\u0000\u0003\u0000\u0001\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u0208\u0002\u0208" +
+                "\u0003\u1009\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.v1.App.CreateOAuthAppRequest.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.v1.CreateOAuthAppRequest)
+    private static final viam.app.v1.App.CreateOAuthAppRequest DEFAULT_INSTANCE;
+    static {
+      CreateOAuthAppRequest defaultInstance = new CreateOAuthAppRequest();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        CreateOAuthAppRequest.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.CreateOAuthAppRequest 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 CreateOAuthAppResponseOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:viam.app.v1.CreateOAuthAppResponse)
+      com.google.protobuf.MessageLiteOrBuilder {
+
+    /**
+     * string client_id = 1 [json_name = "clientId"];
+     * @return The clientId.
+     */
+    java.lang.String getClientId();
+    /**
+     * string client_id = 1 [json_name = "clientId"];
+     * @return The bytes for clientId.
+     */
+    com.google.protobuf.ByteString
+        getClientIdBytes();
+
+    /**
+     * string client_secret = 2 [json_name = "clientSecret"];
+     * @return The clientSecret.
+     */
+    java.lang.String getClientSecret();
+    /**
+     * string client_secret = 2 [json_name = "clientSecret"];
+     * @return The bytes for clientSecret.
+     */
+    com.google.protobuf.ByteString
+        getClientSecretBytes();
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.CreateOAuthAppResponse}
+   */
+  public  static final class CreateOAuthAppResponse extends
+      com.google.protobuf.GeneratedMessageLite<
+          CreateOAuthAppResponse, CreateOAuthAppResponse.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.CreateOAuthAppResponse)
+      CreateOAuthAppResponseOrBuilder {
+    private CreateOAuthAppResponse() {
+      clientId_ = "";
+      clientSecret_ = "";
+    }
+    public static final int CLIENT_ID_FIELD_NUMBER = 1;
+    private java.lang.String clientId_;
+    /**
+     * string client_id = 1 [json_name = "clientId"];
+     * @return The clientId.
+     */
+    @java.lang.Override
+    public java.lang.String getClientId() {
+      return clientId_;
+    }
+    /**
+     * string client_id = 1 [json_name = "clientId"];
+     * @return The bytes for clientId.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getClientIdBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(clientId_);
+    }
+    /**
+     * string client_id = 1 [json_name = "clientId"];
+     * @param value The clientId to set.
+     */
+    private void setClientId(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      clientId_ = value;
+    }
+    /**
+     * string client_id = 1 [json_name = "clientId"];
+     */
+    private void clearClientId() {
+
+      clientId_ = getDefaultInstance().getClientId();
+    }
+    /**
+     * string client_id = 1 [json_name = "clientId"];
+     * @param value The bytes for clientId to set.
+     */
+    private void setClientIdBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      clientId_ = value.toStringUtf8();
+
+    }
+
+    public static final int CLIENT_SECRET_FIELD_NUMBER = 2;
+    private java.lang.String clientSecret_;
+    /**
+     * string client_secret = 2 [json_name = "clientSecret"];
+     * @return The clientSecret.
+     */
+    @java.lang.Override
+    public java.lang.String getClientSecret() {
+      return clientSecret_;
+    }
+    /**
+     * string client_secret = 2 [json_name = "clientSecret"];
+     * @return The bytes for clientSecret.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getClientSecretBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(clientSecret_);
+    }
+    /**
+     * string client_secret = 2 [json_name = "clientSecret"];
+     * @param value The clientSecret to set.
+     */
+    private void setClientSecret(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      clientSecret_ = value;
+    }
+    /**
+     * string client_secret = 2 [json_name = "clientSecret"];
+     */
+    private void clearClientSecret() {
+
+      clientSecret_ = getDefaultInstance().getClientSecret();
+    }
+    /**
+     * string client_secret = 2 [json_name = "clientSecret"];
+     * @param value The bytes for clientSecret to set.
+     */
+    private void setClientSecretBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      clientSecret_ = value.toStringUtf8();
+
+    }
+
+    public static viam.app.v1.App.CreateOAuthAppResponse parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.CreateOAuthAppResponse 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.v1.App.CreateOAuthAppResponse parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.CreateOAuthAppResponse 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.v1.App.CreateOAuthAppResponse parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.CreateOAuthAppResponse 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.v1.App.CreateOAuthAppResponse parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.CreateOAuthAppResponse 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.v1.App.CreateOAuthAppResponse parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.CreateOAuthAppResponse parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.CreateOAuthAppResponse parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.CreateOAuthAppResponse 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.v1.App.CreateOAuthAppResponse prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.CreateOAuthAppResponse}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.CreateOAuthAppResponse, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.CreateOAuthAppResponse)
+        viam.app.v1.App.CreateOAuthAppResponseOrBuilder {
+      // Construct using viam.app.v1.App.CreateOAuthAppResponse.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      /**
+       * string client_id = 1 [json_name = "clientId"];
+       * @return The clientId.
+       */
+      @java.lang.Override
+      public java.lang.String getClientId() {
+        return instance.getClientId();
+      }
+      /**
+       * string client_id = 1 [json_name = "clientId"];
+       * @return The bytes for clientId.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getClientIdBytes() {
+        return instance.getClientIdBytes();
+      }
+      /**
+       * string client_id = 1 [json_name = "clientId"];
+       * @param value The clientId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientId(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setClientId(value);
+        return this;
+      }
+      /**
+       * string client_id = 1 [json_name = "clientId"];
+       * @return This builder for chaining.
+       */
+      public Builder clearClientId() {
+        copyOnWrite();
+        instance.clearClientId();
+        return this;
+      }
+      /**
+       * string client_id = 1 [json_name = "clientId"];
+       * @param value The bytes for clientId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientIdBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setClientIdBytes(value);
+        return this;
+      }
+
+      /**
+       * string client_secret = 2 [json_name = "clientSecret"];
+       * @return The clientSecret.
+       */
+      @java.lang.Override
+      public java.lang.String getClientSecret() {
+        return instance.getClientSecret();
+      }
+      /**
+       * string client_secret = 2 [json_name = "clientSecret"];
+       * @return The bytes for clientSecret.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getClientSecretBytes() {
+        return instance.getClientSecretBytes();
+      }
+      /**
+       * string client_secret = 2 [json_name = "clientSecret"];
+       * @param value The clientSecret to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientSecret(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setClientSecret(value);
+        return this;
+      }
+      /**
+       * string client_secret = 2 [json_name = "clientSecret"];
+       * @return This builder for chaining.
+       */
+      public Builder clearClientSecret() {
+        copyOnWrite();
+        instance.clearClientSecret();
+        return this;
+      }
+      /**
+       * string client_secret = 2 [json_name = "clientSecret"];
+       * @param value The bytes for clientSecret to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientSecretBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setClientSecretBytes(value);
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.CreateOAuthAppResponse)
+    }
+    @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.v1.App.CreateOAuthAppResponse();
+        }
+        case NEW_BUILDER: {
+          return new Builder();
+        }
+        case BUILD_MESSAGE_INFO: {
+            java.lang.Object[] objects = new java.lang.Object[] {
+              "clientId_",
+              "clientSecret_",
+            };
+            java.lang.String info =
+                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u0208\u0002\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.v1.App.CreateOAuthAppResponse.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.v1.CreateOAuthAppResponse)
+    private static final viam.app.v1.App.CreateOAuthAppResponse DEFAULT_INSTANCE;
+    static {
+      CreateOAuthAppResponse defaultInstance = new CreateOAuthAppResponse();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        CreateOAuthAppResponse.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.CreateOAuthAppResponse 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 ReadOAuthAppRequestOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:viam.app.v1.ReadOAuthAppRequest)
+      com.google.protobuf.MessageLiteOrBuilder {
+
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The orgId.
+     */
+    java.lang.String getOrgId();
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The bytes for orgId.
+     */
+    com.google.protobuf.ByteString
+        getOrgIdBytes();
+
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     * @return The clientId.
+     */
+    java.lang.String getClientId();
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     * @return The bytes for clientId.
+     */
+    com.google.protobuf.ByteString
+        getClientIdBytes();
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.ReadOAuthAppRequest}
+   */
+  public  static final class ReadOAuthAppRequest extends
+      com.google.protobuf.GeneratedMessageLite<
+          ReadOAuthAppRequest, ReadOAuthAppRequest.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.ReadOAuthAppRequest)
+      ReadOAuthAppRequestOrBuilder {
+    private ReadOAuthAppRequest() {
+      orgId_ = "";
+      clientId_ = "";
+    }
+    public static final int ORG_ID_FIELD_NUMBER = 1;
+    private java.lang.String orgId_;
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The orgId.
+     */
+    @java.lang.Override
+    public java.lang.String getOrgId() {
+      return orgId_;
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The bytes for orgId.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getOrgIdBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(orgId_);
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @param value The orgId to set.
+     */
+    private void setOrgId(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      orgId_ = value;
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     */
+    private void clearOrgId() {
+
+      orgId_ = getDefaultInstance().getOrgId();
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @param value The bytes for orgId to set.
+     */
+    private void setOrgIdBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      orgId_ = value.toStringUtf8();
+
+    }
+
+    public static final int CLIENT_ID_FIELD_NUMBER = 2;
+    private java.lang.String clientId_;
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     * @return The clientId.
+     */
+    @java.lang.Override
+    public java.lang.String getClientId() {
+      return clientId_;
+    }
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     * @return The bytes for clientId.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getClientIdBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(clientId_);
+    }
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     * @param value The clientId to set.
+     */
+    private void setClientId(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      clientId_ = value;
+    }
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     */
+    private void clearClientId() {
+
+      clientId_ = getDefaultInstance().getClientId();
+    }
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     * @param value The bytes for clientId to set.
+     */
+    private void setClientIdBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      clientId_ = value.toStringUtf8();
+
+    }
+
+    public static viam.app.v1.App.ReadOAuthAppRequest parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.ReadOAuthAppRequest 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.v1.App.ReadOAuthAppRequest parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.ReadOAuthAppRequest 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.v1.App.ReadOAuthAppRequest parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.ReadOAuthAppRequest 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.v1.App.ReadOAuthAppRequest parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.ReadOAuthAppRequest 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.v1.App.ReadOAuthAppRequest parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.ReadOAuthAppRequest parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.ReadOAuthAppRequest parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.ReadOAuthAppRequest 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.v1.App.ReadOAuthAppRequest prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.ReadOAuthAppRequest}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.ReadOAuthAppRequest, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.ReadOAuthAppRequest)
+        viam.app.v1.App.ReadOAuthAppRequestOrBuilder {
+      // Construct using viam.app.v1.App.ReadOAuthAppRequest.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return The orgId.
+       */
+      @java.lang.Override
+      public java.lang.String getOrgId() {
+        return instance.getOrgId();
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return The bytes for orgId.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getOrgIdBytes() {
+        return instance.getOrgIdBytes();
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @param value The orgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgId(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setOrgId(value);
+        return this;
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return This builder for chaining.
+       */
+      public Builder clearOrgId() {
+        copyOnWrite();
+        instance.clearOrgId();
+        return this;
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @param value The bytes for orgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgIdBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setOrgIdBytes(value);
+        return this;
+      }
+
+      /**
+       * string client_id = 2 [json_name = "clientId"];
+       * @return The clientId.
+       */
+      @java.lang.Override
+      public java.lang.String getClientId() {
+        return instance.getClientId();
+      }
+      /**
+       * string client_id = 2 [json_name = "clientId"];
+       * @return The bytes for clientId.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getClientIdBytes() {
+        return instance.getClientIdBytes();
+      }
+      /**
+       * string client_id = 2 [json_name = "clientId"];
+       * @param value The clientId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientId(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setClientId(value);
+        return this;
+      }
+      /**
+       * string client_id = 2 [json_name = "clientId"];
+       * @return This builder for chaining.
+       */
+      public Builder clearClientId() {
+        copyOnWrite();
+        instance.clearClientId();
+        return this;
+      }
+      /**
+       * string client_id = 2 [json_name = "clientId"];
+       * @param value The bytes for clientId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientIdBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setClientIdBytes(value);
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.ReadOAuthAppRequest)
+    }
+    @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.v1.App.ReadOAuthAppRequest();
+        }
+        case NEW_BUILDER: {
+          return new Builder();
+        }
+        case BUILD_MESSAGE_INFO: {
+            java.lang.Object[] objects = new java.lang.Object[] {
+              "orgId_",
+              "clientId_",
+            };
+            java.lang.String info =
+                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u0208\u0002\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.v1.App.ReadOAuthAppRequest.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.v1.ReadOAuthAppRequest)
+    private static final viam.app.v1.App.ReadOAuthAppRequest DEFAULT_INSTANCE;
+    static {
+      ReadOAuthAppRequest defaultInstance = new ReadOAuthAppRequest();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        ReadOAuthAppRequest.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.ReadOAuthAppRequest 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 ReadOAuthAppResponseOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:viam.app.v1.ReadOAuthAppResponse)
+      com.google.protobuf.MessageLiteOrBuilder {
+
+    /**
+     * string client_name = 1 [json_name = "clientName"];
+     * @return The clientName.
+     */
+    java.lang.String getClientName();
+    /**
+     * string client_name = 1 [json_name = "clientName"];
+     * @return The bytes for clientName.
+     */
+    com.google.protobuf.ByteString
+        getClientNameBytes();
+
+    /**
+     * string client_secret = 2 [json_name = "clientSecret"];
+     * @return The clientSecret.
+     */
+    java.lang.String getClientSecret();
+    /**
+     * string client_secret = 2 [json_name = "clientSecret"];
+     * @return The bytes for clientSecret.
+     */
+    com.google.protobuf.ByteString
+        getClientSecretBytes();
+
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+     * @return Whether the oauthConfig field is set.
+     */
+    boolean hasOauthConfig();
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+     * @return The oauthConfig.
+     */
+    viam.app.v1.App.OAuthConfig getOauthConfig();
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.ReadOAuthAppResponse}
+   */
+  public  static final class ReadOAuthAppResponse extends
+      com.google.protobuf.GeneratedMessageLite<
+          ReadOAuthAppResponse, ReadOAuthAppResponse.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.ReadOAuthAppResponse)
+      ReadOAuthAppResponseOrBuilder {
+    private ReadOAuthAppResponse() {
+      clientName_ = "";
+      clientSecret_ = "";
+    }
+    private int bitField0_;
+    public static final int CLIENT_NAME_FIELD_NUMBER = 1;
+    private java.lang.String clientName_;
+    /**
+     * string client_name = 1 [json_name = "clientName"];
+     * @return The clientName.
+     */
+    @java.lang.Override
+    public java.lang.String getClientName() {
+      return clientName_;
+    }
+    /**
+     * string client_name = 1 [json_name = "clientName"];
+     * @return The bytes for clientName.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getClientNameBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(clientName_);
+    }
+    /**
+     * string client_name = 1 [json_name = "clientName"];
+     * @param value The clientName to set.
+     */
+    private void setClientName(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      clientName_ = value;
+    }
+    /**
+     * string client_name = 1 [json_name = "clientName"];
+     */
+    private void clearClientName() {
+
+      clientName_ = getDefaultInstance().getClientName();
+    }
+    /**
+     * string client_name = 1 [json_name = "clientName"];
+     * @param value The bytes for clientName to set.
+     */
+    private void setClientNameBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      clientName_ = value.toStringUtf8();
+
+    }
+
+    public static final int CLIENT_SECRET_FIELD_NUMBER = 2;
+    private java.lang.String clientSecret_;
+    /**
+     * string client_secret = 2 [json_name = "clientSecret"];
+     * @return The clientSecret.
+     */
+    @java.lang.Override
+    public java.lang.String getClientSecret() {
+      return clientSecret_;
+    }
+    /**
+     * string client_secret = 2 [json_name = "clientSecret"];
+     * @return The bytes for clientSecret.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getClientSecretBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(clientSecret_);
+    }
+    /**
+     * string client_secret = 2 [json_name = "clientSecret"];
+     * @param value The clientSecret to set.
+     */
+    private void setClientSecret(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      clientSecret_ = value;
+    }
+    /**
+     * string client_secret = 2 [json_name = "clientSecret"];
+     */
+    private void clearClientSecret() {
+
+      clientSecret_ = getDefaultInstance().getClientSecret();
+    }
+    /**
+     * string client_secret = 2 [json_name = "clientSecret"];
+     * @param value The bytes for clientSecret to set.
+     */
+    private void setClientSecretBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      clientSecret_ = value.toStringUtf8();
+
+    }
+
+    public static final int OAUTH_CONFIG_FIELD_NUMBER = 3;
+    private viam.app.v1.App.OAuthConfig oauthConfig_;
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+     */
+    @java.lang.Override
+    public boolean hasOauthConfig() {
+      return ((bitField0_ & 0x00000001) != 0);
+    }
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+     */
+    @java.lang.Override
+    public viam.app.v1.App.OAuthConfig getOauthConfig() {
+      return oauthConfig_ == null ? viam.app.v1.App.OAuthConfig.getDefaultInstance() : oauthConfig_;
+    }
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+     */
+    private void setOauthConfig(viam.app.v1.App.OAuthConfig value) {
+      value.getClass();
+  oauthConfig_ = value;
+      bitField0_ |= 0x00000001;
+      }
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+     */
+    @java.lang.SuppressWarnings({"ReferenceEquality"})
+    private void mergeOauthConfig(viam.app.v1.App.OAuthConfig value) {
+      value.getClass();
+  if (oauthConfig_ != null &&
+          oauthConfig_ != viam.app.v1.App.OAuthConfig.getDefaultInstance()) {
+        oauthConfig_ =
+          viam.app.v1.App.OAuthConfig.newBuilder(oauthConfig_).mergeFrom(value).buildPartial();
+      } else {
+        oauthConfig_ = value;
+      }
+      bitField0_ |= 0x00000001;
+    }
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+     */
+    private void clearOauthConfig() {  oauthConfig_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+    }
+
+    public static viam.app.v1.App.ReadOAuthAppResponse parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.ReadOAuthAppResponse 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.v1.App.ReadOAuthAppResponse parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.ReadOAuthAppResponse 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.v1.App.ReadOAuthAppResponse parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.ReadOAuthAppResponse 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.v1.App.ReadOAuthAppResponse parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.ReadOAuthAppResponse 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.v1.App.ReadOAuthAppResponse parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.ReadOAuthAppResponse parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.ReadOAuthAppResponse parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.ReadOAuthAppResponse 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.v1.App.ReadOAuthAppResponse prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.ReadOAuthAppResponse}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.ReadOAuthAppResponse, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.ReadOAuthAppResponse)
+        viam.app.v1.App.ReadOAuthAppResponseOrBuilder {
+      // Construct using viam.app.v1.App.ReadOAuthAppResponse.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      /**
+       * string client_name = 1 [json_name = "clientName"];
+       * @return The clientName.
+       */
+      @java.lang.Override
+      public java.lang.String getClientName() {
+        return instance.getClientName();
+      }
+      /**
+       * string client_name = 1 [json_name = "clientName"];
+       * @return The bytes for clientName.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getClientNameBytes() {
+        return instance.getClientNameBytes();
+      }
+      /**
+       * string client_name = 1 [json_name = "clientName"];
+       * @param value The clientName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientName(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setClientName(value);
+        return this;
+      }
+      /**
+       * string client_name = 1 [json_name = "clientName"];
+       * @return This builder for chaining.
+       */
+      public Builder clearClientName() {
+        copyOnWrite();
+        instance.clearClientName();
+        return this;
+      }
+      /**
+       * string client_name = 1 [json_name = "clientName"];
+       * @param value The bytes for clientName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientNameBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setClientNameBytes(value);
+        return this;
+      }
+
+      /**
+       * string client_secret = 2 [json_name = "clientSecret"];
+       * @return The clientSecret.
+       */
+      @java.lang.Override
+      public java.lang.String getClientSecret() {
+        return instance.getClientSecret();
+      }
+      /**
+       * string client_secret = 2 [json_name = "clientSecret"];
+       * @return The bytes for clientSecret.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getClientSecretBytes() {
+        return instance.getClientSecretBytes();
+      }
+      /**
+       * string client_secret = 2 [json_name = "clientSecret"];
+       * @param value The clientSecret to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientSecret(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setClientSecret(value);
+        return this;
+      }
+      /**
+       * string client_secret = 2 [json_name = "clientSecret"];
+       * @return This builder for chaining.
+       */
+      public Builder clearClientSecret() {
+        copyOnWrite();
+        instance.clearClientSecret();
+        return this;
+      }
+      /**
+       * string client_secret = 2 [json_name = "clientSecret"];
+       * @param value The bytes for clientSecret to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientSecretBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setClientSecretBytes(value);
+        return this;
+      }
+
+      /**
+       * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+       */
+      @java.lang.Override
+      public boolean hasOauthConfig() {
+        return instance.hasOauthConfig();
+      }
+      /**
+       * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+       */
+      @java.lang.Override
+      public viam.app.v1.App.OAuthConfig getOauthConfig() {
+        return instance.getOauthConfig();
+      }
+      /**
+       * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+       */
+      public Builder setOauthConfig(viam.app.v1.App.OAuthConfig value) {
+        copyOnWrite();
+        instance.setOauthConfig(value);
+        return this;
+        }
+      /**
+       * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+       */
+      public Builder setOauthConfig(
+          viam.app.v1.App.OAuthConfig.Builder builderForValue) {
+        copyOnWrite();
+        instance.setOauthConfig(builderForValue.build());
+        return this;
+      }
+      /**
+       * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+       */
+      public Builder mergeOauthConfig(viam.app.v1.App.OAuthConfig value) {
+        copyOnWrite();
+        instance.mergeOauthConfig(value);
+        return this;
+      }
+      /**
+       * .viam.app.v1.OAuthConfig oauth_config = 3 [json_name = "oauthConfig"];
+       */
+      public Builder clearOauthConfig() {  copyOnWrite();
+        instance.clearOauthConfig();
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.ReadOAuthAppResponse)
+    }
+    @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.v1.App.ReadOAuthAppResponse();
+        }
+        case NEW_BUILDER: {
+          return new Builder();
+        }
+        case BUILD_MESSAGE_INFO: {
+            java.lang.Object[] objects = new java.lang.Object[] {
+              "bitField0_",
+              "clientName_",
+              "clientSecret_",
+              "oauthConfig_",
+            };
+            java.lang.String info =
+                "\u0000\u0003\u0000\u0001\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u0208\u0002\u0208" +
+                "\u0003\u1009\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.v1.App.ReadOAuthAppResponse.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.v1.ReadOAuthAppResponse)
+    private static final viam.app.v1.App.ReadOAuthAppResponse DEFAULT_INSTANCE;
+    static {
+      ReadOAuthAppResponse defaultInstance = new ReadOAuthAppResponse();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        ReadOAuthAppResponse.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.ReadOAuthAppResponse 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 UpdateOAuthAppRequestOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:viam.app.v1.UpdateOAuthAppRequest)
+      com.google.protobuf.MessageLiteOrBuilder {
+
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The orgId.
+     */
+    java.lang.String getOrgId();
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The bytes for orgId.
+     */
+    com.google.protobuf.ByteString
+        getOrgIdBytes();
+
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     * @return The clientId.
+     */
+    java.lang.String getClientId();
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     * @return The bytes for clientId.
+     */
+    com.google.protobuf.ByteString
+        getClientIdBytes();
+
+    /**
+     * string client_name = 3 [json_name = "clientName"];
+     * @return The clientName.
+     */
+    java.lang.String getClientName();
+    /**
+     * string client_name = 3 [json_name = "clientName"];
+     * @return The bytes for clientName.
+     */
+    com.google.protobuf.ByteString
+        getClientNameBytes();
+
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 4 [json_name = "oauthConfig"];
+     * @return Whether the oauthConfig field is set.
+     */
+    boolean hasOauthConfig();
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 4 [json_name = "oauthConfig"];
+     * @return The oauthConfig.
+     */
+    viam.app.v1.App.OAuthConfig getOauthConfig();
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.UpdateOAuthAppRequest}
+   */
+  public  static final class UpdateOAuthAppRequest extends
+      com.google.protobuf.GeneratedMessageLite<
+          UpdateOAuthAppRequest, UpdateOAuthAppRequest.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.UpdateOAuthAppRequest)
+      UpdateOAuthAppRequestOrBuilder {
+    private UpdateOAuthAppRequest() {
+      orgId_ = "";
+      clientId_ = "";
+      clientName_ = "";
+    }
+    private int bitField0_;
+    public static final int ORG_ID_FIELD_NUMBER = 1;
+    private java.lang.String orgId_;
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The orgId.
+     */
+    @java.lang.Override
+    public java.lang.String getOrgId() {
+      return orgId_;
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The bytes for orgId.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getOrgIdBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(orgId_);
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @param value The orgId to set.
+     */
+    private void setOrgId(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      orgId_ = value;
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     */
+    private void clearOrgId() {
+
+      orgId_ = getDefaultInstance().getOrgId();
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @param value The bytes for orgId to set.
+     */
+    private void setOrgIdBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      orgId_ = value.toStringUtf8();
+
+    }
+
+    public static final int CLIENT_ID_FIELD_NUMBER = 2;
+    private java.lang.String clientId_;
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     * @return The clientId.
+     */
+    @java.lang.Override
+    public java.lang.String getClientId() {
+      return clientId_;
+    }
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     * @return The bytes for clientId.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getClientIdBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(clientId_);
+    }
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     * @param value The clientId to set.
+     */
+    private void setClientId(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      clientId_ = value;
+    }
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     */
+    private void clearClientId() {
+
+      clientId_ = getDefaultInstance().getClientId();
+    }
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     * @param value The bytes for clientId to set.
+     */
+    private void setClientIdBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      clientId_ = value.toStringUtf8();
+
+    }
+
+    public static final int CLIENT_NAME_FIELD_NUMBER = 3;
+    private java.lang.String clientName_;
+    /**
+     * string client_name = 3 [json_name = "clientName"];
+     * @return The clientName.
+     */
+    @java.lang.Override
+    public java.lang.String getClientName() {
+      return clientName_;
+    }
+    /**
+     * string client_name = 3 [json_name = "clientName"];
+     * @return The bytes for clientName.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getClientNameBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(clientName_);
+    }
+    /**
+     * string client_name = 3 [json_name = "clientName"];
+     * @param value The clientName to set.
+     */
+    private void setClientName(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      clientName_ = value;
+    }
+    /**
+     * string client_name = 3 [json_name = "clientName"];
+     */
+    private void clearClientName() {
+
+      clientName_ = getDefaultInstance().getClientName();
+    }
+    /**
+     * string client_name = 3 [json_name = "clientName"];
+     * @param value The bytes for clientName to set.
+     */
+    private void setClientNameBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      clientName_ = value.toStringUtf8();
+
+    }
+
+    public static final int OAUTH_CONFIG_FIELD_NUMBER = 4;
+    private viam.app.v1.App.OAuthConfig oauthConfig_;
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 4 [json_name = "oauthConfig"];
+     */
+    @java.lang.Override
+    public boolean hasOauthConfig() {
+      return ((bitField0_ & 0x00000001) != 0);
+    }
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 4 [json_name = "oauthConfig"];
+     */
+    @java.lang.Override
+    public viam.app.v1.App.OAuthConfig getOauthConfig() {
+      return oauthConfig_ == null ? viam.app.v1.App.OAuthConfig.getDefaultInstance() : oauthConfig_;
+    }
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 4 [json_name = "oauthConfig"];
+     */
+    private void setOauthConfig(viam.app.v1.App.OAuthConfig value) {
+      value.getClass();
+  oauthConfig_ = value;
+      bitField0_ |= 0x00000001;
+      }
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 4 [json_name = "oauthConfig"];
+     */
+    @java.lang.SuppressWarnings({"ReferenceEquality"})
+    private void mergeOauthConfig(viam.app.v1.App.OAuthConfig value) {
+      value.getClass();
+  if (oauthConfig_ != null &&
+          oauthConfig_ != viam.app.v1.App.OAuthConfig.getDefaultInstance()) {
+        oauthConfig_ =
+          viam.app.v1.App.OAuthConfig.newBuilder(oauthConfig_).mergeFrom(value).buildPartial();
+      } else {
+        oauthConfig_ = value;
+      }
+      bitField0_ |= 0x00000001;
+    }
+    /**
+     * .viam.app.v1.OAuthConfig oauth_config = 4 [json_name = "oauthConfig"];
+     */
+    private void clearOauthConfig() {  oauthConfig_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+    }
+
+    public static viam.app.v1.App.UpdateOAuthAppRequest parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.UpdateOAuthAppRequest 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.v1.App.UpdateOAuthAppRequest parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.UpdateOAuthAppRequest 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.v1.App.UpdateOAuthAppRequest parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.UpdateOAuthAppRequest 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.v1.App.UpdateOAuthAppRequest parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.UpdateOAuthAppRequest 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.v1.App.UpdateOAuthAppRequest parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.UpdateOAuthAppRequest parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.UpdateOAuthAppRequest parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.UpdateOAuthAppRequest 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.v1.App.UpdateOAuthAppRequest prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.UpdateOAuthAppRequest}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.UpdateOAuthAppRequest, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.UpdateOAuthAppRequest)
+        viam.app.v1.App.UpdateOAuthAppRequestOrBuilder {
+      // Construct using viam.app.v1.App.UpdateOAuthAppRequest.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return The orgId.
+       */
+      @java.lang.Override
+      public java.lang.String getOrgId() {
+        return instance.getOrgId();
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return The bytes for orgId.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getOrgIdBytes() {
+        return instance.getOrgIdBytes();
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @param value The orgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgId(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setOrgId(value);
+        return this;
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return This builder for chaining.
+       */
+      public Builder clearOrgId() {
+        copyOnWrite();
+        instance.clearOrgId();
+        return this;
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @param value The bytes for orgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgIdBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setOrgIdBytes(value);
+        return this;
+      }
+
+      /**
+       * string client_id = 2 [json_name = "clientId"];
+       * @return The clientId.
+       */
+      @java.lang.Override
+      public java.lang.String getClientId() {
+        return instance.getClientId();
+      }
+      /**
+       * string client_id = 2 [json_name = "clientId"];
+       * @return The bytes for clientId.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getClientIdBytes() {
+        return instance.getClientIdBytes();
+      }
+      /**
+       * string client_id = 2 [json_name = "clientId"];
+       * @param value The clientId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientId(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setClientId(value);
+        return this;
+      }
+      /**
+       * string client_id = 2 [json_name = "clientId"];
+       * @return This builder for chaining.
+       */
+      public Builder clearClientId() {
+        copyOnWrite();
+        instance.clearClientId();
+        return this;
+      }
+      /**
+       * string client_id = 2 [json_name = "clientId"];
+       * @param value The bytes for clientId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientIdBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setClientIdBytes(value);
+        return this;
+      }
+
+      /**
+       * string client_name = 3 [json_name = "clientName"];
+       * @return The clientName.
+       */
+      @java.lang.Override
+      public java.lang.String getClientName() {
+        return instance.getClientName();
+      }
+      /**
+       * string client_name = 3 [json_name = "clientName"];
+       * @return The bytes for clientName.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getClientNameBytes() {
+        return instance.getClientNameBytes();
+      }
+      /**
+       * string client_name = 3 [json_name = "clientName"];
+       * @param value The clientName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientName(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setClientName(value);
+        return this;
+      }
+      /**
+       * string client_name = 3 [json_name = "clientName"];
+       * @return This builder for chaining.
+       */
+      public Builder clearClientName() {
+        copyOnWrite();
+        instance.clearClientName();
+        return this;
+      }
+      /**
+       * string client_name = 3 [json_name = "clientName"];
+       * @param value The bytes for clientName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientNameBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setClientNameBytes(value);
+        return this;
+      }
+
+      /**
+       * .viam.app.v1.OAuthConfig oauth_config = 4 [json_name = "oauthConfig"];
+       */
+      @java.lang.Override
+      public boolean hasOauthConfig() {
+        return instance.hasOauthConfig();
+      }
+      /**
+       * .viam.app.v1.OAuthConfig oauth_config = 4 [json_name = "oauthConfig"];
+       */
+      @java.lang.Override
+      public viam.app.v1.App.OAuthConfig getOauthConfig() {
+        return instance.getOauthConfig();
+      }
+      /**
+       * .viam.app.v1.OAuthConfig oauth_config = 4 [json_name = "oauthConfig"];
+       */
+      public Builder setOauthConfig(viam.app.v1.App.OAuthConfig value) {
+        copyOnWrite();
+        instance.setOauthConfig(value);
+        return this;
+        }
+      /**
+       * .viam.app.v1.OAuthConfig oauth_config = 4 [json_name = "oauthConfig"];
+       */
+      public Builder setOauthConfig(
+          viam.app.v1.App.OAuthConfig.Builder builderForValue) {
+        copyOnWrite();
+        instance.setOauthConfig(builderForValue.build());
+        return this;
+      }
+      /**
+       * .viam.app.v1.OAuthConfig oauth_config = 4 [json_name = "oauthConfig"];
+       */
+      public Builder mergeOauthConfig(viam.app.v1.App.OAuthConfig value) {
+        copyOnWrite();
+        instance.mergeOauthConfig(value);
+        return this;
+      }
+      /**
+       * .viam.app.v1.OAuthConfig oauth_config = 4 [json_name = "oauthConfig"];
+       */
+      public Builder clearOauthConfig() {  copyOnWrite();
+        instance.clearOauthConfig();
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.UpdateOAuthAppRequest)
+    }
+    @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.v1.App.UpdateOAuthAppRequest();
+        }
+        case NEW_BUILDER: {
+          return new Builder();
+        }
+        case BUILD_MESSAGE_INFO: {
+            java.lang.Object[] objects = new java.lang.Object[] {
+              "bitField0_",
+              "orgId_",
+              "clientId_",
+              "clientName_",
+              "oauthConfig_",
+            };
+            java.lang.String info =
+                "\u0000\u0004\u0000\u0001\u0001\u0004\u0004\u0000\u0000\u0000\u0001\u0208\u0002\u0208" +
+                "\u0003\u0208\u0004\u1009\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.v1.App.UpdateOAuthAppRequest.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.v1.UpdateOAuthAppRequest)
+    private static final viam.app.v1.App.UpdateOAuthAppRequest DEFAULT_INSTANCE;
+    static {
+      UpdateOAuthAppRequest defaultInstance = new UpdateOAuthAppRequest();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        UpdateOAuthAppRequest.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.UpdateOAuthAppRequest 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 UpdateOAuthAppResponseOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:viam.app.v1.UpdateOAuthAppResponse)
+      com.google.protobuf.MessageLiteOrBuilder {
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.UpdateOAuthAppResponse}
+   */
+  public  static final class UpdateOAuthAppResponse extends
+      com.google.protobuf.GeneratedMessageLite<
+          UpdateOAuthAppResponse, UpdateOAuthAppResponse.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.UpdateOAuthAppResponse)
+      UpdateOAuthAppResponseOrBuilder {
+    private UpdateOAuthAppResponse() {
+    }
+    public static viam.app.v1.App.UpdateOAuthAppResponse parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.UpdateOAuthAppResponse 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.v1.App.UpdateOAuthAppResponse parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.UpdateOAuthAppResponse 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.v1.App.UpdateOAuthAppResponse parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.UpdateOAuthAppResponse 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.v1.App.UpdateOAuthAppResponse parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.UpdateOAuthAppResponse 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.v1.App.UpdateOAuthAppResponse parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.UpdateOAuthAppResponse parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.UpdateOAuthAppResponse parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.UpdateOAuthAppResponse 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.v1.App.UpdateOAuthAppResponse prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.UpdateOAuthAppResponse}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.UpdateOAuthAppResponse, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.UpdateOAuthAppResponse)
+        viam.app.v1.App.UpdateOAuthAppResponseOrBuilder {
+      // Construct using viam.app.v1.App.UpdateOAuthAppResponse.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.UpdateOAuthAppResponse)
+    }
+    @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.v1.App.UpdateOAuthAppResponse();
+        }
+        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.v1.App.UpdateOAuthAppResponse.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.v1.UpdateOAuthAppResponse)
+    private static final viam.app.v1.App.UpdateOAuthAppResponse DEFAULT_INSTANCE;
+    static {
+      UpdateOAuthAppResponse defaultInstance = new UpdateOAuthAppResponse();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        UpdateOAuthAppResponse.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.UpdateOAuthAppResponse 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 DeleteOAuthAppRequestOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:viam.app.v1.DeleteOAuthAppRequest)
+      com.google.protobuf.MessageLiteOrBuilder {
+
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The orgId.
+     */
+    java.lang.String getOrgId();
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The bytes for orgId.
+     */
+    com.google.protobuf.ByteString
+        getOrgIdBytes();
+
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     * @return The clientId.
+     */
+    java.lang.String getClientId();
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     * @return The bytes for clientId.
+     */
+    com.google.protobuf.ByteString
+        getClientIdBytes();
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.DeleteOAuthAppRequest}
+   */
+  public  static final class DeleteOAuthAppRequest extends
+      com.google.protobuf.GeneratedMessageLite<
+          DeleteOAuthAppRequest, DeleteOAuthAppRequest.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.DeleteOAuthAppRequest)
+      DeleteOAuthAppRequestOrBuilder {
+    private DeleteOAuthAppRequest() {
+      orgId_ = "";
+      clientId_ = "";
+    }
+    public static final int ORG_ID_FIELD_NUMBER = 1;
+    private java.lang.String orgId_;
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The orgId.
+     */
+    @java.lang.Override
+    public java.lang.String getOrgId() {
+      return orgId_;
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The bytes for orgId.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getOrgIdBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(orgId_);
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @param value The orgId to set.
+     */
+    private void setOrgId(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      orgId_ = value;
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     */
+    private void clearOrgId() {
+
+      orgId_ = getDefaultInstance().getOrgId();
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @param value The bytes for orgId to set.
+     */
+    private void setOrgIdBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      orgId_ = value.toStringUtf8();
+
+    }
+
+    public static final int CLIENT_ID_FIELD_NUMBER = 2;
+    private java.lang.String clientId_;
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     * @return The clientId.
+     */
+    @java.lang.Override
+    public java.lang.String getClientId() {
+      return clientId_;
+    }
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     * @return The bytes for clientId.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getClientIdBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(clientId_);
+    }
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     * @param value The clientId to set.
+     */
+    private void setClientId(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      clientId_ = value;
+    }
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     */
+    private void clearClientId() {
+
+      clientId_ = getDefaultInstance().getClientId();
+    }
+    /**
+     * string client_id = 2 [json_name = "clientId"];
+     * @param value The bytes for clientId to set.
+     */
+    private void setClientIdBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      clientId_ = value.toStringUtf8();
+
+    }
+
+    public static viam.app.v1.App.DeleteOAuthAppRequest parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.DeleteOAuthAppRequest 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.v1.App.DeleteOAuthAppRequest parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.DeleteOAuthAppRequest 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.v1.App.DeleteOAuthAppRequest parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.DeleteOAuthAppRequest 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.v1.App.DeleteOAuthAppRequest parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.DeleteOAuthAppRequest 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.v1.App.DeleteOAuthAppRequest parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.DeleteOAuthAppRequest parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.DeleteOAuthAppRequest parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.DeleteOAuthAppRequest 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.v1.App.DeleteOAuthAppRequest prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.DeleteOAuthAppRequest}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.DeleteOAuthAppRequest, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.DeleteOAuthAppRequest)
+        viam.app.v1.App.DeleteOAuthAppRequestOrBuilder {
+      // Construct using viam.app.v1.App.DeleteOAuthAppRequest.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return The orgId.
+       */
+      @java.lang.Override
+      public java.lang.String getOrgId() {
+        return instance.getOrgId();
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return The bytes for orgId.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getOrgIdBytes() {
+        return instance.getOrgIdBytes();
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @param value The orgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgId(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setOrgId(value);
+        return this;
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return This builder for chaining.
+       */
+      public Builder clearOrgId() {
+        copyOnWrite();
+        instance.clearOrgId();
+        return this;
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @param value The bytes for orgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgIdBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setOrgIdBytes(value);
+        return this;
+      }
+
+      /**
+       * string client_id = 2 [json_name = "clientId"];
+       * @return The clientId.
+       */
+      @java.lang.Override
+      public java.lang.String getClientId() {
+        return instance.getClientId();
+      }
+      /**
+       * string client_id = 2 [json_name = "clientId"];
+       * @return The bytes for clientId.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getClientIdBytes() {
+        return instance.getClientIdBytes();
+      }
+      /**
+       * string client_id = 2 [json_name = "clientId"];
+       * @param value The clientId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientId(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setClientId(value);
+        return this;
+      }
+      /**
+       * string client_id = 2 [json_name = "clientId"];
+       * @return This builder for chaining.
+       */
+      public Builder clearClientId() {
+        copyOnWrite();
+        instance.clearClientId();
+        return this;
+      }
+      /**
+       * string client_id = 2 [json_name = "clientId"];
+       * @param value The bytes for clientId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientIdBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setClientIdBytes(value);
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.DeleteOAuthAppRequest)
+    }
+    @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.v1.App.DeleteOAuthAppRequest();
+        }
+        case NEW_BUILDER: {
+          return new Builder();
+        }
+        case BUILD_MESSAGE_INFO: {
+            java.lang.Object[] objects = new java.lang.Object[] {
+              "orgId_",
+              "clientId_",
+            };
+            java.lang.String info =
+                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u0208\u0002\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.v1.App.DeleteOAuthAppRequest.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.v1.DeleteOAuthAppRequest)
+    private static final viam.app.v1.App.DeleteOAuthAppRequest DEFAULT_INSTANCE;
+    static {
+      DeleteOAuthAppRequest defaultInstance = new DeleteOAuthAppRequest();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        DeleteOAuthAppRequest.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.DeleteOAuthAppRequest 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 DeleteOAuthAppResponseOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:viam.app.v1.DeleteOAuthAppResponse)
+      com.google.protobuf.MessageLiteOrBuilder {
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.DeleteOAuthAppResponse}
+   */
+  public  static final class DeleteOAuthAppResponse extends
+      com.google.protobuf.GeneratedMessageLite<
+          DeleteOAuthAppResponse, DeleteOAuthAppResponse.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.DeleteOAuthAppResponse)
+      DeleteOAuthAppResponseOrBuilder {
+    private DeleteOAuthAppResponse() {
+    }
+    public static viam.app.v1.App.DeleteOAuthAppResponse parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.DeleteOAuthAppResponse 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.v1.App.DeleteOAuthAppResponse parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.DeleteOAuthAppResponse 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.v1.App.DeleteOAuthAppResponse parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.DeleteOAuthAppResponse 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.v1.App.DeleteOAuthAppResponse parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.DeleteOAuthAppResponse 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.v1.App.DeleteOAuthAppResponse parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.DeleteOAuthAppResponse parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.DeleteOAuthAppResponse parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.DeleteOAuthAppResponse 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.v1.App.DeleteOAuthAppResponse prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.DeleteOAuthAppResponse}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.DeleteOAuthAppResponse, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.DeleteOAuthAppResponse)
+        viam.app.v1.App.DeleteOAuthAppResponseOrBuilder {
+      // Construct using viam.app.v1.App.DeleteOAuthAppResponse.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.DeleteOAuthAppResponse)
+    }
+    @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.v1.App.DeleteOAuthAppResponse();
+        }
+        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.v1.App.DeleteOAuthAppResponse.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.v1.DeleteOAuthAppResponse)
+    private static final viam.app.v1.App.DeleteOAuthAppResponse DEFAULT_INSTANCE;
+    static {
+      DeleteOAuthAppResponse defaultInstance = new DeleteOAuthAppResponse();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        DeleteOAuthAppResponse.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.DeleteOAuthAppResponse 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 ListOAuthAppsRequestOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:viam.app.v1.ListOAuthAppsRequest)
+      com.google.protobuf.MessageLiteOrBuilder {
+
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The orgId.
+     */
+    java.lang.String getOrgId();
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The bytes for orgId.
+     */
+    com.google.protobuf.ByteString
+        getOrgIdBytes();
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.ListOAuthAppsRequest}
+   */
+  public  static final class ListOAuthAppsRequest extends
+      com.google.protobuf.GeneratedMessageLite<
+          ListOAuthAppsRequest, ListOAuthAppsRequest.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.ListOAuthAppsRequest)
+      ListOAuthAppsRequestOrBuilder {
+    private ListOAuthAppsRequest() {
+      orgId_ = "";
+    }
+    public static final int ORG_ID_FIELD_NUMBER = 1;
+    private java.lang.String orgId_;
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The orgId.
+     */
+    @java.lang.Override
+    public java.lang.String getOrgId() {
+      return orgId_;
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @return The bytes for orgId.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getOrgIdBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(orgId_);
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @param value The orgId to set.
+     */
+    private void setOrgId(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      orgId_ = value;
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     */
+    private void clearOrgId() {
+
+      orgId_ = getDefaultInstance().getOrgId();
+    }
+    /**
+     * string org_id = 1 [json_name = "orgId"];
+     * @param value The bytes for orgId to set.
+     */
+    private void setOrgIdBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      orgId_ = value.toStringUtf8();
+
+    }
+
+    public static viam.app.v1.App.ListOAuthAppsRequest parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.ListOAuthAppsRequest 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.v1.App.ListOAuthAppsRequest parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.ListOAuthAppsRequest 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.v1.App.ListOAuthAppsRequest parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.ListOAuthAppsRequest 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.v1.App.ListOAuthAppsRequest parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.ListOAuthAppsRequest 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.v1.App.ListOAuthAppsRequest parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.ListOAuthAppsRequest parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.ListOAuthAppsRequest parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.ListOAuthAppsRequest 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.v1.App.ListOAuthAppsRequest prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.ListOAuthAppsRequest}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.ListOAuthAppsRequest, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.ListOAuthAppsRequest)
+        viam.app.v1.App.ListOAuthAppsRequestOrBuilder {
+      // Construct using viam.app.v1.App.ListOAuthAppsRequest.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return The orgId.
+       */
+      @java.lang.Override
+      public java.lang.String getOrgId() {
+        return instance.getOrgId();
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return The bytes for orgId.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getOrgIdBytes() {
+        return instance.getOrgIdBytes();
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @param value The orgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgId(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setOrgId(value);
+        return this;
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @return This builder for chaining.
+       */
+      public Builder clearOrgId() {
+        copyOnWrite();
+        instance.clearOrgId();
+        return this;
+      }
+      /**
+       * string org_id = 1 [json_name = "orgId"];
+       * @param value The bytes for orgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgIdBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setOrgIdBytes(value);
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.ListOAuthAppsRequest)
+    }
+    @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.v1.App.ListOAuthAppsRequest();
+        }
+        case NEW_BUILDER: {
+          return new Builder();
+        }
+        case BUILD_MESSAGE_INFO: {
+            java.lang.Object[] objects = new java.lang.Object[] {
+              "orgId_",
+            };
+            java.lang.String info =
+                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\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.v1.App.ListOAuthAppsRequest.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.v1.ListOAuthAppsRequest)
+    private static final viam.app.v1.App.ListOAuthAppsRequest DEFAULT_INSTANCE;
+    static {
+      ListOAuthAppsRequest defaultInstance = new ListOAuthAppsRequest();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        ListOAuthAppsRequest.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.ListOAuthAppsRequest 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 ListOAuthAppsResponseOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:viam.app.v1.ListOAuthAppsResponse)
+      com.google.protobuf.MessageLiteOrBuilder {
+
+    /**
+     * repeated string client_ids = 1 [json_name = "clientIds"];
+     * @return A list containing the clientIds.
+     */
+    java.util.List
+        getClientIdsList();
+    /**
+     * repeated string client_ids = 1 [json_name = "clientIds"];
+     * @return The count of clientIds.
+     */
+    int getClientIdsCount();
+    /**
+     * repeated string client_ids = 1 [json_name = "clientIds"];
+     * @param index The index of the element to return.
+     * @return The clientIds at the given index.
+     */
+    java.lang.String getClientIds(int index);
+    /**
+     * repeated string client_ids = 1 [json_name = "clientIds"];
+     * @param index The index of the element to return.
+     * @return The clientIds at the given index.
+     */
+    com.google.protobuf.ByteString
+        getClientIdsBytes(int index);
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.ListOAuthAppsResponse}
+   */
+  public  static final class ListOAuthAppsResponse extends
+      com.google.protobuf.GeneratedMessageLite<
+          ListOAuthAppsResponse, ListOAuthAppsResponse.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.ListOAuthAppsResponse)
+      ListOAuthAppsResponseOrBuilder {
+    private ListOAuthAppsResponse() {
+      clientIds_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
+    }
+    public static final int CLIENT_IDS_FIELD_NUMBER = 1;
+    private com.google.protobuf.Internal.ProtobufList clientIds_;
+    /**
+     * repeated string client_ids = 1 [json_name = "clientIds"];
+     * @return A list containing the clientIds.
+     */
+    @java.lang.Override
+    public java.util.List getClientIdsList() {
+      return clientIds_;
+    }
+    /**
+     * repeated string client_ids = 1 [json_name = "clientIds"];
+     * @return The count of clientIds.
+     */
+    @java.lang.Override
+    public int getClientIdsCount() {
+      return clientIds_.size();
+    }
+    /**
+     * repeated string client_ids = 1 [json_name = "clientIds"];
+     * @param index The index of the element to return.
+     * @return The clientIds at the given index.
+     */
+    @java.lang.Override
+    public java.lang.String getClientIds(int index) {
+      return clientIds_.get(index);
+    }
+    /**
+     * repeated string client_ids = 1 [json_name = "clientIds"];
+     * @param index The index of the value to return.
+     * @return The bytes of the clientIds at the given index.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getClientIdsBytes(int index) {
+      return com.google.protobuf.ByteString.copyFromUtf8(
+          clientIds_.get(index));
+    }
+    private void ensureClientIdsIsMutable() {
+      com.google.protobuf.Internal.ProtobufList tmp =
+          clientIds_;  if (!tmp.isModifiable()) {
+        clientIds_ =
+            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
+       }
+    }
+    /**
+     * repeated string client_ids = 1 [json_name = "clientIds"];
+     * @param index The index to set the value at.
+     * @param value The clientIds to set.
+     */
+    private void setClientIds(
+        int index, java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  ensureClientIdsIsMutable();
+      clientIds_.set(index, value);
+    }
+    /**
+     * repeated string client_ids = 1 [json_name = "clientIds"];
+     * @param value The clientIds to add.
+     */
+    private void addClientIds(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  ensureClientIdsIsMutable();
+      clientIds_.add(value);
+    }
+    /**
+     * repeated string client_ids = 1 [json_name = "clientIds"];
+     * @param values The clientIds to add.
+     */
+    private void addAllClientIds(
+        java.lang.Iterable values) {
+      ensureClientIdsIsMutable();
+      com.google.protobuf.AbstractMessageLite.addAll(
+          values, clientIds_);
+    }
+    /**
+     * repeated string client_ids = 1 [json_name = "clientIds"];
+     */
+    private void clearClientIds() {
+      clientIds_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
+    }
+    /**
+     * repeated string client_ids = 1 [json_name = "clientIds"];
+     * @param value The bytes of the clientIds to add.
+     */
+    private void addClientIdsBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      ensureClientIdsIsMutable();
+      clientIds_.add(value.toStringUtf8());
+    }
+
+    public static viam.app.v1.App.ListOAuthAppsResponse parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.ListOAuthAppsResponse 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.v1.App.ListOAuthAppsResponse parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.ListOAuthAppsResponse 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.v1.App.ListOAuthAppsResponse parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.ListOAuthAppsResponse 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.v1.App.ListOAuthAppsResponse parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.ListOAuthAppsResponse 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.v1.App.ListOAuthAppsResponse parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.ListOAuthAppsResponse parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.ListOAuthAppsResponse parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.ListOAuthAppsResponse 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.v1.App.ListOAuthAppsResponse prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.ListOAuthAppsResponse}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.ListOAuthAppsResponse, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.ListOAuthAppsResponse)
+        viam.app.v1.App.ListOAuthAppsResponseOrBuilder {
+      // Construct using viam.app.v1.App.ListOAuthAppsResponse.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      /**
+       * repeated string client_ids = 1 [json_name = "clientIds"];
+       * @return A list containing the clientIds.
+       */
+      @java.lang.Override
+      public java.util.List
+          getClientIdsList() {
+        return java.util.Collections.unmodifiableList(
+            instance.getClientIdsList());
+      }
+      /**
+       * repeated string client_ids = 1 [json_name = "clientIds"];
+       * @return The count of clientIds.
+       */
+      @java.lang.Override
+      public int getClientIdsCount() {
+        return instance.getClientIdsCount();
+      }
+      /**
+       * repeated string client_ids = 1 [json_name = "clientIds"];
+       * @param index The index of the element to return.
+       * @return The clientIds at the given index.
+       */
+      @java.lang.Override
+      public java.lang.String getClientIds(int index) {
+        return instance.getClientIds(index);
+      }
+      /**
+       * repeated string client_ids = 1 [json_name = "clientIds"];
+       * @param index The index of the value to return.
+       * @return The bytes of the clientIds at the given index.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getClientIdsBytes(int index) {
+        return instance.getClientIdsBytes(index);
+      }
+      /**
+       * repeated string client_ids = 1 [json_name = "clientIds"];
+       * @param index The index to set the value at.
+       * @param value The clientIds to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientIds(
+          int index, java.lang.String value) {
+        copyOnWrite();
+        instance.setClientIds(index, value);
+        return this;
+      }
+      /**
+       * repeated string client_ids = 1 [json_name = "clientIds"];
+       * @param value The clientIds to add.
+       * @return This builder for chaining.
+       */
+      public Builder addClientIds(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.addClientIds(value);
+        return this;
+      }
+      /**
+       * repeated string client_ids = 1 [json_name = "clientIds"];
+       * @param values The clientIds to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllClientIds(
+          java.lang.Iterable values) {
+        copyOnWrite();
+        instance.addAllClientIds(values);
+        return this;
+      }
+      /**
+       * repeated string client_ids = 1 [json_name = "clientIds"];
+       * @return This builder for chaining.
+       */
+      public Builder clearClientIds() {
+        copyOnWrite();
+        instance.clearClientIds();
+        return this;
+      }
+      /**
+       * repeated string client_ids = 1 [json_name = "clientIds"];
+       * @param value The bytes of the clientIds to add.
+       * @return This builder for chaining.
+       */
+      public Builder addClientIdsBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.addClientIdsBytes(value);
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.ListOAuthAppsResponse)
+    }
+    @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.v1.App.ListOAuthAppsResponse();
+        }
+        case NEW_BUILDER: {
+          return new Builder();
+        }
+        case BUILD_MESSAGE_INFO: {
+            java.lang.Object[] objects = new java.lang.Object[] {
+              "clientIds_",
+            };
+            java.lang.String info =
+                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0001\u0000\u0001\u021a";
+            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.v1.App.ListOAuthAppsResponse.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.v1.ListOAuthAppsResponse)
+    private static final viam.app.v1.App.ListOAuthAppsResponse DEFAULT_INSTANCE;
+    static {
+      ListOAuthAppsResponse defaultInstance = new ListOAuthAppsResponse();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        ListOAuthAppsResponse.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.ListOAuthAppsResponse 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 OAuthConfigOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:viam.app.v1.OAuthConfig)
+      com.google.protobuf.MessageLiteOrBuilder {
+
+    /**
+     * .viam.app.v1.ClientAuthentication client_authentication = 1 [json_name = "clientAuthentication"];
+     * @return The enum numeric value on the wire for clientAuthentication.
+     */
+    int getClientAuthenticationValue();
+    /**
+     * .viam.app.v1.ClientAuthentication client_authentication = 1 [json_name = "clientAuthentication"];
+     * @return The clientAuthentication.
+     */
+    viam.app.v1.App.ClientAuthentication getClientAuthentication();
+
+    /**
+     * .viam.app.v1.PKCE pkce = 2 [json_name = "pkce"];
+     * @return The enum numeric value on the wire for pkce.
+     */
+    int getPkceValue();
+    /**
+     * .viam.app.v1.PKCE pkce = 2 [json_name = "pkce"];
+     * @return The pkce.
+     */
+    viam.app.v1.App.PKCE getPkce();
+
+    /**
+     * .viam.app.v1.URLValidation url_validation = 3 [json_name = "urlValidation"];
+     * @return The enum numeric value on the wire for urlValidation.
+     */
+    int getUrlValidationValue();
+    /**
+     * .viam.app.v1.URLValidation url_validation = 3 [json_name = "urlValidation"];
+     * @return The urlValidation.
+     */
+    viam.app.v1.App.URLValidation getUrlValidation();
+
+    /**
+     * repeated string origin_uris = 4 [json_name = "originUris"];
+     * @return A list containing the originUris.
+     */
+    java.util.List
+        getOriginUrisList();
+    /**
+     * repeated string origin_uris = 4 [json_name = "originUris"];
+     * @return The count of originUris.
+     */
+    int getOriginUrisCount();
+    /**
+     * repeated string origin_uris = 4 [json_name = "originUris"];
+     * @param index The index of the element to return.
+     * @return The originUris at the given index.
+     */
+    java.lang.String getOriginUris(int index);
+    /**
+     * repeated string origin_uris = 4 [json_name = "originUris"];
+     * @param index The index of the element to return.
+     * @return The originUris at the given index.
+     */
+    com.google.protobuf.ByteString
+        getOriginUrisBytes(int index);
+
+    /**
+     * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+     * @return A list containing the redirectUris.
+     */
+    java.util.List
+        getRedirectUrisList();
+    /**
+     * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+     * @return The count of redirectUris.
+     */
+    int getRedirectUrisCount();
+    /**
+     * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+     * @param index The index of the element to return.
+     * @return The redirectUris at the given index.
+     */
+    java.lang.String getRedirectUris(int index);
+    /**
+     * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+     * @param index The index of the element to return.
+     * @return The redirectUris at the given index.
+     */
+    com.google.protobuf.ByteString
+        getRedirectUrisBytes(int index);
+
+    /**
+     * string logout_uri = 6 [json_name = "logoutUri"];
+     * @return The logoutUri.
+     */
+    java.lang.String getLogoutUri();
+    /**
+     * string logout_uri = 6 [json_name = "logoutUri"];
+     * @return The bytes for logoutUri.
+     */
+    com.google.protobuf.ByteString
+        getLogoutUriBytes();
+
+    /**
+     * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+     * @return A list containing the enabledGrants.
+     */
+    java.util.List getEnabledGrantsList();
+    /**
+     * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+     * @return The count of enabledGrants.
+     */
+    int getEnabledGrantsCount();
+    /**
+     * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+     * @param index The index of the element to return.
+     * @return The enabledGrants at the given index.
+     */
+    viam.app.v1.App.EnabledGrant getEnabledGrants(int index);
+    /**
+     * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+     * @return A list containing the enum numeric values on the wire for enabledGrants.
+     */
+    java.util.List
+    getEnabledGrantsValueList();
+    /**
+     * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+     * @param index The index of the value to return.
+     * @return The enum numeric value on the wire of enabledGrants at the given index.
+     */
+    int getEnabledGrantsValue(int index);
+  }
+  /**
+   * Protobuf type {@code viam.app.v1.OAuthConfig}
+   */
+  public  static final class OAuthConfig extends
+      com.google.protobuf.GeneratedMessageLite<
+          OAuthConfig, OAuthConfig.Builder> implements
+      // @@protoc_insertion_point(message_implements:viam.app.v1.OAuthConfig)
+      OAuthConfigOrBuilder {
+    private OAuthConfig() {
+      originUris_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
+      redirectUris_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
+      logoutUri_ = "";
+      enabledGrants_ = emptyIntList();
+    }
+    public static final int CLIENT_AUTHENTICATION_FIELD_NUMBER = 1;
+    private int clientAuthentication_;
+    /**
+     * .viam.app.v1.ClientAuthentication client_authentication = 1 [json_name = "clientAuthentication"];
+     * @return The enum numeric value on the wire for clientAuthentication.
+     */
+    @java.lang.Override
+    public int getClientAuthenticationValue() {
+      return clientAuthentication_;
+    }
+    /**
+     * .viam.app.v1.ClientAuthentication client_authentication = 1 [json_name = "clientAuthentication"];
+     * @return The clientAuthentication.
+     */
+    @java.lang.Override
+    public viam.app.v1.App.ClientAuthentication getClientAuthentication() {
+      viam.app.v1.App.ClientAuthentication result = viam.app.v1.App.ClientAuthentication.forNumber(clientAuthentication_);
+      return result == null ? viam.app.v1.App.ClientAuthentication.UNRECOGNIZED : result;
+    }
+    /**
+     * .viam.app.v1.ClientAuthentication client_authentication = 1 [json_name = "clientAuthentication"];
+     * @param value The enum numeric value on the wire for clientAuthentication to set.
+     */
+    private void setClientAuthenticationValue(int value) {
+        clientAuthentication_ = value;
+    }
+    /**
+     * .viam.app.v1.ClientAuthentication client_authentication = 1 [json_name = "clientAuthentication"];
+     * @param value The clientAuthentication to set.
+     */
+    private void setClientAuthentication(viam.app.v1.App.ClientAuthentication value) {
+      clientAuthentication_ = value.getNumber();
+
+    }
+    /**
+     * .viam.app.v1.ClientAuthentication client_authentication = 1 [json_name = "clientAuthentication"];
+     */
+    private void clearClientAuthentication() {
+
+      clientAuthentication_ = 0;
+    }
+
+    public static final int PKCE_FIELD_NUMBER = 2;
+    private int pkce_;
+    /**
+     * .viam.app.v1.PKCE pkce = 2 [json_name = "pkce"];
+     * @return The enum numeric value on the wire for pkce.
+     */
+    @java.lang.Override
+    public int getPkceValue() {
+      return pkce_;
+    }
+    /**
+     * .viam.app.v1.PKCE pkce = 2 [json_name = "pkce"];
+     * @return The pkce.
+     */
+    @java.lang.Override
+    public viam.app.v1.App.PKCE getPkce() {
+      viam.app.v1.App.PKCE result = viam.app.v1.App.PKCE.forNumber(pkce_);
+      return result == null ? viam.app.v1.App.PKCE.UNRECOGNIZED : result;
+    }
+    /**
+     * .viam.app.v1.PKCE pkce = 2 [json_name = "pkce"];
+     * @param value The enum numeric value on the wire for pkce to set.
+     */
+    private void setPkceValue(int value) {
+        pkce_ = value;
+    }
+    /**
+     * .viam.app.v1.PKCE pkce = 2 [json_name = "pkce"];
+     * @param value The pkce to set.
+     */
+    private void setPkce(viam.app.v1.App.PKCE value) {
+      pkce_ = value.getNumber();
+
+    }
+    /**
+     * .viam.app.v1.PKCE pkce = 2 [json_name = "pkce"];
+     */
+    private void clearPkce() {
+
+      pkce_ = 0;
+    }
+
+    public static final int URL_VALIDATION_FIELD_NUMBER = 3;
+    private int urlValidation_;
+    /**
+     * .viam.app.v1.URLValidation url_validation = 3 [json_name = "urlValidation"];
+     * @return The enum numeric value on the wire for urlValidation.
+     */
+    @java.lang.Override
+    public int getUrlValidationValue() {
+      return urlValidation_;
+    }
+    /**
+     * .viam.app.v1.URLValidation url_validation = 3 [json_name = "urlValidation"];
+     * @return The urlValidation.
+     */
+    @java.lang.Override
+    public viam.app.v1.App.URLValidation getUrlValidation() {
+      viam.app.v1.App.URLValidation result = viam.app.v1.App.URLValidation.forNumber(urlValidation_);
+      return result == null ? viam.app.v1.App.URLValidation.UNRECOGNIZED : result;
+    }
+    /**
+     * .viam.app.v1.URLValidation url_validation = 3 [json_name = "urlValidation"];
+     * @param value The enum numeric value on the wire for urlValidation to set.
+     */
+    private void setUrlValidationValue(int value) {
+        urlValidation_ = value;
+    }
+    /**
+     * .viam.app.v1.URLValidation url_validation = 3 [json_name = "urlValidation"];
+     * @param value The urlValidation to set.
+     */
+    private void setUrlValidation(viam.app.v1.App.URLValidation value) {
+      urlValidation_ = value.getNumber();
+
+    }
+    /**
+     * .viam.app.v1.URLValidation url_validation = 3 [json_name = "urlValidation"];
+     */
+    private void clearUrlValidation() {
+
+      urlValidation_ = 0;
+    }
+
+    public static final int ORIGIN_URIS_FIELD_NUMBER = 4;
+    private com.google.protobuf.Internal.ProtobufList originUris_;
+    /**
+     * repeated string origin_uris = 4 [json_name = "originUris"];
+     * @return A list containing the originUris.
+     */
+    @java.lang.Override
+    public java.util.List getOriginUrisList() {
+      return originUris_;
+    }
+    /**
+     * repeated string origin_uris = 4 [json_name = "originUris"];
+     * @return The count of originUris.
+     */
+    @java.lang.Override
+    public int getOriginUrisCount() {
+      return originUris_.size();
+    }
+    /**
+     * repeated string origin_uris = 4 [json_name = "originUris"];
+     * @param index The index of the element to return.
+     * @return The originUris at the given index.
+     */
+    @java.lang.Override
+    public java.lang.String getOriginUris(int index) {
+      return originUris_.get(index);
+    }
+    /**
+     * repeated string origin_uris = 4 [json_name = "originUris"];
+     * @param index The index of the value to return.
+     * @return The bytes of the originUris at the given index.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getOriginUrisBytes(int index) {
+      return com.google.protobuf.ByteString.copyFromUtf8(
+          originUris_.get(index));
+    }
+    private void ensureOriginUrisIsMutable() {
+      com.google.protobuf.Internal.ProtobufList tmp =
+          originUris_;  if (!tmp.isModifiable()) {
+        originUris_ =
+            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
+       }
+    }
+    /**
+     * repeated string origin_uris = 4 [json_name = "originUris"];
+     * @param index The index to set the value at.
+     * @param value The originUris to set.
+     */
+    private void setOriginUris(
+        int index, java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  ensureOriginUrisIsMutable();
+      originUris_.set(index, value);
+    }
+    /**
+     * repeated string origin_uris = 4 [json_name = "originUris"];
+     * @param value The originUris to add.
+     */
+    private void addOriginUris(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  ensureOriginUrisIsMutable();
+      originUris_.add(value);
+    }
+    /**
+     * repeated string origin_uris = 4 [json_name = "originUris"];
+     * @param values The originUris to add.
+     */
+    private void addAllOriginUris(
+        java.lang.Iterable values) {
+      ensureOriginUrisIsMutable();
+      com.google.protobuf.AbstractMessageLite.addAll(
+          values, originUris_);
+    }
+    /**
+     * repeated string origin_uris = 4 [json_name = "originUris"];
+     */
+    private void clearOriginUris() {
+      originUris_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
+    }
+    /**
+     * repeated string origin_uris = 4 [json_name = "originUris"];
+     * @param value The bytes of the originUris to add.
+     */
+    private void addOriginUrisBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      ensureOriginUrisIsMutable();
+      originUris_.add(value.toStringUtf8());
+    }
+
+    public static final int REDIRECT_URIS_FIELD_NUMBER = 5;
+    private com.google.protobuf.Internal.ProtobufList redirectUris_;
+    /**
+     * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+     * @return A list containing the redirectUris.
+     */
+    @java.lang.Override
+    public java.util.List getRedirectUrisList() {
+      return redirectUris_;
+    }
+    /**
+     * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+     * @return The count of redirectUris.
+     */
+    @java.lang.Override
+    public int getRedirectUrisCount() {
+      return redirectUris_.size();
+    }
+    /**
+     * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+     * @param index The index of the element to return.
+     * @return The redirectUris at the given index.
+     */
+    @java.lang.Override
+    public java.lang.String getRedirectUris(int index) {
+      return redirectUris_.get(index);
+    }
+    /**
+     * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+     * @param index The index of the value to return.
+     * @return The bytes of the redirectUris at the given index.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getRedirectUrisBytes(int index) {
+      return com.google.protobuf.ByteString.copyFromUtf8(
+          redirectUris_.get(index));
+    }
+    private void ensureRedirectUrisIsMutable() {
+      com.google.protobuf.Internal.ProtobufList tmp =
+          redirectUris_;  if (!tmp.isModifiable()) {
+        redirectUris_ =
+            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
+       }
+    }
+    /**
+     * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+     * @param index The index to set the value at.
+     * @param value The redirectUris to set.
+     */
+    private void setRedirectUris(
+        int index, java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  ensureRedirectUrisIsMutable();
+      redirectUris_.set(index, value);
+    }
+    /**
+     * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+     * @param value The redirectUris to add.
+     */
+    private void addRedirectUris(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  ensureRedirectUrisIsMutable();
+      redirectUris_.add(value);
+    }
+    /**
+     * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+     * @param values The redirectUris to add.
+     */
+    private void addAllRedirectUris(
+        java.lang.Iterable values) {
+      ensureRedirectUrisIsMutable();
+      com.google.protobuf.AbstractMessageLite.addAll(
+          values, redirectUris_);
+    }
+    /**
+     * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+     */
+    private void clearRedirectUris() {
+      redirectUris_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
+    }
+    /**
+     * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+     * @param value The bytes of the redirectUris to add.
+     */
+    private void addRedirectUrisBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      ensureRedirectUrisIsMutable();
+      redirectUris_.add(value.toStringUtf8());
+    }
+
+    public static final int LOGOUT_URI_FIELD_NUMBER = 6;
+    private java.lang.String logoutUri_;
+    /**
+     * string logout_uri = 6 [json_name = "logoutUri"];
+     * @return The logoutUri.
+     */
+    @java.lang.Override
+    public java.lang.String getLogoutUri() {
+      return logoutUri_;
+    }
+    /**
+     * string logout_uri = 6 [json_name = "logoutUri"];
+     * @return The bytes for logoutUri.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getLogoutUriBytes() {
+      return com.google.protobuf.ByteString.copyFromUtf8(logoutUri_);
+    }
+    /**
+     * string logout_uri = 6 [json_name = "logoutUri"];
+     * @param value The logoutUri to set.
+     */
+    private void setLogoutUri(
+        java.lang.String value) {
+      java.lang.Class valueClass = value.getClass();
+  
+      logoutUri_ = value;
+    }
+    /**
+     * string logout_uri = 6 [json_name = "logoutUri"];
+     */
+    private void clearLogoutUri() {
+
+      logoutUri_ = getDefaultInstance().getLogoutUri();
+    }
+    /**
+     * string logout_uri = 6 [json_name = "logoutUri"];
+     * @param value The bytes for logoutUri to set.
+     */
+    private void setLogoutUriBytes(
+        com.google.protobuf.ByteString value) {
+      checkByteStringIsUtf8(value);
+      logoutUri_ = value.toStringUtf8();
+
+    }
+
+    public static final int ENABLED_GRANTS_FIELD_NUMBER = 7;
+    private com.google.protobuf.Internal.IntList enabledGrants_;
+    private static final com.google.protobuf.Internal.IntListAdapter.IntConverter<
+        viam.app.v1.App.EnabledGrant> enabledGrants_converter_ =
+            new com.google.protobuf.Internal.IntListAdapter.IntConverter<
+                viam.app.v1.App.EnabledGrant>() {
+              @java.lang.Override
+              public viam.app.v1.App.EnabledGrant convert(int from) {
+                viam.app.v1.App.EnabledGrant result = viam.app.v1.App.EnabledGrant.forNumber(from);
+                return result == null ? viam.app.v1.App.EnabledGrant.UNRECOGNIZED : result;
+              }
+            };
+    /**
+     * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+     * @return A list containing the enabledGrants.
+     */
+    @java.lang.Override
+    public java.util.List getEnabledGrantsList() {
+      return new com.google.protobuf.Internal.IntListAdapter<
+          viam.app.v1.App.EnabledGrant>(enabledGrants_, enabledGrants_converter_);
+    }
+    /**
+     * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+     * @return The count of enabledGrants.
+     */
+    @java.lang.Override
+    public int getEnabledGrantsCount() {
+      return enabledGrants_.size();
+    }
+    /**
+     * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+     * @param index The index of the element to return.
+     * @return The enabledGrants at the given index.
+     */
+    @java.lang.Override
+    public viam.app.v1.App.EnabledGrant getEnabledGrants(int index) {
+      viam.app.v1.App.EnabledGrant result = viam.app.v1.App.EnabledGrant.forNumber(enabledGrants_.getInt(index));
+      return result == null ? viam.app.v1.App.EnabledGrant.UNRECOGNIZED : result;
+    }
+    /**
+     * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+     * @return A list containing the enum numeric values on the wire for enabledGrants.
+     */
+    @java.lang.Override
+    public java.util.List
+    getEnabledGrantsValueList() {
+      return enabledGrants_;
+    }
+    /**
+     * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+     * @param index The index of the value to return.
+     * @return The enum numeric value on the wire of enabledGrants at the given index.
+     */
+    @java.lang.Override
+    public int getEnabledGrantsValue(int index) {
+      return enabledGrants_.getInt(index);
+    }
+    private int enabledGrantsMemoizedSerializedSize;
+    private void ensureEnabledGrantsIsMutable() {
+      com.google.protobuf.Internal.IntList tmp = enabledGrants_;
+      if (!tmp.isModifiable()) {
+        enabledGrants_ =
+            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
+      }
+    }
+    /**
+     * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+     * @param index The index to set the value at.
+     * @param value The enabledGrants to set.
+     */
+    private void setEnabledGrants(
+        int index, viam.app.v1.App.EnabledGrant value) {
+      value.getClass();
+  ensureEnabledGrantsIsMutable();
+      enabledGrants_.setInt(index, value.getNumber());
+    }
+    /**
+     * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+     * @param value The enabledGrants to add.
+     */
+    private void addEnabledGrants(viam.app.v1.App.EnabledGrant value) {
+      value.getClass();
+  ensureEnabledGrantsIsMutable();
+      enabledGrants_.addInt(value.getNumber());
+    }
+    /**
+     * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+     * @param values The enabledGrants to add.
+     */
+    private void addAllEnabledGrants(
+        java.lang.Iterable values) {
+      ensureEnabledGrantsIsMutable();
+      for (viam.app.v1.App.EnabledGrant value : values) {
+        enabledGrants_.addInt(value.getNumber());
+      }
+    }
+    /**
+     * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+     */
+    private void clearEnabledGrants() {
+      enabledGrants_ = emptyIntList();
+    }
+    /**
+     * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+     * @param value The enum numeric value on the wire for enabledGrants to set.
+     */
+    private void setEnabledGrantsValue(
+        int index, int value) {
+      ensureEnabledGrantsIsMutable();
+      enabledGrants_.setInt(index, value);
+    }
+    /**
+     * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+     * @param value The enum numeric value on the wire for enabledGrants to add.
+     */
+    private void addEnabledGrantsValue(int value) {
+      ensureEnabledGrantsIsMutable();
+      enabledGrants_.addInt(value);
+    }
+    /**
+     * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+     * @param values The enum numeric values on the wire for enabledGrants to add.
+     */
+    private void addAllEnabledGrantsValue(
+        java.lang.Iterable values) {
+      ensureEnabledGrantsIsMutable();
+      for (int value : values) {
+        enabledGrants_.addInt(value);
+      }
+    }
+
+    public static viam.app.v1.App.OAuthConfig parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.OAuthConfig 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.v1.App.OAuthConfig parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.OAuthConfig 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.v1.App.OAuthConfig parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, data);
+    }
+    public static viam.app.v1.App.OAuthConfig 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.v1.App.OAuthConfig parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.OAuthConfig 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.v1.App.OAuthConfig parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
+    }
+
+    public static viam.app.v1.App.OAuthConfig parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
+    }
+    public static viam.app.v1.App.OAuthConfig parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageLite.parseFrom(
+          DEFAULT_INSTANCE, input);
+    }
+    public static viam.app.v1.App.OAuthConfig 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.v1.App.OAuthConfig prototype) {
+      return DEFAULT_INSTANCE.createBuilder(prototype);
+    }
+
+    /**
+     * Protobuf type {@code viam.app.v1.OAuthConfig}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageLite.Builder<
+          viam.app.v1.App.OAuthConfig, Builder> implements
+        // @@protoc_insertion_point(builder_implements:viam.app.v1.OAuthConfig)
+        viam.app.v1.App.OAuthConfigOrBuilder {
+      // Construct using viam.app.v1.App.OAuthConfig.newBuilder()
+      private Builder() {
+        super(DEFAULT_INSTANCE);
+      }
+
+
+      /**
+       * .viam.app.v1.ClientAuthentication client_authentication = 1 [json_name = "clientAuthentication"];
+       * @return The enum numeric value on the wire for clientAuthentication.
+       */
+      @java.lang.Override
+      public int getClientAuthenticationValue() {
+        return instance.getClientAuthenticationValue();
+      }
+      /**
+       * .viam.app.v1.ClientAuthentication client_authentication = 1 [json_name = "clientAuthentication"];
+       * @param value The clientAuthentication to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientAuthenticationValue(int value) {
+        copyOnWrite();
+        instance.setClientAuthenticationValue(value);
+        return this;
+      }
+      /**
+       * .viam.app.v1.ClientAuthentication client_authentication = 1 [json_name = "clientAuthentication"];
+       * @return The clientAuthentication.
+       */
+      @java.lang.Override
+      public viam.app.v1.App.ClientAuthentication getClientAuthentication() {
+        return instance.getClientAuthentication();
+      }
+      /**
+       * .viam.app.v1.ClientAuthentication client_authentication = 1 [json_name = "clientAuthentication"];
+       * @param value The enum numeric value on the wire for clientAuthentication to set.
+       * @return This builder for chaining.
+       */
+      public Builder setClientAuthentication(viam.app.v1.App.ClientAuthentication value) {
+        copyOnWrite();
+        instance.setClientAuthentication(value);
+        return this;
+      }
+      /**
+       * .viam.app.v1.ClientAuthentication client_authentication = 1 [json_name = "clientAuthentication"];
+       * @return This builder for chaining.
+       */
+      public Builder clearClientAuthentication() {
+        copyOnWrite();
+        instance.clearClientAuthentication();
+        return this;
+      }
+
+      /**
+       * .viam.app.v1.PKCE pkce = 2 [json_name = "pkce"];
+       * @return The enum numeric value on the wire for pkce.
+       */
+      @java.lang.Override
+      public int getPkceValue() {
+        return instance.getPkceValue();
+      }
+      /**
+       * .viam.app.v1.PKCE pkce = 2 [json_name = "pkce"];
+       * @param value The pkce to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPkceValue(int value) {
+        copyOnWrite();
+        instance.setPkceValue(value);
+        return this;
+      }
+      /**
+       * .viam.app.v1.PKCE pkce = 2 [json_name = "pkce"];
+       * @return The pkce.
+       */
+      @java.lang.Override
+      public viam.app.v1.App.PKCE getPkce() {
+        return instance.getPkce();
+      }
+      /**
+       * .viam.app.v1.PKCE pkce = 2 [json_name = "pkce"];
+       * @param value The enum numeric value on the wire for pkce to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPkce(viam.app.v1.App.PKCE value) {
+        copyOnWrite();
+        instance.setPkce(value);
+        return this;
+      }
+      /**
+       * .viam.app.v1.PKCE pkce = 2 [json_name = "pkce"];
+       * @return This builder for chaining.
+       */
+      public Builder clearPkce() {
+        copyOnWrite();
+        instance.clearPkce();
+        return this;
+      }
+
+      /**
+       * .viam.app.v1.URLValidation url_validation = 3 [json_name = "urlValidation"];
+       * @return The enum numeric value on the wire for urlValidation.
+       */
+      @java.lang.Override
+      public int getUrlValidationValue() {
+        return instance.getUrlValidationValue();
+      }
+      /**
+       * .viam.app.v1.URLValidation url_validation = 3 [json_name = "urlValidation"];
+       * @param value The urlValidation to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUrlValidationValue(int value) {
+        copyOnWrite();
+        instance.setUrlValidationValue(value);
+        return this;
+      }
+      /**
+       * .viam.app.v1.URLValidation url_validation = 3 [json_name = "urlValidation"];
+       * @return The urlValidation.
+       */
+      @java.lang.Override
+      public viam.app.v1.App.URLValidation getUrlValidation() {
+        return instance.getUrlValidation();
+      }
+      /**
+       * .viam.app.v1.URLValidation url_validation = 3 [json_name = "urlValidation"];
+       * @param value The enum numeric value on the wire for urlValidation to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUrlValidation(viam.app.v1.App.URLValidation value) {
+        copyOnWrite();
+        instance.setUrlValidation(value);
+        return this;
+      }
+      /**
+       * .viam.app.v1.URLValidation url_validation = 3 [json_name = "urlValidation"];
+       * @return This builder for chaining.
+       */
+      public Builder clearUrlValidation() {
+        copyOnWrite();
+        instance.clearUrlValidation();
+        return this;
+      }
+
+      /**
+       * repeated string origin_uris = 4 [json_name = "originUris"];
+       * @return A list containing the originUris.
+       */
+      @java.lang.Override
+      public java.util.List
+          getOriginUrisList() {
+        return java.util.Collections.unmodifiableList(
+            instance.getOriginUrisList());
+      }
+      /**
+       * repeated string origin_uris = 4 [json_name = "originUris"];
+       * @return The count of originUris.
+       */
+      @java.lang.Override
+      public int getOriginUrisCount() {
+        return instance.getOriginUrisCount();
+      }
+      /**
+       * repeated string origin_uris = 4 [json_name = "originUris"];
+       * @param index The index of the element to return.
+       * @return The originUris at the given index.
+       */
+      @java.lang.Override
+      public java.lang.String getOriginUris(int index) {
+        return instance.getOriginUris(index);
+      }
+      /**
+       * repeated string origin_uris = 4 [json_name = "originUris"];
+       * @param index The index of the value to return.
+       * @return The bytes of the originUris at the given index.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getOriginUrisBytes(int index) {
+        return instance.getOriginUrisBytes(index);
+      }
+      /**
+       * repeated string origin_uris = 4 [json_name = "originUris"];
+       * @param index The index to set the value at.
+       * @param value The originUris to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOriginUris(
+          int index, java.lang.String value) {
+        copyOnWrite();
+        instance.setOriginUris(index, value);
+        return this;
+      }
+      /**
+       * repeated string origin_uris = 4 [json_name = "originUris"];
+       * @param value The originUris to add.
+       * @return This builder for chaining.
+       */
+      public Builder addOriginUris(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.addOriginUris(value);
+        return this;
+      }
+      /**
+       * repeated string origin_uris = 4 [json_name = "originUris"];
+       * @param values The originUris to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllOriginUris(
+          java.lang.Iterable values) {
+        copyOnWrite();
+        instance.addAllOriginUris(values);
+        return this;
+      }
+      /**
+       * repeated string origin_uris = 4 [json_name = "originUris"];
+       * @return This builder for chaining.
+       */
+      public Builder clearOriginUris() {
+        copyOnWrite();
+        instance.clearOriginUris();
+        return this;
+      }
+      /**
+       * repeated string origin_uris = 4 [json_name = "originUris"];
+       * @param value The bytes of the originUris to add.
+       * @return This builder for chaining.
+       */
+      public Builder addOriginUrisBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.addOriginUrisBytes(value);
+        return this;
+      }
+
+      /**
+       * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+       * @return A list containing the redirectUris.
+       */
+      @java.lang.Override
+      public java.util.List
+          getRedirectUrisList() {
+        return java.util.Collections.unmodifiableList(
+            instance.getRedirectUrisList());
+      }
+      /**
+       * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+       * @return The count of redirectUris.
+       */
+      @java.lang.Override
+      public int getRedirectUrisCount() {
+        return instance.getRedirectUrisCount();
+      }
+      /**
+       * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+       * @param index The index of the element to return.
+       * @return The redirectUris at the given index.
+       */
+      @java.lang.Override
+      public java.lang.String getRedirectUris(int index) {
+        return instance.getRedirectUris(index);
+      }
+      /**
+       * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+       * @param index The index of the value to return.
+       * @return The bytes of the redirectUris at the given index.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getRedirectUrisBytes(int index) {
+        return instance.getRedirectUrisBytes(index);
+      }
+      /**
+       * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+       * @param index The index to set the value at.
+       * @param value The redirectUris to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRedirectUris(
+          int index, java.lang.String value) {
+        copyOnWrite();
+        instance.setRedirectUris(index, value);
+        return this;
+      }
+      /**
+       * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+       * @param value The redirectUris to add.
+       * @return This builder for chaining.
+       */
+      public Builder addRedirectUris(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.addRedirectUris(value);
+        return this;
+      }
+      /**
+       * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+       * @param values The redirectUris to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllRedirectUris(
+          java.lang.Iterable values) {
+        copyOnWrite();
+        instance.addAllRedirectUris(values);
+        return this;
+      }
+      /**
+       * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+       * @return This builder for chaining.
+       */
+      public Builder clearRedirectUris() {
+        copyOnWrite();
+        instance.clearRedirectUris();
+        return this;
+      }
+      /**
+       * repeated string redirect_uris = 5 [json_name = "redirectUris"];
+       * @param value The bytes of the redirectUris to add.
+       * @return This builder for chaining.
+       */
+      public Builder addRedirectUrisBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.addRedirectUrisBytes(value);
+        return this;
+      }
+
+      /**
+       * string logout_uri = 6 [json_name = "logoutUri"];
+       * @return The logoutUri.
+       */
+      @java.lang.Override
+      public java.lang.String getLogoutUri() {
+        return instance.getLogoutUri();
+      }
+      /**
+       * string logout_uri = 6 [json_name = "logoutUri"];
+       * @return The bytes for logoutUri.
+       */
+      @java.lang.Override
+      public com.google.protobuf.ByteString
+          getLogoutUriBytes() {
+        return instance.getLogoutUriBytes();
+      }
+      /**
+       * string logout_uri = 6 [json_name = "logoutUri"];
+       * @param value The logoutUri to set.
+       * @return This builder for chaining.
+       */
+      public Builder setLogoutUri(
+          java.lang.String value) {
+        copyOnWrite();
+        instance.setLogoutUri(value);
+        return this;
+      }
+      /**
+       * string logout_uri = 6 [json_name = "logoutUri"];
+       * @return This builder for chaining.
+       */
+      public Builder clearLogoutUri() {
+        copyOnWrite();
+        instance.clearLogoutUri();
+        return this;
+      }
+      /**
+       * string logout_uri = 6 [json_name = "logoutUri"];
+       * @param value The bytes for logoutUri to set.
+       * @return This builder for chaining.
+       */
+      public Builder setLogoutUriBytes(
+          com.google.protobuf.ByteString value) {
+        copyOnWrite();
+        instance.setLogoutUriBytes(value);
+        return this;
+      }
+
+      /**
+       * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+       * @return A list containing the enabledGrants.
+       */
+      @java.lang.Override
+      public java.util.List getEnabledGrantsList() {
+        return instance.getEnabledGrantsList();
+      }
+      /**
+       * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+       * @return The count of enabledGrants.
+       */
+      @java.lang.Override
+      public int getEnabledGrantsCount() {
+        return instance.getEnabledGrantsCount();
+      }
+      /**
+       * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+       * @param index The index of the element to return.
+       * @return The enabledGrants at the given index.
+       */
+      @java.lang.Override
+      public viam.app.v1.App.EnabledGrant getEnabledGrants(int index) {
+        return instance.getEnabledGrants(index);
+      }
+      /**
+       * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+       * @param index The index to set the value at.
+       * @param value The enabledGrants to set.
+       * @return This builder for chaining.
+       */
+      public Builder setEnabledGrants(
+          int index, viam.app.v1.App.EnabledGrant value) {
+        copyOnWrite();
+        instance.setEnabledGrants(index, value);
+        return this;
+      }
+      /**
+       * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+       * @param value The enabledGrants to add.
+       * @return This builder for chaining.
+       */
+      public Builder addEnabledGrants(viam.app.v1.App.EnabledGrant value) {
+        copyOnWrite();
+        instance.addEnabledGrants(value);
+        return this;
+      }
+      /**
+       * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+       * @param values The enabledGrants to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllEnabledGrants(
+          java.lang.Iterable values) {
+        copyOnWrite();
+        instance.addAllEnabledGrants(values);  return this;
+      }
+      /**
+       * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+       * @return This builder for chaining.
+       */
+      public Builder clearEnabledGrants() {
+        copyOnWrite();
+        instance.clearEnabledGrants();
+        return this;
+      }
+      /**
+       * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+       * @return A list containing the enum numeric values on the wire for enabledGrants.
+       */
+      @java.lang.Override
+      public java.util.List
+      getEnabledGrantsValueList() {
+        return java.util.Collections.unmodifiableList(
+            instance.getEnabledGrantsValueList());
+      }
+      /**
+       * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+       * @param index The index of the value to return.
+       * @return The enum numeric value on the wire of enabledGrants at the given index.
+       */
+      @java.lang.Override
+      public int getEnabledGrantsValue(int index) {
+        return instance.getEnabledGrantsValue(index);
+      }
+      /**
+       * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+       * @param index The index to set the value at.
+       * @param value The enum numeric value on the wire for enabledGrants to set.
+       * @return This builder for chaining.
+       */
+      public Builder setEnabledGrantsValue(
+          int index, int value) {
+        copyOnWrite();
+        instance.setEnabledGrantsValue(index, value);
+        return this;
+      }
+      /**
+       * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+       * @param value The enum numeric value on the wire for enabledGrants to add.
+       * @return This builder for chaining.
+       */
+      public Builder addEnabledGrantsValue(int value) {
+        copyOnWrite();
+        instance.addEnabledGrantsValue(value);
+        return this;
+      }
+      /**
+       * repeated .viam.app.v1.EnabledGrant enabled_grants = 7 [json_name = "enabledGrants"];
+       * @param values The enum numeric values on the wire for enabledGrants to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllEnabledGrantsValue(
+          java.lang.Iterable values) {
+        copyOnWrite();
+        instance.addAllEnabledGrantsValue(values);
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:viam.app.v1.OAuthConfig)
+    }
+    @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.v1.App.OAuthConfig();
+        }
+        case NEW_BUILDER: {
+          return new Builder();
+        }
+        case BUILD_MESSAGE_INFO: {
+            java.lang.Object[] objects = new java.lang.Object[] {
+              "clientAuthentication_",
+              "pkce_",
+              "urlValidation_",
+              "originUris_",
+              "redirectUris_",
+              "logoutUri_",
+              "enabledGrants_",
+            };
+            java.lang.String info =
+                "\u0000\u0007\u0000\u0000\u0001\u0007\u0007\u0000\u0003\u0000\u0001\f\u0002\f\u0003" +
+                "\f\u0004\u021a\u0005\u021a\u0006\u0208\u0007,";
+            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.v1.App.OAuthConfig.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.v1.OAuthConfig)
+    private static final viam.app.v1.App.OAuthConfig DEFAULT_INSTANCE;
+    static {
+      OAuthConfig defaultInstance = new OAuthConfig();
+      // New instances are implicitly immutable so no need to make
+      // immutable.
+      DEFAULT_INSTANCE = defaultInstance;
+      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+        OAuthConfig.class, defaultInstance);
+    }
+
+    public static viam.app.v1.App.OAuthConfig getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static volatile com.google.protobuf.Parser PARSER;
+
+    public static com.google.protobuf.Parser parser() {
+      return DEFAULT_INSTANCE.getParserForType();
+    }
+  }
+
 
   static {
   }
diff --git a/core/sdk/src/main/gen/viam/app/v1/AppServiceGrpc.java b/core/sdk/src/main/gen/viam/app/v1/AppServiceGrpc.java
index a967213b9..4758ec099 100644
--- a/core/sdk/src/main/gen/viam/app/v1/AppServiceGrpc.java
+++ b/core/sdk/src/main/gen/viam/app/v1/AppServiceGrpc.java
@@ -648,6 +648,276 @@ viam.app.v1.App.OrganizationGetSupportEmailResponse> getOrganizationGetSupportEm
     return getOrganizationGetSupportEmailMethod;
   }
 
+  private static volatile io.grpc.MethodDescriptor getOrganizationSetLogoMethod;
+
+  @io.grpc.stub.annotations.RpcMethod(
+      fullMethodName = SERVICE_NAME + '/' + "OrganizationSetLogo",
+      requestType = viam.app.v1.App.OrganizationSetLogoRequest.class,
+      responseType = viam.app.v1.App.OrganizationSetLogoResponse.class,
+      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+  public static io.grpc.MethodDescriptor getOrganizationSetLogoMethod() {
+    io.grpc.MethodDescriptor getOrganizationSetLogoMethod;
+    if ((getOrganizationSetLogoMethod = AppServiceGrpc.getOrganizationSetLogoMethod) == null) {
+      synchronized (AppServiceGrpc.class) {
+        if ((getOrganizationSetLogoMethod = AppServiceGrpc.getOrganizationSetLogoMethod) == null) {
+          AppServiceGrpc.getOrganizationSetLogoMethod = getOrganizationSetLogoMethod =
+              io.grpc.MethodDescriptor.newBuilder()
+              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "OrganizationSetLogo"))
+              .setSampledToLocalTracing(true)
+              .setRequestMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(
+                  viam.app.v1.App.OrganizationSetLogoRequest.getDefaultInstance()))
+              .setResponseMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(
+                  viam.app.v1.App.OrganizationSetLogoResponse.getDefaultInstance()))
+              .build();
+        }
+      }
+    }
+    return getOrganizationSetLogoMethod;
+  }
+
+  private static volatile io.grpc.MethodDescriptor getOrganizationGetLogoMethod;
+
+  @io.grpc.stub.annotations.RpcMethod(
+      fullMethodName = SERVICE_NAME + '/' + "OrganizationGetLogo",
+      requestType = viam.app.v1.App.OrganizationGetLogoRequest.class,
+      responseType = viam.app.v1.App.OrganizationGetLogoResponse.class,
+      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+  public static io.grpc.MethodDescriptor getOrganizationGetLogoMethod() {
+    io.grpc.MethodDescriptor getOrganizationGetLogoMethod;
+    if ((getOrganizationGetLogoMethod = AppServiceGrpc.getOrganizationGetLogoMethod) == null) {
+      synchronized (AppServiceGrpc.class) {
+        if ((getOrganizationGetLogoMethod = AppServiceGrpc.getOrganizationGetLogoMethod) == null) {
+          AppServiceGrpc.getOrganizationGetLogoMethod = getOrganizationGetLogoMethod =
+              io.grpc.MethodDescriptor.newBuilder()
+              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "OrganizationGetLogo"))
+              .setSampledToLocalTracing(true)
+              .setRequestMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(
+                  viam.app.v1.App.OrganizationGetLogoRequest.getDefaultInstance()))
+              .setResponseMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(
+                  viam.app.v1.App.OrganizationGetLogoResponse.getDefaultInstance()))
+              .build();
+        }
+      }
+    }
+    return getOrganizationGetLogoMethod;
+  }
+
+  private static volatile io.grpc.MethodDescriptor getEnableAuthServiceMethod;
+
+  @io.grpc.stub.annotations.RpcMethod(
+      fullMethodName = SERVICE_NAME + '/' + "EnableAuthService",
+      requestType = viam.app.v1.App.EnableAuthServiceRequest.class,
+      responseType = viam.app.v1.App.EnableAuthServiceResponse.class,
+      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+  public static io.grpc.MethodDescriptor getEnableAuthServiceMethod() {
+    io.grpc.MethodDescriptor getEnableAuthServiceMethod;
+    if ((getEnableAuthServiceMethod = AppServiceGrpc.getEnableAuthServiceMethod) == null) {
+      synchronized (AppServiceGrpc.class) {
+        if ((getEnableAuthServiceMethod = AppServiceGrpc.getEnableAuthServiceMethod) == null) {
+          AppServiceGrpc.getEnableAuthServiceMethod = getEnableAuthServiceMethod =
+              io.grpc.MethodDescriptor.newBuilder()
+              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "EnableAuthService"))
+              .setSampledToLocalTracing(true)
+              .setRequestMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(
+                  viam.app.v1.App.EnableAuthServiceRequest.getDefaultInstance()))
+              .setResponseMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(
+                  viam.app.v1.App.EnableAuthServiceResponse.getDefaultInstance()))
+              .build();
+        }
+      }
+    }
+    return getEnableAuthServiceMethod;
+  }
+
+  private static volatile io.grpc.MethodDescriptor getDisableAuthServiceMethod;
+
+  @io.grpc.stub.annotations.RpcMethod(
+      fullMethodName = SERVICE_NAME + '/' + "DisableAuthService",
+      requestType = viam.app.v1.App.DisableAuthServiceRequest.class,
+      responseType = viam.app.v1.App.DisableAuthServiceResponse.class,
+      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+  public static io.grpc.MethodDescriptor getDisableAuthServiceMethod() {
+    io.grpc.MethodDescriptor getDisableAuthServiceMethod;
+    if ((getDisableAuthServiceMethod = AppServiceGrpc.getDisableAuthServiceMethod) == null) {
+      synchronized (AppServiceGrpc.class) {
+        if ((getDisableAuthServiceMethod = AppServiceGrpc.getDisableAuthServiceMethod) == null) {
+          AppServiceGrpc.getDisableAuthServiceMethod = getDisableAuthServiceMethod =
+              io.grpc.MethodDescriptor.newBuilder()
+              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "DisableAuthService"))
+              .setSampledToLocalTracing(true)
+              .setRequestMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(
+                  viam.app.v1.App.DisableAuthServiceRequest.getDefaultInstance()))
+              .setResponseMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(
+                  viam.app.v1.App.DisableAuthServiceResponse.getDefaultInstance()))
+              .build();
+        }
+      }
+    }
+    return getDisableAuthServiceMethod;
+  }
+
+  private static volatile io.grpc.MethodDescriptor getCreateOAuthAppMethod;
+
+  @io.grpc.stub.annotations.RpcMethod(
+      fullMethodName = SERVICE_NAME + '/' + "CreateOAuthApp",
+      requestType = viam.app.v1.App.CreateOAuthAppRequest.class,
+      responseType = viam.app.v1.App.CreateOAuthAppResponse.class,
+      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+  public static io.grpc.MethodDescriptor getCreateOAuthAppMethod() {
+    io.grpc.MethodDescriptor getCreateOAuthAppMethod;
+    if ((getCreateOAuthAppMethod = AppServiceGrpc.getCreateOAuthAppMethod) == null) {
+      synchronized (AppServiceGrpc.class) {
+        if ((getCreateOAuthAppMethod = AppServiceGrpc.getCreateOAuthAppMethod) == null) {
+          AppServiceGrpc.getCreateOAuthAppMethod = getCreateOAuthAppMethod =
+              io.grpc.MethodDescriptor.newBuilder()
+              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "CreateOAuthApp"))
+              .setSampledToLocalTracing(true)
+              .setRequestMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(
+                  viam.app.v1.App.CreateOAuthAppRequest.getDefaultInstance()))
+              .setResponseMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(
+                  viam.app.v1.App.CreateOAuthAppResponse.getDefaultInstance()))
+              .build();
+        }
+      }
+    }
+    return getCreateOAuthAppMethod;
+  }
+
+  private static volatile io.grpc.MethodDescriptor getReadOAuthAppMethod;
+
+  @io.grpc.stub.annotations.RpcMethod(
+      fullMethodName = SERVICE_NAME + '/' + "ReadOAuthApp",
+      requestType = viam.app.v1.App.ReadOAuthAppRequest.class,
+      responseType = viam.app.v1.App.ReadOAuthAppResponse.class,
+      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+  public static io.grpc.MethodDescriptor getReadOAuthAppMethod() {
+    io.grpc.MethodDescriptor getReadOAuthAppMethod;
+    if ((getReadOAuthAppMethod = AppServiceGrpc.getReadOAuthAppMethod) == null) {
+      synchronized (AppServiceGrpc.class) {
+        if ((getReadOAuthAppMethod = AppServiceGrpc.getReadOAuthAppMethod) == null) {
+          AppServiceGrpc.getReadOAuthAppMethod = getReadOAuthAppMethod =
+              io.grpc.MethodDescriptor.newBuilder()
+              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "ReadOAuthApp"))
+              .setSampledToLocalTracing(true)
+              .setRequestMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(
+                  viam.app.v1.App.ReadOAuthAppRequest.getDefaultInstance()))
+              .setResponseMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(
+                  viam.app.v1.App.ReadOAuthAppResponse.getDefaultInstance()))
+              .build();
+        }
+      }
+    }
+    return getReadOAuthAppMethod;
+  }
+
+  private static volatile io.grpc.MethodDescriptor getUpdateOAuthAppMethod;
+
+  @io.grpc.stub.annotations.RpcMethod(
+      fullMethodName = SERVICE_NAME + '/' + "UpdateOAuthApp",
+      requestType = viam.app.v1.App.UpdateOAuthAppRequest.class,
+      responseType = viam.app.v1.App.UpdateOAuthAppResponse.class,
+      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+  public static io.grpc.MethodDescriptor getUpdateOAuthAppMethod() {
+    io.grpc.MethodDescriptor getUpdateOAuthAppMethod;
+    if ((getUpdateOAuthAppMethod = AppServiceGrpc.getUpdateOAuthAppMethod) == null) {
+      synchronized (AppServiceGrpc.class) {
+        if ((getUpdateOAuthAppMethod = AppServiceGrpc.getUpdateOAuthAppMethod) == null) {
+          AppServiceGrpc.getUpdateOAuthAppMethod = getUpdateOAuthAppMethod =
+              io.grpc.MethodDescriptor.newBuilder()
+              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "UpdateOAuthApp"))
+              .setSampledToLocalTracing(true)
+              .setRequestMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(
+                  viam.app.v1.App.UpdateOAuthAppRequest.getDefaultInstance()))
+              .setResponseMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(
+                  viam.app.v1.App.UpdateOAuthAppResponse.getDefaultInstance()))
+              .build();
+        }
+      }
+    }
+    return getUpdateOAuthAppMethod;
+  }
+
+  private static volatile io.grpc.MethodDescriptor getDeleteOAuthAppMethod;
+
+  @io.grpc.stub.annotations.RpcMethod(
+      fullMethodName = SERVICE_NAME + '/' + "DeleteOAuthApp",
+      requestType = viam.app.v1.App.DeleteOAuthAppRequest.class,
+      responseType = viam.app.v1.App.DeleteOAuthAppResponse.class,
+      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+  public static io.grpc.MethodDescriptor getDeleteOAuthAppMethod() {
+    io.grpc.MethodDescriptor getDeleteOAuthAppMethod;
+    if ((getDeleteOAuthAppMethod = AppServiceGrpc.getDeleteOAuthAppMethod) == null) {
+      synchronized (AppServiceGrpc.class) {
+        if ((getDeleteOAuthAppMethod = AppServiceGrpc.getDeleteOAuthAppMethod) == null) {
+          AppServiceGrpc.getDeleteOAuthAppMethod = getDeleteOAuthAppMethod =
+              io.grpc.MethodDescriptor.newBuilder()
+              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "DeleteOAuthApp"))
+              .setSampledToLocalTracing(true)
+              .setRequestMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(
+                  viam.app.v1.App.DeleteOAuthAppRequest.getDefaultInstance()))
+              .setResponseMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(
+                  viam.app.v1.App.DeleteOAuthAppResponse.getDefaultInstance()))
+              .build();
+        }
+      }
+    }
+    return getDeleteOAuthAppMethod;
+  }
+
+  private static volatile io.grpc.MethodDescriptor getListOAuthAppsMethod;
+
+  @io.grpc.stub.annotations.RpcMethod(
+      fullMethodName = SERVICE_NAME + '/' + "ListOAuthApps",
+      requestType = viam.app.v1.App.ListOAuthAppsRequest.class,
+      responseType = viam.app.v1.App.ListOAuthAppsResponse.class,
+      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+  public static io.grpc.MethodDescriptor getListOAuthAppsMethod() {
+    io.grpc.MethodDescriptor getListOAuthAppsMethod;
+    if ((getListOAuthAppsMethod = AppServiceGrpc.getListOAuthAppsMethod) == null) {
+      synchronized (AppServiceGrpc.class) {
+        if ((getListOAuthAppsMethod = AppServiceGrpc.getListOAuthAppsMethod) == null) {
+          AppServiceGrpc.getListOAuthAppsMethod = getListOAuthAppsMethod =
+              io.grpc.MethodDescriptor.newBuilder()
+              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+              .setFullMethodName(generateFullMethodName(SERVICE_NAME, "ListOAuthApps"))
+              .setSampledToLocalTracing(true)
+              .setRequestMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(
+                  viam.app.v1.App.ListOAuthAppsRequest.getDefaultInstance()))
+              .setResponseMarshaller(io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(
+                  viam.app.v1.App.ListOAuthAppsResponse.getDefaultInstance()))
+              .build();
+        }
+      }
+    }
+    return getListOAuthAppsMethod;
+  }
+
   private static volatile io.grpc.MethodDescriptor getCreateLocationMethod;
 
@@ -2631,6 +2901,69 @@ default void organizationGetSupportEmail(viam.app.v1.App.OrganizationGetSupportE
       io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getOrganizationGetSupportEmailMethod(), responseObserver);
     }
 
+    /**
+     */
+    default void organizationSetLogo(viam.app.v1.App.OrganizationSetLogoRequest request,
+        io.grpc.stub.StreamObserver responseObserver) {
+      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getOrganizationSetLogoMethod(), responseObserver);
+    }
+
+    /**
+     */
+    default void organizationGetLogo(viam.app.v1.App.OrganizationGetLogoRequest request,
+        io.grpc.stub.StreamObserver responseObserver) {
+      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getOrganizationGetLogoMethod(), responseObserver);
+    }
+
+    /**
+     */
+    default void enableAuthService(viam.app.v1.App.EnableAuthServiceRequest request,
+        io.grpc.stub.StreamObserver responseObserver) {
+      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getEnableAuthServiceMethod(), responseObserver);
+    }
+
+    /**
+     */
+    default void disableAuthService(viam.app.v1.App.DisableAuthServiceRequest request,
+        io.grpc.stub.StreamObserver responseObserver) {
+      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getDisableAuthServiceMethod(), responseObserver);
+    }
+
+    /**
+     */
+    default void createOAuthApp(viam.app.v1.App.CreateOAuthAppRequest request,
+        io.grpc.stub.StreamObserver responseObserver) {
+      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getCreateOAuthAppMethod(), responseObserver);
+    }
+
+    /**
+     */
+    default void readOAuthApp(viam.app.v1.App.ReadOAuthAppRequest request,
+        io.grpc.stub.StreamObserver responseObserver) {
+      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getReadOAuthAppMethod(), responseObserver);
+    }
+
+    /**
+     */
+    default void updateOAuthApp(viam.app.v1.App.UpdateOAuthAppRequest request,
+        io.grpc.stub.StreamObserver responseObserver) {
+      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getUpdateOAuthAppMethod(), responseObserver);
+    }
+
+    /**
+     */
+    default void deleteOAuthApp(viam.app.v1.App.DeleteOAuthAppRequest request,
+        io.grpc.stub.StreamObserver responseObserver) {
+      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getDeleteOAuthAppMethod(), responseObserver);
+    }
+
+    /**
+     */
+    default void listOAuthApps(viam.app.v1.App.ListOAuthAppsRequest request,
+        io.grpc.stub.StreamObserver responseObserver) {
+      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListOAuthAppsMethod(), responseObserver);
+    }
+
     /**
      * 
      * Create a location
@@ -3404,6 +3737,78 @@ public void organizationGetSupportEmail(viam.app.v1.App.OrganizationGetSupportEm
           getChannel().newCall(getOrganizationGetSupportEmailMethod(), getCallOptions()), request, responseObserver);
     }
 
+    /**
+     */
+    public void organizationSetLogo(viam.app.v1.App.OrganizationSetLogoRequest request,
+        io.grpc.stub.StreamObserver responseObserver) {
+      io.grpc.stub.ClientCalls.asyncUnaryCall(
+          getChannel().newCall(getOrganizationSetLogoMethod(), getCallOptions()), request, responseObserver);
+    }
+
+    /**
+     */
+    public void organizationGetLogo(viam.app.v1.App.OrganizationGetLogoRequest request,
+        io.grpc.stub.StreamObserver responseObserver) {
+      io.grpc.stub.ClientCalls.asyncUnaryCall(
+          getChannel().newCall(getOrganizationGetLogoMethod(), getCallOptions()), request, responseObserver);
+    }
+
+    /**
+     */
+    public void enableAuthService(viam.app.v1.App.EnableAuthServiceRequest request,
+        io.grpc.stub.StreamObserver responseObserver) {
+      io.grpc.stub.ClientCalls.asyncUnaryCall(
+          getChannel().newCall(getEnableAuthServiceMethod(), getCallOptions()), request, responseObserver);
+    }
+
+    /**
+     */
+    public void disableAuthService(viam.app.v1.App.DisableAuthServiceRequest request,
+        io.grpc.stub.StreamObserver responseObserver) {
+      io.grpc.stub.ClientCalls.asyncUnaryCall(
+          getChannel().newCall(getDisableAuthServiceMethod(), getCallOptions()), request, responseObserver);
+    }
+
+    /**
+     */
+    public void createOAuthApp(viam.app.v1.App.CreateOAuthAppRequest request,
+        io.grpc.stub.StreamObserver responseObserver) {
+      io.grpc.stub.ClientCalls.asyncUnaryCall(
+          getChannel().newCall(getCreateOAuthAppMethod(), getCallOptions()), request, responseObserver);
+    }
+
+    /**
+     */
+    public void readOAuthApp(viam.app.v1.App.ReadOAuthAppRequest request,
+        io.grpc.stub.StreamObserver responseObserver) {
+      io.grpc.stub.ClientCalls.asyncUnaryCall(
+          getChannel().newCall(getReadOAuthAppMethod(), getCallOptions()), request, responseObserver);
+    }
+
+    /**
+     */
+    public void updateOAuthApp(viam.app.v1.App.UpdateOAuthAppRequest request,
+        io.grpc.stub.StreamObserver responseObserver) {
+      io.grpc.stub.ClientCalls.asyncUnaryCall(
+          getChannel().newCall(getUpdateOAuthAppMethod(), getCallOptions()), request, responseObserver);
+    }
+
+    /**
+     */
+    public void deleteOAuthApp(viam.app.v1.App.DeleteOAuthAppRequest request,
+        io.grpc.stub.StreamObserver responseObserver) {
+      io.grpc.stub.ClientCalls.asyncUnaryCall(
+          getChannel().newCall(getDeleteOAuthAppMethod(), getCallOptions()), request, responseObserver);
+    }
+
+    /**
+     */
+    public void listOAuthApps(viam.app.v1.App.ListOAuthAppsRequest request,
+        io.grpc.stub.StreamObserver responseObserver) {
+      io.grpc.stub.ClientCalls.asyncUnaryCall(
+          getChannel().newCall(getListOAuthAppsMethod(), getCallOptions()), request, responseObserver);
+    }
+
     /**
      * 
      * Create a location
@@ -4200,6 +4605,69 @@ public viam.app.v1.App.OrganizationGetSupportEmailResponse organizationGetSuppor
           getChannel(), getOrganizationGetSupportEmailMethod(), getCallOptions(), request);
     }
 
+    /**
+     */
+    public viam.app.v1.App.OrganizationSetLogoResponse organizationSetLogo(viam.app.v1.App.OrganizationSetLogoRequest request) {
+      return io.grpc.stub.ClientCalls.blockingUnaryCall(
+          getChannel(), getOrganizationSetLogoMethod(), getCallOptions(), request);
+    }
+
+    /**
+     */
+    public viam.app.v1.App.OrganizationGetLogoResponse organizationGetLogo(viam.app.v1.App.OrganizationGetLogoRequest request) {
+      return io.grpc.stub.ClientCalls.blockingUnaryCall(
+          getChannel(), getOrganizationGetLogoMethod(), getCallOptions(), request);
+    }
+
+    /**
+     */
+    public viam.app.v1.App.EnableAuthServiceResponse enableAuthService(viam.app.v1.App.EnableAuthServiceRequest request) {
+      return io.grpc.stub.ClientCalls.blockingUnaryCall(
+          getChannel(), getEnableAuthServiceMethod(), getCallOptions(), request);
+    }
+
+    /**
+     */
+    public viam.app.v1.App.DisableAuthServiceResponse disableAuthService(viam.app.v1.App.DisableAuthServiceRequest request) {
+      return io.grpc.stub.ClientCalls.blockingUnaryCall(
+          getChannel(), getDisableAuthServiceMethod(), getCallOptions(), request);
+    }
+
+    /**
+     */
+    public viam.app.v1.App.CreateOAuthAppResponse createOAuthApp(viam.app.v1.App.CreateOAuthAppRequest request) {
+      return io.grpc.stub.ClientCalls.blockingUnaryCall(
+          getChannel(), getCreateOAuthAppMethod(), getCallOptions(), request);
+    }
+
+    /**
+     */
+    public viam.app.v1.App.ReadOAuthAppResponse readOAuthApp(viam.app.v1.App.ReadOAuthAppRequest request) {
+      return io.grpc.stub.ClientCalls.blockingUnaryCall(
+          getChannel(), getReadOAuthAppMethod(), getCallOptions(), request);
+    }
+
+    /**
+     */
+    public viam.app.v1.App.UpdateOAuthAppResponse updateOAuthApp(viam.app.v1.App.UpdateOAuthAppRequest request) {
+      return io.grpc.stub.ClientCalls.blockingUnaryCall(
+          getChannel(), getUpdateOAuthAppMethod(), getCallOptions(), request);
+    }
+
+    /**
+     */
+    public viam.app.v1.App.DeleteOAuthAppResponse deleteOAuthApp(viam.app.v1.App.DeleteOAuthAppRequest request) {
+      return io.grpc.stub.ClientCalls.blockingUnaryCall(
+          getChannel(), getDeleteOAuthAppMethod(), getCallOptions(), request);
+    }
+
+    /**
+     */
+    public viam.app.v1.App.ListOAuthAppsResponse listOAuthApps(viam.app.v1.App.ListOAuthAppsRequest request) {
+      return io.grpc.stub.ClientCalls.blockingUnaryCall(
+          getChannel(), getListOAuthAppsMethod(), getCallOptions(), request);
+    }
+
     /**
      * 
      * Create a location
@@ -4953,6 +5421,78 @@ public com.google.common.util.concurrent.ListenableFuture organizationSetLogo(
+        viam.app.v1.App.OrganizationSetLogoRequest request) {
+      return io.grpc.stub.ClientCalls.futureUnaryCall(
+          getChannel().newCall(getOrganizationSetLogoMethod(), getCallOptions()), request);
+    }
+
+    /**
+     */
+    public com.google.common.util.concurrent.ListenableFuture organizationGetLogo(
+        viam.app.v1.App.OrganizationGetLogoRequest request) {
+      return io.grpc.stub.ClientCalls.futureUnaryCall(
+          getChannel().newCall(getOrganizationGetLogoMethod(), getCallOptions()), request);
+    }
+
+    /**
+     */
+    public com.google.common.util.concurrent.ListenableFuture enableAuthService(
+        viam.app.v1.App.EnableAuthServiceRequest request) {
+      return io.grpc.stub.ClientCalls.futureUnaryCall(
+          getChannel().newCall(getEnableAuthServiceMethod(), getCallOptions()), request);
+    }
+
+    /**
+     */
+    public com.google.common.util.concurrent.ListenableFuture disableAuthService(
+        viam.app.v1.App.DisableAuthServiceRequest request) {
+      return io.grpc.stub.ClientCalls.futureUnaryCall(
+          getChannel().newCall(getDisableAuthServiceMethod(), getCallOptions()), request);
+    }
+
+    /**
+     */
+    public com.google.common.util.concurrent.ListenableFuture createOAuthApp(
+        viam.app.v1.App.CreateOAuthAppRequest request) {
+      return io.grpc.stub.ClientCalls.futureUnaryCall(
+          getChannel().newCall(getCreateOAuthAppMethod(), getCallOptions()), request);
+    }
+
+    /**
+     */
+    public com.google.common.util.concurrent.ListenableFuture readOAuthApp(
+        viam.app.v1.App.ReadOAuthAppRequest request) {
+      return io.grpc.stub.ClientCalls.futureUnaryCall(
+          getChannel().newCall(getReadOAuthAppMethod(), getCallOptions()), request);
+    }
+
+    /**
+     */
+    public com.google.common.util.concurrent.ListenableFuture updateOAuthApp(
+        viam.app.v1.App.UpdateOAuthAppRequest request) {
+      return io.grpc.stub.ClientCalls.futureUnaryCall(
+          getChannel().newCall(getUpdateOAuthAppMethod(), getCallOptions()), request);
+    }
+
+    /**
+     */
+    public com.google.common.util.concurrent.ListenableFuture deleteOAuthApp(
+        viam.app.v1.App.DeleteOAuthAppRequest request) {
+      return io.grpc.stub.ClientCalls.futureUnaryCall(
+          getChannel().newCall(getDeleteOAuthAppMethod(), getCallOptions()), request);
+    }
+
+    /**
+     */
+    public com.google.common.util.concurrent.ListenableFuture listOAuthApps(
+        viam.app.v1.App.ListOAuthAppsRequest request) {
+      return io.grpc.stub.ClientCalls.futureUnaryCall(
+          getChannel().newCall(getListOAuthAppsMethod(), getCallOptions()), request);
+    }
+
     /**
      * 
      * Create a location
@@ -5543,64 +6083,73 @@ public com.google.common.util.concurrent.ListenableFuture implements
       io.grpc.stub.ServerCalls.UnaryMethod,
@@ -5703,6 +6252,42 @@ public void invoke(Req request, io.grpc.stub.StreamObserver responseObserv
           serviceImpl.organizationGetSupportEmail((viam.app.v1.App.OrganizationGetSupportEmailRequest) request,
               (io.grpc.stub.StreamObserver) responseObserver);
           break;
+        case METHODID_ORGANIZATION_SET_LOGO:
+          serviceImpl.organizationSetLogo((viam.app.v1.App.OrganizationSetLogoRequest) request,
+              (io.grpc.stub.StreamObserver) responseObserver);
+          break;
+        case METHODID_ORGANIZATION_GET_LOGO:
+          serviceImpl.organizationGetLogo((viam.app.v1.App.OrganizationGetLogoRequest) request,
+              (io.grpc.stub.StreamObserver) responseObserver);
+          break;
+        case METHODID_ENABLE_AUTH_SERVICE:
+          serviceImpl.enableAuthService((viam.app.v1.App.EnableAuthServiceRequest) request,
+              (io.grpc.stub.StreamObserver) responseObserver);
+          break;
+        case METHODID_DISABLE_AUTH_SERVICE:
+          serviceImpl.disableAuthService((viam.app.v1.App.DisableAuthServiceRequest) request,
+              (io.grpc.stub.StreamObserver) responseObserver);
+          break;
+        case METHODID_CREATE_OAUTH_APP:
+          serviceImpl.createOAuthApp((viam.app.v1.App.CreateOAuthAppRequest) request,
+              (io.grpc.stub.StreamObserver) responseObserver);
+          break;
+        case METHODID_READ_OAUTH_APP:
+          serviceImpl.readOAuthApp((viam.app.v1.App.ReadOAuthAppRequest) request,
+              (io.grpc.stub.StreamObserver) responseObserver);
+          break;
+        case METHODID_UPDATE_OAUTH_APP:
+          serviceImpl.updateOAuthApp((viam.app.v1.App.UpdateOAuthAppRequest) request,
+              (io.grpc.stub.StreamObserver) responseObserver);
+          break;
+        case METHODID_DELETE_OAUTH_APP:
+          serviceImpl.deleteOAuthApp((viam.app.v1.App.DeleteOAuthAppRequest) request,
+              (io.grpc.stub.StreamObserver) responseObserver);
+          break;
+        case METHODID_LIST_OAUTH_APPS:
+          serviceImpl.listOAuthApps((viam.app.v1.App.ListOAuthAppsRequest) request,
+              (io.grpc.stub.StreamObserver) responseObserver);
+          break;
         case METHODID_CREATE_LOCATION:
           serviceImpl.createLocation((viam.app.v1.App.CreateLocationRequest) request,
               (io.grpc.stub.StreamObserver) responseObserver);
@@ -6099,6 +6684,69 @@ public static final io.grpc.ServerServiceDefinition bindService(AsyncService ser
               viam.app.v1.App.OrganizationGetSupportEmailRequest,
               viam.app.v1.App.OrganizationGetSupportEmailResponse>(
                 service, METHODID_ORGANIZATION_GET_SUPPORT_EMAIL)))
+        .addMethod(
+          getOrganizationSetLogoMethod(),
+          io.grpc.stub.ServerCalls.asyncUnaryCall(
+            new MethodHandlers<
+              viam.app.v1.App.OrganizationSetLogoRequest,
+              viam.app.v1.App.OrganizationSetLogoResponse>(
+                service, METHODID_ORGANIZATION_SET_LOGO)))
+        .addMethod(
+          getOrganizationGetLogoMethod(),
+          io.grpc.stub.ServerCalls.asyncUnaryCall(
+            new MethodHandlers<
+              viam.app.v1.App.OrganizationGetLogoRequest,
+              viam.app.v1.App.OrganizationGetLogoResponse>(
+                service, METHODID_ORGANIZATION_GET_LOGO)))
+        .addMethod(
+          getEnableAuthServiceMethod(),
+          io.grpc.stub.ServerCalls.asyncUnaryCall(
+            new MethodHandlers<
+              viam.app.v1.App.EnableAuthServiceRequest,
+              viam.app.v1.App.EnableAuthServiceResponse>(
+                service, METHODID_ENABLE_AUTH_SERVICE)))
+        .addMethod(
+          getDisableAuthServiceMethod(),
+          io.grpc.stub.ServerCalls.asyncUnaryCall(
+            new MethodHandlers<
+              viam.app.v1.App.DisableAuthServiceRequest,
+              viam.app.v1.App.DisableAuthServiceResponse>(
+                service, METHODID_DISABLE_AUTH_SERVICE)))
+        .addMethod(
+          getCreateOAuthAppMethod(),
+          io.grpc.stub.ServerCalls.asyncUnaryCall(
+            new MethodHandlers<
+              viam.app.v1.App.CreateOAuthAppRequest,
+              viam.app.v1.App.CreateOAuthAppResponse>(
+                service, METHODID_CREATE_OAUTH_APP)))
+        .addMethod(
+          getReadOAuthAppMethod(),
+          io.grpc.stub.ServerCalls.asyncUnaryCall(
+            new MethodHandlers<
+              viam.app.v1.App.ReadOAuthAppRequest,
+              viam.app.v1.App.ReadOAuthAppResponse>(
+                service, METHODID_READ_OAUTH_APP)))
+        .addMethod(
+          getUpdateOAuthAppMethod(),
+          io.grpc.stub.ServerCalls.asyncUnaryCall(
+            new MethodHandlers<
+              viam.app.v1.App.UpdateOAuthAppRequest,
+              viam.app.v1.App.UpdateOAuthAppResponse>(
+                service, METHODID_UPDATE_OAUTH_APP)))
+        .addMethod(
+          getDeleteOAuthAppMethod(),
+          io.grpc.stub.ServerCalls.asyncUnaryCall(
+            new MethodHandlers<
+              viam.app.v1.App.DeleteOAuthAppRequest,
+              viam.app.v1.App.DeleteOAuthAppResponse>(
+                service, METHODID_DELETE_OAUTH_APP)))
+        .addMethod(
+          getListOAuthAppsMethod(),
+          io.grpc.stub.ServerCalls.asyncUnaryCall(
+            new MethodHandlers<
+              viam.app.v1.App.ListOAuthAppsRequest,
+              viam.app.v1.App.ListOAuthAppsResponse>(
+                service, METHODID_LIST_OAUTH_APPS)))
         .addMethod(
           getCreateLocationMethod(),
           io.grpc.stub.ServerCalls.asyncUnaryCall(
@@ -6538,6 +7186,15 @@ public static io.grpc.ServiceDescriptor getServiceDescriptor() {
               .addMethod(getGetBillingServiceConfigMethod())
               .addMethod(getOrganizationSetSupportEmailMethod())
               .addMethod(getOrganizationGetSupportEmailMethod())
+              .addMethod(getOrganizationSetLogoMethod())
+              .addMethod(getOrganizationGetLogoMethod())
+              .addMethod(getEnableAuthServiceMethod())
+              .addMethod(getDisableAuthServiceMethod())
+              .addMethod(getCreateOAuthAppMethod())
+              .addMethod(getReadOAuthAppMethod())
+              .addMethod(getUpdateOAuthAppMethod())
+              .addMethod(getDeleteOAuthAppMethod())
+              .addMethod(getListOAuthAppsMethod())
               .addMethod(getCreateLocationMethod())
               .addMethod(getGetLocationMethod())
               .addMethod(getUpdateLocationMethod())
diff --git a/core/sdk/src/main/resources/protofds/viam.api b/core/sdk/src/main/resources/protofds/viam.api
index 37852b54c2063a26c69989e72bcc0f782251c329..d8019112e736dc7b311244317dec44e0c7ea30cd 100644
GIT binary patch
delta 59994
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

delta 50020
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	i*0Wr0~M<2x01|NM8OB;Oj|D49}
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
HvtRlj6SYr1