You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@submarine.apache.org by pi...@apache.org on 2022/01/16 07:45:13 UTC
[submarine] branch master updated: SUBMARINE-1173. Transfer description.json to config.pbtxt via protobuf API
This is an automated email from the ASF dual-hosted git repository.
pingsutw pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/submarine.git
The following commit(s) were added to refs/heads/master by this push:
new 6f24e75 SUBMARINE-1173. Transfer description.json to config.pbtxt via protobuf API
6f24e75 is described below
commit 6f24e75a307afbf3662efab2318cd13c3c90cca3
Author: KUAN-HSUN-LI <b0...@ntu.edu.tw>
AuthorDate: Thu Jan 13 17:44:55 2022 +0800
SUBMARINE-1173. Transfer description.json to config.pbtxt via protobuf API
### What is this PR for?
Serving a Pytorch model requires the `config,pbtxt` file which is generated by the protobuf. (reference: https://github.com/triton-inference-server/server/blob/main/docs/model_configuration.md)
Copy the model_config.proto to submarine and generate the API. With this API, we can transfer our description file into its format.
### What type of PR is it?
[Feature]
### Todos
### What is the Jira issue?
https://issues.apache.org/jira/browse/SUBMARINE-1173
### How should this be tested?
The test will be covered by the e2e test which will be provided in another PR.
### Screenshots (if appropriate)
https://user-images.githubusercontent.com/38066413/148966412-0afcef60-94c0-40e4-8dd5-9ff81c82dfc0.mp4
### Questions:
* Do the license files need updating? No
* Are there breaking changes for older versions? No
* Does this need new documentation? No
Author: KUAN-HSUN-LI <b0...@ntu.edu.tw>
Signed-off-by: Kevin <pi...@apache.org>
Closes #864 from KUAN-HSUN-LI/SUBMARINE-1173 and squashes the following commits:
c8880772 [KUAN-HSUN-LI] fix security issue
b6c4c2ec [KUAN-HSUN-LI] fix security issue
ebbc7447 [KUAN-HSUN-LI] SUBMARINE-1173. Transfer description.json to config.pbtxt
fd7d9a5d [KUAN-HSUN-LI] SUBMARINE-1173. Generate triton model config API and setup protobuf
---
dev-support/proto/README.md | 26 +
dev-support/proto/gen-proto.sh | 38 +
dev-support/proto/license-header.txt | 18 +
pom.xml | 3 +
submarine-dist/src/assembly/distribution.xml | 1 -
submarine-server/server-api/pom.xml | 6 +
.../server/api/proto/TritonModelConfig.java | 64677 +++++++++++++++++++
.../submarine/server/api/proto/model_config.proto | 1959 +
submarine-server/server-core/pom.xml | 10 +-
.../submarine/server/model/ModelManager.java | 53 +-
.../org/apache/submarine/server/s3/Client.java | 19 +-
11 files changed, 66791 insertions(+), 19 deletions(-)
diff --git a/dev-support/proto/README.md b/dev-support/proto/README.md
new file mode 100644
index 0000000..99834cd
--- /dev/null
+++ b/dev-support/proto/README.md
@@ -0,0 +1,26 @@
+<!---
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License. See accompanying LICENSE file.
+-->
+
+### installation
+```
+export PROTOC_VERSION=3.14.0
+wget https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-linux-x86_64.zip
+unzip protoc-${PROTOC_VERSION}-linux-x86_64.zip -d $HOME/.local
+export PATH="$PATH:$HOME/.local/bin"
+```
+
+### generate the protobuf API
+```
+./dev-support/proto/gen-proto.sh
+```
diff --git a/dev-support/proto/gen-proto.sh b/dev-support/proto/gen-proto.sh
new file mode 100755
index 0000000..54a054c
--- /dev/null
+++ b/dev-support/proto/gen-proto.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -euxo pipefail
+
+FWDIR="$(cd "$(dirname "$0")"; pwd)"
+cd "$FWDIR"
+
+BASE_FOLDER=../../submarine-server/server-api/src/main/java
+PACKAGE_PATH=org/apache/submarine/server/api/proto
+
+# Please also match the setting in the proto files.
+PROTO_DIR_NAME="proto"
+protoc --java_out=${BASE_FOLDER} --proto_path=${BASE_FOLDER} ${BASE_FOLDER}/${PACKAGE_PATH}/model_config.proto
+
+echo "Insert apache license at the top of file ..."
+for filename in $(find ${BASE_FOLDER}/${PACKAGE_PATH}/*.java -type f); do
+
+ echo "$filename"
+ cat license-header.txt "$filename" > "${filename}_tmp"
+ rm "$filename"
+ mv "${filename}_tmp" "${filename}"
+done
+
+set +euxo pipefail
\ No newline at end of file
diff --git a/dev-support/proto/license-header.txt b/dev-support/proto/license-header.txt
new file mode 100644
index 0000000..042f3ce
--- /dev/null
+++ b/dev-support/proto/license-header.txt
@@ -0,0 +1,18 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
diff --git a/pom.xml b/pom.xml
index e71a798..ffd3e47 100644
--- a/pom.xml
+++ b/pom.xml
@@ -132,6 +132,7 @@
<zeppelin.version>0.9.0-preview1</zeppelin.version>
<jgit.version>5.13.0.202109080827-r</jgit.version>
<atomix.version>3.1.5</atomix.version>
+ <json.version>20211205</json.version>
<!-- Submarine on Kubernetes -->
<k8s.client-java.version>11.0.1</k8s.client-java.version>
<jersey.test-framework>2.27</jersey.test-framework>
@@ -143,6 +144,8 @@
<commons-compress.version>1.4.1</commons-compress.version>
<guice-servlet.version>3.0</guice-servlet.version>
<guice.version>3.0</guice.version>
+ <!-- server API -->
+ <protobuf-java.version>3.14.0</protobuf-java.version>
</properties>
<modules>
diff --git a/submarine-dist/src/assembly/distribution.xml b/submarine-dist/src/assembly/distribution.xml
index a2b64af..9a983f7 100644
--- a/submarine-dist/src/assembly/distribution.xml
+++ b/submarine-dist/src/assembly/distribution.xml
@@ -159,7 +159,6 @@
<exclude>submarine-commons-cluster-${project.version}.jar</exclude>
<exclude>submarine-commons-metastore-${project.version}.jar</exclude>
<exclude>grpc-*.jar</exclude>
- <exclude>protobuf-java*.jar</exclude>
<!-- mysql-connector-java uses the GPL license. So we need exclude mysql-connector-java jar -->
<exclude>mysql-connector-java-*.jar</exclude>
<!-- atomix & netty-4.1.27.Final already shade in submarine-commons-cluster-${project.version}-shade.jar -->
diff --git a/submarine-server/server-api/pom.xml b/submarine-server/server-api/pom.xml
index e6e2a6a..2ab3511 100644
--- a/submarine-server/server-api/pom.xml
+++ b/submarine-server/server-api/pom.xml
@@ -36,6 +36,11 @@
<groupId>org.apache.submarine</groupId>
<artifactId>submarine-commons-utils</artifactId>
</dependency>
+ <dependency>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-java</artifactId>
+ <version>${protobuf-java.version}</version>
+ </dependency>
</dependencies>
<build>
@@ -44,6 +49,7 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
+ <excludes>**/proto/**</excludes>
<skip>false</skip>
</configuration>
</plugin>
diff --git a/submarine-server/server-api/src/main/java/org/apache/submarine/server/api/proto/TritonModelConfig.java b/submarine-server/server-api/src/main/java/org/apache/submarine/server/api/proto/TritonModelConfig.java
new file mode 100644
index 0000000..94272ef
--- /dev/null
+++ b/submarine-server/server-api/src/main/java/org/apache/submarine/server/api/proto/TritonModelConfig.java
@@ -0,0 +1,64677 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: org/apache/submarine/server/api/proto/model_config.proto
+
+package org.apache.submarine.server.api.proto;
+
+public final class TritonModelConfig {
+ private TritonModelConfig() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ /**
+ * <pre>
+ *@@
+ *@@.. cpp:enum:: DataType
+ *@@
+ *@@ Data types supported for input and output tensors.
+ *@@
+ * </pre>
+ *
+ * Protobuf enum {@code inference.DataType}
+ */
+ public enum DataType
+ implements com.google.protobuf.ProtocolMessageEnum {
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::INVALID = 0
+ * </pre>
+ *
+ * <code>TYPE_INVALID = 0;</code>
+ */
+ TYPE_INVALID(0),
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::BOOL = 1
+ * </pre>
+ *
+ * <code>TYPE_BOOL = 1;</code>
+ */
+ TYPE_BOOL(1),
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::UINT8 = 2
+ * </pre>
+ *
+ * <code>TYPE_UINT8 = 2;</code>
+ */
+ TYPE_UINT8(2),
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::UINT16 = 3
+ * </pre>
+ *
+ * <code>TYPE_UINT16 = 3;</code>
+ */
+ TYPE_UINT16(3),
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::UINT32 = 4
+ * </pre>
+ *
+ * <code>TYPE_UINT32 = 4;</code>
+ */
+ TYPE_UINT32(4),
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::UINT64 = 5
+ * </pre>
+ *
+ * <code>TYPE_UINT64 = 5;</code>
+ */
+ TYPE_UINT64(5),
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::INT8 = 6
+ * </pre>
+ *
+ * <code>TYPE_INT8 = 6;</code>
+ */
+ TYPE_INT8(6),
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::INT16 = 7
+ * </pre>
+ *
+ * <code>TYPE_INT16 = 7;</code>
+ */
+ TYPE_INT16(7),
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::INT32 = 8
+ * </pre>
+ *
+ * <code>TYPE_INT32 = 8;</code>
+ */
+ TYPE_INT32(8),
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::INT64 = 9
+ * </pre>
+ *
+ * <code>TYPE_INT64 = 9;</code>
+ */
+ TYPE_INT64(9),
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::FP16 = 10
+ * </pre>
+ *
+ * <code>TYPE_FP16 = 10;</code>
+ */
+ TYPE_FP16(10),
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::FP32 = 11
+ * </pre>
+ *
+ * <code>TYPE_FP32 = 11;</code>
+ */
+ TYPE_FP32(11),
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::FP64 = 12
+ * </pre>
+ *
+ * <code>TYPE_FP64 = 12;</code>
+ */
+ TYPE_FP64(12),
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::STRING = 13
+ * </pre>
+ *
+ * <code>TYPE_STRING = 13;</code>
+ */
+ TYPE_STRING(13),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::INVALID = 0
+ * </pre>
+ *
+ * <code>TYPE_INVALID = 0;</code>
+ */
+ public static final int TYPE_INVALID_VALUE = 0;
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::BOOL = 1
+ * </pre>
+ *
+ * <code>TYPE_BOOL = 1;</code>
+ */
+ public static final int TYPE_BOOL_VALUE = 1;
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::UINT8 = 2
+ * </pre>
+ *
+ * <code>TYPE_UINT8 = 2;</code>
+ */
+ public static final int TYPE_UINT8_VALUE = 2;
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::UINT16 = 3
+ * </pre>
+ *
+ * <code>TYPE_UINT16 = 3;</code>
+ */
+ public static final int TYPE_UINT16_VALUE = 3;
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::UINT32 = 4
+ * </pre>
+ *
+ * <code>TYPE_UINT32 = 4;</code>
+ */
+ public static final int TYPE_UINT32_VALUE = 4;
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::UINT64 = 5
+ * </pre>
+ *
+ * <code>TYPE_UINT64 = 5;</code>
+ */
+ public static final int TYPE_UINT64_VALUE = 5;
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::INT8 = 6
+ * </pre>
+ *
+ * <code>TYPE_INT8 = 6;</code>
+ */
+ public static final int TYPE_INT8_VALUE = 6;
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::INT16 = 7
+ * </pre>
+ *
+ * <code>TYPE_INT16 = 7;</code>
+ */
+ public static final int TYPE_INT16_VALUE = 7;
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::INT32 = 8
+ * </pre>
+ *
+ * <code>TYPE_INT32 = 8;</code>
+ */
+ public static final int TYPE_INT32_VALUE = 8;
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::INT64 = 9
+ * </pre>
+ *
+ * <code>TYPE_INT64 = 9;</code>
+ */
+ public static final int TYPE_INT64_VALUE = 9;
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::FP16 = 10
+ * </pre>
+ *
+ * <code>TYPE_FP16 = 10;</code>
+ */
+ public static final int TYPE_FP16_VALUE = 10;
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::FP32 = 11
+ * </pre>
+ *
+ * <code>TYPE_FP32 = 11;</code>
+ */
+ public static final int TYPE_FP32_VALUE = 11;
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::FP64 = 12
+ * </pre>
+ *
+ * <code>TYPE_FP64 = 12;</code>
+ */
+ public static final int TYPE_FP64_VALUE = 12;
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: DataType::STRING = 13
+ * </pre>
+ *
+ * <code>TYPE_STRING = 13;</code>
+ */
+ public static final int TYPE_STRING_VALUE = 13;
+
+
+ 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 numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static DataType valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static DataType forNumber(int value) {
+ switch (value) {
+ case 0: return TYPE_INVALID;
+ case 1: return TYPE_BOOL;
+ case 2: return TYPE_UINT8;
+ case 3: return TYPE_UINT16;
+ case 4: return TYPE_UINT32;
+ case 5: return TYPE_UINT64;
+ case 6: return TYPE_INT8;
+ case 7: return TYPE_INT16;
+ case 8: return TYPE_INT32;
+ case 9: return TYPE_INT64;
+ case 10: return TYPE_FP16;
+ case 11: return TYPE_FP32;
+ case 12: return TYPE_FP64;
+ case 13: return TYPE_STRING;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap<DataType>
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static final com.google.protobuf.Internal.EnumLiteMap<
+ DataType> internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap<DataType>() {
+ public DataType findValueByNumber(int number) {
+ return DataType.forNumber(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalStateException(
+ "Can't get the descriptor of an unrecognized enum value.");
+ }
+ return getDescriptor().getValues().get(ordinal());
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final DataType[] VALUES = values();
+
+ public static DataType valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ if (desc.getIndex() == -1) {
+ return UNRECOGNIZED;
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int value;
+
+ private DataType(int value) {
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:inference.DataType)
+ }
+
+ public interface ModelRateLimiterOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:inference.ModelRateLimiter)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ java.util.List<org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource>
+ getResourcesList();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource getResources(int index);
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ int getResourcesCount();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ java.util.List<? extends org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.ResourceOrBuilder>
+ getResourcesOrBuilderList();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.ResourceOrBuilder getResourcesOrBuilder(
+ int index);
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: uint32 priority
+ *@@
+ *@@ The optional weighting value to be used for prioritizing across
+ *@@ instances. An instance with priority 2 will be given 1/2 the
+ *@@ number of scheduling chances as an instance_group with priority
+ *@@ 1. The default priority is 1. The priority of value 0 will be
+ *@@ treated as priority 1.
+ *@@
+ * </pre>
+ *
+ * <code>uint32 priority = 2;</code>
+ * @return The priority.
+ */
+ int getPriority();
+ }
+ /**
+ * <pre>
+ *@@
+ *@@ .. cpp:var:: message ModelRateLimiter
+ *@@
+ *@@ The specifications required by the rate limiter to properly
+ *@@ schedule the inference requests across the different models
+ *@@ and their instances.
+ *@@
+ * </pre>
+ *
+ * Protobuf type {@code inference.ModelRateLimiter}
+ */
+ public static final class ModelRateLimiter extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:inference.ModelRateLimiter)
+ ModelRateLimiterOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use ModelRateLimiter.newBuilder() to construct.
+ private ModelRateLimiter(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private ModelRateLimiter() {
+ resources_ = java.util.Collections.emptyList();
+ }
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(
+ UnusedPrivateParameter unused) {
+ return new ModelRateLimiter();
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private ModelRateLimiter(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10: {
+ if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+ resources_ = new java.util.ArrayList<org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource>();
+ mutable_bitField0_ |= 0x00000001;
+ }
+ resources_.add(
+ input.readMessage(org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.parser(), extensionRegistry));
+ break;
+ }
+ case 16: {
+
+ priority_ = input.readUInt32();
+ break;
+ }
+ default: {
+ if (!parseUnknownField(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ if (((mutable_bitField0_ & 0x00000001) != 0)) {
+ resources_ = java.util.Collections.unmodifiableList(resources_);
+ }
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelRateLimiter_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelRateLimiter_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.class, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Builder.class);
+ }
+
+ public interface ResourceOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:inference.ModelRateLimiter.Resource)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name associated with the resource.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The name.
+ */
+ java.lang.String getName();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name associated with the resource.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The bytes for name.
+ */
+ com.google.protobuf.ByteString
+ getNameBytes();
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool global
+ *@@
+ *@@ Whether or not the resource is global. If true then the resource
+ *@@ is assumed to be shared among the devices otherwise specified
+ *@@ count of the resource is assumed for each device associated
+ *@@ with the instance.
+ *@@
+ * </pre>
+ *
+ * <code>bool global = 2;</code>
+ * @return The global.
+ */
+ boolean getGlobal();
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: uint32 count
+ *@@
+ *@@ The number of resources required for the execution of the model
+ *@@ instance.
+ *@@
+ * </pre>
+ *
+ * <code>uint32 count = 3;</code>
+ * @return The count.
+ */
+ int getCount();
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: message Resource
+ *@@
+ *@@ The resource property.
+ *@@
+ * </pre>
+ *
+ * Protobuf type {@code inference.ModelRateLimiter.Resource}
+ */
+ public static final class Resource extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:inference.ModelRateLimiter.Resource)
+ ResourceOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use Resource.newBuilder() to construct.
+ private Resource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private Resource() {
+ name_ = "";
+ }
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(
+ UnusedPrivateParameter unused) {
+ return new Resource();
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private Resource(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ name_ = s;
+ break;
+ }
+ case 16: {
+
+ global_ = input.readBool();
+ break;
+ }
+ case 24: {
+
+ count_ = input.readUInt32();
+ break;
+ }
+ default: {
+ if (!parseUnknownField(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelRateLimiter_Resource_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelRateLimiter_Resource_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.class, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.Builder.class);
+ }
+
+ public static final int NAME_FIELD_NUMBER = 1;
+ private volatile java.lang.Object name_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name associated with the resource.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The name.
+ */
+ @java.lang.Override
+ public java.lang.String getName() {
+ java.lang.Object ref = name_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ name_ = s;
+ return s;
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name associated with the resource.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The bytes for name.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int GLOBAL_FIELD_NUMBER = 2;
+ private boolean global_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool global
+ *@@
+ *@@ Whether or not the resource is global. If true then the resource
+ *@@ is assumed to be shared among the devices otherwise specified
+ *@@ count of the resource is assumed for each device associated
+ *@@ with the instance.
+ *@@
+ * </pre>
+ *
+ * <code>bool global = 2;</code>
+ * @return The global.
+ */
+ @java.lang.Override
+ public boolean getGlobal() {
+ return global_;
+ }
+
+ public static final int COUNT_FIELD_NUMBER = 3;
+ private int count_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: uint32 count
+ *@@
+ *@@ The number of resources required for the execution of the model
+ *@@ instance.
+ *@@
+ * </pre>
+ *
+ * <code>uint32 count = 3;</code>
+ * @return The count.
+ */
+ @java.lang.Override
+ public int getCount() {
+ return count_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (!getNameBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
+ }
+ if (global_ != false) {
+ output.writeBool(2, global_);
+ }
+ if (count_ != 0) {
+ output.writeUInt32(3, count_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!getNameBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
+ }
+ if (global_ != false) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(2, global_);
+ }
+ if (count_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(3, count_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource)) {
+ return super.equals(obj);
+ }
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource other = (org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource) obj;
+
+ if (!getName()
+ .equals(other.getName())) return false;
+ if (getGlobal()
+ != other.getGlobal()) return false;
+ if (getCount()
+ != other.getCount()) return false;
+ if (!unknownFields.equals(other.unknownFields)) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + NAME_FIELD_NUMBER;
+ hash = (53 * hash) + getName().hashCode();
+ hash = (37 * hash) + GLOBAL_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+ getGlobal());
+ hash = (37 * hash) + COUNT_FIELD_NUMBER;
+ hash = (53 * hash) + getCount();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: message Resource
+ *@@
+ *@@ The resource property.
+ *@@
+ * </pre>
+ *
+ * Protobuf type {@code inference.ModelRateLimiter.Resource}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:inference.ModelRateLimiter.Resource)
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.ResourceOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelRateLimiter_Resource_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelRateLimiter_Resource_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.class, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.Builder.class);
+ }
+
+ // Construct using org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ name_ = "";
+
+ global_ = false;
+
+ count_ = 0;
+
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelRateLimiter_Resource_descriptor;
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource getDefaultInstanceForType() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource build() {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource buildPartial() {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource result = new org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource(this);
+ result.name_ = name_;
+ result.global_ = global_;
+ result.count_ = count_;
+ onBuilt();
+ return result;
+ }
+
+ @java.lang.Override
+ public Builder clone() {
+ return super.clone();
+ }
+ @java.lang.Override
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return super.setField(field, value);
+ }
+ @java.lang.Override
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return super.clearField(field);
+ }
+ @java.lang.Override
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return super.clearOneof(oneof);
+ }
+ @java.lang.Override
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return super.setRepeatedField(field, index, value);
+ }
+ @java.lang.Override
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return super.addRepeatedField(field, value);
+ }
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource) {
+ return mergeFrom((org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource other) {
+ if (other == org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.getDefaultInstance()) return this;
+ if (!other.getName().isEmpty()) {
+ name_ = other.name_;
+ onChanged();
+ }
+ if (other.getGlobal() != false) {
+ setGlobal(other.getGlobal());
+ }
+ if (other.getCount() != 0) {
+ setCount(other.getCount());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private java.lang.Object name_ = "";
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name associated with the resource.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The name.
+ */
+ public java.lang.String getName() {
+ java.lang.Object ref = name_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ name_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name associated with the resource.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The bytes for name.
+ */
+ public com.google.protobuf.ByteString
+ getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name associated with the resource.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @param value The name to set.
+ * @return This builder for chaining.
+ */
+ public Builder setName(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ name_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name associated with the resource.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearName() {
+
+ name_ = getDefaultInstance().getName();
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name associated with the resource.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @param value The bytes for name to set.
+ * @return This builder for chaining.
+ */
+ public Builder setNameBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ name_ = value;
+ onChanged();
+ return this;
+ }
+
+ private boolean global_ ;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool global
+ *@@
+ *@@ Whether or not the resource is global. If true then the resource
+ *@@ is assumed to be shared among the devices otherwise specified
+ *@@ count of the resource is assumed for each device associated
+ *@@ with the instance.
+ *@@
+ * </pre>
+ *
+ * <code>bool global = 2;</code>
+ * @return The global.
+ */
+ @java.lang.Override
+ public boolean getGlobal() {
+ return global_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool global
+ *@@
+ *@@ Whether or not the resource is global. If true then the resource
+ *@@ is assumed to be shared among the devices otherwise specified
+ *@@ count of the resource is assumed for each device associated
+ *@@ with the instance.
+ *@@
+ * </pre>
+ *
+ * <code>bool global = 2;</code>
+ * @param value The global to set.
+ * @return This builder for chaining.
+ */
+ public Builder setGlobal(boolean value) {
+
+ global_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool global
+ *@@
+ *@@ Whether or not the resource is global. If true then the resource
+ *@@ is assumed to be shared among the devices otherwise specified
+ *@@ count of the resource is assumed for each device associated
+ *@@ with the instance.
+ *@@
+ * </pre>
+ *
+ * <code>bool global = 2;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearGlobal() {
+
+ global_ = false;
+ onChanged();
+ return this;
+ }
+
+ private int count_ ;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: uint32 count
+ *@@
+ *@@ The number of resources required for the execution of the model
+ *@@ instance.
+ *@@
+ * </pre>
+ *
+ * <code>uint32 count = 3;</code>
+ * @return The count.
+ */
+ @java.lang.Override
+ public int getCount() {
+ return count_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: uint32 count
+ *@@
+ *@@ The number of resources required for the execution of the model
+ *@@ instance.
+ *@@
+ * </pre>
+ *
+ * <code>uint32 count = 3;</code>
+ * @param value The count to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCount(int value) {
+
+ count_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: uint32 count
+ *@@
+ *@@ The number of resources required for the execution of the model
+ *@@ instance.
+ *@@
+ * </pre>
+ *
+ * <code>uint32 count = 3;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearCount() {
+
+ count_ = 0;
+ onChanged();
+ return this;
+ }
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:inference.ModelRateLimiter.Resource)
+ }
+
+ // @@protoc_insertion_point(class_scope:inference.ModelRateLimiter.Resource)
+ private static final org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource();
+ }
+
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<Resource>
+ PARSER = new com.google.protobuf.AbstractParser<Resource>() {
+ @java.lang.Override
+ public Resource parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new Resource(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<Resource> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<Resource> getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ public static final int RESOURCES_FIELD_NUMBER = 1;
+ private java.util.List<org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource> resources_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ @java.lang.Override
+ public java.util.List<org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource> getResourcesList() {
+ return resources_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ @java.lang.Override
+ public java.util.List<? extends org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.ResourceOrBuilder>
+ getResourcesOrBuilderList() {
+ return resources_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ @java.lang.Override
+ public int getResourcesCount() {
+ return resources_.size();
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource getResources(int index) {
+ return resources_.get(index);
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.ResourceOrBuilder getResourcesOrBuilder(
+ int index) {
+ return resources_.get(index);
+ }
+
+ public static final int PRIORITY_FIELD_NUMBER = 2;
+ private int priority_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: uint32 priority
+ *@@
+ *@@ The optional weighting value to be used for prioritizing across
+ *@@ instances. An instance with priority 2 will be given 1/2 the
+ *@@ number of scheduling chances as an instance_group with priority
+ *@@ 1. The default priority is 1. The priority of value 0 will be
+ *@@ treated as priority 1.
+ *@@
+ * </pre>
+ *
+ * <code>uint32 priority = 2;</code>
+ * @return The priority.
+ */
+ @java.lang.Override
+ public int getPriority() {
+ return priority_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ for (int i = 0; i < resources_.size(); i++) {
+ output.writeMessage(1, resources_.get(i));
+ }
+ if (priority_ != 0) {
+ output.writeUInt32(2, priority_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ for (int i = 0; i < resources_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(1, resources_.get(i));
+ }
+ if (priority_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(2, priority_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter)) {
+ return super.equals(obj);
+ }
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter other = (org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter) obj;
+
+ if (!getResourcesList()
+ .equals(other.getResourcesList())) return false;
+ if (getPriority()
+ != other.getPriority()) return false;
+ if (!unknownFields.equals(other.unknownFields)) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (getResourcesCount() > 0) {
+ hash = (37 * hash) + RESOURCES_FIELD_NUMBER;
+ hash = (53 * hash) + getResourcesList().hashCode();
+ }
+ hash = (37 * hash) + PRIORITY_FIELD_NUMBER;
+ hash = (53 * hash) + getPriority();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * <pre>
+ *@@
+ *@@ .. cpp:var:: message ModelRateLimiter
+ *@@
+ *@@ The specifications required by the rate limiter to properly
+ *@@ schedule the inference requests across the different models
+ *@@ and their instances.
+ *@@
+ * </pre>
+ *
+ * Protobuf type {@code inference.ModelRateLimiter}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:inference.ModelRateLimiter)
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiterOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelRateLimiter_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelRateLimiter_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.class, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Builder.class);
+ }
+
+ // Construct using org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ getResourcesFieldBuilder();
+ }
+ }
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ if (resourcesBuilder_ == null) {
+ resources_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ } else {
+ resourcesBuilder_.clear();
+ }
+ priority_ = 0;
+
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelRateLimiter_descriptor;
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter getDefaultInstanceForType() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter build() {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter buildPartial() {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter result = new org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter(this);
+ int from_bitField0_ = bitField0_;
+ if (resourcesBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ resources_ = java.util.Collections.unmodifiableList(resources_);
+ bitField0_ = (bitField0_ & ~0x00000001);
+ }
+ result.resources_ = resources_;
+ } else {
+ result.resources_ = resourcesBuilder_.build();
+ }
+ result.priority_ = priority_;
+ onBuilt();
+ return result;
+ }
+
+ @java.lang.Override
+ public Builder clone() {
+ return super.clone();
+ }
+ @java.lang.Override
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return super.setField(field, value);
+ }
+ @java.lang.Override
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return super.clearField(field);
+ }
+ @java.lang.Override
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return super.clearOneof(oneof);
+ }
+ @java.lang.Override
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return super.setRepeatedField(field, index, value);
+ }
+ @java.lang.Override
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return super.addRepeatedField(field, value);
+ }
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter) {
+ return mergeFrom((org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter other) {
+ if (other == org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.getDefaultInstance()) return this;
+ if (resourcesBuilder_ == null) {
+ if (!other.resources_.isEmpty()) {
+ if (resources_.isEmpty()) {
+ resources_ = other.resources_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ } else {
+ ensureResourcesIsMutable();
+ resources_.addAll(other.resources_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.resources_.isEmpty()) {
+ if (resourcesBuilder_.isEmpty()) {
+ resourcesBuilder_.dispose();
+ resourcesBuilder_ = null;
+ resources_ = other.resources_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ resourcesBuilder_ =
+ com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+ getResourcesFieldBuilder() : null;
+ } else {
+ resourcesBuilder_.addAllMessages(other.resources_);
+ }
+ }
+ }
+ if (other.getPriority() != 0) {
+ setPriority(other.getPriority());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ private java.util.List<org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource> resources_ =
+ java.util.Collections.emptyList();
+ private void ensureResourcesIsMutable() {
+ if (!((bitField0_ & 0x00000001) != 0)) {
+ resources_ = new java.util.ArrayList<org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource>(resources_);
+ bitField0_ |= 0x00000001;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.Builder, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.ResourceOrBuilder> resourcesBuilder_;
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ public java.util.List<org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource> getResourcesList() {
+ if (resourcesBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(resources_);
+ } else {
+ return resourcesBuilder_.getMessageList();
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ public int getResourcesCount() {
+ if (resourcesBuilder_ == null) {
+ return resources_.size();
+ } else {
+ return resourcesBuilder_.getCount();
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource getResources(int index) {
+ if (resourcesBuilder_ == null) {
+ return resources_.get(index);
+ } else {
+ return resourcesBuilder_.getMessage(index);
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ public Builder setResources(
+ int index, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource value) {
+ if (resourcesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureResourcesIsMutable();
+ resources_.set(index, value);
+ onChanged();
+ } else {
+ resourcesBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ public Builder setResources(
+ int index, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.Builder builderForValue) {
+ if (resourcesBuilder_ == null) {
+ ensureResourcesIsMutable();
+ resources_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ resourcesBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ public Builder addResources(org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource value) {
+ if (resourcesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureResourcesIsMutable();
+ resources_.add(value);
+ onChanged();
+ } else {
+ resourcesBuilder_.addMessage(value);
+ }
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ public Builder addResources(
+ int index, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource value) {
+ if (resourcesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureResourcesIsMutable();
+ resources_.add(index, value);
+ onChanged();
+ } else {
+ resourcesBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ public Builder addResources(
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.Builder builderForValue) {
+ if (resourcesBuilder_ == null) {
+ ensureResourcesIsMutable();
+ resources_.add(builderForValue.build());
+ onChanged();
+ } else {
+ resourcesBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ public Builder addResources(
+ int index, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.Builder builderForValue) {
+ if (resourcesBuilder_ == null) {
+ ensureResourcesIsMutable();
+ resources_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ resourcesBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ public Builder addAllResources(
+ java.lang.Iterable<? extends org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource> values) {
+ if (resourcesBuilder_ == null) {
+ ensureResourcesIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(
+ values, resources_);
+ onChanged();
+ } else {
+ resourcesBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ public Builder clearResources() {
+ if (resourcesBuilder_ == null) {
+ resources_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ } else {
+ resourcesBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ public Builder removeResources(int index) {
+ if (resourcesBuilder_ == null) {
+ ensureResourcesIsMutable();
+ resources_.remove(index);
+ onChanged();
+ } else {
+ resourcesBuilder_.remove(index);
+ }
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.Builder getResourcesBuilder(
+ int index) {
+ return getResourcesFieldBuilder().getBuilder(index);
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.ResourceOrBuilder getResourcesOrBuilder(
+ int index) {
+ if (resourcesBuilder_ == null) {
+ return resources_.get(index); } else {
+ return resourcesBuilder_.getMessageOrBuilder(index);
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ public java.util.List<? extends org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.ResourceOrBuilder>
+ getResourcesOrBuilderList() {
+ if (resourcesBuilder_ != null) {
+ return resourcesBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(resources_);
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.Builder addResourcesBuilder() {
+ return getResourcesFieldBuilder().addBuilder(
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.getDefaultInstance());
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.Builder addResourcesBuilder(
+ int index) {
+ return getResourcesFieldBuilder().addBuilder(
+ index, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.getDefaultInstance());
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Resource resources (repeated)
+ *@@
+ *@@ The resources required to execute the request on a model instance.
+ *@@ Resources are just names with a corresponding count. The execution
+ *@@ of the instance will be blocked until the specificied resources are
+ *@@ available. By default an instance uses no rate-limiter resources.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelRateLimiter.Resource resources = 1;</code>
+ */
+ public java.util.List<org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.Builder>
+ getResourcesBuilderList() {
+ return getResourcesFieldBuilder().getBuilderList();
+ }
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.Builder, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.ResourceOrBuilder>
+ getResourcesFieldBuilder() {
+ if (resourcesBuilder_ == null) {
+ resourcesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Resource.Builder, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.ResourceOrBuilder>(
+ resources_,
+ ((bitField0_ & 0x00000001) != 0),
+ getParentForChildren(),
+ isClean());
+ resources_ = null;
+ }
+ return resourcesBuilder_;
+ }
+
+ private int priority_ ;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: uint32 priority
+ *@@
+ *@@ The optional weighting value to be used for prioritizing across
+ *@@ instances. An instance with priority 2 will be given 1/2 the
+ *@@ number of scheduling chances as an instance_group with priority
+ *@@ 1. The default priority is 1. The priority of value 0 will be
+ *@@ treated as priority 1.
+ *@@
+ * </pre>
+ *
+ * <code>uint32 priority = 2;</code>
+ * @return The priority.
+ */
+ @java.lang.Override
+ public int getPriority() {
+ return priority_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: uint32 priority
+ *@@
+ *@@ The optional weighting value to be used for prioritizing across
+ *@@ instances. An instance with priority 2 will be given 1/2 the
+ *@@ number of scheduling chances as an instance_group with priority
+ *@@ 1. The default priority is 1. The priority of value 0 will be
+ *@@ treated as priority 1.
+ *@@
+ * </pre>
+ *
+ * <code>uint32 priority = 2;</code>
+ * @param value The priority to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPriority(int value) {
+
+ priority_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: uint32 priority
+ *@@
+ *@@ The optional weighting value to be used for prioritizing across
+ *@@ instances. An instance with priority 2 will be given 1/2 the
+ *@@ number of scheduling chances as an instance_group with priority
+ *@@ 1. The default priority is 1. The priority of value 0 will be
+ *@@ treated as priority 1.
+ *@@
+ * </pre>
+ *
+ * <code>uint32 priority = 2;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearPriority() {
+
+ priority_ = 0;
+ onChanged();
+ return this;
+ }
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:inference.ModelRateLimiter)
+ }
+
+ // @@protoc_insertion_point(class_scope:inference.ModelRateLimiter)
+ private static final org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter();
+ }
+
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<ModelRateLimiter>
+ PARSER = new com.google.protobuf.AbstractParser<ModelRateLimiter>() {
+ @java.lang.Override
+ public ModelRateLimiter parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new ModelRateLimiter(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<ModelRateLimiter> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<ModelRateLimiter> getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ public interface ModelInstanceGroupOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:inference.ModelInstanceGroup)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ Optional name of this group of instances. If not specified the
+ *@@ name will be formed as <model name>_<group number>. The name of
+ *@@ individual instances will be further formed by a unique instance
+ *@@ number and GPU index:
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The name.
+ */
+ java.lang.String getName();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ Optional name of this group of instances. If not specified the
+ *@@ name will be formed as <model name>_<group number>. The name of
+ *@@ individual instances will be further formed by a unique instance
+ *@@ number and GPU index:
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The bytes for name.
+ */
+ com.google.protobuf.ByteString
+ getNameBytes();
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Kind kind
+ *@@
+ *@@ The kind of this instance group. Default is KIND_AUTO. If
+ *@@ KIND_AUTO or KIND_GPU then both 'count' and 'gpu' are valid and
+ *@@ may be specified. If KIND_CPU or KIND_MODEL only 'count' is valid
+ *@@ and 'gpu' cannot be specified.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInstanceGroup.Kind kind = 4;</code>
+ * @return The enum numeric value on the wire for kind.
+ */
+ int getKindValue();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Kind kind
+ *@@
+ *@@ The kind of this instance group. Default is KIND_AUTO. If
+ *@@ KIND_AUTO or KIND_GPU then both 'count' and 'gpu' are valid and
+ *@@ may be specified. If KIND_CPU or KIND_MODEL only 'count' is valid
+ *@@ and 'gpu' cannot be specified.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInstanceGroup.Kind kind = 4;</code>
+ * @return The kind.
+ */
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.Kind getKind();
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int32 count
+ *@@
+ *@@ For a group assigned to GPU, the number of instances created for
+ *@@ each GPU listed in 'gpus'. For a group assigned to CPU the number
+ *@@ of instances created. Default is 1.
+ * </pre>
+ *
+ * <code>int32 count = 2;</code>
+ * @return The count.
+ */
+ int getCount();
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelRateLimiter rate_limiter
+ *@@
+ *@@ The rate limiter specific settings to be associated with this
+ *@@ instance group. Optional, if not specified no rate limiting
+ *@@ will be applied to this instance group.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelRateLimiter rate_limiter = 6;</code>
+ * @return Whether the rateLimiter field is set.
+ */
+ boolean hasRateLimiter();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelRateLimiter rate_limiter
+ *@@
+ *@@ The rate limiter specific settings to be associated with this
+ *@@ instance group. Optional, if not specified no rate limiting
+ *@@ will be applied to this instance group.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelRateLimiter rate_limiter = 6;</code>
+ * @return The rateLimiter.
+ */
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter getRateLimiter();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelRateLimiter rate_limiter
+ *@@
+ *@@ The rate limiter specific settings to be associated with this
+ *@@ instance group. Optional, if not specified no rate limiting
+ *@@ will be applied to this instance group.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelRateLimiter rate_limiter = 6;</code>
+ */
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiterOrBuilder getRateLimiterOrBuilder();
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int32 gpus (repeated)
+ *@@
+ *@@ GPU(s) where instances should be available. For each GPU listed,
+ *@@ 'count' instances of the model will be available. Setting 'gpus'
+ *@@ to empty (or not specifying at all) is eqivalent to listing all
+ *@@ available GPUs.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int32 gpus = 3;</code>
+ * @return A list containing the gpus.
+ */
+ java.util.List<java.lang.Integer> getGpusList();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int32 gpus (repeated)
+ *@@
+ *@@ GPU(s) where instances should be available. For each GPU listed,
+ *@@ 'count' instances of the model will be available. Setting 'gpus'
+ *@@ to empty (or not specifying at all) is eqivalent to listing all
+ *@@ available GPUs.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int32 gpus = 3;</code>
+ * @return The count of gpus.
+ */
+ int getGpusCount();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int32 gpus (repeated)
+ *@@
+ *@@ GPU(s) where instances should be available. For each GPU listed,
+ *@@ 'count' instances of the model will be available. Setting 'gpus'
+ *@@ to empty (or not specifying at all) is eqivalent to listing all
+ *@@ available GPUs.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int32 gpus = 3;</code>
+ * @param index The index of the element to return.
+ * @return The gpus at the given index.
+ */
+ int getGpus(int index);
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ java.util.List<org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice>
+ getSecondaryDevicesList();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice getSecondaryDevices(int index);
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ int getSecondaryDevicesCount();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ java.util.List<? extends org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDeviceOrBuilder>
+ getSecondaryDevicesOrBuilderList();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDeviceOrBuilder getSecondaryDevicesOrBuilder(
+ int index);
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string profile (repeated)
+ *@@
+ *@@ For TensorRT models containing multiple optimization profile, this
+ *@@ parameter specifies a set of optimization profiles available to this
+ *@@ instance group. The inference server will choose the optimal profile
+ *@@ based on the shapes of the input tensors. This field should lie
+ *@@ between 0 and <TotalNumberOfOptimizationProfilesInPlanModel> - 1
+ *@@ and be specified only for TensorRT backend, otherwise an error will
+ *@@ be generated. If not specified, the server will select the first
+ *@@ optimization profile by default.
+ *@@
+ * </pre>
+ *
+ * <code>repeated string profile = 5;</code>
+ * @return A list containing the profile.
+ */
+ java.util.List<java.lang.String>
+ getProfileList();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string profile (repeated)
+ *@@
+ *@@ For TensorRT models containing multiple optimization profile, this
+ *@@ parameter specifies a set of optimization profiles available to this
+ *@@ instance group. The inference server will choose the optimal profile
+ *@@ based on the shapes of the input tensors. This field should lie
+ *@@ between 0 and <TotalNumberOfOptimizationProfilesInPlanModel> - 1
+ *@@ and be specified only for TensorRT backend, otherwise an error will
+ *@@ be generated. If not specified, the server will select the first
+ *@@ optimization profile by default.
+ *@@
+ * </pre>
+ *
+ * <code>repeated string profile = 5;</code>
+ * @return The count of profile.
+ */
+ int getProfileCount();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string profile (repeated)
+ *@@
+ *@@ For TensorRT models containing multiple optimization profile, this
+ *@@ parameter specifies a set of optimization profiles available to this
+ *@@ instance group. The inference server will choose the optimal profile
+ *@@ based on the shapes of the input tensors. This field should lie
+ *@@ between 0 and <TotalNumberOfOptimizationProfilesInPlanModel> - 1
+ *@@ and be specified only for TensorRT backend, otherwise an error will
+ *@@ be generated. If not specified, the server will select the first
+ *@@ optimization profile by default.
+ *@@
+ * </pre>
+ *
+ * <code>repeated string profile = 5;</code>
+ * @param index The index of the element to return.
+ * @return The profile at the given index.
+ */
+ java.lang.String getProfile(int index);
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string profile (repeated)
+ *@@
+ *@@ For TensorRT models containing multiple optimization profile, this
+ *@@ parameter specifies a set of optimization profiles available to this
+ *@@ instance group. The inference server will choose the optimal profile
+ *@@ based on the shapes of the input tensors. This field should lie
+ *@@ between 0 and <TotalNumberOfOptimizationProfilesInPlanModel> - 1
+ *@@ and be specified only for TensorRT backend, otherwise an error will
+ *@@ be generated. If not specified, the server will select the first
+ *@@ optimization profile by default.
+ *@@
+ * </pre>
+ *
+ * <code>repeated string profile = 5;</code>
+ * @param index The index of the value to return.
+ * @return The bytes of the profile at the given index.
+ */
+ com.google.protobuf.ByteString
+ getProfileBytes(int index);
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool passive
+ *@@
+ *@@ Whether the instances within this instance group will be accepting
+ *@@ inference requests from the scheduler. If true, the instances will
+ *@@ not be added to the scheduler. Default value is false.
+ *@@
+ * </pre>
+ *
+ * <code>bool passive = 7;</code>
+ * @return The passive.
+ */
+ boolean getPassive();
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string host_policy
+ *@@
+ *@@ The host policy name that the instance to be associated with.
+ *@@ The default value is set to reflect the device kind of the instance,
+ *@@ for instance, KIND_CPU is "cpu", KIND_MODEL is "model" and
+ *@@ KIND_GPU is "gpu_<gpu_id>".
+ *@@
+ * </pre>
+ *
+ * <code>string host_policy = 9;</code>
+ * @return The hostPolicy.
+ */
+ java.lang.String getHostPolicy();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string host_policy
+ *@@
+ *@@ The host policy name that the instance to be associated with.
+ *@@ The default value is set to reflect the device kind of the instance,
+ *@@ for instance, KIND_CPU is "cpu", KIND_MODEL is "model" and
+ *@@ KIND_GPU is "gpu_<gpu_id>".
+ *@@
+ * </pre>
+ *
+ * <code>string host_policy = 9;</code>
+ * @return The bytes for hostPolicy.
+ */
+ com.google.protobuf.ByteString
+ getHostPolicyBytes();
+ }
+ /**
+ * <pre>
+ *@@
+ *@@.. cpp:var:: message ModelInstanceGroup
+ *@@
+ *@@ A group of one or more instances of a model and resources made
+ *@@ available for those instances.
+ *@@
+ * </pre>
+ *
+ * Protobuf type {@code inference.ModelInstanceGroup}
+ */
+ public static final class ModelInstanceGroup extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:inference.ModelInstanceGroup)
+ ModelInstanceGroupOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use ModelInstanceGroup.newBuilder() to construct.
+ private ModelInstanceGroup(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private ModelInstanceGroup() {
+ name_ = "";
+ kind_ = 0;
+ gpus_ = emptyIntList();
+ secondaryDevices_ = java.util.Collections.emptyList();
+ profile_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+ hostPolicy_ = "";
+ }
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(
+ UnusedPrivateParameter unused) {
+ return new ModelInstanceGroup();
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private ModelInstanceGroup(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ name_ = s;
+ break;
+ }
+ case 16: {
+
+ count_ = input.readInt32();
+ break;
+ }
+ case 24: {
+ if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+ gpus_ = newIntList();
+ mutable_bitField0_ |= 0x00000001;
+ }
+ gpus_.addInt(input.readInt32());
+ break;
+ }
+ case 26: {
+ int length = input.readRawVarint32();
+ int limit = input.pushLimit(length);
+ if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+ gpus_ = newIntList();
+ mutable_bitField0_ |= 0x00000001;
+ }
+ while (input.getBytesUntilLimit() > 0) {
+ gpus_.addInt(input.readInt32());
+ }
+ input.popLimit(limit);
+ break;
+ }
+ case 32: {
+ int rawValue = input.readEnum();
+
+ kind_ = rawValue;
+ break;
+ }
+ case 42: {
+ java.lang.String s = input.readStringRequireUtf8();
+ if (!((mutable_bitField0_ & 0x00000004) != 0)) {
+ profile_ = new com.google.protobuf.LazyStringArrayList();
+ mutable_bitField0_ |= 0x00000004;
+ }
+ profile_.add(s);
+ break;
+ }
+ case 50: {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Builder subBuilder = null;
+ if (rateLimiter_ != null) {
+ subBuilder = rateLimiter_.toBuilder();
+ }
+ rateLimiter_ = input.readMessage(org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.parser(), extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(rateLimiter_);
+ rateLimiter_ = subBuilder.buildPartial();
+ }
+
+ break;
+ }
+ case 56: {
+
+ passive_ = input.readBool();
+ break;
+ }
+ case 66: {
+ if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+ secondaryDevices_ = new java.util.ArrayList<org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice>();
+ mutable_bitField0_ |= 0x00000002;
+ }
+ secondaryDevices_.add(
+ input.readMessage(org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.parser(), extensionRegistry));
+ break;
+ }
+ case 74: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ hostPolicy_ = s;
+ break;
+ }
+ default: {
+ if (!parseUnknownField(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ if (((mutable_bitField0_ & 0x00000001) != 0)) {
+ gpus_.makeImmutable(); // C
+ }
+ if (((mutable_bitField0_ & 0x00000004) != 0)) {
+ profile_ = profile_.getUnmodifiableView();
+ }
+ if (((mutable_bitField0_ & 0x00000002) != 0)) {
+ secondaryDevices_ = java.util.Collections.unmodifiableList(secondaryDevices_);
+ }
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelInstanceGroup_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelInstanceGroup_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.class, org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.Builder.class);
+ }
+
+ /**
+ * <pre>
+ *@@
+ *@@ .. cpp:enum:: Kind
+ *@@
+ *@@ Kind of this instance group.
+ *@@
+ * </pre>
+ *
+ * Protobuf enum {@code inference.ModelInstanceGroup.Kind}
+ */
+ public enum Kind
+ implements com.google.protobuf.ProtocolMessageEnum {
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: Kind::KIND_AUTO = 0
+ *@@
+ *@@ This instance group represents instances that can run on either
+ *@@ CPU or GPU. If all GPUs listed in 'gpus' are available then
+ *@@ instances will be created on GPU(s), otherwise instances will
+ *@@ be created on CPU.
+ *@@
+ * </pre>
+ *
+ * <code>KIND_AUTO = 0;</code>
+ */
+ KIND_AUTO(0),
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: Kind::KIND_GPU = 1
+ *@@
+ *@@ This instance group represents instances that must run on the
+ *@@ GPU.
+ *@@
+ * </pre>
+ *
+ * <code>KIND_GPU = 1;</code>
+ */
+ KIND_GPU(1),
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: Kind::KIND_CPU = 2
+ *@@
+ *@@ This instance group represents instances that must run on the
+ *@@ CPU.
+ *@@
+ * </pre>
+ *
+ * <code>KIND_CPU = 2;</code>
+ */
+ KIND_CPU(2),
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: Kind::KIND_MODEL = 3
+ *@@
+ *@@ This instance group represents instances that should run on the
+ *@@ CPU and/or GPU(s) as specified by the model or backend itself.
+ *@@ The inference server will not override the model/backend
+ *@@ settings.
+ *@@
+ * </pre>
+ *
+ * <code>KIND_MODEL = 3;</code>
+ */
+ KIND_MODEL(3),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: Kind::KIND_AUTO = 0
+ *@@
+ *@@ This instance group represents instances that can run on either
+ *@@ CPU or GPU. If all GPUs listed in 'gpus' are available then
+ *@@ instances will be created on GPU(s), otherwise instances will
+ *@@ be created on CPU.
+ *@@
+ * </pre>
+ *
+ * <code>KIND_AUTO = 0;</code>
+ */
+ public static final int KIND_AUTO_VALUE = 0;
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: Kind::KIND_GPU = 1
+ *@@
+ *@@ This instance group represents instances that must run on the
+ *@@ GPU.
+ *@@
+ * </pre>
+ *
+ * <code>KIND_GPU = 1;</code>
+ */
+ public static final int KIND_GPU_VALUE = 1;
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: Kind::KIND_CPU = 2
+ *@@
+ *@@ This instance group represents instances that must run on the
+ *@@ CPU.
+ *@@
+ * </pre>
+ *
+ * <code>KIND_CPU = 2;</code>
+ */
+ public static final int KIND_CPU_VALUE = 2;
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: Kind::KIND_MODEL = 3
+ *@@
+ *@@ This instance group represents instances that should run on the
+ *@@ CPU and/or GPU(s) as specified by the model or backend itself.
+ *@@ The inference server will not override the model/backend
+ *@@ settings.
+ *@@
+ * </pre>
+ *
+ * <code>KIND_MODEL = 3;</code>
+ */
+ public static final int KIND_MODEL_VALUE = 3;
+
+
+ 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 numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static Kind valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static Kind forNumber(int value) {
+ switch (value) {
+ case 0: return KIND_AUTO;
+ case 1: return KIND_GPU;
+ case 2: return KIND_CPU;
+ case 3: return KIND_MODEL;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap<Kind>
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static final com.google.protobuf.Internal.EnumLiteMap<
+ Kind> internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap<Kind>() {
+ public Kind findValueByNumber(int number) {
+ return Kind.forNumber(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalStateException(
+ "Can't get the descriptor of an unrecognized enum value.");
+ }
+ return getDescriptor().getValues().get(ordinal());
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final Kind[] VALUES = values();
+
+ public static Kind valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ if (desc.getIndex() == -1) {
+ return UNRECOGNIZED;
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int value;
+
+ private Kind(int value) {
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:inference.ModelInstanceGroup.Kind)
+ }
+
+ public interface SecondaryDeviceOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:inference.ModelInstanceGroup.SecondaryDevice)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDeviceKind kind
+ *@@
+ *@@ The secondary device kind.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind kind = 1;</code>
+ * @return The enum numeric value on the wire for kind.
+ */
+ int getKindValue();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDeviceKind kind
+ *@@
+ *@@ The secondary device kind.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind kind = 1;</code>
+ * @return The kind.
+ */
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind getKind();
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 device_id
+ *@@
+ *@@ Identifier for the secondary device.
+ *@@
+ * </pre>
+ *
+ * <code>int64 device_id = 2;</code>
+ * @return The deviceId.
+ */
+ long getDeviceId();
+ }
+ /**
+ * <pre>
+ *@@
+ *@@ .. cpp:var:: message SecondaryDevice
+ *@@
+ *@@ A secondary device required for a model instance.
+ *@@
+ * </pre>
+ *
+ * Protobuf type {@code inference.ModelInstanceGroup.SecondaryDevice}
+ */
+ public static final class SecondaryDevice extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:inference.ModelInstanceGroup.SecondaryDevice)
+ SecondaryDeviceOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use SecondaryDevice.newBuilder() to construct.
+ private SecondaryDevice(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private SecondaryDevice() {
+ kind_ = 0;
+ }
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(
+ UnusedPrivateParameter unused) {
+ return new SecondaryDevice();
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private SecondaryDevice(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 8: {
+ int rawValue = input.readEnum();
+
+ kind_ = rawValue;
+ break;
+ }
+ case 16: {
+
+ deviceId_ = input.readInt64();
+ break;
+ }
+ default: {
+ if (!parseUnknownField(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelInstanceGroup_SecondaryDevice_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelInstanceGroup_SecondaryDevice_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.class, org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.Builder.class);
+ }
+
+ /**
+ * <pre>
+ *@@
+ *@@ .. cpp:enum:: SecondaryDeviceKind
+ *@@
+ *@@ The kind of the secondary device.
+ *@@
+ * </pre>
+ *
+ * Protobuf enum {@code inference.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind}
+ */
+ public enum SecondaryDeviceKind
+ implements com.google.protobuf.ProtocolMessageEnum {
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: SecondaryDeviceKind::KIND_NVDLA = 0
+ *@@
+ *@@ An NVDLA core. http://nvdla.org
+ *@@ Currently KIND_NVDLA is only supported by the TensorRT backend.
+ *@@
+ * </pre>
+ *
+ * <code>KIND_NVDLA = 0;</code>
+ */
+ KIND_NVDLA(0),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: SecondaryDeviceKind::KIND_NVDLA = 0
+ *@@
+ *@@ An NVDLA core. http://nvdla.org
+ *@@ Currently KIND_NVDLA is only supported by the TensorRT backend.
+ *@@
+ * </pre>
+ *
+ * <code>KIND_NVDLA = 0;</code>
+ */
+ public static final int KIND_NVDLA_VALUE = 0;
+
+
+ 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 numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static SecondaryDeviceKind valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static SecondaryDeviceKind forNumber(int value) {
+ switch (value) {
+ case 0: return KIND_NVDLA;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap<SecondaryDeviceKind>
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static final com.google.protobuf.Internal.EnumLiteMap<
+ SecondaryDeviceKind> internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap<SecondaryDeviceKind>() {
+ public SecondaryDeviceKind findValueByNumber(int number) {
+ return SecondaryDeviceKind.forNumber(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalStateException(
+ "Can't get the descriptor of an unrecognized enum value.");
+ }
+ return getDescriptor().getValues().get(ordinal());
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final SecondaryDeviceKind[] VALUES = values();
+
+ public static SecondaryDeviceKind valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ if (desc.getIndex() == -1) {
+ return UNRECOGNIZED;
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int value;
+
+ private SecondaryDeviceKind(int value) {
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:inference.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind)
+ }
+
+ public static final int KIND_FIELD_NUMBER = 1;
+ private int kind_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDeviceKind kind
+ *@@
+ *@@ The secondary device kind.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind kind = 1;</code>
+ * @return The enum numeric value on the wire for kind.
+ */
+ @java.lang.Override public int getKindValue() {
+ return kind_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDeviceKind kind
+ *@@
+ *@@ The secondary device kind.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind kind = 1;</code>
+ * @return The kind.
+ */
+ @java.lang.Override public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind getKind() {
+ @SuppressWarnings("deprecation")
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind result = org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind.valueOf(kind_);
+ return result == null ? org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind.UNRECOGNIZED : result;
+ }
+
+ public static final int DEVICE_ID_FIELD_NUMBER = 2;
+ private long deviceId_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 device_id
+ *@@
+ *@@ Identifier for the secondary device.
+ *@@
+ * </pre>
+ *
+ * <code>int64 device_id = 2;</code>
+ * @return The deviceId.
+ */
+ @java.lang.Override
+ public long getDeviceId() {
+ return deviceId_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (kind_ != org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind.KIND_NVDLA.getNumber()) {
+ output.writeEnum(1, kind_);
+ }
+ if (deviceId_ != 0L) {
+ output.writeInt64(2, deviceId_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (kind_ != org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind.KIND_NVDLA.getNumber()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(1, kind_);
+ }
+ if (deviceId_ != 0L) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt64Size(2, deviceId_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice)) {
+ return super.equals(obj);
+ }
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice other = (org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice) obj;
+
+ if (kind_ != other.kind_) return false;
+ if (getDeviceId()
+ != other.getDeviceId()) return false;
+ if (!unknownFields.equals(other.unknownFields)) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + KIND_FIELD_NUMBER;
+ hash = (53 * hash) + kind_;
+ hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+ getDeviceId());
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * <pre>
+ *@@
+ *@@ .. cpp:var:: message SecondaryDevice
+ *@@
+ *@@ A secondary device required for a model instance.
+ *@@
+ * </pre>
+ *
+ * Protobuf type {@code inference.ModelInstanceGroup.SecondaryDevice}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:inference.ModelInstanceGroup.SecondaryDevice)
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDeviceOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelInstanceGroup_SecondaryDevice_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelInstanceGroup_SecondaryDevice_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.class, org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.Builder.class);
+ }
+
+ // Construct using org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ kind_ = 0;
+
+ deviceId_ = 0L;
+
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelInstanceGroup_SecondaryDevice_descriptor;
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice getDefaultInstanceForType() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice build() {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice buildPartial() {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice result = new org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice(this);
+ result.kind_ = kind_;
+ result.deviceId_ = deviceId_;
+ onBuilt();
+ return result;
+ }
+
+ @java.lang.Override
+ public Builder clone() {
+ return super.clone();
+ }
+ @java.lang.Override
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return super.setField(field, value);
+ }
+ @java.lang.Override
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return super.clearField(field);
+ }
+ @java.lang.Override
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return super.clearOneof(oneof);
+ }
+ @java.lang.Override
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return super.setRepeatedField(field, index, value);
+ }
+ @java.lang.Override
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return super.addRepeatedField(field, value);
+ }
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice) {
+ return mergeFrom((org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice other) {
+ if (other == org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.getDefaultInstance()) return this;
+ if (other.kind_ != 0) {
+ setKindValue(other.getKindValue());
+ }
+ if (other.getDeviceId() != 0L) {
+ setDeviceId(other.getDeviceId());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private int kind_ = 0;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDeviceKind kind
+ *@@
+ *@@ The secondary device kind.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind kind = 1;</code>
+ * @return The enum numeric value on the wire for kind.
+ */
+ @java.lang.Override public int getKindValue() {
+ return kind_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDeviceKind kind
+ *@@
+ *@@ The secondary device kind.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind kind = 1;</code>
+ * @param value The enum numeric value on the wire for kind to set.
+ * @return This builder for chaining.
+ */
+ public Builder setKindValue(int value) {
+
+ kind_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDeviceKind kind
+ *@@
+ *@@ The secondary device kind.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind kind = 1;</code>
+ * @return The kind.
+ */
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind getKind() {
+ @SuppressWarnings("deprecation")
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind result = org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind.valueOf(kind_);
+ return result == null ? org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind.UNRECOGNIZED : result;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDeviceKind kind
+ *@@
+ *@@ The secondary device kind.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind kind = 1;</code>
+ * @param value The kind to set.
+ * @return This builder for chaining.
+ */
+ public Builder setKind(org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ kind_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDeviceKind kind
+ *@@
+ *@@ The secondary device kind.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInstanceGroup.SecondaryDevice.SecondaryDeviceKind kind = 1;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearKind() {
+
+ kind_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private long deviceId_ ;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 device_id
+ *@@
+ *@@ Identifier for the secondary device.
+ *@@
+ * </pre>
+ *
+ * <code>int64 device_id = 2;</code>
+ * @return The deviceId.
+ */
+ @java.lang.Override
+ public long getDeviceId() {
+ return deviceId_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 device_id
+ *@@
+ *@@ Identifier for the secondary device.
+ *@@
+ * </pre>
+ *
+ * <code>int64 device_id = 2;</code>
+ * @param value The deviceId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDeviceId(long value) {
+
+ deviceId_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 device_id
+ *@@
+ *@@ Identifier for the secondary device.
+ *@@
+ * </pre>
+ *
+ * <code>int64 device_id = 2;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearDeviceId() {
+
+ deviceId_ = 0L;
+ onChanged();
+ return this;
+ }
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:inference.ModelInstanceGroup.SecondaryDevice)
+ }
+
+ // @@protoc_insertion_point(class_scope:inference.ModelInstanceGroup.SecondaryDevice)
+ private static final org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice();
+ }
+
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<SecondaryDevice>
+ PARSER = new com.google.protobuf.AbstractParser<SecondaryDevice>() {
+ @java.lang.Override
+ public SecondaryDevice parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new SecondaryDevice(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<SecondaryDevice> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<SecondaryDevice> getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ public static final int NAME_FIELD_NUMBER = 1;
+ private volatile java.lang.Object name_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ Optional name of this group of instances. If not specified the
+ *@@ name will be formed as <model name>_<group number>. The name of
+ *@@ individual instances will be further formed by a unique instance
+ *@@ number and GPU index:
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The name.
+ */
+ @java.lang.Override
+ public java.lang.String getName() {
+ java.lang.Object ref = name_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ name_ = s;
+ return s;
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ Optional name of this group of instances. If not specified the
+ *@@ name will be formed as <model name>_<group number>. The name of
+ *@@ individual instances will be further formed by a unique instance
+ *@@ number and GPU index:
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The bytes for name.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int KIND_FIELD_NUMBER = 4;
+ private int kind_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Kind kind
+ *@@
+ *@@ The kind of this instance group. Default is KIND_AUTO. If
+ *@@ KIND_AUTO or KIND_GPU then both 'count' and 'gpu' are valid and
+ *@@ may be specified. If KIND_CPU or KIND_MODEL only 'count' is valid
+ *@@ and 'gpu' cannot be specified.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInstanceGroup.Kind kind = 4;</code>
+ * @return The enum numeric value on the wire for kind.
+ */
+ @java.lang.Override public int getKindValue() {
+ return kind_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Kind kind
+ *@@
+ *@@ The kind of this instance group. Default is KIND_AUTO. If
+ *@@ KIND_AUTO or KIND_GPU then both 'count' and 'gpu' are valid and
+ *@@ may be specified. If KIND_CPU or KIND_MODEL only 'count' is valid
+ *@@ and 'gpu' cannot be specified.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInstanceGroup.Kind kind = 4;</code>
+ * @return The kind.
+ */
+ @java.lang.Override public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.Kind getKind() {
+ @SuppressWarnings("deprecation")
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.Kind result = org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.Kind.valueOf(kind_);
+ return result == null ? org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.Kind.UNRECOGNIZED : result;
+ }
+
+ public static final int COUNT_FIELD_NUMBER = 2;
+ private int count_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int32 count
+ *@@
+ *@@ For a group assigned to GPU, the number of instances created for
+ *@@ each GPU listed in 'gpus'. For a group assigned to CPU the number
+ *@@ of instances created. Default is 1.
+ * </pre>
+ *
+ * <code>int32 count = 2;</code>
+ * @return The count.
+ */
+ @java.lang.Override
+ public int getCount() {
+ return count_;
+ }
+
+ public static final int RATE_LIMITER_FIELD_NUMBER = 6;
+ private org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter rateLimiter_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelRateLimiter rate_limiter
+ *@@
+ *@@ The rate limiter specific settings to be associated with this
+ *@@ instance group. Optional, if not specified no rate limiting
+ *@@ will be applied to this instance group.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelRateLimiter rate_limiter = 6;</code>
+ * @return Whether the rateLimiter field is set.
+ */
+ @java.lang.Override
+ public boolean hasRateLimiter() {
+ return rateLimiter_ != null;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelRateLimiter rate_limiter
+ *@@
+ *@@ The rate limiter specific settings to be associated with this
+ *@@ instance group. Optional, if not specified no rate limiting
+ *@@ will be applied to this instance group.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelRateLimiter rate_limiter = 6;</code>
+ * @return The rateLimiter.
+ */
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter getRateLimiter() {
+ return rateLimiter_ == null ? org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.getDefaultInstance() : rateLimiter_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelRateLimiter rate_limiter
+ *@@
+ *@@ The rate limiter specific settings to be associated with this
+ *@@ instance group. Optional, if not specified no rate limiting
+ *@@ will be applied to this instance group.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelRateLimiter rate_limiter = 6;</code>
+ */
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiterOrBuilder getRateLimiterOrBuilder() {
+ return getRateLimiter();
+ }
+
+ public static final int GPUS_FIELD_NUMBER = 3;
+ private com.google.protobuf.Internal.IntList gpus_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int32 gpus (repeated)
+ *@@
+ *@@ GPU(s) where instances should be available. For each GPU listed,
+ *@@ 'count' instances of the model will be available. Setting 'gpus'
+ *@@ to empty (or not specifying at all) is eqivalent to listing all
+ *@@ available GPUs.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int32 gpus = 3;</code>
+ * @return A list containing the gpus.
+ */
+ @java.lang.Override
+ public java.util.List<java.lang.Integer>
+ getGpusList() {
+ return gpus_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int32 gpus (repeated)
+ *@@
+ *@@ GPU(s) where instances should be available. For each GPU listed,
+ *@@ 'count' instances of the model will be available. Setting 'gpus'
+ *@@ to empty (or not specifying at all) is eqivalent to listing all
+ *@@ available GPUs.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int32 gpus = 3;</code>
+ * @return The count of gpus.
+ */
+ public int getGpusCount() {
+ return gpus_.size();
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int32 gpus (repeated)
+ *@@
+ *@@ GPU(s) where instances should be available. For each GPU listed,
+ *@@ 'count' instances of the model will be available. Setting 'gpus'
+ *@@ to empty (or not specifying at all) is eqivalent to listing all
+ *@@ available GPUs.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int32 gpus = 3;</code>
+ * @param index The index of the element to return.
+ * @return The gpus at the given index.
+ */
+ public int getGpus(int index) {
+ return gpus_.getInt(index);
+ }
+ private int gpusMemoizedSerializedSize = -1;
+
+ public static final int SECONDARY_DEVICES_FIELD_NUMBER = 8;
+ private java.util.List<org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice> secondaryDevices_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ @java.lang.Override
+ public java.util.List<org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice> getSecondaryDevicesList() {
+ return secondaryDevices_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ @java.lang.Override
+ public java.util.List<? extends org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDeviceOrBuilder>
+ getSecondaryDevicesOrBuilderList() {
+ return secondaryDevices_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ @java.lang.Override
+ public int getSecondaryDevicesCount() {
+ return secondaryDevices_.size();
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice getSecondaryDevices(int index) {
+ return secondaryDevices_.get(index);
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDeviceOrBuilder getSecondaryDevicesOrBuilder(
+ int index) {
+ return secondaryDevices_.get(index);
+ }
+
+ public static final int PROFILE_FIELD_NUMBER = 5;
+ private com.google.protobuf.LazyStringList profile_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string profile (repeated)
+ *@@
+ *@@ For TensorRT models containing multiple optimization profile, this
+ *@@ parameter specifies a set of optimization profiles available to this
+ *@@ instance group. The inference server will choose the optimal profile
+ *@@ based on the shapes of the input tensors. This field should lie
+ *@@ between 0 and <TotalNumberOfOptimizationProfilesInPlanModel> - 1
+ *@@ and be specified only for TensorRT backend, otherwise an error will
+ *@@ be generated. If not specified, the server will select the first
+ *@@ optimization profile by default.
+ *@@
+ * </pre>
+ *
+ * <code>repeated string profile = 5;</code>
+ * @return A list containing the profile.
+ */
+ public com.google.protobuf.ProtocolStringList
+ getProfileList() {
+ return profile_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string profile (repeated)
+ *@@
+ *@@ For TensorRT models containing multiple optimization profile, this
+ *@@ parameter specifies a set of optimization profiles available to this
+ *@@ instance group. The inference server will choose the optimal profile
+ *@@ based on the shapes of the input tensors. This field should lie
+ *@@ between 0 and <TotalNumberOfOptimizationProfilesInPlanModel> - 1
+ *@@ and be specified only for TensorRT backend, otherwise an error will
+ *@@ be generated. If not specified, the server will select the first
+ *@@ optimization profile by default.
+ *@@
+ * </pre>
+ *
+ * <code>repeated string profile = 5;</code>
+ * @return The count of profile.
+ */
+ public int getProfileCount() {
+ return profile_.size();
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string profile (repeated)
+ *@@
+ *@@ For TensorRT models containing multiple optimization profile, this
+ *@@ parameter specifies a set of optimization profiles available to this
+ *@@ instance group. The inference server will choose the optimal profile
+ *@@ based on the shapes of the input tensors. This field should lie
+ *@@ between 0 and <TotalNumberOfOptimizationProfilesInPlanModel> - 1
+ *@@ and be specified only for TensorRT backend, otherwise an error will
+ *@@ be generated. If not specified, the server will select the first
+ *@@ optimization profile by default.
+ *@@
+ * </pre>
+ *
+ * <code>repeated string profile = 5;</code>
+ * @param index The index of the element to return.
+ * @return The profile at the given index.
+ */
+ public java.lang.String getProfile(int index) {
+ return profile_.get(index);
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string profile (repeated)
+ *@@
+ *@@ For TensorRT models containing multiple optimization profile, this
+ *@@ parameter specifies a set of optimization profiles available to this
+ *@@ instance group. The inference server will choose the optimal profile
+ *@@ based on the shapes of the input tensors. This field should lie
+ *@@ between 0 and <TotalNumberOfOptimizationProfilesInPlanModel> - 1
+ *@@ and be specified only for TensorRT backend, otherwise an error will
+ *@@ be generated. If not specified, the server will select the first
+ *@@ optimization profile by default.
+ *@@
+ * </pre>
+ *
+ * <code>repeated string profile = 5;</code>
+ * @param index The index of the value to return.
+ * @return The bytes of the profile at the given index.
+ */
+ public com.google.protobuf.ByteString
+ getProfileBytes(int index) {
+ return profile_.getByteString(index);
+ }
+
+ public static final int PASSIVE_FIELD_NUMBER = 7;
+ private boolean passive_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool passive
+ *@@
+ *@@ Whether the instances within this instance group will be accepting
+ *@@ inference requests from the scheduler. If true, the instances will
+ *@@ not be added to the scheduler. Default value is false.
+ *@@
+ * </pre>
+ *
+ * <code>bool passive = 7;</code>
+ * @return The passive.
+ */
+ @java.lang.Override
+ public boolean getPassive() {
+ return passive_;
+ }
+
+ public static final int HOST_POLICY_FIELD_NUMBER = 9;
+ private volatile java.lang.Object hostPolicy_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string host_policy
+ *@@
+ *@@ The host policy name that the instance to be associated with.
+ *@@ The default value is set to reflect the device kind of the instance,
+ *@@ for instance, KIND_CPU is "cpu", KIND_MODEL is "model" and
+ *@@ KIND_GPU is "gpu_<gpu_id>".
+ *@@
+ * </pre>
+ *
+ * <code>string host_policy = 9;</code>
+ * @return The hostPolicy.
+ */
+ @java.lang.Override
+ public java.lang.String getHostPolicy() {
+ java.lang.Object ref = hostPolicy_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ hostPolicy_ = s;
+ return s;
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string host_policy
+ *@@
+ *@@ The host policy name that the instance to be associated with.
+ *@@ The default value is set to reflect the device kind of the instance,
+ *@@ for instance, KIND_CPU is "cpu", KIND_MODEL is "model" and
+ *@@ KIND_GPU is "gpu_<gpu_id>".
+ *@@
+ * </pre>
+ *
+ * <code>string host_policy = 9;</code>
+ * @return The bytes for hostPolicy.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getHostPolicyBytes() {
+ java.lang.Object ref = hostPolicy_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ hostPolicy_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (!getNameBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
+ }
+ if (count_ != 0) {
+ output.writeInt32(2, count_);
+ }
+ if (getGpusList().size() > 0) {
+ output.writeUInt32NoTag(26);
+ output.writeUInt32NoTag(gpusMemoizedSerializedSize);
+ }
+ for (int i = 0; i < gpus_.size(); i++) {
+ output.writeInt32NoTag(gpus_.getInt(i));
+ }
+ if (kind_ != org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.Kind.KIND_AUTO.getNumber()) {
+ output.writeEnum(4, kind_);
+ }
+ for (int i = 0; i < profile_.size(); i++) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 5, profile_.getRaw(i));
+ }
+ if (rateLimiter_ != null) {
+ output.writeMessage(6, getRateLimiter());
+ }
+ if (passive_ != false) {
+ output.writeBool(7, passive_);
+ }
+ for (int i = 0; i < secondaryDevices_.size(); i++) {
+ output.writeMessage(8, secondaryDevices_.get(i));
+ }
+ if (!getHostPolicyBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 9, hostPolicy_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!getNameBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
+ }
+ if (count_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(2, count_);
+ }
+ {
+ int dataSize = 0;
+ for (int i = 0; i < gpus_.size(); i++) {
+ dataSize += com.google.protobuf.CodedOutputStream
+ .computeInt32SizeNoTag(gpus_.getInt(i));
+ }
+ size += dataSize;
+ if (!getGpusList().isEmpty()) {
+ size += 1;
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32SizeNoTag(dataSize);
+ }
+ gpusMemoizedSerializedSize = dataSize;
+ }
+ if (kind_ != org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.Kind.KIND_AUTO.getNumber()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(4, kind_);
+ }
+ {
+ int dataSize = 0;
+ for (int i = 0; i < profile_.size(); i++) {
+ dataSize += computeStringSizeNoTag(profile_.getRaw(i));
+ }
+ size += dataSize;
+ size += 1 * getProfileList().size();
+ }
+ if (rateLimiter_ != null) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(6, getRateLimiter());
+ }
+ if (passive_ != false) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(7, passive_);
+ }
+ for (int i = 0; i < secondaryDevices_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(8, secondaryDevices_.get(i));
+ }
+ if (!getHostPolicyBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, hostPolicy_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup)) {
+ return super.equals(obj);
+ }
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup other = (org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup) obj;
+
+ if (!getName()
+ .equals(other.getName())) return false;
+ if (kind_ != other.kind_) return false;
+ if (getCount()
+ != other.getCount()) return false;
+ if (hasRateLimiter() != other.hasRateLimiter()) return false;
+ if (hasRateLimiter()) {
+ if (!getRateLimiter()
+ .equals(other.getRateLimiter())) return false;
+ }
+ if (!getGpusList()
+ .equals(other.getGpusList())) return false;
+ if (!getSecondaryDevicesList()
+ .equals(other.getSecondaryDevicesList())) return false;
+ if (!getProfileList()
+ .equals(other.getProfileList())) return false;
+ if (getPassive()
+ != other.getPassive()) return false;
+ if (!getHostPolicy()
+ .equals(other.getHostPolicy())) return false;
+ if (!unknownFields.equals(other.unknownFields)) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + NAME_FIELD_NUMBER;
+ hash = (53 * hash) + getName().hashCode();
+ hash = (37 * hash) + KIND_FIELD_NUMBER;
+ hash = (53 * hash) + kind_;
+ hash = (37 * hash) + COUNT_FIELD_NUMBER;
+ hash = (53 * hash) + getCount();
+ if (hasRateLimiter()) {
+ hash = (37 * hash) + RATE_LIMITER_FIELD_NUMBER;
+ hash = (53 * hash) + getRateLimiter().hashCode();
+ }
+ if (getGpusCount() > 0) {
+ hash = (37 * hash) + GPUS_FIELD_NUMBER;
+ hash = (53 * hash) + getGpusList().hashCode();
+ }
+ if (getSecondaryDevicesCount() > 0) {
+ hash = (37 * hash) + SECONDARY_DEVICES_FIELD_NUMBER;
+ hash = (53 * hash) + getSecondaryDevicesList().hashCode();
+ }
+ if (getProfileCount() > 0) {
+ hash = (37 * hash) + PROFILE_FIELD_NUMBER;
+ hash = (53 * hash) + getProfileList().hashCode();
+ }
+ hash = (37 * hash) + PASSIVE_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+ getPassive());
+ hash = (37 * hash) + HOST_POLICY_FIELD_NUMBER;
+ hash = (53 * hash) + getHostPolicy().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * <pre>
+ *@@
+ *@@.. cpp:var:: message ModelInstanceGroup
+ *@@
+ *@@ A group of one or more instances of a model and resources made
+ *@@ available for those instances.
+ *@@
+ * </pre>
+ *
+ * Protobuf type {@code inference.ModelInstanceGroup}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:inference.ModelInstanceGroup)
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroupOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelInstanceGroup_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelInstanceGroup_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.class, org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.Builder.class);
+ }
+
+ // Construct using org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ getSecondaryDevicesFieldBuilder();
+ }
+ }
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ name_ = "";
+
+ kind_ = 0;
+
+ count_ = 0;
+
+ if (rateLimiterBuilder_ == null) {
+ rateLimiter_ = null;
+ } else {
+ rateLimiter_ = null;
+ rateLimiterBuilder_ = null;
+ }
+ gpus_ = emptyIntList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ if (secondaryDevicesBuilder_ == null) {
+ secondaryDevices_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ } else {
+ secondaryDevicesBuilder_.clear();
+ }
+ profile_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ passive_ = false;
+
+ hostPolicy_ = "";
+
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelInstanceGroup_descriptor;
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup getDefaultInstanceForType() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup build() {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup buildPartial() {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup result = new org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup(this);
+ int from_bitField0_ = bitField0_;
+ result.name_ = name_;
+ result.kind_ = kind_;
+ result.count_ = count_;
+ if (rateLimiterBuilder_ == null) {
+ result.rateLimiter_ = rateLimiter_;
+ } else {
+ result.rateLimiter_ = rateLimiterBuilder_.build();
+ }
+ if (((bitField0_ & 0x00000001) != 0)) {
+ gpus_.makeImmutable();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ }
+ result.gpus_ = gpus_;
+ if (secondaryDevicesBuilder_ == null) {
+ if (((bitField0_ & 0x00000002) != 0)) {
+ secondaryDevices_ = java.util.Collections.unmodifiableList(secondaryDevices_);
+ bitField0_ = (bitField0_ & ~0x00000002);
+ }
+ result.secondaryDevices_ = secondaryDevices_;
+ } else {
+ result.secondaryDevices_ = secondaryDevicesBuilder_.build();
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ profile_ = profile_.getUnmodifiableView();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ }
+ result.profile_ = profile_;
+ result.passive_ = passive_;
+ result.hostPolicy_ = hostPolicy_;
+ onBuilt();
+ return result;
+ }
+
+ @java.lang.Override
+ public Builder clone() {
+ return super.clone();
+ }
+ @java.lang.Override
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return super.setField(field, value);
+ }
+ @java.lang.Override
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return super.clearField(field);
+ }
+ @java.lang.Override
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return super.clearOneof(oneof);
+ }
+ @java.lang.Override
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return super.setRepeatedField(field, index, value);
+ }
+ @java.lang.Override
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return super.addRepeatedField(field, value);
+ }
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup) {
+ return mergeFrom((org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup other) {
+ if (other == org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.getDefaultInstance()) return this;
+ if (!other.getName().isEmpty()) {
+ name_ = other.name_;
+ onChanged();
+ }
+ if (other.kind_ != 0) {
+ setKindValue(other.getKindValue());
+ }
+ if (other.getCount() != 0) {
+ setCount(other.getCount());
+ }
+ if (other.hasRateLimiter()) {
+ mergeRateLimiter(other.getRateLimiter());
+ }
+ if (!other.gpus_.isEmpty()) {
+ if (gpus_.isEmpty()) {
+ gpus_ = other.gpus_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ } else {
+ ensureGpusIsMutable();
+ gpus_.addAll(other.gpus_);
+ }
+ onChanged();
+ }
+ if (secondaryDevicesBuilder_ == null) {
+ if (!other.secondaryDevices_.isEmpty()) {
+ if (secondaryDevices_.isEmpty()) {
+ secondaryDevices_ = other.secondaryDevices_;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ } else {
+ ensureSecondaryDevicesIsMutable();
+ secondaryDevices_.addAll(other.secondaryDevices_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.secondaryDevices_.isEmpty()) {
+ if (secondaryDevicesBuilder_.isEmpty()) {
+ secondaryDevicesBuilder_.dispose();
+ secondaryDevicesBuilder_ = null;
+ secondaryDevices_ = other.secondaryDevices_;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ secondaryDevicesBuilder_ =
+ com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+ getSecondaryDevicesFieldBuilder() : null;
+ } else {
+ secondaryDevicesBuilder_.addAllMessages(other.secondaryDevices_);
+ }
+ }
+ }
+ if (!other.profile_.isEmpty()) {
+ if (profile_.isEmpty()) {
+ profile_ = other.profile_;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ } else {
+ ensureProfileIsMutable();
+ profile_.addAll(other.profile_);
+ }
+ onChanged();
+ }
+ if (other.getPassive() != false) {
+ setPassive(other.getPassive());
+ }
+ if (!other.getHostPolicy().isEmpty()) {
+ hostPolicy_ = other.hostPolicy_;
+ onChanged();
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ private java.lang.Object name_ = "";
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ Optional name of this group of instances. If not specified the
+ *@@ name will be formed as <model name>_<group number>. The name of
+ *@@ individual instances will be further formed by a unique instance
+ *@@ number and GPU index:
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The name.
+ */
+ public java.lang.String getName() {
+ java.lang.Object ref = name_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ name_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ Optional name of this group of instances. If not specified the
+ *@@ name will be formed as <model name>_<group number>. The name of
+ *@@ individual instances will be further formed by a unique instance
+ *@@ number and GPU index:
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The bytes for name.
+ */
+ public com.google.protobuf.ByteString
+ getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ Optional name of this group of instances. If not specified the
+ *@@ name will be formed as <model name>_<group number>. The name of
+ *@@ individual instances will be further formed by a unique instance
+ *@@ number and GPU index:
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @param value The name to set.
+ * @return This builder for chaining.
+ */
+ public Builder setName(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ name_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ Optional name of this group of instances. If not specified the
+ *@@ name will be formed as <model name>_<group number>. The name of
+ *@@ individual instances will be further formed by a unique instance
+ *@@ number and GPU index:
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearName() {
+
+ name_ = getDefaultInstance().getName();
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ Optional name of this group of instances. If not specified the
+ *@@ name will be formed as <model name>_<group number>. The name of
+ *@@ individual instances will be further formed by a unique instance
+ *@@ number and GPU index:
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @param value The bytes for name to set.
+ * @return This builder for chaining.
+ */
+ public Builder setNameBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ name_ = value;
+ onChanged();
+ return this;
+ }
+
+ private int kind_ = 0;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Kind kind
+ *@@
+ *@@ The kind of this instance group. Default is KIND_AUTO. If
+ *@@ KIND_AUTO or KIND_GPU then both 'count' and 'gpu' are valid and
+ *@@ may be specified. If KIND_CPU or KIND_MODEL only 'count' is valid
+ *@@ and 'gpu' cannot be specified.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInstanceGroup.Kind kind = 4;</code>
+ * @return The enum numeric value on the wire for kind.
+ */
+ @java.lang.Override public int getKindValue() {
+ return kind_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Kind kind
+ *@@
+ *@@ The kind of this instance group. Default is KIND_AUTO. If
+ *@@ KIND_AUTO or KIND_GPU then both 'count' and 'gpu' are valid and
+ *@@ may be specified. If KIND_CPU or KIND_MODEL only 'count' is valid
+ *@@ and 'gpu' cannot be specified.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInstanceGroup.Kind kind = 4;</code>
+ * @param value The enum numeric value on the wire for kind to set.
+ * @return This builder for chaining.
+ */
+ public Builder setKindValue(int value) {
+
+ kind_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Kind kind
+ *@@
+ *@@ The kind of this instance group. Default is KIND_AUTO. If
+ *@@ KIND_AUTO or KIND_GPU then both 'count' and 'gpu' are valid and
+ *@@ may be specified. If KIND_CPU or KIND_MODEL only 'count' is valid
+ *@@ and 'gpu' cannot be specified.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInstanceGroup.Kind kind = 4;</code>
+ * @return The kind.
+ */
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.Kind getKind() {
+ @SuppressWarnings("deprecation")
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.Kind result = org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.Kind.valueOf(kind_);
+ return result == null ? org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.Kind.UNRECOGNIZED : result;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Kind kind
+ *@@
+ *@@ The kind of this instance group. Default is KIND_AUTO. If
+ *@@ KIND_AUTO or KIND_GPU then both 'count' and 'gpu' are valid and
+ *@@ may be specified. If KIND_CPU or KIND_MODEL only 'count' is valid
+ *@@ and 'gpu' cannot be specified.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInstanceGroup.Kind kind = 4;</code>
+ * @param value The kind to set.
+ * @return This builder for chaining.
+ */
+ public Builder setKind(org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.Kind value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ kind_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Kind kind
+ *@@
+ *@@ The kind of this instance group. Default is KIND_AUTO. If
+ *@@ KIND_AUTO or KIND_GPU then both 'count' and 'gpu' are valid and
+ *@@ may be specified. If KIND_CPU or KIND_MODEL only 'count' is valid
+ *@@ and 'gpu' cannot be specified.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInstanceGroup.Kind kind = 4;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearKind() {
+
+ kind_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int count_ ;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int32 count
+ *@@
+ *@@ For a group assigned to GPU, the number of instances created for
+ *@@ each GPU listed in 'gpus'. For a group assigned to CPU the number
+ *@@ of instances created. Default is 1.
+ * </pre>
+ *
+ * <code>int32 count = 2;</code>
+ * @return The count.
+ */
+ @java.lang.Override
+ public int getCount() {
+ return count_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int32 count
+ *@@
+ *@@ For a group assigned to GPU, the number of instances created for
+ *@@ each GPU listed in 'gpus'. For a group assigned to CPU the number
+ *@@ of instances created. Default is 1.
+ * </pre>
+ *
+ * <code>int32 count = 2;</code>
+ * @param value The count to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCount(int value) {
+
+ count_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int32 count
+ *@@
+ *@@ For a group assigned to GPU, the number of instances created for
+ *@@ each GPU listed in 'gpus'. For a group assigned to CPU the number
+ *@@ of instances created. Default is 1.
+ * </pre>
+ *
+ * <code>int32 count = 2;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearCount() {
+
+ count_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter rateLimiter_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Builder, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiterOrBuilder> rateLimiterBuilder_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelRateLimiter rate_limiter
+ *@@
+ *@@ The rate limiter specific settings to be associated with this
+ *@@ instance group. Optional, if not specified no rate limiting
+ *@@ will be applied to this instance group.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelRateLimiter rate_limiter = 6;</code>
+ * @return Whether the rateLimiter field is set.
+ */
+ public boolean hasRateLimiter() {
+ return rateLimiterBuilder_ != null || rateLimiter_ != null;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelRateLimiter rate_limiter
+ *@@
+ *@@ The rate limiter specific settings to be associated with this
+ *@@ instance group. Optional, if not specified no rate limiting
+ *@@ will be applied to this instance group.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelRateLimiter rate_limiter = 6;</code>
+ * @return The rateLimiter.
+ */
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter getRateLimiter() {
+ if (rateLimiterBuilder_ == null) {
+ return rateLimiter_ == null ? org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.getDefaultInstance() : rateLimiter_;
+ } else {
+ return rateLimiterBuilder_.getMessage();
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelRateLimiter rate_limiter
+ *@@
+ *@@ The rate limiter specific settings to be associated with this
+ *@@ instance group. Optional, if not specified no rate limiting
+ *@@ will be applied to this instance group.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelRateLimiter rate_limiter = 6;</code>
+ */
+ public Builder setRateLimiter(org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter value) {
+ if (rateLimiterBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ rateLimiter_ = value;
+ onChanged();
+ } else {
+ rateLimiterBuilder_.setMessage(value);
+ }
+
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelRateLimiter rate_limiter
+ *@@
+ *@@ The rate limiter specific settings to be associated with this
+ *@@ instance group. Optional, if not specified no rate limiting
+ *@@ will be applied to this instance group.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelRateLimiter rate_limiter = 6;</code>
+ */
+ public Builder setRateLimiter(
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Builder builderForValue) {
+ if (rateLimiterBuilder_ == null) {
+ rateLimiter_ = builderForValue.build();
+ onChanged();
+ } else {
+ rateLimiterBuilder_.setMessage(builderForValue.build());
+ }
+
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelRateLimiter rate_limiter
+ *@@
+ *@@ The rate limiter specific settings to be associated with this
+ *@@ instance group. Optional, if not specified no rate limiting
+ *@@ will be applied to this instance group.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelRateLimiter rate_limiter = 6;</code>
+ */
+ public Builder mergeRateLimiter(org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter value) {
+ if (rateLimiterBuilder_ == null) {
+ if (rateLimiter_ != null) {
+ rateLimiter_ =
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.newBuilder(rateLimiter_).mergeFrom(value).buildPartial();
+ } else {
+ rateLimiter_ = value;
+ }
+ onChanged();
+ } else {
+ rateLimiterBuilder_.mergeFrom(value);
+ }
+
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelRateLimiter rate_limiter
+ *@@
+ *@@ The rate limiter specific settings to be associated with this
+ *@@ instance group. Optional, if not specified no rate limiting
+ *@@ will be applied to this instance group.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelRateLimiter rate_limiter = 6;</code>
+ */
+ public Builder clearRateLimiter() {
+ if (rateLimiterBuilder_ == null) {
+ rateLimiter_ = null;
+ onChanged();
+ } else {
+ rateLimiter_ = null;
+ rateLimiterBuilder_ = null;
+ }
+
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelRateLimiter rate_limiter
+ *@@
+ *@@ The rate limiter specific settings to be associated with this
+ *@@ instance group. Optional, if not specified no rate limiting
+ *@@ will be applied to this instance group.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelRateLimiter rate_limiter = 6;</code>
+ */
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Builder getRateLimiterBuilder() {
+
+ onChanged();
+ return getRateLimiterFieldBuilder().getBuilder();
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelRateLimiter rate_limiter
+ *@@
+ *@@ The rate limiter specific settings to be associated with this
+ *@@ instance group. Optional, if not specified no rate limiting
+ *@@ will be applied to this instance group.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelRateLimiter rate_limiter = 6;</code>
+ */
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiterOrBuilder getRateLimiterOrBuilder() {
+ if (rateLimiterBuilder_ != null) {
+ return rateLimiterBuilder_.getMessageOrBuilder();
+ } else {
+ return rateLimiter_ == null ?
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.getDefaultInstance() : rateLimiter_;
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelRateLimiter rate_limiter
+ *@@
+ *@@ The rate limiter specific settings to be associated with this
+ *@@ instance group. Optional, if not specified no rate limiting
+ *@@ will be applied to this instance group.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelRateLimiter rate_limiter = 6;</code>
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Builder, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiterOrBuilder>
+ getRateLimiterFieldBuilder() {
+ if (rateLimiterBuilder_ == null) {
+ rateLimiterBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiter.Builder, org.apache.submarine.server.api.proto.TritonModelConfig.ModelRateLimiterOrBuilder>(
+ getRateLimiter(),
+ getParentForChildren(),
+ isClean());
+ rateLimiter_ = null;
+ }
+ return rateLimiterBuilder_;
+ }
+
+ private com.google.protobuf.Internal.IntList gpus_ = emptyIntList();
+ private void ensureGpusIsMutable() {
+ if (!((bitField0_ & 0x00000001) != 0)) {
+ gpus_ = mutableCopy(gpus_);
+ bitField0_ |= 0x00000001;
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int32 gpus (repeated)
+ *@@
+ *@@ GPU(s) where instances should be available. For each GPU listed,
+ *@@ 'count' instances of the model will be available. Setting 'gpus'
+ *@@ to empty (or not specifying at all) is eqivalent to listing all
+ *@@ available GPUs.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int32 gpus = 3;</code>
+ * @return A list containing the gpus.
+ */
+ public java.util.List<java.lang.Integer>
+ getGpusList() {
+ return ((bitField0_ & 0x00000001) != 0) ?
+ java.util.Collections.unmodifiableList(gpus_) : gpus_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int32 gpus (repeated)
+ *@@
+ *@@ GPU(s) where instances should be available. For each GPU listed,
+ *@@ 'count' instances of the model will be available. Setting 'gpus'
+ *@@ to empty (or not specifying at all) is eqivalent to listing all
+ *@@ available GPUs.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int32 gpus = 3;</code>
+ * @return The count of gpus.
+ */
+ public int getGpusCount() {
+ return gpus_.size();
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int32 gpus (repeated)
+ *@@
+ *@@ GPU(s) where instances should be available. For each GPU listed,
+ *@@ 'count' instances of the model will be available. Setting 'gpus'
+ *@@ to empty (or not specifying at all) is eqivalent to listing all
+ *@@ available GPUs.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int32 gpus = 3;</code>
+ * @param index The index of the element to return.
+ * @return The gpus at the given index.
+ */
+ public int getGpus(int index) {
+ return gpus_.getInt(index);
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int32 gpus (repeated)
+ *@@
+ *@@ GPU(s) where instances should be available. For each GPU listed,
+ *@@ 'count' instances of the model will be available. Setting 'gpus'
+ *@@ to empty (or not specifying at all) is eqivalent to listing all
+ *@@ available GPUs.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int32 gpus = 3;</code>
+ * @param index The index to set the value at.
+ * @param value The gpus to set.
+ * @return This builder for chaining.
+ */
+ public Builder setGpus(
+ int index, int value) {
+ ensureGpusIsMutable();
+ gpus_.setInt(index, value);
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int32 gpus (repeated)
+ *@@
+ *@@ GPU(s) where instances should be available. For each GPU listed,
+ *@@ 'count' instances of the model will be available. Setting 'gpus'
+ *@@ to empty (or not specifying at all) is eqivalent to listing all
+ *@@ available GPUs.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int32 gpus = 3;</code>
+ * @param value The gpus to add.
+ * @return This builder for chaining.
+ */
+ public Builder addGpus(int value) {
+ ensureGpusIsMutable();
+ gpus_.addInt(value);
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int32 gpus (repeated)
+ *@@
+ *@@ GPU(s) where instances should be available. For each GPU listed,
+ *@@ 'count' instances of the model will be available. Setting 'gpus'
+ *@@ to empty (or not specifying at all) is eqivalent to listing all
+ *@@ available GPUs.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int32 gpus = 3;</code>
+ * @param values The gpus to add.
+ * @return This builder for chaining.
+ */
+ public Builder addAllGpus(
+ java.lang.Iterable<? extends java.lang.Integer> values) {
+ ensureGpusIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(
+ values, gpus_);
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int32 gpus (repeated)
+ *@@
+ *@@ GPU(s) where instances should be available. For each GPU listed,
+ *@@ 'count' instances of the model will be available. Setting 'gpus'
+ *@@ to empty (or not specifying at all) is eqivalent to listing all
+ *@@ available GPUs.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int32 gpus = 3;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearGpus() {
+ gpus_ = emptyIntList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+
+ private java.util.List<org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice> secondaryDevices_ =
+ java.util.Collections.emptyList();
+ private void ensureSecondaryDevicesIsMutable() {
+ if (!((bitField0_ & 0x00000002) != 0)) {
+ secondaryDevices_ = new java.util.ArrayList<org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice>(secondaryDevices_);
+ bitField0_ |= 0x00000002;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice, org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.Builder, org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDeviceOrBuilder> secondaryDevicesBuilder_;
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ public java.util.List<org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice> getSecondaryDevicesList() {
+ if (secondaryDevicesBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(secondaryDevices_);
+ } else {
+ return secondaryDevicesBuilder_.getMessageList();
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ public int getSecondaryDevicesCount() {
+ if (secondaryDevicesBuilder_ == null) {
+ return secondaryDevices_.size();
+ } else {
+ return secondaryDevicesBuilder_.getCount();
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice getSecondaryDevices(int index) {
+ if (secondaryDevicesBuilder_ == null) {
+ return secondaryDevices_.get(index);
+ } else {
+ return secondaryDevicesBuilder_.getMessage(index);
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ public Builder setSecondaryDevices(
+ int index, org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice value) {
+ if (secondaryDevicesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureSecondaryDevicesIsMutable();
+ secondaryDevices_.set(index, value);
+ onChanged();
+ } else {
+ secondaryDevicesBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ public Builder setSecondaryDevices(
+ int index, org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.Builder builderForValue) {
+ if (secondaryDevicesBuilder_ == null) {
+ ensureSecondaryDevicesIsMutable();
+ secondaryDevices_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ secondaryDevicesBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ public Builder addSecondaryDevices(org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice value) {
+ if (secondaryDevicesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureSecondaryDevicesIsMutable();
+ secondaryDevices_.add(value);
+ onChanged();
+ } else {
+ secondaryDevicesBuilder_.addMessage(value);
+ }
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ public Builder addSecondaryDevices(
+ int index, org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice value) {
+ if (secondaryDevicesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureSecondaryDevicesIsMutable();
+ secondaryDevices_.add(index, value);
+ onChanged();
+ } else {
+ secondaryDevicesBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ public Builder addSecondaryDevices(
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.Builder builderForValue) {
+ if (secondaryDevicesBuilder_ == null) {
+ ensureSecondaryDevicesIsMutable();
+ secondaryDevices_.add(builderForValue.build());
+ onChanged();
+ } else {
+ secondaryDevicesBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ public Builder addSecondaryDevices(
+ int index, org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.Builder builderForValue) {
+ if (secondaryDevicesBuilder_ == null) {
+ ensureSecondaryDevicesIsMutable();
+ secondaryDevices_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ secondaryDevicesBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ public Builder addAllSecondaryDevices(
+ java.lang.Iterable<? extends org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice> values) {
+ if (secondaryDevicesBuilder_ == null) {
+ ensureSecondaryDevicesIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(
+ values, secondaryDevices_);
+ onChanged();
+ } else {
+ secondaryDevicesBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ public Builder clearSecondaryDevices() {
+ if (secondaryDevicesBuilder_ == null) {
+ secondaryDevices_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ } else {
+ secondaryDevicesBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ public Builder removeSecondaryDevices(int index) {
+ if (secondaryDevicesBuilder_ == null) {
+ ensureSecondaryDevicesIsMutable();
+ secondaryDevices_.remove(index);
+ onChanged();
+ } else {
+ secondaryDevicesBuilder_.remove(index);
+ }
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.Builder getSecondaryDevicesBuilder(
+ int index) {
+ return getSecondaryDevicesFieldBuilder().getBuilder(index);
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDeviceOrBuilder getSecondaryDevicesOrBuilder(
+ int index) {
+ if (secondaryDevicesBuilder_ == null) {
+ return secondaryDevices_.get(index); } else {
+ return secondaryDevicesBuilder_.getMessageOrBuilder(index);
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ public java.util.List<? extends org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDeviceOrBuilder>
+ getSecondaryDevicesOrBuilderList() {
+ if (secondaryDevicesBuilder_ != null) {
+ return secondaryDevicesBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(secondaryDevices_);
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.Builder addSecondaryDevicesBuilder() {
+ return getSecondaryDevicesFieldBuilder().addBuilder(
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.getDefaultInstance());
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.Builder addSecondaryDevicesBuilder(
+ int index) {
+ return getSecondaryDevicesFieldBuilder().addBuilder(
+ index, org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.getDefaultInstance());
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: SecondaryDevice secondary_devices (repeated)
+ *@@
+ *@@ Secondary devices that are required by instances specified by this
+ *@@ instance group. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>repeated .inference.ModelInstanceGroup.SecondaryDevice secondary_devices = 8;</code>
+ */
+ public java.util.List<org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.Builder>
+ getSecondaryDevicesBuilderList() {
+ return getSecondaryDevicesFieldBuilder().getBuilderList();
+ }
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice, org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.Builder, org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDeviceOrBuilder>
+ getSecondaryDevicesFieldBuilder() {
+ if (secondaryDevicesBuilder_ == null) {
+ secondaryDevicesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice, org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDevice.Builder, org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup.SecondaryDeviceOrBuilder>(
+ secondaryDevices_,
+ ((bitField0_ & 0x00000002) != 0),
+ getParentForChildren(),
+ isClean());
+ secondaryDevices_ = null;
+ }
+ return secondaryDevicesBuilder_;
+ }
+
+ private com.google.protobuf.LazyStringList profile_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+ private void ensureProfileIsMutable() {
+ if (!((bitField0_ & 0x00000004) != 0)) {
+ profile_ = new com.google.protobuf.LazyStringArrayList(profile_);
+ bitField0_ |= 0x00000004;
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string profile (repeated)
+ *@@
+ *@@ For TensorRT models containing multiple optimization profile, this
+ *@@ parameter specifies a set of optimization profiles available to this
+ *@@ instance group. The inference server will choose the optimal profile
+ *@@ based on the shapes of the input tensors. This field should lie
+ *@@ between 0 and <TotalNumberOfOptimizationProfilesInPlanModel> - 1
+ *@@ and be specified only for TensorRT backend, otherwise an error will
+ *@@ be generated. If not specified, the server will select the first
+ *@@ optimization profile by default.
+ *@@
+ * </pre>
+ *
+ * <code>repeated string profile = 5;</code>
+ * @return A list containing the profile.
+ */
+ public com.google.protobuf.ProtocolStringList
+ getProfileList() {
+ return profile_.getUnmodifiableView();
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string profile (repeated)
+ *@@
+ *@@ For TensorRT models containing multiple optimization profile, this
+ *@@ parameter specifies a set of optimization profiles available to this
+ *@@ instance group. The inference server will choose the optimal profile
+ *@@ based on the shapes of the input tensors. This field should lie
+ *@@ between 0 and <TotalNumberOfOptimizationProfilesInPlanModel> - 1
+ *@@ and be specified only for TensorRT backend, otherwise an error will
+ *@@ be generated. If not specified, the server will select the first
+ *@@ optimization profile by default.
+ *@@
+ * </pre>
+ *
+ * <code>repeated string profile = 5;</code>
+ * @return The count of profile.
+ */
+ public int getProfileCount() {
+ return profile_.size();
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string profile (repeated)
+ *@@
+ *@@ For TensorRT models containing multiple optimization profile, this
+ *@@ parameter specifies a set of optimization profiles available to this
+ *@@ instance group. The inference server will choose the optimal profile
+ *@@ based on the shapes of the input tensors. This field should lie
+ *@@ between 0 and <TotalNumberOfOptimizationProfilesInPlanModel> - 1
+ *@@ and be specified only for TensorRT backend, otherwise an error will
+ *@@ be generated. If not specified, the server will select the first
+ *@@ optimization profile by default.
+ *@@
+ * </pre>
+ *
+ * <code>repeated string profile = 5;</code>
+ * @param index The index of the element to return.
+ * @return The profile at the given index.
+ */
+ public java.lang.String getProfile(int index) {
+ return profile_.get(index);
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string profile (repeated)
+ *@@
+ *@@ For TensorRT models containing multiple optimization profile, this
+ *@@ parameter specifies a set of optimization profiles available to this
+ *@@ instance group. The inference server will choose the optimal profile
+ *@@ based on the shapes of the input tensors. This field should lie
+ *@@ between 0 and <TotalNumberOfOptimizationProfilesInPlanModel> - 1
+ *@@ and be specified only for TensorRT backend, otherwise an error will
+ *@@ be generated. If not specified, the server will select the first
+ *@@ optimization profile by default.
+ *@@
+ * </pre>
+ *
+ * <code>repeated string profile = 5;</code>
+ * @param index The index of the value to return.
+ * @return The bytes of the profile at the given index.
+ */
+ public com.google.protobuf.ByteString
+ getProfileBytes(int index) {
+ return profile_.getByteString(index);
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string profile (repeated)
+ *@@
+ *@@ For TensorRT models containing multiple optimization profile, this
+ *@@ parameter specifies a set of optimization profiles available to this
+ *@@ instance group. The inference server will choose the optimal profile
+ *@@ based on the shapes of the input tensors. This field should lie
+ *@@ between 0 and <TotalNumberOfOptimizationProfilesInPlanModel> - 1
+ *@@ and be specified only for TensorRT backend, otherwise an error will
+ *@@ be generated. If not specified, the server will select the first
+ *@@ optimization profile by default.
+ *@@
+ * </pre>
+ *
+ * <code>repeated string profile = 5;</code>
+ * @param index The index to set the value at.
+ * @param value The profile to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProfile(
+ int index, java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureProfileIsMutable();
+ profile_.set(index, value);
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string profile (repeated)
+ *@@
+ *@@ For TensorRT models containing multiple optimization profile, this
+ *@@ parameter specifies a set of optimization profiles available to this
+ *@@ instance group. The inference server will choose the optimal profile
+ *@@ based on the shapes of the input tensors. This field should lie
+ *@@ between 0 and <TotalNumberOfOptimizationProfilesInPlanModel> - 1
+ *@@ and be specified only for TensorRT backend, otherwise an error will
+ *@@ be generated. If not specified, the server will select the first
+ *@@ optimization profile by default.
+ *@@
+ * </pre>
+ *
+ * <code>repeated string profile = 5;</code>
+ * @param value The profile to add.
+ * @return This builder for chaining.
+ */
+ public Builder addProfile(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureProfileIsMutable();
+ profile_.add(value);
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string profile (repeated)
+ *@@
+ *@@ For TensorRT models containing multiple optimization profile, this
+ *@@ parameter specifies a set of optimization profiles available to this
+ *@@ instance group. The inference server will choose the optimal profile
+ *@@ based on the shapes of the input tensors. This field should lie
+ *@@ between 0 and <TotalNumberOfOptimizationProfilesInPlanModel> - 1
+ *@@ and be specified only for TensorRT backend, otherwise an error will
+ *@@ be generated. If not specified, the server will select the first
+ *@@ optimization profile by default.
+ *@@
+ * </pre>
+ *
+ * <code>repeated string profile = 5;</code>
+ * @param values The profile to add.
+ * @return This builder for chaining.
+ */
+ public Builder addAllProfile(
+ java.lang.Iterable<java.lang.String> values) {
+ ensureProfileIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(
+ values, profile_);
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string profile (repeated)
+ *@@
+ *@@ For TensorRT models containing multiple optimization profile, this
+ *@@ parameter specifies a set of optimization profiles available to this
+ *@@ instance group. The inference server will choose the optimal profile
+ *@@ based on the shapes of the input tensors. This field should lie
+ *@@ between 0 and <TotalNumberOfOptimizationProfilesInPlanModel> - 1
+ *@@ and be specified only for TensorRT backend, otherwise an error will
+ *@@ be generated. If not specified, the server will select the first
+ *@@ optimization profile by default.
+ *@@
+ * </pre>
+ *
+ * <code>repeated string profile = 5;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearProfile() {
+ profile_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string profile (repeated)
+ *@@
+ *@@ For TensorRT models containing multiple optimization profile, this
+ *@@ parameter specifies a set of optimization profiles available to this
+ *@@ instance group. The inference server will choose the optimal profile
+ *@@ based on the shapes of the input tensors. This field should lie
+ *@@ between 0 and <TotalNumberOfOptimizationProfilesInPlanModel> - 1
+ *@@ and be specified only for TensorRT backend, otherwise an error will
+ *@@ be generated. If not specified, the server will select the first
+ *@@ optimization profile by default.
+ *@@
+ * </pre>
+ *
+ * <code>repeated string profile = 5;</code>
+ * @param value The bytes of the profile to add.
+ * @return This builder for chaining.
+ */
+ public Builder addProfileBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ ensureProfileIsMutable();
+ profile_.add(value);
+ onChanged();
+ return this;
+ }
+
+ private boolean passive_ ;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool passive
+ *@@
+ *@@ Whether the instances within this instance group will be accepting
+ *@@ inference requests from the scheduler. If true, the instances will
+ *@@ not be added to the scheduler. Default value is false.
+ *@@
+ * </pre>
+ *
+ * <code>bool passive = 7;</code>
+ * @return The passive.
+ */
+ @java.lang.Override
+ public boolean getPassive() {
+ return passive_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool passive
+ *@@
+ *@@ Whether the instances within this instance group will be accepting
+ *@@ inference requests from the scheduler. If true, the instances will
+ *@@ not be added to the scheduler. Default value is false.
+ *@@
+ * </pre>
+ *
+ * <code>bool passive = 7;</code>
+ * @param value The passive to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPassive(boolean value) {
+
+ passive_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool passive
+ *@@
+ *@@ Whether the instances within this instance group will be accepting
+ *@@ inference requests from the scheduler. If true, the instances will
+ *@@ not be added to the scheduler. Default value is false.
+ *@@
+ * </pre>
+ *
+ * <code>bool passive = 7;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearPassive() {
+
+ passive_ = false;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object hostPolicy_ = "";
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string host_policy
+ *@@
+ *@@ The host policy name that the instance to be associated with.
+ *@@ The default value is set to reflect the device kind of the instance,
+ *@@ for instance, KIND_CPU is "cpu", KIND_MODEL is "model" and
+ *@@ KIND_GPU is "gpu_<gpu_id>".
+ *@@
+ * </pre>
+ *
+ * <code>string host_policy = 9;</code>
+ * @return The hostPolicy.
+ */
+ public java.lang.String getHostPolicy() {
+ java.lang.Object ref = hostPolicy_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ hostPolicy_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string host_policy
+ *@@
+ *@@ The host policy name that the instance to be associated with.
+ *@@ The default value is set to reflect the device kind of the instance,
+ *@@ for instance, KIND_CPU is "cpu", KIND_MODEL is "model" and
+ *@@ KIND_GPU is "gpu_<gpu_id>".
+ *@@
+ * </pre>
+ *
+ * <code>string host_policy = 9;</code>
+ * @return The bytes for hostPolicy.
+ */
+ public com.google.protobuf.ByteString
+ getHostPolicyBytes() {
+ java.lang.Object ref = hostPolicy_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ hostPolicy_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string host_policy
+ *@@
+ *@@ The host policy name that the instance to be associated with.
+ *@@ The default value is set to reflect the device kind of the instance,
+ *@@ for instance, KIND_CPU is "cpu", KIND_MODEL is "model" and
+ *@@ KIND_GPU is "gpu_<gpu_id>".
+ *@@
+ * </pre>
+ *
+ * <code>string host_policy = 9;</code>
+ * @param value The hostPolicy to set.
+ * @return This builder for chaining.
+ */
+ public Builder setHostPolicy(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ hostPolicy_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string host_policy
+ *@@
+ *@@ The host policy name that the instance to be associated with.
+ *@@ The default value is set to reflect the device kind of the instance,
+ *@@ for instance, KIND_CPU is "cpu", KIND_MODEL is "model" and
+ *@@ KIND_GPU is "gpu_<gpu_id>".
+ *@@
+ * </pre>
+ *
+ * <code>string host_policy = 9;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearHostPolicy() {
+
+ hostPolicy_ = getDefaultInstance().getHostPolicy();
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string host_policy
+ *@@
+ *@@ The host policy name that the instance to be associated with.
+ *@@ The default value is set to reflect the device kind of the instance,
+ *@@ for instance, KIND_CPU is "cpu", KIND_MODEL is "model" and
+ *@@ KIND_GPU is "gpu_<gpu_id>".
+ *@@
+ * </pre>
+ *
+ * <code>string host_policy = 9;</code>
+ * @param value The bytes for hostPolicy to set.
+ * @return This builder for chaining.
+ */
+ public Builder setHostPolicyBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ hostPolicy_ = value;
+ onChanged();
+ return this;
+ }
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:inference.ModelInstanceGroup)
+ }
+
+ // @@protoc_insertion_point(class_scope:inference.ModelInstanceGroup)
+ private static final org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup();
+ }
+
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<ModelInstanceGroup>
+ PARSER = new com.google.protobuf.AbstractParser<ModelInstanceGroup>() {
+ @java.lang.Override
+ public ModelInstanceGroup parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new ModelInstanceGroup(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<ModelInstanceGroup> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<ModelInstanceGroup> getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInstanceGroup getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ public interface ModelTensorReshapeOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:inference.ModelTensorReshape)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 shape (repeated)
+ *@@
+ *@@ The shape to use for reshaping.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 shape = 1;</code>
+ * @return A list containing the shape.
+ */
+ java.util.List<java.lang.Long> getShapeList();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 shape (repeated)
+ *@@
+ *@@ The shape to use for reshaping.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 shape = 1;</code>
+ * @return The count of shape.
+ */
+ int getShapeCount();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 shape (repeated)
+ *@@
+ *@@ The shape to use for reshaping.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 shape = 1;</code>
+ * @param index The index of the element to return.
+ * @return The shape at the given index.
+ */
+ long getShape(int index);
+ }
+ /**
+ * <pre>
+ *@@
+ *@@.. cpp:var:: message ModelTensorReshape
+ *@@
+ *@@ Reshape specification for input and output tensors.
+ *@@
+ * </pre>
+ *
+ * Protobuf type {@code inference.ModelTensorReshape}
+ */
+ public static final class ModelTensorReshape extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:inference.ModelTensorReshape)
+ ModelTensorReshapeOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use ModelTensorReshape.newBuilder() to construct.
+ private ModelTensorReshape(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private ModelTensorReshape() {
+ shape_ = emptyLongList();
+ }
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(
+ UnusedPrivateParameter unused) {
+ return new ModelTensorReshape();
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private ModelTensorReshape(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 8: {
+ if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+ shape_ = newLongList();
+ mutable_bitField0_ |= 0x00000001;
+ }
+ shape_.addLong(input.readInt64());
+ break;
+ }
+ case 10: {
+ int length = input.readRawVarint32();
+ int limit = input.pushLimit(length);
+ if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+ shape_ = newLongList();
+ mutable_bitField0_ |= 0x00000001;
+ }
+ while (input.getBytesUntilLimit() > 0) {
+ shape_.addLong(input.readInt64());
+ }
+ input.popLimit(limit);
+ break;
+ }
+ default: {
+ if (!parseUnknownField(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ if (((mutable_bitField0_ & 0x00000001) != 0)) {
+ shape_.makeImmutable(); // C
+ }
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelTensorReshape_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelTensorReshape_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.class, org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.Builder.class);
+ }
+
+ public static final int SHAPE_FIELD_NUMBER = 1;
+ private com.google.protobuf.Internal.LongList shape_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 shape (repeated)
+ *@@
+ *@@ The shape to use for reshaping.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 shape = 1;</code>
+ * @return A list containing the shape.
+ */
+ @java.lang.Override
+ public java.util.List<java.lang.Long>
+ getShapeList() {
+ return shape_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 shape (repeated)
+ *@@
+ *@@ The shape to use for reshaping.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 shape = 1;</code>
+ * @return The count of shape.
+ */
+ public int getShapeCount() {
+ return shape_.size();
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 shape (repeated)
+ *@@
+ *@@ The shape to use for reshaping.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 shape = 1;</code>
+ * @param index The index of the element to return.
+ * @return The shape at the given index.
+ */
+ public long getShape(int index) {
+ return shape_.getLong(index);
+ }
+ private int shapeMemoizedSerializedSize = -1;
+
+ private byte memoizedIsInitialized = -1;
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (getShapeList().size() > 0) {
+ output.writeUInt32NoTag(10);
+ output.writeUInt32NoTag(shapeMemoizedSerializedSize);
+ }
+ for (int i = 0; i < shape_.size(); i++) {
+ output.writeInt64NoTag(shape_.getLong(i));
+ }
+ unknownFields.writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ for (int i = 0; i < shape_.size(); i++) {
+ dataSize += com.google.protobuf.CodedOutputStream
+ .computeInt64SizeNoTag(shape_.getLong(i));
+ }
+ size += dataSize;
+ if (!getShapeList().isEmpty()) {
+ size += 1;
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32SizeNoTag(dataSize);
+ }
+ shapeMemoizedSerializedSize = dataSize;
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape)) {
+ return super.equals(obj);
+ }
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape other = (org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape) obj;
+
+ if (!getShapeList()
+ .equals(other.getShapeList())) return false;
+ if (!unknownFields.equals(other.unknownFields)) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (getShapeCount() > 0) {
+ hash = (37 * hash) + SHAPE_FIELD_NUMBER;
+ hash = (53 * hash) + getShapeList().hashCode();
+ }
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * <pre>
+ *@@
+ *@@.. cpp:var:: message ModelTensorReshape
+ *@@
+ *@@ Reshape specification for input and output tensors.
+ *@@
+ * </pre>
+ *
+ * Protobuf type {@code inference.ModelTensorReshape}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:inference.ModelTensorReshape)
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshapeOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelTensorReshape_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelTensorReshape_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.class, org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.Builder.class);
+ }
+
+ // Construct using org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ shape_ = emptyLongList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelTensorReshape_descriptor;
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape getDefaultInstanceForType() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape build() {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape buildPartial() {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape result = new org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape(this);
+ int from_bitField0_ = bitField0_;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ shape_.makeImmutable();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ }
+ result.shape_ = shape_;
+ onBuilt();
+ return result;
+ }
+
+ @java.lang.Override
+ public Builder clone() {
+ return super.clone();
+ }
+ @java.lang.Override
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return super.setField(field, value);
+ }
+ @java.lang.Override
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return super.clearField(field);
+ }
+ @java.lang.Override
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return super.clearOneof(oneof);
+ }
+ @java.lang.Override
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return super.setRepeatedField(field, index, value);
+ }
+ @java.lang.Override
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return super.addRepeatedField(field, value);
+ }
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape) {
+ return mergeFrom((org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape other) {
+ if (other == org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.getDefaultInstance()) return this;
+ if (!other.shape_.isEmpty()) {
+ if (shape_.isEmpty()) {
+ shape_ = other.shape_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ } else {
+ ensureShapeIsMutable();
+ shape_.addAll(other.shape_);
+ }
+ onChanged();
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ private com.google.protobuf.Internal.LongList shape_ = emptyLongList();
+ private void ensureShapeIsMutable() {
+ if (!((bitField0_ & 0x00000001) != 0)) {
+ shape_ = mutableCopy(shape_);
+ bitField0_ |= 0x00000001;
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 shape (repeated)
+ *@@
+ *@@ The shape to use for reshaping.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 shape = 1;</code>
+ * @return A list containing the shape.
+ */
+ public java.util.List<java.lang.Long>
+ getShapeList() {
+ return ((bitField0_ & 0x00000001) != 0) ?
+ java.util.Collections.unmodifiableList(shape_) : shape_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 shape (repeated)
+ *@@
+ *@@ The shape to use for reshaping.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 shape = 1;</code>
+ * @return The count of shape.
+ */
+ public int getShapeCount() {
+ return shape_.size();
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 shape (repeated)
+ *@@
+ *@@ The shape to use for reshaping.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 shape = 1;</code>
+ * @param index The index of the element to return.
+ * @return The shape at the given index.
+ */
+ public long getShape(int index) {
+ return shape_.getLong(index);
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 shape (repeated)
+ *@@
+ *@@ The shape to use for reshaping.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 shape = 1;</code>
+ * @param index The index to set the value at.
+ * @param value The shape to set.
+ * @return This builder for chaining.
+ */
+ public Builder setShape(
+ int index, long value) {
+ ensureShapeIsMutable();
+ shape_.setLong(index, value);
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 shape (repeated)
+ *@@
+ *@@ The shape to use for reshaping.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 shape = 1;</code>
+ * @param value The shape to add.
+ * @return This builder for chaining.
+ */
+ public Builder addShape(long value) {
+ ensureShapeIsMutable();
+ shape_.addLong(value);
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 shape (repeated)
+ *@@
+ *@@ The shape to use for reshaping.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 shape = 1;</code>
+ * @param values The shape to add.
+ * @return This builder for chaining.
+ */
+ public Builder addAllShape(
+ java.lang.Iterable<? extends java.lang.Long> values) {
+ ensureShapeIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(
+ values, shape_);
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 shape (repeated)
+ *@@
+ *@@ The shape to use for reshaping.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 shape = 1;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearShape() {
+ shape_ = emptyLongList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:inference.ModelTensorReshape)
+ }
+
+ // @@protoc_insertion_point(class_scope:inference.ModelTensorReshape)
+ private static final org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape();
+ }
+
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<ModelTensorReshape>
+ PARSER = new com.google.protobuf.AbstractParser<ModelTensorReshape>() {
+ @java.lang.Override
+ public ModelTensorReshape parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new ModelTensorReshape(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<ModelTensorReshape> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<ModelTensorReshape> getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ public interface ModelInputOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:inference.ModelInput)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name of the input.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The name.
+ */
+ java.lang.String getName();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name of the input.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The bytes for name.
+ */
+ com.google.protobuf.ByteString
+ getNameBytes();
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: DataType data_type
+ *@@
+ *@@ The data-type of the input.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.DataType data_type = 2;</code>
+ * @return The enum numeric value on the wire for dataType.
+ */
+ int getDataTypeValue();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: DataType data_type
+ *@@
+ *@@ The data-type of the input.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.DataType data_type = 2;</code>
+ * @return The dataType.
+ */
+ org.apache.submarine.server.api.proto.TritonModelConfig.DataType getDataType();
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Format format
+ *@@
+ *@@ The format of the input. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInput.Format format = 3;</code>
+ * @return The enum numeric value on the wire for format.
+ */
+ int getFormatValue();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Format format
+ *@@
+ *@@ The format of the input. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInput.Format format = 3;</code>
+ * @return The format.
+ */
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.Format getFormat();
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 dims (repeated)
+ *@@
+ *@@ The dimensions/shape of the input tensor that must be provided
+ *@@ when invoking the inference API for this model.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 dims = 4;</code>
+ * @return A list containing the dims.
+ */
+ java.util.List<java.lang.Long> getDimsList();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 dims (repeated)
+ *@@
+ *@@ The dimensions/shape of the input tensor that must be provided
+ *@@ when invoking the inference API for this model.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 dims = 4;</code>
+ * @return The count of dims.
+ */
+ int getDimsCount();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 dims (repeated)
+ *@@
+ *@@ The dimensions/shape of the input tensor that must be provided
+ *@@ when invoking the inference API for this model.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 dims = 4;</code>
+ * @param index The index of the element to return.
+ * @return The dims at the given index.
+ */
+ long getDims(int index);
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelTensorReshape reshape
+ *@@
+ *@@ The shape expected for this input by the backend. The input will
+ *@@ be reshaped to this before being presented to the backend. The
+ *@@ reshape must have the same number of elements as the input shape
+ *@@ specified by 'dims'. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelTensorReshape reshape = 5;</code>
+ * @return Whether the reshape field is set.
+ */
+ boolean hasReshape();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelTensorReshape reshape
+ *@@
+ *@@ The shape expected for this input by the backend. The input will
+ *@@ be reshaped to this before being presented to the backend. The
+ *@@ reshape must have the same number of elements as the input shape
+ *@@ specified by 'dims'. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelTensorReshape reshape = 5;</code>
+ * @return The reshape.
+ */
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape getReshape();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelTensorReshape reshape
+ *@@
+ *@@ The shape expected for this input by the backend. The input will
+ *@@ be reshaped to this before being presented to the backend. The
+ *@@ reshape must have the same number of elements as the input shape
+ *@@ specified by 'dims'. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelTensorReshape reshape = 5;</code>
+ */
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshapeOrBuilder getReshapeOrBuilder();
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool is_shape_tensor
+ *@@
+ *@@ Whether or not the input is a shape tensor to the model. This field
+ *@@ is currently supported only for the TensorRT model. An error will be
+ *@@ generated if this specification does not comply with underlying
+ *@@ model.
+ *@@
+ * </pre>
+ *
+ * <code>bool is_shape_tensor = 6;</code>
+ * @return The isShapeTensor.
+ */
+ boolean getIsShapeTensor();
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool allow_ragged_batch
+ *@@
+ *@@ Whether or not the input is allowed to be "ragged" in a dynamically
+ *@@ created batch. Default is false indicating that two requests will
+ *@@ only be batched if this tensor has the same shape in both requests.
+ *@@ True indicates that two requests can be batched even if this tensor
+ *@@ has a different shape in each request.
+ *@@
+ * </pre>
+ *
+ * <code>bool allow_ragged_batch = 7;</code>
+ * @return The allowRaggedBatch.
+ */
+ boolean getAllowRaggedBatch();
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool optional
+ *@@
+ *@@ Whether or not the input is optional for the model execution.
+ *@@ If true, the input is not required in the inference request.
+ *@@ Default value is false.
+ *@@
+ * </pre>
+ *
+ * <code>bool optional = 8;</code>
+ * @return The optional.
+ */
+ boolean getOptional();
+ }
+ /**
+ * <pre>
+ *@@
+ *@@.. cpp:var:: message ModelInput
+ *@@
+ *@@ An input required by the model.
+ *@@
+ * </pre>
+ *
+ * Protobuf type {@code inference.ModelInput}
+ */
+ public static final class ModelInput extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:inference.ModelInput)
+ ModelInputOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use ModelInput.newBuilder() to construct.
+ private ModelInput(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private ModelInput() {
+ name_ = "";
+ dataType_ = 0;
+ format_ = 0;
+ dims_ = emptyLongList();
+ }
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(
+ UnusedPrivateParameter unused) {
+ return new ModelInput();
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private ModelInput(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ name_ = s;
+ break;
+ }
+ case 16: {
+ int rawValue = input.readEnum();
+
+ dataType_ = rawValue;
+ break;
+ }
+ case 24: {
+ int rawValue = input.readEnum();
+
+ format_ = rawValue;
+ break;
+ }
+ case 32: {
+ if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+ dims_ = newLongList();
+ mutable_bitField0_ |= 0x00000001;
+ }
+ dims_.addLong(input.readInt64());
+ break;
+ }
+ case 34: {
+ int length = input.readRawVarint32();
+ int limit = input.pushLimit(length);
+ if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+ dims_ = newLongList();
+ mutable_bitField0_ |= 0x00000001;
+ }
+ while (input.getBytesUntilLimit() > 0) {
+ dims_.addLong(input.readInt64());
+ }
+ input.popLimit(limit);
+ break;
+ }
+ case 42: {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.Builder subBuilder = null;
+ if (reshape_ != null) {
+ subBuilder = reshape_.toBuilder();
+ }
+ reshape_ = input.readMessage(org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.parser(), extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(reshape_);
+ reshape_ = subBuilder.buildPartial();
+ }
+
+ break;
+ }
+ case 48: {
+
+ isShapeTensor_ = input.readBool();
+ break;
+ }
+ case 56: {
+
+ allowRaggedBatch_ = input.readBool();
+ break;
+ }
+ case 64: {
+
+ optional_ = input.readBool();
+ break;
+ }
+ default: {
+ if (!parseUnknownField(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ if (((mutable_bitField0_ & 0x00000001) != 0)) {
+ dims_.makeImmutable(); // C
+ }
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelInput_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelInput_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.class, org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.Builder.class);
+ }
+
+ /**
+ * <pre>
+ *@@
+ *@@ .. cpp:enum:: Format
+ *@@
+ *@@ The format for the input.
+ *@@
+ * </pre>
+ *
+ * Protobuf enum {@code inference.ModelInput.Format}
+ */
+ public enum Format
+ implements com.google.protobuf.ProtocolMessageEnum {
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: Format::FORMAT_NONE = 0
+ *@@
+ *@@ The input has no specific format. This is the default.
+ *@@
+ * </pre>
+ *
+ * <code>FORMAT_NONE = 0;</code>
+ */
+ FORMAT_NONE(0),
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: Format::FORMAT_NHWC = 1
+ *@@
+ *@@ HWC image format. Tensors with this format require 3 dimensions
+ *@@ if the model does not support batching (max_batch_size = 0) or 4
+ *@@ dimensions if the model does support batching (max_batch_size
+ *@@ >= 1). In either case the 'dims' below should only specify the
+ *@@ 3 non-batch dimensions (i.e. HWC or CHW).
+ *@@
+ * </pre>
+ *
+ * <code>FORMAT_NHWC = 1;</code>
+ */
+ FORMAT_NHWC(1),
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: Format::FORMAT_NCHW = 2
+ *@@
+ *@@ CHW image format. Tensors with this format require 3 dimensions
+ *@@ if the model does not support batching (max_batch_size = 0) or 4
+ *@@ dimensions if the model does support batching (max_batch_size
+ *@@ >= 1). In either case the 'dims' below should only specify the
+ *@@ 3 non-batch dimensions (i.e. HWC or CHW).
+ *@@
+ * </pre>
+ *
+ * <code>FORMAT_NCHW = 2;</code>
+ */
+ FORMAT_NCHW(2),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: Format::FORMAT_NONE = 0
+ *@@
+ *@@ The input has no specific format. This is the default.
+ *@@
+ * </pre>
+ *
+ * <code>FORMAT_NONE = 0;</code>
+ */
+ public static final int FORMAT_NONE_VALUE = 0;
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: Format::FORMAT_NHWC = 1
+ *@@
+ *@@ HWC image format. Tensors with this format require 3 dimensions
+ *@@ if the model does not support batching (max_batch_size = 0) or 4
+ *@@ dimensions if the model does support batching (max_batch_size
+ *@@ >= 1). In either case the 'dims' below should only specify the
+ *@@ 3 non-batch dimensions (i.e. HWC or CHW).
+ *@@
+ * </pre>
+ *
+ * <code>FORMAT_NHWC = 1;</code>
+ */
+ public static final int FORMAT_NHWC_VALUE = 1;
+ /**
+ * <pre>
+ *@@ .. cpp:enumerator:: Format::FORMAT_NCHW = 2
+ *@@
+ *@@ CHW image format. Tensors with this format require 3 dimensions
+ *@@ if the model does not support batching (max_batch_size = 0) or 4
+ *@@ dimensions if the model does support batching (max_batch_size
+ *@@ >= 1). In either case the 'dims' below should only specify the
+ *@@ 3 non-batch dimensions (i.e. HWC or CHW).
+ *@@
+ * </pre>
+ *
+ * <code>FORMAT_NCHW = 2;</code>
+ */
+ public static final int FORMAT_NCHW_VALUE = 2;
+
+
+ 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 numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static Format valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static Format forNumber(int value) {
+ switch (value) {
+ case 0: return FORMAT_NONE;
+ case 1: return FORMAT_NHWC;
+ case 2: return FORMAT_NCHW;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap<Format>
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static final com.google.protobuf.Internal.EnumLiteMap<
+ Format> internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap<Format>() {
+ public Format findValueByNumber(int number) {
+ return Format.forNumber(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalStateException(
+ "Can't get the descriptor of an unrecognized enum value.");
+ }
+ return getDescriptor().getValues().get(ordinal());
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final Format[] VALUES = values();
+
+ public static Format valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ if (desc.getIndex() == -1) {
+ return UNRECOGNIZED;
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int value;
+
+ private Format(int value) {
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:inference.ModelInput.Format)
+ }
+
+ public static final int NAME_FIELD_NUMBER = 1;
+ private volatile java.lang.Object name_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name of the input.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The name.
+ */
+ @java.lang.Override
+ public java.lang.String getName() {
+ java.lang.Object ref = name_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ name_ = s;
+ return s;
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name of the input.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The bytes for name.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int DATA_TYPE_FIELD_NUMBER = 2;
+ private int dataType_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: DataType data_type
+ *@@
+ *@@ The data-type of the input.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.DataType data_type = 2;</code>
+ * @return The enum numeric value on the wire for dataType.
+ */
+ @java.lang.Override public int getDataTypeValue() {
+ return dataType_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: DataType data_type
+ *@@
+ *@@ The data-type of the input.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.DataType data_type = 2;</code>
+ * @return The dataType.
+ */
+ @java.lang.Override public org.apache.submarine.server.api.proto.TritonModelConfig.DataType getDataType() {
+ @SuppressWarnings("deprecation")
+ org.apache.submarine.server.api.proto.TritonModelConfig.DataType result = org.apache.submarine.server.api.proto.TritonModelConfig.DataType.valueOf(dataType_);
+ return result == null ? org.apache.submarine.server.api.proto.TritonModelConfig.DataType.UNRECOGNIZED : result;
+ }
+
+ public static final int FORMAT_FIELD_NUMBER = 3;
+ private int format_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Format format
+ *@@
+ *@@ The format of the input. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInput.Format format = 3;</code>
+ * @return The enum numeric value on the wire for format.
+ */
+ @java.lang.Override public int getFormatValue() {
+ return format_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Format format
+ *@@
+ *@@ The format of the input. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInput.Format format = 3;</code>
+ * @return The format.
+ */
+ @java.lang.Override public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.Format getFormat() {
+ @SuppressWarnings("deprecation")
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.Format result = org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.Format.valueOf(format_);
+ return result == null ? org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.Format.UNRECOGNIZED : result;
+ }
+
+ public static final int DIMS_FIELD_NUMBER = 4;
+ private com.google.protobuf.Internal.LongList dims_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 dims (repeated)
+ *@@
+ *@@ The dimensions/shape of the input tensor that must be provided
+ *@@ when invoking the inference API for this model.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 dims = 4;</code>
+ * @return A list containing the dims.
+ */
+ @java.lang.Override
+ public java.util.List<java.lang.Long>
+ getDimsList() {
+ return dims_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 dims (repeated)
+ *@@
+ *@@ The dimensions/shape of the input tensor that must be provided
+ *@@ when invoking the inference API for this model.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 dims = 4;</code>
+ * @return The count of dims.
+ */
+ public int getDimsCount() {
+ return dims_.size();
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 dims (repeated)
+ *@@
+ *@@ The dimensions/shape of the input tensor that must be provided
+ *@@ when invoking the inference API for this model.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 dims = 4;</code>
+ * @param index The index of the element to return.
+ * @return The dims at the given index.
+ */
+ public long getDims(int index) {
+ return dims_.getLong(index);
+ }
+ private int dimsMemoizedSerializedSize = -1;
+
+ public static final int RESHAPE_FIELD_NUMBER = 5;
+ private org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape reshape_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelTensorReshape reshape
+ *@@
+ *@@ The shape expected for this input by the backend. The input will
+ *@@ be reshaped to this before being presented to the backend. The
+ *@@ reshape must have the same number of elements as the input shape
+ *@@ specified by 'dims'. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelTensorReshape reshape = 5;</code>
+ * @return Whether the reshape field is set.
+ */
+ @java.lang.Override
+ public boolean hasReshape() {
+ return reshape_ != null;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelTensorReshape reshape
+ *@@
+ *@@ The shape expected for this input by the backend. The input will
+ *@@ be reshaped to this before being presented to the backend. The
+ *@@ reshape must have the same number of elements as the input shape
+ *@@ specified by 'dims'. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelTensorReshape reshape = 5;</code>
+ * @return The reshape.
+ */
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape getReshape() {
+ return reshape_ == null ? org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.getDefaultInstance() : reshape_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelTensorReshape reshape
+ *@@
+ *@@ The shape expected for this input by the backend. The input will
+ *@@ be reshaped to this before being presented to the backend. The
+ *@@ reshape must have the same number of elements as the input shape
+ *@@ specified by 'dims'. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelTensorReshape reshape = 5;</code>
+ */
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshapeOrBuilder getReshapeOrBuilder() {
+ return getReshape();
+ }
+
+ public static final int IS_SHAPE_TENSOR_FIELD_NUMBER = 6;
+ private boolean isShapeTensor_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool is_shape_tensor
+ *@@
+ *@@ Whether or not the input is a shape tensor to the model. This field
+ *@@ is currently supported only for the TensorRT model. An error will be
+ *@@ generated if this specification does not comply with underlying
+ *@@ model.
+ *@@
+ * </pre>
+ *
+ * <code>bool is_shape_tensor = 6;</code>
+ * @return The isShapeTensor.
+ */
+ @java.lang.Override
+ public boolean getIsShapeTensor() {
+ return isShapeTensor_;
+ }
+
+ public static final int ALLOW_RAGGED_BATCH_FIELD_NUMBER = 7;
+ private boolean allowRaggedBatch_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool allow_ragged_batch
+ *@@
+ *@@ Whether or not the input is allowed to be "ragged" in a dynamically
+ *@@ created batch. Default is false indicating that two requests will
+ *@@ only be batched if this tensor has the same shape in both requests.
+ *@@ True indicates that two requests can be batched even if this tensor
+ *@@ has a different shape in each request.
+ *@@
+ * </pre>
+ *
+ * <code>bool allow_ragged_batch = 7;</code>
+ * @return The allowRaggedBatch.
+ */
+ @java.lang.Override
+ public boolean getAllowRaggedBatch() {
+ return allowRaggedBatch_;
+ }
+
+ public static final int OPTIONAL_FIELD_NUMBER = 8;
+ private boolean optional_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool optional
+ *@@
+ *@@ Whether or not the input is optional for the model execution.
+ *@@ If true, the input is not required in the inference request.
+ *@@ Default value is false.
+ *@@
+ * </pre>
+ *
+ * <code>bool optional = 8;</code>
+ * @return The optional.
+ */
+ @java.lang.Override
+ public boolean getOptional() {
+ return optional_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (!getNameBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
+ }
+ if (dataType_ != org.apache.submarine.server.api.proto.TritonModelConfig.DataType.TYPE_INVALID.getNumber()) {
+ output.writeEnum(2, dataType_);
+ }
+ if (format_ != org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.Format.FORMAT_NONE.getNumber()) {
+ output.writeEnum(3, format_);
+ }
+ if (getDimsList().size() > 0) {
+ output.writeUInt32NoTag(34);
+ output.writeUInt32NoTag(dimsMemoizedSerializedSize);
+ }
+ for (int i = 0; i < dims_.size(); i++) {
+ output.writeInt64NoTag(dims_.getLong(i));
+ }
+ if (reshape_ != null) {
+ output.writeMessage(5, getReshape());
+ }
+ if (isShapeTensor_ != false) {
+ output.writeBool(6, isShapeTensor_);
+ }
+ if (allowRaggedBatch_ != false) {
+ output.writeBool(7, allowRaggedBatch_);
+ }
+ if (optional_ != false) {
+ output.writeBool(8, optional_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!getNameBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
+ }
+ if (dataType_ != org.apache.submarine.server.api.proto.TritonModelConfig.DataType.TYPE_INVALID.getNumber()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(2, dataType_);
+ }
+ if (format_ != org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.Format.FORMAT_NONE.getNumber()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(3, format_);
+ }
+ {
+ int dataSize = 0;
+ for (int i = 0; i < dims_.size(); i++) {
+ dataSize += com.google.protobuf.CodedOutputStream
+ .computeInt64SizeNoTag(dims_.getLong(i));
+ }
+ size += dataSize;
+ if (!getDimsList().isEmpty()) {
+ size += 1;
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32SizeNoTag(dataSize);
+ }
+ dimsMemoizedSerializedSize = dataSize;
+ }
+ if (reshape_ != null) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(5, getReshape());
+ }
+ if (isShapeTensor_ != false) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(6, isShapeTensor_);
+ }
+ if (allowRaggedBatch_ != false) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(7, allowRaggedBatch_);
+ }
+ if (optional_ != false) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(8, optional_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput)) {
+ return super.equals(obj);
+ }
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput other = (org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput) obj;
+
+ if (!getName()
+ .equals(other.getName())) return false;
+ if (dataType_ != other.dataType_) return false;
+ if (format_ != other.format_) return false;
+ if (!getDimsList()
+ .equals(other.getDimsList())) return false;
+ if (hasReshape() != other.hasReshape()) return false;
+ if (hasReshape()) {
+ if (!getReshape()
+ .equals(other.getReshape())) return false;
+ }
+ if (getIsShapeTensor()
+ != other.getIsShapeTensor()) return false;
+ if (getAllowRaggedBatch()
+ != other.getAllowRaggedBatch()) return false;
+ if (getOptional()
+ != other.getOptional()) return false;
+ if (!unknownFields.equals(other.unknownFields)) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + NAME_FIELD_NUMBER;
+ hash = (53 * hash) + getName().hashCode();
+ hash = (37 * hash) + DATA_TYPE_FIELD_NUMBER;
+ hash = (53 * hash) + dataType_;
+ hash = (37 * hash) + FORMAT_FIELD_NUMBER;
+ hash = (53 * hash) + format_;
+ if (getDimsCount() > 0) {
+ hash = (37 * hash) + DIMS_FIELD_NUMBER;
+ hash = (53 * hash) + getDimsList().hashCode();
+ }
+ if (hasReshape()) {
+ hash = (37 * hash) + RESHAPE_FIELD_NUMBER;
+ hash = (53 * hash) + getReshape().hashCode();
+ }
+ hash = (37 * hash) + IS_SHAPE_TENSOR_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+ getIsShapeTensor());
+ hash = (37 * hash) + ALLOW_RAGGED_BATCH_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+ getAllowRaggedBatch());
+ hash = (37 * hash) + OPTIONAL_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+ getOptional());
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * <pre>
+ *@@
+ *@@.. cpp:var:: message ModelInput
+ *@@
+ *@@ An input required by the model.
+ *@@
+ * </pre>
+ *
+ * Protobuf type {@code inference.ModelInput}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:inference.ModelInput)
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInputOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelInput_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelInput_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.class, org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.Builder.class);
+ }
+
+ // Construct using org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ name_ = "";
+
+ dataType_ = 0;
+
+ format_ = 0;
+
+ dims_ = emptyLongList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ if (reshapeBuilder_ == null) {
+ reshape_ = null;
+ } else {
+ reshape_ = null;
+ reshapeBuilder_ = null;
+ }
+ isShapeTensor_ = false;
+
+ allowRaggedBatch_ = false;
+
+ optional_ = false;
+
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.internal_static_inference_ModelInput_descriptor;
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput getDefaultInstanceForType() {
+ return org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput build() {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput buildPartial() {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput result = new org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput(this);
+ int from_bitField0_ = bitField0_;
+ result.name_ = name_;
+ result.dataType_ = dataType_;
+ result.format_ = format_;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ dims_.makeImmutable();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ }
+ result.dims_ = dims_;
+ if (reshapeBuilder_ == null) {
+ result.reshape_ = reshape_;
+ } else {
+ result.reshape_ = reshapeBuilder_.build();
+ }
+ result.isShapeTensor_ = isShapeTensor_;
+ result.allowRaggedBatch_ = allowRaggedBatch_;
+ result.optional_ = optional_;
+ onBuilt();
+ return result;
+ }
+
+ @java.lang.Override
+ public Builder clone() {
+ return super.clone();
+ }
+ @java.lang.Override
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return super.setField(field, value);
+ }
+ @java.lang.Override
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return super.clearField(field);
+ }
+ @java.lang.Override
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return super.clearOneof(oneof);
+ }
+ @java.lang.Override
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return super.setRepeatedField(field, index, value);
+ }
+ @java.lang.Override
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return super.addRepeatedField(field, value);
+ }
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput) {
+ return mergeFrom((org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput other) {
+ if (other == org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.getDefaultInstance()) return this;
+ if (!other.getName().isEmpty()) {
+ name_ = other.name_;
+ onChanged();
+ }
+ if (other.dataType_ != 0) {
+ setDataTypeValue(other.getDataTypeValue());
+ }
+ if (other.format_ != 0) {
+ setFormatValue(other.getFormatValue());
+ }
+ if (!other.dims_.isEmpty()) {
+ if (dims_.isEmpty()) {
+ dims_ = other.dims_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ } else {
+ ensureDimsIsMutable();
+ dims_.addAll(other.dims_);
+ }
+ onChanged();
+ }
+ if (other.hasReshape()) {
+ mergeReshape(other.getReshape());
+ }
+ if (other.getIsShapeTensor() != false) {
+ setIsShapeTensor(other.getIsShapeTensor());
+ }
+ if (other.getAllowRaggedBatch() != false) {
+ setAllowRaggedBatch(other.getAllowRaggedBatch());
+ }
+ if (other.getOptional() != false) {
+ setOptional(other.getOptional());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ private java.lang.Object name_ = "";
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name of the input.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The name.
+ */
+ public java.lang.String getName() {
+ java.lang.Object ref = name_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ name_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name of the input.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The bytes for name.
+ */
+ public com.google.protobuf.ByteString
+ getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name of the input.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @param value The name to set.
+ * @return This builder for chaining.
+ */
+ public Builder setName(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ name_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name of the input.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearName() {
+
+ name_ = getDefaultInstance().getName();
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name of the input.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @param value The bytes for name to set.
+ * @return This builder for chaining.
+ */
+ public Builder setNameBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ name_ = value;
+ onChanged();
+ return this;
+ }
+
+ private int dataType_ = 0;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: DataType data_type
+ *@@
+ *@@ The data-type of the input.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.DataType data_type = 2;</code>
+ * @return The enum numeric value on the wire for dataType.
+ */
+ @java.lang.Override public int getDataTypeValue() {
+ return dataType_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: DataType data_type
+ *@@
+ *@@ The data-type of the input.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.DataType data_type = 2;</code>
+ * @param value The enum numeric value on the wire for dataType to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDataTypeValue(int value) {
+
+ dataType_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: DataType data_type
+ *@@
+ *@@ The data-type of the input.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.DataType data_type = 2;</code>
+ * @return The dataType.
+ */
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.DataType getDataType() {
+ @SuppressWarnings("deprecation")
+ org.apache.submarine.server.api.proto.TritonModelConfig.DataType result = org.apache.submarine.server.api.proto.TritonModelConfig.DataType.valueOf(dataType_);
+ return result == null ? org.apache.submarine.server.api.proto.TritonModelConfig.DataType.UNRECOGNIZED : result;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: DataType data_type
+ *@@
+ *@@ The data-type of the input.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.DataType data_type = 2;</code>
+ * @param value The dataType to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDataType(org.apache.submarine.server.api.proto.TritonModelConfig.DataType value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ dataType_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: DataType data_type
+ *@@
+ *@@ The data-type of the input.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.DataType data_type = 2;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearDataType() {
+
+ dataType_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int format_ = 0;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Format format
+ *@@
+ *@@ The format of the input. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInput.Format format = 3;</code>
+ * @return The enum numeric value on the wire for format.
+ */
+ @java.lang.Override public int getFormatValue() {
+ return format_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Format format
+ *@@
+ *@@ The format of the input. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInput.Format format = 3;</code>
+ * @param value The enum numeric value on the wire for format to set.
+ * @return This builder for chaining.
+ */
+ public Builder setFormatValue(int value) {
+
+ format_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Format format
+ *@@
+ *@@ The format of the input. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInput.Format format = 3;</code>
+ * @return The format.
+ */
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.Format getFormat() {
+ @SuppressWarnings("deprecation")
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.Format result = org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.Format.valueOf(format_);
+ return result == null ? org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.Format.UNRECOGNIZED : result;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Format format
+ *@@
+ *@@ The format of the input. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInput.Format format = 3;</code>
+ * @param value The format to set.
+ * @return This builder for chaining.
+ */
+ public Builder setFormat(org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput.Format value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ format_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: Format format
+ *@@
+ *@@ The format of the input. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelInput.Format format = 3;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearFormat() {
+
+ format_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private com.google.protobuf.Internal.LongList dims_ = emptyLongList();
+ private void ensureDimsIsMutable() {
+ if (!((bitField0_ & 0x00000001) != 0)) {
+ dims_ = mutableCopy(dims_);
+ bitField0_ |= 0x00000001;
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 dims (repeated)
+ *@@
+ *@@ The dimensions/shape of the input tensor that must be provided
+ *@@ when invoking the inference API for this model.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 dims = 4;</code>
+ * @return A list containing the dims.
+ */
+ public java.util.List<java.lang.Long>
+ getDimsList() {
+ return ((bitField0_ & 0x00000001) != 0) ?
+ java.util.Collections.unmodifiableList(dims_) : dims_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 dims (repeated)
+ *@@
+ *@@ The dimensions/shape of the input tensor that must be provided
+ *@@ when invoking the inference API for this model.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 dims = 4;</code>
+ * @return The count of dims.
+ */
+ public int getDimsCount() {
+ return dims_.size();
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 dims (repeated)
+ *@@
+ *@@ The dimensions/shape of the input tensor that must be provided
+ *@@ when invoking the inference API for this model.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 dims = 4;</code>
+ * @param index The index of the element to return.
+ * @return The dims at the given index.
+ */
+ public long getDims(int index) {
+ return dims_.getLong(index);
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 dims (repeated)
+ *@@
+ *@@ The dimensions/shape of the input tensor that must be provided
+ *@@ when invoking the inference API for this model.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 dims = 4;</code>
+ * @param index The index to set the value at.
+ * @param value The dims to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDims(
+ int index, long value) {
+ ensureDimsIsMutable();
+ dims_.setLong(index, value);
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 dims (repeated)
+ *@@
+ *@@ The dimensions/shape of the input tensor that must be provided
+ *@@ when invoking the inference API for this model.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 dims = 4;</code>
+ * @param value The dims to add.
+ * @return This builder for chaining.
+ */
+ public Builder addDims(long value) {
+ ensureDimsIsMutable();
+ dims_.addLong(value);
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 dims (repeated)
+ *@@
+ *@@ The dimensions/shape of the input tensor that must be provided
+ *@@ when invoking the inference API for this model.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 dims = 4;</code>
+ * @param values The dims to add.
+ * @return This builder for chaining.
+ */
+ public Builder addAllDims(
+ java.lang.Iterable<? extends java.lang.Long> values) {
+ ensureDimsIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(
+ values, dims_);
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 dims (repeated)
+ *@@
+ *@@ The dimensions/shape of the input tensor that must be provided
+ *@@ when invoking the inference API for this model.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 dims = 4;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearDims() {
+ dims_ = emptyLongList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+
+ private org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape reshape_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape, org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.Builder, org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshapeOrBuilder> reshapeBuilder_;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelTensorReshape reshape
+ *@@
+ *@@ The shape expected for this input by the backend. The input will
+ *@@ be reshaped to this before being presented to the backend. The
+ *@@ reshape must have the same number of elements as the input shape
+ *@@ specified by 'dims'. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelTensorReshape reshape = 5;</code>
+ * @return Whether the reshape field is set.
+ */
+ public boolean hasReshape() {
+ return reshapeBuilder_ != null || reshape_ != null;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelTensorReshape reshape
+ *@@
+ *@@ The shape expected for this input by the backend. The input will
+ *@@ be reshaped to this before being presented to the backend. The
+ *@@ reshape must have the same number of elements as the input shape
+ *@@ specified by 'dims'. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelTensorReshape reshape = 5;</code>
+ * @return The reshape.
+ */
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape getReshape() {
+ if (reshapeBuilder_ == null) {
+ return reshape_ == null ? org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.getDefaultInstance() : reshape_;
+ } else {
+ return reshapeBuilder_.getMessage();
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelTensorReshape reshape
+ *@@
+ *@@ The shape expected for this input by the backend. The input will
+ *@@ be reshaped to this before being presented to the backend. The
+ *@@ reshape must have the same number of elements as the input shape
+ *@@ specified by 'dims'. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelTensorReshape reshape = 5;</code>
+ */
+ public Builder setReshape(org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape value) {
+ if (reshapeBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ reshape_ = value;
+ onChanged();
+ } else {
+ reshapeBuilder_.setMessage(value);
+ }
+
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelTensorReshape reshape
+ *@@
+ *@@ The shape expected for this input by the backend. The input will
+ *@@ be reshaped to this before being presented to the backend. The
+ *@@ reshape must have the same number of elements as the input shape
+ *@@ specified by 'dims'. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelTensorReshape reshape = 5;</code>
+ */
+ public Builder setReshape(
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.Builder builderForValue) {
+ if (reshapeBuilder_ == null) {
+ reshape_ = builderForValue.build();
+ onChanged();
+ } else {
+ reshapeBuilder_.setMessage(builderForValue.build());
+ }
+
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelTensorReshape reshape
+ *@@
+ *@@ The shape expected for this input by the backend. The input will
+ *@@ be reshaped to this before being presented to the backend. The
+ *@@ reshape must have the same number of elements as the input shape
+ *@@ specified by 'dims'. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelTensorReshape reshape = 5;</code>
+ */
+ public Builder mergeReshape(org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape value) {
+ if (reshapeBuilder_ == null) {
+ if (reshape_ != null) {
+ reshape_ =
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.newBuilder(reshape_).mergeFrom(value).buildPartial();
+ } else {
+ reshape_ = value;
+ }
+ onChanged();
+ } else {
+ reshapeBuilder_.mergeFrom(value);
+ }
+
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelTensorReshape reshape
+ *@@
+ *@@ The shape expected for this input by the backend. The input will
+ *@@ be reshaped to this before being presented to the backend. The
+ *@@ reshape must have the same number of elements as the input shape
+ *@@ specified by 'dims'. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelTensorReshape reshape = 5;</code>
+ */
+ public Builder clearReshape() {
+ if (reshapeBuilder_ == null) {
+ reshape_ = null;
+ onChanged();
+ } else {
+ reshape_ = null;
+ reshapeBuilder_ = null;
+ }
+
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelTensorReshape reshape
+ *@@
+ *@@ The shape expected for this input by the backend. The input will
+ *@@ be reshaped to this before being presented to the backend. The
+ *@@ reshape must have the same number of elements as the input shape
+ *@@ specified by 'dims'. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelTensorReshape reshape = 5;</code>
+ */
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.Builder getReshapeBuilder() {
+
+ onChanged();
+ return getReshapeFieldBuilder().getBuilder();
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelTensorReshape reshape
+ *@@
+ *@@ The shape expected for this input by the backend. The input will
+ *@@ be reshaped to this before being presented to the backend. The
+ *@@ reshape must have the same number of elements as the input shape
+ *@@ specified by 'dims'. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelTensorReshape reshape = 5;</code>
+ */
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshapeOrBuilder getReshapeOrBuilder() {
+ if (reshapeBuilder_ != null) {
+ return reshapeBuilder_.getMessageOrBuilder();
+ } else {
+ return reshape_ == null ?
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.getDefaultInstance() : reshape_;
+ }
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelTensorReshape reshape
+ *@@
+ *@@ The shape expected for this input by the backend. The input will
+ *@@ be reshaped to this before being presented to the backend. The
+ *@@ reshape must have the same number of elements as the input shape
+ *@@ specified by 'dims'. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelTensorReshape reshape = 5;</code>
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape, org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.Builder, org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshapeOrBuilder>
+ getReshapeFieldBuilder() {
+ if (reshapeBuilder_ == null) {
+ reshapeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape, org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.Builder, org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshapeOrBuilder>(
+ getReshape(),
+ getParentForChildren(),
+ isClean());
+ reshape_ = null;
+ }
+ return reshapeBuilder_;
+ }
+
+ private boolean isShapeTensor_ ;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool is_shape_tensor
+ *@@
+ *@@ Whether or not the input is a shape tensor to the model. This field
+ *@@ is currently supported only for the TensorRT model. An error will be
+ *@@ generated if this specification does not comply with underlying
+ *@@ model.
+ *@@
+ * </pre>
+ *
+ * <code>bool is_shape_tensor = 6;</code>
+ * @return The isShapeTensor.
+ */
+ @java.lang.Override
+ public boolean getIsShapeTensor() {
+ return isShapeTensor_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool is_shape_tensor
+ *@@
+ *@@ Whether or not the input is a shape tensor to the model. This field
+ *@@ is currently supported only for the TensorRT model. An error will be
+ *@@ generated if this specification does not comply with underlying
+ *@@ model.
+ *@@
+ * </pre>
+ *
+ * <code>bool is_shape_tensor = 6;</code>
+ * @param value The isShapeTensor to set.
+ * @return This builder for chaining.
+ */
+ public Builder setIsShapeTensor(boolean value) {
+
+ isShapeTensor_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool is_shape_tensor
+ *@@
+ *@@ Whether or not the input is a shape tensor to the model. This field
+ *@@ is currently supported only for the TensorRT model. An error will be
+ *@@ generated if this specification does not comply with underlying
+ *@@ model.
+ *@@
+ * </pre>
+ *
+ * <code>bool is_shape_tensor = 6;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearIsShapeTensor() {
+
+ isShapeTensor_ = false;
+ onChanged();
+ return this;
+ }
+
+ private boolean allowRaggedBatch_ ;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool allow_ragged_batch
+ *@@
+ *@@ Whether or not the input is allowed to be "ragged" in a dynamically
+ *@@ created batch. Default is false indicating that two requests will
+ *@@ only be batched if this tensor has the same shape in both requests.
+ *@@ True indicates that two requests can be batched even if this tensor
+ *@@ has a different shape in each request.
+ *@@
+ * </pre>
+ *
+ * <code>bool allow_ragged_batch = 7;</code>
+ * @return The allowRaggedBatch.
+ */
+ @java.lang.Override
+ public boolean getAllowRaggedBatch() {
+ return allowRaggedBatch_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool allow_ragged_batch
+ *@@
+ *@@ Whether or not the input is allowed to be "ragged" in a dynamically
+ *@@ created batch. Default is false indicating that two requests will
+ *@@ only be batched if this tensor has the same shape in both requests.
+ *@@ True indicates that two requests can be batched even if this tensor
+ *@@ has a different shape in each request.
+ *@@
+ * </pre>
+ *
+ * <code>bool allow_ragged_batch = 7;</code>
+ * @param value The allowRaggedBatch to set.
+ * @return This builder for chaining.
+ */
+ public Builder setAllowRaggedBatch(boolean value) {
+
+ allowRaggedBatch_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool allow_ragged_batch
+ *@@
+ *@@ Whether or not the input is allowed to be "ragged" in a dynamically
+ *@@ created batch. Default is false indicating that two requests will
+ *@@ only be batched if this tensor has the same shape in both requests.
+ *@@ True indicates that two requests can be batched even if this tensor
+ *@@ has a different shape in each request.
+ *@@
+ * </pre>
+ *
+ * <code>bool allow_ragged_batch = 7;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearAllowRaggedBatch() {
+
+ allowRaggedBatch_ = false;
+ onChanged();
+ return this;
+ }
+
+ private boolean optional_ ;
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool optional
+ *@@
+ *@@ Whether or not the input is optional for the model execution.
+ *@@ If true, the input is not required in the inference request.
+ *@@ Default value is false.
+ *@@
+ * </pre>
+ *
+ * <code>bool optional = 8;</code>
+ * @return The optional.
+ */
+ @java.lang.Override
+ public boolean getOptional() {
+ return optional_;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool optional
+ *@@
+ *@@ Whether or not the input is optional for the model execution.
+ *@@ If true, the input is not required in the inference request.
+ *@@ Default value is false.
+ *@@
+ * </pre>
+ *
+ * <code>bool optional = 8;</code>
+ * @param value The optional to set.
+ * @return This builder for chaining.
+ */
+ public Builder setOptional(boolean value) {
+
+ optional_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool optional
+ *@@
+ *@@ Whether or not the input is optional for the model execution.
+ *@@ If true, the input is not required in the inference request.
+ *@@ Default value is false.
+ *@@
+ * </pre>
+ *
+ * <code>bool optional = 8;</code>
+ * @return This builder for chaining.
+ */
+ public Builder clearOptional() {
+
+ optional_ = false;
+ onChanged();
+ return this;
+ }
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:inference.ModelInput)
+ }
+
+ // @@protoc_insertion_point(class_scope:inference.ModelInput)
+ private static final org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput();
+ }
+
+ public static org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<ModelInput>
+ PARSER = new com.google.protobuf.AbstractParser<ModelInput>() {
+ @java.lang.Override
+ public ModelInput parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new ModelInput(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<ModelInput> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<ModelInput> getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public org.apache.submarine.server.api.proto.TritonModelConfig.ModelInput getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ public interface ModelOutputOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:inference.ModelOutput)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name of the output.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The name.
+ */
+ java.lang.String getName();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string name
+ *@@
+ *@@ The name of the output.
+ *@@
+ * </pre>
+ *
+ * <code>string name = 1;</code>
+ * @return The bytes for name.
+ */
+ com.google.protobuf.ByteString
+ getNameBytes();
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: DataType data_type
+ *@@
+ *@@ The data-type of the output.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.DataType data_type = 2;</code>
+ * @return The enum numeric value on the wire for dataType.
+ */
+ int getDataTypeValue();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: DataType data_type
+ *@@
+ *@@ The data-type of the output.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.DataType data_type = 2;</code>
+ * @return The dataType.
+ */
+ org.apache.submarine.server.api.proto.TritonModelConfig.DataType getDataType();
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 dims (repeated)
+ *@@
+ *@@ The dimensions/shape of the output tensor.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 dims = 3;</code>
+ * @return A list containing the dims.
+ */
+ java.util.List<java.lang.Long> getDimsList();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 dims (repeated)
+ *@@
+ *@@ The dimensions/shape of the output tensor.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 dims = 3;</code>
+ * @return The count of dims.
+ */
+ int getDimsCount();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: int64 dims (repeated)
+ *@@
+ *@@ The dimensions/shape of the output tensor.
+ *@@
+ * </pre>
+ *
+ * <code>repeated int64 dims = 3;</code>
+ * @param index The index of the element to return.
+ * @return The dims at the given index.
+ */
+ long getDims(int index);
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelTensorReshape reshape
+ *@@
+ *@@ The shape produced for this output by the backend. The output will
+ *@@ be reshaped from this to the shape specifed in 'dims' before being
+ *@@ returned in the inference response. The reshape must have the same
+ *@@ number of elements as the output shape specified by 'dims'. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelTensorReshape reshape = 5;</code>
+ * @return Whether the reshape field is set.
+ */
+ boolean hasReshape();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelTensorReshape reshape
+ *@@
+ *@@ The shape produced for this output by the backend. The output will
+ *@@ be reshaped from this to the shape specifed in 'dims' before being
+ *@@ returned in the inference response. The reshape must have the same
+ *@@ number of elements as the output shape specified by 'dims'. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelTensorReshape reshape = 5;</code>
+ * @return The reshape.
+ */
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape getReshape();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: ModelTensorReshape reshape
+ *@@
+ *@@ The shape produced for this output by the backend. The output will
+ *@@ be reshaped from this to the shape specifed in 'dims' before being
+ *@@ returned in the inference response. The reshape must have the same
+ *@@ number of elements as the output shape specified by 'dims'. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>.inference.ModelTensorReshape reshape = 5;</code>
+ */
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshapeOrBuilder getReshapeOrBuilder();
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string label_filename
+ *@@
+ *@@ The label file associated with this output. Should be specified only
+ *@@ for outputs that represent classifications. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>string label_filename = 4;</code>
+ * @return The labelFilename.
+ */
+ java.lang.String getLabelFilename();
+ /**
+ * <pre>
+ *@@ .. cpp:var:: string label_filename
+ *@@
+ *@@ The label file associated with this output. Should be specified only
+ *@@ for outputs that represent classifications. Optional.
+ *@@
+ * </pre>
+ *
+ * <code>string label_filename = 4;</code>
+ * @return The bytes for labelFilename.
+ */
+ com.google.protobuf.ByteString
+ getLabelFilenameBytes();
+
+ /**
+ * <pre>
+ *@@ .. cpp:var:: bool is_shape_tensor
+ *@@
+ *@@ Whether or not the output is a shape tensor to the model. This field
+ *@@ is currently supported only for the TensorRT model. An error will be
+ *@@ generated if this specification does not comply with underlying
+ *@@ model.
+ *@@
+ * </pre>
+ *
+ * <code>bool is_shape_tensor = 6;</code>
+ * @return The isShapeTensor.
+ */
+ boolean getIsShapeTensor();
+ }
+ /**
+ * <pre>
+ *@@
+ *@@.. cpp:var:: message ModelOutput
+ *@@
+ *@@ An output produced by the model.
+ *@@
+ * </pre>
+ *
+ * Protobuf type {@code inference.ModelOutput}
+ */
+ public static final class ModelOutput extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:inference.ModelOutput)
+ ModelOutputOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use ModelOutput.newBuilder() to construct.
+ private ModelOutput(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private ModelOutput() {
+ name_ = "";
+ dataType_ = 0;
+ dims_ = emptyLongList();
+ labelFilename_ = "";
+ }
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(
+ UnusedPrivateParameter unused) {
+ return new ModelOutput();
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private ModelOutput(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ name_ = s;
+ break;
+ }
+ case 16: {
+ int rawValue = input.readEnum();
+
+ dataType_ = rawValue;
+ break;
+ }
+ case 24: {
+ if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+ dims_ = newLongList();
+ mutable_bitField0_ |= 0x00000001;
+ }
+ dims_.addLong(input.readInt64());
+ break;
+ }
+ case 26: {
+ int length = input.readRawVarint32();
+ int limit = input.pushLimit(length);
+ if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+ dims_ = newLongList();
+ mutable_bitField0_ |= 0x00000001;
+ }
+ while (input.getBytesUntilLimit() > 0) {
+ dims_.addLong(input.readInt64());
+ }
+ input.popLimit(limit);
+ break;
+ }
+ case 34: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ labelFilename_ = s;
+ break;
+ }
+ case 42: {
+ org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.Builder subBuilder = null;
+ if (reshape_ != null) {
+ subBuilder = reshape_.toBuilder();
+ }
+ reshape_ = input.readMessage(org.apache.submarine.server.api.proto.TritonModelConfig.ModelTensorReshape.parser(), extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(reshape_);
+ reshape_ = subBuilder.buildPartial();
+ }
+
+ break;
+ }
+ case 48: {
+
+ isShapeTensor_ = input.readBool();
+ break;
+ }
+ default: {
+ if (!parseUnknownField(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
... 57061 lines suppressed ...
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@submarine.apache.org
For additional commands, e-mail: dev-help@submarine.apache.org