diff --git a/gapic-libraries-bom/pom.xml b/gapic-libraries-bom/pom.xml index ee7471c96c4a..060f873ecbac 100644 --- a/gapic-libraries-bom/pom.xml +++ b/gapic-libraries-bom/pom.xml @@ -684,6 +684,13 @@ pom import + + com.google.cloud + google-cloud-gkerecommender-bom + 0.0.1-SNAPSHOT + pom + import + com.google.cloud google-cloud-gsuite-addons-bom diff --git a/generation_config.yaml b/generation_config.yaml index 994b6300ae3d..b68e2297772b 100644 --- a/generation_config.yaml +++ b/generation_config.yaml @@ -1209,6 +1209,24 @@ libraries: - proto_path: google/cloud/gkehub/policycontroller/v1beta - proto_path: google/cloud/gkehub/servicemesh/v1beta +- api_shortname: gkerecommender + name_pretty: GKE Recommender API + product_documentation: + https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference-quickstart + api_description: lets you analyze the performance and cost-efficiency of your inference + workloads, and make data-driven decisions about resource allocation and model + deployment strategies. + client_documentation: + https://cloud.google.com/java/docs/reference/google-cloud-gkerecommender/latest/overview + release_level: preview + distribution_name: com.google.cloud:google-cloud-gkerecommender + api_id: gkerecommender.googleapis.com + library_type: GAPIC_AUTO + group_id: com.google.cloud + cloud_api: true + GAPICs: + - proto_path: google/cloud/gkerecommender/v1 + requires_billing: true - api_shortname: containeranalysis name_pretty: Grafeas product_documentation: https://grafeas.io diff --git a/java-gkerecommender/.OwlBot-hermetic.yaml b/java-gkerecommender/.OwlBot-hermetic.yaml new file mode 100644 index 000000000000..c382d5f47606 --- /dev/null +++ b/java-gkerecommender/.OwlBot-hermetic.yaml @@ -0,0 +1,35 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# 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. + + +deep-remove-regex: +- "/java-gkerecommender/grpc-google-.*/src" +- "/java-gkerecommender/proto-google-.*/src" +- "/java-gkerecommender/google-.*/src" +- "/java-gkerecommender/samples/snippets/generated" + +deep-preserve-regex: +- "/java-gkerecommender/google-.*/src/test/java/com/google/cloud/.*/v.*/it/IT.*Test.java" + +deep-copy-regex: +- source: "/google/cloud/gkerecommender/(v.*)/.*-java/proto-google-.*/src" + dest: "/owl-bot-staging/java-gkerecommender/$1/proto-google-cloud-gkerecommender-$1/src" +- source: "/google/cloud/gkerecommender/(v.*)/.*-java/grpc-google-.*/src" + dest: "/owl-bot-staging/java-gkerecommender/$1/grpc-google-cloud-gkerecommender-$1/src" +- source: "/google/cloud/gkerecommender/(v.*)/.*-java/gapic-google-.*/src" + dest: "/owl-bot-staging/java-gkerecommender/$1/google-cloud-gkerecommender/src" +- source: "/google/cloud/gkerecommender/(v.*)/.*-java/samples/snippets/generated" + dest: "/owl-bot-staging/java-gkerecommender/$1/samples/snippets/generated" + +api-name: gkerecommender \ No newline at end of file diff --git a/java-gkerecommender/.repo-metadata.json b/java-gkerecommender/.repo-metadata.json new file mode 100644 index 000000000000..c5425aea2ecc --- /dev/null +++ b/java-gkerecommender/.repo-metadata.json @@ -0,0 +1,16 @@ +{ + "api_shortname": "gkerecommender", + "name_pretty": "GKE Recommender API", + "product_documentation": "https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference-quickstart", + "api_description": "lets you analyze the performance and cost-efficiency of your inference workloads, and make data-driven decisions about resource allocation and model deployment strategies.", + "client_documentation": "https://cloud.google.com/java/docs/reference/google-cloud-gkerecommender/latest/overview", + "release_level": "preview", + "transport": "both", + "language": "java", + "repo": "googleapis/google-cloud-java", + "repo_short": "java-gkerecommender", + "distribution_name": "com.google.cloud:google-cloud-gkerecommender", + "api_id": "gkerecommender.googleapis.com", + "library_type": "GAPIC_AUTO", + "requires_billing": true +} \ No newline at end of file diff --git a/java-gkerecommender/README.md b/java-gkerecommender/README.md new file mode 100644 index 000000000000..4d79889ac5b0 --- /dev/null +++ b/java-gkerecommender/README.md @@ -0,0 +1,224 @@ +# Google GKE Recommender API Client for Java + +Java idiomatic client for [GKE Recommender API][product-docs]. + +[![Maven][maven-version-image]][maven-version-link] +![Stability][stability-image] + +- [Product Documentation][product-docs] +- [Client Library Documentation][javadocs] + +> Note: This client is a work-in-progress, and may occasionally +> make backwards-incompatible changes. + + +## Quickstart + + +If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file: + +```xml + + + + com.google.cloud + libraries-bom + 26.72.0 + pom + import + + + + + + + com.google.cloud + google-cloud-gkerecommender + + +``` + +If you are using Maven without the BOM, add this to your dependencies: + + +```xml + + com.google.cloud + google-cloud-gkerecommender + 0.0.0 + +``` + +If you are using Gradle without BOM, add this to your dependencies: + +```Groovy +implementation 'com.google.cloud:google-cloud-gkerecommender:0.0.0' +``` + +If you are using SBT, add this to your dependencies: + +```Scala +libraryDependencies += "com.google.cloud" % "google-cloud-gkerecommender" % "0.0.0" +``` + +## Authentication + +See the [Authentication][authentication] section in the base directory's README. + +## Authorization + +The client application making API calls must be granted [authorization scopes][auth-scopes] required for the desired GKE Recommender API APIs, and the authenticated principal must have the [IAM role(s)][predefined-iam-roles] required to access GCP resources using the GKE Recommender API API calls. + +## Getting Started + +### Prerequisites + +You will need a [Google Cloud Platform Console][developer-console] project with the GKE Recommender API [API enabled][enable-api]. +You will need to [enable billing][enable-billing] to use Google GKE Recommender API. +[Follow these instructions][create-project] to get your project set up. You will also need to set up the local development environment by +[installing the Google Cloud Command Line Interface][cloud-cli] and running the following commands in command line: +`gcloud auth login` and `gcloud config set project [YOUR PROJECT ID]`. + +### Installation and setup + +You'll need to obtain the `google-cloud-gkerecommender` library. See the [Quickstart](#quickstart) section +to add `google-cloud-gkerecommender` as a dependency in your code. + +## About GKE Recommender API + + +[GKE Recommender API][product-docs] lets you analyze the performance and cost-efficiency of your inference workloads, and make data-driven decisions about resource allocation and model deployment strategies. + +See the [GKE Recommender API client library docs][javadocs] to learn how to +use this GKE Recommender API Client Library. + + + + + + +## Troubleshooting + +To get help, follow the instructions in the [shared Troubleshooting document][troubleshooting]. + +## Transport + +GKE Recommender API uses both gRPC and HTTP/JSON for the transport layer. + +## Supported Java Versions + +Java 8 or above is required for using this client. + +Google's Java client libraries, +[Google Cloud Client Libraries][cloudlibs] +and +[Google Cloud API Libraries][apilibs], +follow the +[Oracle Java SE support roadmap][oracle] +(see the Oracle Java SE Product Releases section). + +### For new development + +In general, new feature development occurs with support for the lowest Java +LTS version covered by Oracle's Premier Support (which typically lasts 5 years +from initial General Availability). If the minimum required JVM for a given +library is changed, it is accompanied by a [semver][semver] major release. + +Java 11 and (in September 2021) Java 17 are the best choices for new +development. + +### Keeping production systems current + +Google tests its client libraries with all current LTS versions covered by +Oracle's Extended Support (which typically lasts 8 years from initial +General Availability). + +#### Legacy support + +Google's client libraries support legacy versions of Java runtimes with long +term stable libraries that don't receive feature updates on a best efforts basis +as it may not be possible to backport all patches. + +Google provides updates on a best efforts basis to apps that continue to use +Java 7, though apps might need to upgrade to current versions of the library +that supports their JVM. + +#### Where to find specific information + +The latest versions and the supported Java versions are identified on +the individual GitHub repository `github.com/GoogleAPIs/java-SERVICENAME` +and on [google-cloud-java][g-c-j]. + +## Versioning + + +This library follows [Semantic Versioning](http://semver.org/). + + +It is currently in major version zero (``0.y.z``), which means that anything may change at any time +and the public API should not be considered stable. + + +## Contributing + + +Contributions to this library are always welcome and highly encouraged. + +See [CONTRIBUTING][contributing] for more information how to get started. + +Please note that this project is released with a Contributor Code of Conduct. By participating in +this project you agree to abide by its terms. See [Code of Conduct][code-of-conduct] for more +information. + + +## License + +Apache 2.0 - See [LICENSE][license] for more information. + +## CI Status + +Java Version | Status +------------ | ------ +Java 8 | [![Kokoro CI][kokoro-badge-image-2]][kokoro-badge-link-2] +Java 8 OSX | [![Kokoro CI][kokoro-badge-image-3]][kokoro-badge-link-3] +Java 8 Windows | [![Kokoro CI][kokoro-badge-image-4]][kokoro-badge-link-4] +Java 11 | [![Kokoro CI][kokoro-badge-image-5]][kokoro-badge-link-5] + +Java is a registered trademark of Oracle and/or its affiliates. + +[product-docs]: https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference-quickstart +[javadocs]: https://cloud.google.com/java/docs/reference/google-cloud-gkerecommender/latest/overview +[kokoro-badge-image-1]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java7.svg +[kokoro-badge-link-1]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java7.html +[kokoro-badge-image-2]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java8.svg +[kokoro-badge-link-2]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java8.html +[kokoro-badge-image-3]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java8-osx.svg +[kokoro-badge-link-3]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java8-osx.html +[kokoro-badge-image-4]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java8-win.svg +[kokoro-badge-link-4]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java8-win.html +[kokoro-badge-image-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java11.svg +[kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java11.html +[stability-image]: https://img.shields.io/badge/stability-preview-yellow +[maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-gkerecommender.svg +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-gkerecommender/0.0.0 +[authentication]: https://github.com/googleapis/google-cloud-java#authentication +[auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes +[predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles +[iam-policy]: https://cloud.google.com/iam/docs/overview#cloud-iam-policy +[developer-console]: https://console.developers.google.com/ +[create-project]: https://cloud.google.com/resource-manager/docs/creating-managing-projects +[cloud-cli]: https://cloud.google.com/cli +[troubleshooting]: https://github.com/googleapis/google-cloud-java/blob/main/TROUBLESHOOTING.md +[contributing]: https://github.com/googleapis/google-cloud-java/blob/main/CONTRIBUTING.md +[code-of-conduct]: https://github.com/googleapis/google-cloud-java/blob/main/CODE_OF_CONDUCT.md#contributor-code-of-conduct +[license]: https://github.com/googleapis/google-cloud-java/blob/main/LICENSE +[enable-billing]: https://cloud.google.com/apis/docs/getting-started#enabling_billing +[enable-api]: https://console.cloud.google.com/flows/enableapi?apiid=gkerecommender.googleapis.com +[libraries-bom]: https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google-Cloud-Platform-Libraries-BOM +[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png + +[semver]: https://semver.org/ +[cloudlibs]: https://cloud.google.com/apis/docs/client-libraries-explained +[apilibs]: https://cloud.google.com/apis/docs/client-libraries-explained#google_api_client_libraries +[oracle]: https://www.oracle.com/java/technologies/java-se-support-roadmap.html +[g-c-j]: http://github.com/googleapis/google-cloud-java diff --git a/java-gkerecommender/google-cloud-gkerecommender-bom/pom.xml b/java-gkerecommender/google-cloud-gkerecommender-bom/pom.xml new file mode 100644 index 000000000000..4350b4ec6192 --- /dev/null +++ b/java-gkerecommender/google-cloud-gkerecommender-bom/pom.xml @@ -0,0 +1,43 @@ + + + 4.0.0 + com.google.cloud + google-cloud-gkerecommender-bom + 0.0.1-SNAPSHOT + pom + + com.google.cloud + google-cloud-pom-parent + 1.75.0-SNAPSHOT + ../../google-cloud-pom-parent/pom.xml + + + Google GKE Recommender API BOM + + BOM for GKE Recommender API + + + + true + + + + + + com.google.cloud + google-cloud-gkerecommender + 0.0.1-SNAPSHOT + + + com.google.api.grpc + grpc-google-cloud-gkerecommender-v1 + 0.0.1-SNAPSHOT + + + com.google.api.grpc + proto-google-cloud-gkerecommender-v1 + 0.0.1-SNAPSHOT + + + + diff --git a/java-gkerecommender/google-cloud-gkerecommender/pom.xml b/java-gkerecommender/google-cloud-gkerecommender/pom.xml new file mode 100644 index 000000000000..d4c335e6aca7 --- /dev/null +++ b/java-gkerecommender/google-cloud-gkerecommender/pom.xml @@ -0,0 +1,115 @@ + + + 4.0.0 + com.google.cloud + google-cloud-gkerecommender + 0.0.1-SNAPSHOT + jar + Google GKE Recommender API + GKE Recommender API lets you analyze the performance and cost-efficiency of your inference workloads, and make data-driven decisions about resource allocation and model deployment strategies. + + com.google.cloud + google-cloud-gkerecommender-parent + 0.0.1-SNAPSHOT + + + google-cloud-gkerecommender + + + + io.grpc + grpc-api + + + io.grpc + grpc-stub + + + io.grpc + grpc-protobuf + + + com.google.api + api-common + + + com.google.protobuf + protobuf-java + + + com.google.api.grpc + proto-google-common-protos + + + + com.google.api.grpc + proto-google-cloud-gkerecommender-v1 + + + com.google.guava + guava + + + com.google.api + gax + + + com.google.api + gax-grpc + + + com.google.api + gax-httpjson + + + com.google.api.grpc + proto-google-iam-v1 + + + org.threeten + threetenbp + + + + + com.google.api.grpc + grpc-google-common-protos + test + + + com.google.api.grpc + grpc-google-iam-v1 + test + + + junit + junit + test + + + + com.google.api.grpc + grpc-google-cloud-gkerecommender-v1 + test + + + + com.google.api + gax + testlib + test + + + com.google.api + gax-grpc + testlib + test + + + com.google.api + gax-httpjson + testlib + test + + + diff --git a/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/GkeInferenceQuickstartClient.java b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/GkeInferenceQuickstartClient.java new file mode 100644 index 000000000000..3a2becc60137 --- /dev/null +++ b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/GkeInferenceQuickstartClient.java @@ -0,0 +1,1244 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1; + +import com.google.api.core.ApiFuture; +import com.google.api.core.ApiFutures; +import com.google.api.gax.core.BackgroundResource; +import com.google.api.gax.paging.AbstractFixedSizeCollection; +import com.google.api.gax.paging.AbstractPage; +import com.google.api.gax.paging.AbstractPagedListResponse; +import com.google.api.gax.rpc.PageContext; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.cloud.gkerecommender.v1.stub.GkeInferenceQuickstartStub; +import com.google.cloud.gkerecommender.v1.stub.GkeInferenceQuickstartStubSettings; +import com.google.common.util.concurrent.MoreExecutors; +import java.io.IOException; +import java.util.List; +import java.util.concurrent.TimeUnit; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * Service Description: GKE Inference Quickstart (GIQ) service provides profiles with performance + * metrics for popular models and model servers across multiple accelerators. These profiles help + * generate optimized best practices for running inference on GKE. + * + *

This class provides the ability to make remote calls to the backing service through method + * calls that map to API methods. Sample code to get started: + * + *

{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+ *     GkeInferenceQuickstartClient.create()) {
+ *   GenerateOptimizedManifestRequest request =
+ *       GenerateOptimizedManifestRequest.newBuilder()
+ *           .setModelServerInfo(ModelServerInfo.newBuilder().build())
+ *           .setAcceleratorType("acceleratorType-82462651")
+ *           .setKubernetesNamespace("kubernetesNamespace-1862862667")
+ *           .setPerformanceRequirements(PerformanceRequirements.newBuilder().build())
+ *           .setStorageConfig(StorageConfig.newBuilder().build())
+ *           .build();
+ *   GenerateOptimizedManifestResponse response =
+ *       gkeInferenceQuickstartClient.generateOptimizedManifest(request);
+ * }
+ * }
+ * + *

Note: close() needs to be called on the GkeInferenceQuickstartClient object to clean up + * resources such as threads. In the example above, try-with-resources is used, which automatically + * calls close(). + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Methods
MethodDescriptionMethod Variants

FetchModels

Fetches available models. Open-source models follow the Huggingface Hub `owner/model_name` format.

+ *

Request object method variants only take one parameter, a request object, which must be constructed before the call.

+ *
    + *
  • fetchModels(FetchModelsRequest request) + *

+ *

Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service.

+ *
    + *
  • fetchModelsPagedCallable() + *

  • fetchModelsCallable() + *

+ *

FetchModelServers

Fetches available model servers. Open-source model servers use simplified, lowercase names (e.g., `vllm`).

+ *

Request object method variants only take one parameter, a request object, which must be constructed before the call.

+ *
    + *
  • fetchModelServers(FetchModelServersRequest request) + *

+ *

Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service.

+ *
    + *
  • fetchModelServersPagedCallable() + *

  • fetchModelServersCallable() + *

+ *

FetchModelServerVersions

Fetches available model server versions. Open-source servers use their own versioning schemas (e.g., `vllm` uses semver like `v1.0.0`). + *

Some model servers have different versioning schemas depending on the accelerator. For example, `vllm` uses semver on GPUs, but returns nightly build tags on TPUs. All available versions will be returned when different schemas are present.

+ *

Request object method variants only take one parameter, a request object, which must be constructed before the call.

+ *
    + *
  • fetchModelServerVersions(FetchModelServerVersionsRequest request) + *

+ *

Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service.

+ *
    + *
  • fetchModelServerVersionsPagedCallable() + *

  • fetchModelServerVersionsCallable() + *

+ *

FetchProfiles

Fetches available profiles. A profile contains performance metrics and cost information for a specific model server setup. Profiles can be filtered by parameters. If no filters are provided, all profiles are returned. + *

Profiles display a single value per performance metric based on the provided performance requirements. If no requirements are given, the metrics represent the inflection point. See [Run best practice inference with GKE Inference Quickstart recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart#how) for details.

+ *

Request object method variants only take one parameter, a request object, which must be constructed before the call.

+ *
    + *
  • fetchProfiles(FetchProfilesRequest request) + *

+ *

Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service.

+ *
    + *
  • fetchProfilesPagedCallable() + *

  • fetchProfilesCallable() + *

+ *

GenerateOptimizedManifest

Generates an optimized deployment manifest for a given model and model server, based on the specified accelerator, performance targets, and configurations. See [Run best practice inference with GKE Inference Quickstart recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart) for deployment details.

+ *

Request object method variants only take one parameter, a request object, which must be constructed before the call.

+ *
    + *
  • generateOptimizedManifest(GenerateOptimizedManifestRequest request) + *

+ *

Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service.

+ *
    + *
  • generateOptimizedManifestCallable() + *

+ *

FetchBenchmarkingData

Fetches all of the benchmarking data available for a profile. Benchmarking data returns all of the performance metrics available for a given model server setup on a given instance type.

+ *

Request object method variants only take one parameter, a request object, which must be constructed before the call.

+ *
    + *
  • fetchBenchmarkingData(FetchBenchmarkingDataRequest request) + *

+ *

Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service.

+ *
    + *
  • fetchBenchmarkingDataCallable() + *

+ *
+ * + *

See the individual methods for example code. + * + *

Many parameters require resource names to be formatted in a particular way. To assist with + * these names, this class includes a format method for each type of name, and additionally a parse + * method to extract the individual identifiers contained within names that are returned. + * + *

This class can be customized by passing in a custom instance of GkeInferenceQuickstartSettings + * to create(). For example: + * + *

To customize credentials: + * + *

{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * GkeInferenceQuickstartSettings gkeInferenceQuickstartSettings =
+ *     GkeInferenceQuickstartSettings.newBuilder()
+ *         .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
+ *         .build();
+ * GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+ *     GkeInferenceQuickstartClient.create(gkeInferenceQuickstartSettings);
+ * }
+ * + *

To customize the endpoint: + * + *

{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * GkeInferenceQuickstartSettings gkeInferenceQuickstartSettings =
+ *     GkeInferenceQuickstartSettings.newBuilder().setEndpoint(myEndpoint).build();
+ * GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+ *     GkeInferenceQuickstartClient.create(gkeInferenceQuickstartSettings);
+ * }
+ * + *

To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over + * the wire: + * + *

{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * GkeInferenceQuickstartSettings gkeInferenceQuickstartSettings =
+ *     GkeInferenceQuickstartSettings.newHttpJsonBuilder().build();
+ * GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+ *     GkeInferenceQuickstartClient.create(gkeInferenceQuickstartSettings);
+ * }
+ * + *

Please refer to the GitHub repository's samples for more quickstart code snippets. + */ +@Generated("by gapic-generator-java") +public class GkeInferenceQuickstartClient implements BackgroundResource { + private final GkeInferenceQuickstartSettings settings; + private final GkeInferenceQuickstartStub stub; + + /** Constructs an instance of GkeInferenceQuickstartClient with default settings. */ + public static final GkeInferenceQuickstartClient create() throws IOException { + return create(GkeInferenceQuickstartSettings.newBuilder().build()); + } + + /** + * Constructs an instance of GkeInferenceQuickstartClient, using the given settings. The channels + * are created based on the settings passed in, or defaults for any settings that are not set. + */ + public static final GkeInferenceQuickstartClient create(GkeInferenceQuickstartSettings settings) + throws IOException { + return new GkeInferenceQuickstartClient(settings); + } + + /** + * Constructs an instance of GkeInferenceQuickstartClient, using the given stub for making calls. + * This is for advanced usage - prefer using create(GkeInferenceQuickstartSettings). + */ + public static final GkeInferenceQuickstartClient create(GkeInferenceQuickstartStub stub) { + return new GkeInferenceQuickstartClient(stub); + } + + /** + * Constructs an instance of GkeInferenceQuickstartClient, using the given settings. This is + * protected so that it is easy to make a subclass, but otherwise, the static factory methods + * should be preferred. + */ + protected GkeInferenceQuickstartClient(GkeInferenceQuickstartSettings settings) + throws IOException { + this.settings = settings; + this.stub = ((GkeInferenceQuickstartStubSettings) settings.getStubSettings()).createStub(); + } + + protected GkeInferenceQuickstartClient(GkeInferenceQuickstartStub stub) { + this.settings = null; + this.stub = stub; + } + + public final GkeInferenceQuickstartSettings getSettings() { + return settings; + } + + public GkeInferenceQuickstartStub getStub() { + return stub; + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Fetches available models. Open-source models follow the Huggingface Hub `owner/model_name` + * format. + * + *

Sample code: + * + *

{@code
+   * // This snippet has been automatically generated and should be regarded as a code template only.
+   * // It will require modifications to work:
+   * // - It may require correct/in-range values for request initialization.
+   * // - It may require specifying regional endpoints when creating the service client as shown in
+   * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+   * try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+   *     GkeInferenceQuickstartClient.create()) {
+   *   FetchModelsRequest request =
+   *       FetchModelsRequest.newBuilder()
+   *           .setPageSize(883849137)
+   *           .setPageToken("pageToken873572522")
+   *           .build();
+   *   for (String element : gkeInferenceQuickstartClient.fetchModels(request).iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
+   * }
+   * }
+ * + * @param request The request object containing all of the parameters for the API call. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final FetchModelsPagedResponse fetchModels(FetchModelsRequest request) { + return fetchModelsPagedCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Fetches available models. Open-source models follow the Huggingface Hub `owner/model_name` + * format. + * + *

Sample code: + * + *

{@code
+   * // This snippet has been automatically generated and should be regarded as a code template only.
+   * // It will require modifications to work:
+   * // - It may require correct/in-range values for request initialization.
+   * // - It may require specifying regional endpoints when creating the service client as shown in
+   * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+   * try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+   *     GkeInferenceQuickstartClient.create()) {
+   *   FetchModelsRequest request =
+   *       FetchModelsRequest.newBuilder()
+   *           .setPageSize(883849137)
+   *           .setPageToken("pageToken873572522")
+   *           .build();
+   *   ApiFuture future =
+   *       gkeInferenceQuickstartClient.fetchModelsPagedCallable().futureCall(request);
+   *   // Do something.
+   *   for (String element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
+   * }
+   * }
+ */ + public final UnaryCallable + fetchModelsPagedCallable() { + return stub.fetchModelsPagedCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Fetches available models. Open-source models follow the Huggingface Hub `owner/model_name` + * format. + * + *

Sample code: + * + *

{@code
+   * // This snippet has been automatically generated and should be regarded as a code template only.
+   * // It will require modifications to work:
+   * // - It may require correct/in-range values for request initialization.
+   * // - It may require specifying regional endpoints when creating the service client as shown in
+   * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+   * try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+   *     GkeInferenceQuickstartClient.create()) {
+   *   FetchModelsRequest request =
+   *       FetchModelsRequest.newBuilder()
+   *           .setPageSize(883849137)
+   *           .setPageToken("pageToken873572522")
+   *           .build();
+   *   while (true) {
+   *     FetchModelsResponse response =
+   *         gkeInferenceQuickstartClient.fetchModelsCallable().call(request);
+   *     for (String element : response.getModelsList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!Strings.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
+   * }
+   * }
+ */ + public final UnaryCallable fetchModelsCallable() { + return stub.fetchModelsCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Fetches available model servers. Open-source model servers use simplified, lowercase names + * (e.g., `vllm`). + * + *

Sample code: + * + *

{@code
+   * // This snippet has been automatically generated and should be regarded as a code template only.
+   * // It will require modifications to work:
+   * // - It may require correct/in-range values for request initialization.
+   * // - It may require specifying regional endpoints when creating the service client as shown in
+   * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+   * try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+   *     GkeInferenceQuickstartClient.create()) {
+   *   FetchModelServersRequest request =
+   *       FetchModelServersRequest.newBuilder()
+   *           .setModel("model104069929")
+   *           .setPageSize(883849137)
+   *           .setPageToken("pageToken873572522")
+   *           .build();
+   *   for (String element : gkeInferenceQuickstartClient.fetchModelServers(request).iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
+   * }
+   * }
+ * + * @param request The request object containing all of the parameters for the API call. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final FetchModelServersPagedResponse fetchModelServers(FetchModelServersRequest request) { + return fetchModelServersPagedCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Fetches available model servers. Open-source model servers use simplified, lowercase names + * (e.g., `vllm`). + * + *

Sample code: + * + *

{@code
+   * // This snippet has been automatically generated and should be regarded as a code template only.
+   * // It will require modifications to work:
+   * // - It may require correct/in-range values for request initialization.
+   * // - It may require specifying regional endpoints when creating the service client as shown in
+   * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+   * try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+   *     GkeInferenceQuickstartClient.create()) {
+   *   FetchModelServersRequest request =
+   *       FetchModelServersRequest.newBuilder()
+   *           .setModel("model104069929")
+   *           .setPageSize(883849137)
+   *           .setPageToken("pageToken873572522")
+   *           .build();
+   *   ApiFuture future =
+   *       gkeInferenceQuickstartClient.fetchModelServersPagedCallable().futureCall(request);
+   *   // Do something.
+   *   for (String element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
+   * }
+   * }
+ */ + public final UnaryCallable + fetchModelServersPagedCallable() { + return stub.fetchModelServersPagedCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Fetches available model servers. Open-source model servers use simplified, lowercase names + * (e.g., `vllm`). + * + *

Sample code: + * + *

{@code
+   * // This snippet has been automatically generated and should be regarded as a code template only.
+   * // It will require modifications to work:
+   * // - It may require correct/in-range values for request initialization.
+   * // - It may require specifying regional endpoints when creating the service client as shown in
+   * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+   * try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+   *     GkeInferenceQuickstartClient.create()) {
+   *   FetchModelServersRequest request =
+   *       FetchModelServersRequest.newBuilder()
+   *           .setModel("model104069929")
+   *           .setPageSize(883849137)
+   *           .setPageToken("pageToken873572522")
+   *           .build();
+   *   while (true) {
+   *     FetchModelServersResponse response =
+   *         gkeInferenceQuickstartClient.fetchModelServersCallable().call(request);
+   *     for (String element : response.getModelServersList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!Strings.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
+   * }
+   * }
+ */ + public final UnaryCallable + fetchModelServersCallable() { + return stub.fetchModelServersCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Fetches available model server versions. Open-source servers use their own versioning schemas + * (e.g., `vllm` uses semver like `v1.0.0`). + * + *

Some model servers have different versioning schemas depending on the accelerator. For + * example, `vllm` uses semver on GPUs, but returns nightly build tags on TPUs. All available + * versions will be returned when different schemas are present. + * + *

Sample code: + * + *

{@code
+   * // This snippet has been automatically generated and should be regarded as a code template only.
+   * // It will require modifications to work:
+   * // - It may require correct/in-range values for request initialization.
+   * // - It may require specifying regional endpoints when creating the service client as shown in
+   * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+   * try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+   *     GkeInferenceQuickstartClient.create()) {
+   *   FetchModelServerVersionsRequest request =
+   *       FetchModelServerVersionsRequest.newBuilder()
+   *           .setModel("model104069929")
+   *           .setModelServer("modelServer475157452")
+   *           .setPageSize(883849137)
+   *           .setPageToken("pageToken873572522")
+   *           .build();
+   *   for (String element :
+   *       gkeInferenceQuickstartClient.fetchModelServerVersions(request).iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
+   * }
+   * }
+ * + * @param request The request object containing all of the parameters for the API call. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final FetchModelServerVersionsPagedResponse fetchModelServerVersions( + FetchModelServerVersionsRequest request) { + return fetchModelServerVersionsPagedCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Fetches available model server versions. Open-source servers use their own versioning schemas + * (e.g., `vllm` uses semver like `v1.0.0`). + * + *

Some model servers have different versioning schemas depending on the accelerator. For + * example, `vllm` uses semver on GPUs, but returns nightly build tags on TPUs. All available + * versions will be returned when different schemas are present. + * + *

Sample code: + * + *

{@code
+   * // This snippet has been automatically generated and should be regarded as a code template only.
+   * // It will require modifications to work:
+   * // - It may require correct/in-range values for request initialization.
+   * // - It may require specifying regional endpoints when creating the service client as shown in
+   * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+   * try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+   *     GkeInferenceQuickstartClient.create()) {
+   *   FetchModelServerVersionsRequest request =
+   *       FetchModelServerVersionsRequest.newBuilder()
+   *           .setModel("model104069929")
+   *           .setModelServer("modelServer475157452")
+   *           .setPageSize(883849137)
+   *           .setPageToken("pageToken873572522")
+   *           .build();
+   *   ApiFuture future =
+   *       gkeInferenceQuickstartClient.fetchModelServerVersionsPagedCallable().futureCall(request);
+   *   // Do something.
+   *   for (String element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
+   * }
+   * }
+ */ + public final UnaryCallable + fetchModelServerVersionsPagedCallable() { + return stub.fetchModelServerVersionsPagedCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Fetches available model server versions. Open-source servers use their own versioning schemas + * (e.g., `vllm` uses semver like `v1.0.0`). + * + *

Some model servers have different versioning schemas depending on the accelerator. For + * example, `vllm` uses semver on GPUs, but returns nightly build tags on TPUs. All available + * versions will be returned when different schemas are present. + * + *

Sample code: + * + *

{@code
+   * // This snippet has been automatically generated and should be regarded as a code template only.
+   * // It will require modifications to work:
+   * // - It may require correct/in-range values for request initialization.
+   * // - It may require specifying regional endpoints when creating the service client as shown in
+   * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+   * try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+   *     GkeInferenceQuickstartClient.create()) {
+   *   FetchModelServerVersionsRequest request =
+   *       FetchModelServerVersionsRequest.newBuilder()
+   *           .setModel("model104069929")
+   *           .setModelServer("modelServer475157452")
+   *           .setPageSize(883849137)
+   *           .setPageToken("pageToken873572522")
+   *           .build();
+   *   while (true) {
+   *     FetchModelServerVersionsResponse response =
+   *         gkeInferenceQuickstartClient.fetchModelServerVersionsCallable().call(request);
+   *     for (String element : response.getModelServerVersionsList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!Strings.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
+   * }
+   * }
+ */ + public final UnaryCallable + fetchModelServerVersionsCallable() { + return stub.fetchModelServerVersionsCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Fetches available profiles. A profile contains performance metrics and cost information for a + * specific model server setup. Profiles can be filtered by parameters. If no filters are + * provided, all profiles are returned. + * + *

Profiles display a single value per performance metric based on the provided performance + * requirements. If no requirements are given, the metrics represent the inflection point. See + * [Run best practice inference with GKE Inference Quickstart + * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart#how) + * for details. + * + *

Sample code: + * + *

{@code
+   * // This snippet has been automatically generated and should be regarded as a code template only.
+   * // It will require modifications to work:
+   * // - It may require correct/in-range values for request initialization.
+   * // - It may require specifying regional endpoints when creating the service client as shown in
+   * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+   * try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+   *     GkeInferenceQuickstartClient.create()) {
+   *   FetchProfilesRequest request =
+   *       FetchProfilesRequest.newBuilder()
+   *           .setModel("model104069929")
+   *           .setModelServer("modelServer475157452")
+   *           .setModelServerVersion("modelServerVersion77054828")
+   *           .setPerformanceRequirements(PerformanceRequirements.newBuilder().build())
+   *           .setPageSize(883849137)
+   *           .setPageToken("pageToken873572522")
+   *           .build();
+   *   for (Profile element : gkeInferenceQuickstartClient.fetchProfiles(request).iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
+   * }
+   * }
+ * + * @param request The request object containing all of the parameters for the API call. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final FetchProfilesPagedResponse fetchProfiles(FetchProfilesRequest request) { + return fetchProfilesPagedCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Fetches available profiles. A profile contains performance metrics and cost information for a + * specific model server setup. Profiles can be filtered by parameters. If no filters are + * provided, all profiles are returned. + * + *

Profiles display a single value per performance metric based on the provided performance + * requirements. If no requirements are given, the metrics represent the inflection point. See + * [Run best practice inference with GKE Inference Quickstart + * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart#how) + * for details. + * + *

Sample code: + * + *

{@code
+   * // This snippet has been automatically generated and should be regarded as a code template only.
+   * // It will require modifications to work:
+   * // - It may require correct/in-range values for request initialization.
+   * // - It may require specifying regional endpoints when creating the service client as shown in
+   * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+   * try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+   *     GkeInferenceQuickstartClient.create()) {
+   *   FetchProfilesRequest request =
+   *       FetchProfilesRequest.newBuilder()
+   *           .setModel("model104069929")
+   *           .setModelServer("modelServer475157452")
+   *           .setModelServerVersion("modelServerVersion77054828")
+   *           .setPerformanceRequirements(PerformanceRequirements.newBuilder().build())
+   *           .setPageSize(883849137)
+   *           .setPageToken("pageToken873572522")
+   *           .build();
+   *   ApiFuture future =
+   *       gkeInferenceQuickstartClient.fetchProfilesPagedCallable().futureCall(request);
+   *   // Do something.
+   *   for (Profile element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
+   * }
+   * }
+ */ + public final UnaryCallable + fetchProfilesPagedCallable() { + return stub.fetchProfilesPagedCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Fetches available profiles. A profile contains performance metrics and cost information for a + * specific model server setup. Profiles can be filtered by parameters. If no filters are + * provided, all profiles are returned. + * + *

Profiles display a single value per performance metric based on the provided performance + * requirements. If no requirements are given, the metrics represent the inflection point. See + * [Run best practice inference with GKE Inference Quickstart + * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart#how) + * for details. + * + *

Sample code: + * + *

{@code
+   * // This snippet has been automatically generated and should be regarded as a code template only.
+   * // It will require modifications to work:
+   * // - It may require correct/in-range values for request initialization.
+   * // - It may require specifying regional endpoints when creating the service client as shown in
+   * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+   * try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+   *     GkeInferenceQuickstartClient.create()) {
+   *   FetchProfilesRequest request =
+   *       FetchProfilesRequest.newBuilder()
+   *           .setModel("model104069929")
+   *           .setModelServer("modelServer475157452")
+   *           .setModelServerVersion("modelServerVersion77054828")
+   *           .setPerformanceRequirements(PerformanceRequirements.newBuilder().build())
+   *           .setPageSize(883849137)
+   *           .setPageToken("pageToken873572522")
+   *           .build();
+   *   while (true) {
+   *     FetchProfilesResponse response =
+   *         gkeInferenceQuickstartClient.fetchProfilesCallable().call(request);
+   *     for (Profile element : response.getProfileList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!Strings.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
+   * }
+   * }
+ */ + public final UnaryCallable fetchProfilesCallable() { + return stub.fetchProfilesCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Generates an optimized deployment manifest for a given model and model server, based on the + * specified accelerator, performance targets, and configurations. See [Run best practice + * inference with GKE Inference Quickstart + * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart) + * for deployment details. + * + *

Sample code: + * + *

{@code
+   * // This snippet has been automatically generated and should be regarded as a code template only.
+   * // It will require modifications to work:
+   * // - It may require correct/in-range values for request initialization.
+   * // - It may require specifying regional endpoints when creating the service client as shown in
+   * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+   * try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+   *     GkeInferenceQuickstartClient.create()) {
+   *   GenerateOptimizedManifestRequest request =
+   *       GenerateOptimizedManifestRequest.newBuilder()
+   *           .setModelServerInfo(ModelServerInfo.newBuilder().build())
+   *           .setAcceleratorType("acceleratorType-82462651")
+   *           .setKubernetesNamespace("kubernetesNamespace-1862862667")
+   *           .setPerformanceRequirements(PerformanceRequirements.newBuilder().build())
+   *           .setStorageConfig(StorageConfig.newBuilder().build())
+   *           .build();
+   *   GenerateOptimizedManifestResponse response =
+   *       gkeInferenceQuickstartClient.generateOptimizedManifest(request);
+   * }
+   * }
+ * + * @param request The request object containing all of the parameters for the API call. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final GenerateOptimizedManifestResponse generateOptimizedManifest( + GenerateOptimizedManifestRequest request) { + return generateOptimizedManifestCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Generates an optimized deployment manifest for a given model and model server, based on the + * specified accelerator, performance targets, and configurations. See [Run best practice + * inference with GKE Inference Quickstart + * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart) + * for deployment details. + * + *

Sample code: + * + *

{@code
+   * // This snippet has been automatically generated and should be regarded as a code template only.
+   * // It will require modifications to work:
+   * // - It may require correct/in-range values for request initialization.
+   * // - It may require specifying regional endpoints when creating the service client as shown in
+   * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+   * try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+   *     GkeInferenceQuickstartClient.create()) {
+   *   GenerateOptimizedManifestRequest request =
+   *       GenerateOptimizedManifestRequest.newBuilder()
+   *           .setModelServerInfo(ModelServerInfo.newBuilder().build())
+   *           .setAcceleratorType("acceleratorType-82462651")
+   *           .setKubernetesNamespace("kubernetesNamespace-1862862667")
+   *           .setPerformanceRequirements(PerformanceRequirements.newBuilder().build())
+   *           .setStorageConfig(StorageConfig.newBuilder().build())
+   *           .build();
+   *   ApiFuture future =
+   *       gkeInferenceQuickstartClient.generateOptimizedManifestCallable().futureCall(request);
+   *   // Do something.
+   *   GenerateOptimizedManifestResponse response = future.get();
+   * }
+   * }
+ */ + public final UnaryCallable + generateOptimizedManifestCallable() { + return stub.generateOptimizedManifestCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Fetches all of the benchmarking data available for a profile. Benchmarking data returns all of + * the performance metrics available for a given model server setup on a given instance type. + * + *

Sample code: + * + *

{@code
+   * // This snippet has been automatically generated and should be regarded as a code template only.
+   * // It will require modifications to work:
+   * // - It may require correct/in-range values for request initialization.
+   * // - It may require specifying regional endpoints when creating the service client as shown in
+   * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+   * try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+   *     GkeInferenceQuickstartClient.create()) {
+   *   FetchBenchmarkingDataRequest request =
+   *       FetchBenchmarkingDataRequest.newBuilder()
+   *           .setModelServerInfo(ModelServerInfo.newBuilder().build())
+   *           .setInstanceType("instanceType-737655441")
+   *           .setPricingModel("pricingModel1050892035")
+   *           .build();
+   *   FetchBenchmarkingDataResponse response =
+   *       gkeInferenceQuickstartClient.fetchBenchmarkingData(request);
+   * }
+   * }
+ * + * @param request The request object containing all of the parameters for the API call. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final FetchBenchmarkingDataResponse fetchBenchmarkingData( + FetchBenchmarkingDataRequest request) { + return fetchBenchmarkingDataCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Fetches all of the benchmarking data available for a profile. Benchmarking data returns all of + * the performance metrics available for a given model server setup on a given instance type. + * + *

Sample code: + * + *

{@code
+   * // This snippet has been automatically generated and should be regarded as a code template only.
+   * // It will require modifications to work:
+   * // - It may require correct/in-range values for request initialization.
+   * // - It may require specifying regional endpoints when creating the service client as shown in
+   * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+   * try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+   *     GkeInferenceQuickstartClient.create()) {
+   *   FetchBenchmarkingDataRequest request =
+   *       FetchBenchmarkingDataRequest.newBuilder()
+   *           .setModelServerInfo(ModelServerInfo.newBuilder().build())
+   *           .setInstanceType("instanceType-737655441")
+   *           .setPricingModel("pricingModel1050892035")
+   *           .build();
+   *   ApiFuture future =
+   *       gkeInferenceQuickstartClient.fetchBenchmarkingDataCallable().futureCall(request);
+   *   // Do something.
+   *   FetchBenchmarkingDataResponse response = future.get();
+   * }
+   * }
+ */ + public final UnaryCallable + fetchBenchmarkingDataCallable() { + return stub.fetchBenchmarkingDataCallable(); + } + + @Override + public final void close() { + stub.close(); + } + + @Override + public void shutdown() { + stub.shutdown(); + } + + @Override + public boolean isShutdown() { + return stub.isShutdown(); + } + + @Override + public boolean isTerminated() { + return stub.isTerminated(); + } + + @Override + public void shutdownNow() { + stub.shutdownNow(); + } + + @Override + public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { + return stub.awaitTermination(duration, unit); + } + + public static class FetchModelsPagedResponse + extends AbstractPagedListResponse< + FetchModelsRequest, + FetchModelsResponse, + String, + FetchModelsPage, + FetchModelsFixedSizeCollection> { + + public static ApiFuture createAsync( + PageContext context, + ApiFuture futureResponse) { + ApiFuture futurePage = + FetchModelsPage.createEmptyPage().createPageAsync(context, futureResponse); + return ApiFutures.transform( + futurePage, input -> new FetchModelsPagedResponse(input), MoreExecutors.directExecutor()); + } + + private FetchModelsPagedResponse(FetchModelsPage page) { + super(page, FetchModelsFixedSizeCollection.createEmptyCollection()); + } + } + + public static class FetchModelsPage + extends AbstractPage { + + private FetchModelsPage( + PageContext context, + FetchModelsResponse response) { + super(context, response); + } + + private static FetchModelsPage createEmptyPage() { + return new FetchModelsPage(null, null); + } + + @Override + protected FetchModelsPage createPage( + PageContext context, + FetchModelsResponse response) { + return new FetchModelsPage(context, response); + } + + @Override + public ApiFuture createPageAsync( + PageContext context, + ApiFuture futureResponse) { + return super.createPageAsync(context, futureResponse); + } + } + + public static class FetchModelsFixedSizeCollection + extends AbstractFixedSizeCollection< + FetchModelsRequest, + FetchModelsResponse, + String, + FetchModelsPage, + FetchModelsFixedSizeCollection> { + + private FetchModelsFixedSizeCollection(List pages, int collectionSize) { + super(pages, collectionSize); + } + + private static FetchModelsFixedSizeCollection createEmptyCollection() { + return new FetchModelsFixedSizeCollection(null, 0); + } + + @Override + protected FetchModelsFixedSizeCollection createCollection( + List pages, int collectionSize) { + return new FetchModelsFixedSizeCollection(pages, collectionSize); + } + } + + public static class FetchModelServersPagedResponse + extends AbstractPagedListResponse< + FetchModelServersRequest, + FetchModelServersResponse, + String, + FetchModelServersPage, + FetchModelServersFixedSizeCollection> { + + public static ApiFuture createAsync( + PageContext context, + ApiFuture futureResponse) { + ApiFuture futurePage = + FetchModelServersPage.createEmptyPage().createPageAsync(context, futureResponse); + return ApiFutures.transform( + futurePage, + input -> new FetchModelServersPagedResponse(input), + MoreExecutors.directExecutor()); + } + + private FetchModelServersPagedResponse(FetchModelServersPage page) { + super(page, FetchModelServersFixedSizeCollection.createEmptyCollection()); + } + } + + public static class FetchModelServersPage + extends AbstractPage< + FetchModelServersRequest, FetchModelServersResponse, String, FetchModelServersPage> { + + private FetchModelServersPage( + PageContext context, + FetchModelServersResponse response) { + super(context, response); + } + + private static FetchModelServersPage createEmptyPage() { + return new FetchModelServersPage(null, null); + } + + @Override + protected FetchModelServersPage createPage( + PageContext context, + FetchModelServersResponse response) { + return new FetchModelServersPage(context, response); + } + + @Override + public ApiFuture createPageAsync( + PageContext context, + ApiFuture futureResponse) { + return super.createPageAsync(context, futureResponse); + } + } + + public static class FetchModelServersFixedSizeCollection + extends AbstractFixedSizeCollection< + FetchModelServersRequest, + FetchModelServersResponse, + String, + FetchModelServersPage, + FetchModelServersFixedSizeCollection> { + + private FetchModelServersFixedSizeCollection( + List pages, int collectionSize) { + super(pages, collectionSize); + } + + private static FetchModelServersFixedSizeCollection createEmptyCollection() { + return new FetchModelServersFixedSizeCollection(null, 0); + } + + @Override + protected FetchModelServersFixedSizeCollection createCollection( + List pages, int collectionSize) { + return new FetchModelServersFixedSizeCollection(pages, collectionSize); + } + } + + public static class FetchModelServerVersionsPagedResponse + extends AbstractPagedListResponse< + FetchModelServerVersionsRequest, + FetchModelServerVersionsResponse, + String, + FetchModelServerVersionsPage, + FetchModelServerVersionsFixedSizeCollection> { + + public static ApiFuture createAsync( + PageContext + context, + ApiFuture futureResponse) { + ApiFuture futurePage = + FetchModelServerVersionsPage.createEmptyPage().createPageAsync(context, futureResponse); + return ApiFutures.transform( + futurePage, + input -> new FetchModelServerVersionsPagedResponse(input), + MoreExecutors.directExecutor()); + } + + private FetchModelServerVersionsPagedResponse(FetchModelServerVersionsPage page) { + super(page, FetchModelServerVersionsFixedSizeCollection.createEmptyCollection()); + } + } + + public static class FetchModelServerVersionsPage + extends AbstractPage< + FetchModelServerVersionsRequest, + FetchModelServerVersionsResponse, + String, + FetchModelServerVersionsPage> { + + private FetchModelServerVersionsPage( + PageContext + context, + FetchModelServerVersionsResponse response) { + super(context, response); + } + + private static FetchModelServerVersionsPage createEmptyPage() { + return new FetchModelServerVersionsPage(null, null); + } + + @Override + protected FetchModelServerVersionsPage createPage( + PageContext + context, + FetchModelServerVersionsResponse response) { + return new FetchModelServerVersionsPage(context, response); + } + + @Override + public ApiFuture createPageAsync( + PageContext + context, + ApiFuture futureResponse) { + return super.createPageAsync(context, futureResponse); + } + } + + public static class FetchModelServerVersionsFixedSizeCollection + extends AbstractFixedSizeCollection< + FetchModelServerVersionsRequest, + FetchModelServerVersionsResponse, + String, + FetchModelServerVersionsPage, + FetchModelServerVersionsFixedSizeCollection> { + + private FetchModelServerVersionsFixedSizeCollection( + List pages, int collectionSize) { + super(pages, collectionSize); + } + + private static FetchModelServerVersionsFixedSizeCollection createEmptyCollection() { + return new FetchModelServerVersionsFixedSizeCollection(null, 0); + } + + @Override + protected FetchModelServerVersionsFixedSizeCollection createCollection( + List pages, int collectionSize) { + return new FetchModelServerVersionsFixedSizeCollection(pages, collectionSize); + } + } + + public static class FetchProfilesPagedResponse + extends AbstractPagedListResponse< + FetchProfilesRequest, + FetchProfilesResponse, + Profile, + FetchProfilesPage, + FetchProfilesFixedSizeCollection> { + + public static ApiFuture createAsync( + PageContext context, + ApiFuture futureResponse) { + ApiFuture futurePage = + FetchProfilesPage.createEmptyPage().createPageAsync(context, futureResponse); + return ApiFutures.transform( + futurePage, + input -> new FetchProfilesPagedResponse(input), + MoreExecutors.directExecutor()); + } + + private FetchProfilesPagedResponse(FetchProfilesPage page) { + super(page, FetchProfilesFixedSizeCollection.createEmptyCollection()); + } + } + + public static class FetchProfilesPage + extends AbstractPage< + FetchProfilesRequest, FetchProfilesResponse, Profile, FetchProfilesPage> { + + private FetchProfilesPage( + PageContext context, + FetchProfilesResponse response) { + super(context, response); + } + + private static FetchProfilesPage createEmptyPage() { + return new FetchProfilesPage(null, null); + } + + @Override + protected FetchProfilesPage createPage( + PageContext context, + FetchProfilesResponse response) { + return new FetchProfilesPage(context, response); + } + + @Override + public ApiFuture createPageAsync( + PageContext context, + ApiFuture futureResponse) { + return super.createPageAsync(context, futureResponse); + } + } + + public static class FetchProfilesFixedSizeCollection + extends AbstractFixedSizeCollection< + FetchProfilesRequest, + FetchProfilesResponse, + Profile, + FetchProfilesPage, + FetchProfilesFixedSizeCollection> { + + private FetchProfilesFixedSizeCollection(List pages, int collectionSize) { + super(pages, collectionSize); + } + + private static FetchProfilesFixedSizeCollection createEmptyCollection() { + return new FetchProfilesFixedSizeCollection(null, 0); + } + + @Override + protected FetchProfilesFixedSizeCollection createCollection( + List pages, int collectionSize) { + return new FetchProfilesFixedSizeCollection(pages, collectionSize); + } + } +} diff --git a/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/GkeInferenceQuickstartSettings.java b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/GkeInferenceQuickstartSettings.java new file mode 100644 index 000000000000..f825138f8e49 --- /dev/null +++ b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/GkeInferenceQuickstartSettings.java @@ -0,0 +1,299 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1; + +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelServerVersionsPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelServersPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelsPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchProfilesPagedResponse; + +import com.google.api.core.ApiFunction; +import com.google.api.core.BetaApi; +import com.google.api.gax.core.GoogleCredentialsProvider; +import com.google.api.gax.core.InstantiatingExecutorProvider; +import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; +import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider; +import com.google.api.gax.rpc.ApiClientHeaderProvider; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.ClientSettings; +import com.google.api.gax.rpc.PagedCallSettings; +import com.google.api.gax.rpc.TransportChannelProvider; +import com.google.api.gax.rpc.UnaryCallSettings; +import com.google.cloud.gkerecommender.v1.stub.GkeInferenceQuickstartStubSettings; +import java.io.IOException; +import java.util.List; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * Settings class to configure an instance of {@link GkeInferenceQuickstartClient}. + * + *

The default instance has everything set to sensible defaults: + * + *

    + *
  • The default service address (gkerecommender.googleapis.com) and default port (443) are + * used. + *
  • Credentials are acquired automatically through Application Default Credentials. + *
  • Retries are configured for idempotent methods but not for non-idempotent methods. + *
+ * + *

The builder of this class is recursive, so contained classes are themselves builders. When + * build() is called, the tree of builders is called to create the complete settings object. + * + *

For example, to set the + * [RetrySettings](https://cloud.google.com/java/docs/reference/gax/latest/com.google.api.gax.retrying.RetrySettings) + * of generateOptimizedManifest: + * + *

{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * GkeInferenceQuickstartSettings.Builder gkeInferenceQuickstartSettingsBuilder =
+ *     GkeInferenceQuickstartSettings.newBuilder();
+ * gkeInferenceQuickstartSettingsBuilder
+ *     .generateOptimizedManifestSettings()
+ *     .setRetrySettings(
+ *         gkeInferenceQuickstartSettingsBuilder
+ *             .generateOptimizedManifestSettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setInitialRetryDelayDuration(Duration.ofSeconds(1))
+ *             .setInitialRpcTimeoutDuration(Duration.ofSeconds(5))
+ *             .setMaxAttempts(5)
+ *             .setMaxRetryDelayDuration(Duration.ofSeconds(30))
+ *             .setMaxRpcTimeoutDuration(Duration.ofSeconds(60))
+ *             .setRetryDelayMultiplier(1.3)
+ *             .setRpcTimeoutMultiplier(1.5)
+ *             .setTotalTimeoutDuration(Duration.ofSeconds(300))
+ *             .build());
+ * GkeInferenceQuickstartSettings gkeInferenceQuickstartSettings =
+ *     gkeInferenceQuickstartSettingsBuilder.build();
+ * }
+ * + * Please refer to the [Client Side Retry + * Guide](https://github.com/googleapis/google-cloud-java/blob/main/docs/client_retries.md) for + * additional support in setting retries. + */ +@Generated("by gapic-generator-java") +public class GkeInferenceQuickstartSettings extends ClientSettings { + + /** Returns the object with the settings used for calls to fetchModels. */ + public PagedCallSettings + fetchModelsSettings() { + return ((GkeInferenceQuickstartStubSettings) getStubSettings()).fetchModelsSettings(); + } + + /** Returns the object with the settings used for calls to fetchModelServers. */ + public PagedCallSettings< + FetchModelServersRequest, FetchModelServersResponse, FetchModelServersPagedResponse> + fetchModelServersSettings() { + return ((GkeInferenceQuickstartStubSettings) getStubSettings()).fetchModelServersSettings(); + } + + /** Returns the object with the settings used for calls to fetchModelServerVersions. */ + public PagedCallSettings< + FetchModelServerVersionsRequest, + FetchModelServerVersionsResponse, + FetchModelServerVersionsPagedResponse> + fetchModelServerVersionsSettings() { + return ((GkeInferenceQuickstartStubSettings) getStubSettings()) + .fetchModelServerVersionsSettings(); + } + + /** Returns the object with the settings used for calls to fetchProfiles. */ + public PagedCallSettings + fetchProfilesSettings() { + return ((GkeInferenceQuickstartStubSettings) getStubSettings()).fetchProfilesSettings(); + } + + /** Returns the object with the settings used for calls to generateOptimizedManifest. */ + public UnaryCallSettings + generateOptimizedManifestSettings() { + return ((GkeInferenceQuickstartStubSettings) getStubSettings()) + .generateOptimizedManifestSettings(); + } + + /** Returns the object with the settings used for calls to fetchBenchmarkingData. */ + public UnaryCallSettings + fetchBenchmarkingDataSettings() { + return ((GkeInferenceQuickstartStubSettings) getStubSettings()).fetchBenchmarkingDataSettings(); + } + + public static final GkeInferenceQuickstartSettings create(GkeInferenceQuickstartStubSettings stub) + throws IOException { + return new GkeInferenceQuickstartSettings.Builder(stub.toBuilder()).build(); + } + + /** Returns a builder for the default ExecutorProvider for this service. */ + public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() { + return GkeInferenceQuickstartStubSettings.defaultExecutorProviderBuilder(); + } + + /** Returns the default service endpoint. */ + public static String getDefaultEndpoint() { + return GkeInferenceQuickstartStubSettings.getDefaultEndpoint(); + } + + /** Returns the default service scopes. */ + public static List getDefaultServiceScopes() { + return GkeInferenceQuickstartStubSettings.getDefaultServiceScopes(); + } + + /** Returns a builder for the default credentials for this service. */ + public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() { + return GkeInferenceQuickstartStubSettings.defaultCredentialsProviderBuilder(); + } + + /** Returns a builder for the default gRPC ChannelProvider for this service. */ + public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() { + return GkeInferenceQuickstartStubSettings.defaultGrpcTransportProviderBuilder(); + } + + /** Returns a builder for the default REST ChannelProvider for this service. */ + @BetaApi + public static InstantiatingHttpJsonChannelProvider.Builder + defaultHttpJsonTransportProviderBuilder() { + return GkeInferenceQuickstartStubSettings.defaultHttpJsonTransportProviderBuilder(); + } + + public static TransportChannelProvider defaultTransportChannelProvider() { + return GkeInferenceQuickstartStubSettings.defaultTransportChannelProvider(); + } + + public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { + return GkeInferenceQuickstartStubSettings.defaultApiClientHeaderProviderBuilder(); + } + + /** Returns a new gRPC builder for this class. */ + public static Builder newBuilder() { + return Builder.createDefault(); + } + + /** Returns a new REST builder for this class. */ + public static Builder newHttpJsonBuilder() { + return Builder.createHttpJsonDefault(); + } + + /** Returns a new builder for this class. */ + public static Builder newBuilder(ClientContext clientContext) { + return new Builder(clientContext); + } + + /** Returns a builder containing all the values of this settings class. */ + public Builder toBuilder() { + return new Builder(this); + } + + protected GkeInferenceQuickstartSettings(Builder settingsBuilder) throws IOException { + super(settingsBuilder); + } + + /** Builder for GkeInferenceQuickstartSettings. */ + public static class Builder + extends ClientSettings.Builder { + + protected Builder() throws IOException { + this(((ClientContext) null)); + } + + protected Builder(ClientContext clientContext) { + super(GkeInferenceQuickstartStubSettings.newBuilder(clientContext)); + } + + protected Builder(GkeInferenceQuickstartSettings settings) { + super(settings.getStubSettings().toBuilder()); + } + + protected Builder(GkeInferenceQuickstartStubSettings.Builder stubSettings) { + super(stubSettings); + } + + private static Builder createDefault() { + return new Builder(GkeInferenceQuickstartStubSettings.newBuilder()); + } + + private static Builder createHttpJsonDefault() { + return new Builder(GkeInferenceQuickstartStubSettings.newHttpJsonBuilder()); + } + + public GkeInferenceQuickstartStubSettings.Builder getStubSettingsBuilder() { + return ((GkeInferenceQuickstartStubSettings.Builder) getStubSettings()); + } + + /** + * Applies the given settings updater function to all of the unary API methods in this service. + * + *

Note: This method does not support applying settings to streaming methods. + */ + public Builder applyToAllUnaryMethods( + ApiFunction, Void> settingsUpdater) { + super.applyToAllUnaryMethods( + getStubSettingsBuilder().unaryMethodSettingsBuilders(), settingsUpdater); + return this; + } + + /** Returns the builder for the settings used for calls to fetchModels. */ + public PagedCallSettings.Builder< + FetchModelsRequest, FetchModelsResponse, FetchModelsPagedResponse> + fetchModelsSettings() { + return getStubSettingsBuilder().fetchModelsSettings(); + } + + /** Returns the builder for the settings used for calls to fetchModelServers. */ + public PagedCallSettings.Builder< + FetchModelServersRequest, FetchModelServersResponse, FetchModelServersPagedResponse> + fetchModelServersSettings() { + return getStubSettingsBuilder().fetchModelServersSettings(); + } + + /** Returns the builder for the settings used for calls to fetchModelServerVersions. */ + public PagedCallSettings.Builder< + FetchModelServerVersionsRequest, + FetchModelServerVersionsResponse, + FetchModelServerVersionsPagedResponse> + fetchModelServerVersionsSettings() { + return getStubSettingsBuilder().fetchModelServerVersionsSettings(); + } + + /** Returns the builder for the settings used for calls to fetchProfiles. */ + public PagedCallSettings.Builder< + FetchProfilesRequest, FetchProfilesResponse, FetchProfilesPagedResponse> + fetchProfilesSettings() { + return getStubSettingsBuilder().fetchProfilesSettings(); + } + + /** Returns the builder for the settings used for calls to generateOptimizedManifest. */ + public UnaryCallSettings.Builder< + GenerateOptimizedManifestRequest, GenerateOptimizedManifestResponse> + generateOptimizedManifestSettings() { + return getStubSettingsBuilder().generateOptimizedManifestSettings(); + } + + /** Returns the builder for the settings used for calls to fetchBenchmarkingData. */ + public UnaryCallSettings.Builder + fetchBenchmarkingDataSettings() { + return getStubSettingsBuilder().fetchBenchmarkingDataSettings(); + } + + @Override + public GkeInferenceQuickstartSettings build() throws IOException { + return new GkeInferenceQuickstartSettings(this); + } + } +} diff --git a/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/gapic_metadata.json b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/gapic_metadata.json new file mode 100644 index 000000000000..40d8b53ff369 --- /dev/null +++ b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/gapic_metadata.json @@ -0,0 +1,36 @@ +{ + "schema": "1.0", + "comment": "This file maps proto services/RPCs to the corresponding library clients/methods", + "language": "java", + "protoPackage": "google.cloud.gkerecommender.v1", + "libraryPackage": "com.google.cloud.gkerecommender.v1", + "services": { + "GkeInferenceQuickstart": { + "clients": { + "grpc": { + "libraryClient": "GkeInferenceQuickstartClient", + "rpcs": { + "FetchBenchmarkingData": { + "methods": ["fetchBenchmarkingData", "fetchBenchmarkingDataCallable"] + }, + "FetchModelServerVersions": { + "methods": ["fetchModelServerVersions", "fetchModelServerVersionsPagedCallable", "fetchModelServerVersionsCallable"] + }, + "FetchModelServers": { + "methods": ["fetchModelServers", "fetchModelServersPagedCallable", "fetchModelServersCallable"] + }, + "FetchModels": { + "methods": ["fetchModels", "fetchModelsPagedCallable", "fetchModelsCallable"] + }, + "FetchProfiles": { + "methods": ["fetchProfiles", "fetchProfilesPagedCallable", "fetchProfilesCallable"] + }, + "GenerateOptimizedManifest": { + "methods": ["generateOptimizedManifest", "generateOptimizedManifestCallable"] + } + } + } + } + } + } +} \ No newline at end of file diff --git a/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/package-info.java b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/package-info.java new file mode 100644 index 000000000000..6444f2afb3f4 --- /dev/null +++ b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/package-info.java @@ -0,0 +1,54 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * A client to GKE Recommender API + * + *

The interfaces provided are listed below, along with usage samples. + * + *

======================= GkeInferenceQuickstartClient ======================= + * + *

Service Description: GKE Inference Quickstart (GIQ) service provides profiles with performance + * metrics for popular models and model servers across multiple accelerators. These profiles help + * generate optimized best practices for running inference on GKE. + * + *

Sample for GkeInferenceQuickstartClient: + * + *

{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient =
+ *     GkeInferenceQuickstartClient.create()) {
+ *   GenerateOptimizedManifestRequest request =
+ *       GenerateOptimizedManifestRequest.newBuilder()
+ *           .setModelServerInfo(ModelServerInfo.newBuilder().build())
+ *           .setAcceleratorType("acceleratorType-82462651")
+ *           .setKubernetesNamespace("kubernetesNamespace-1862862667")
+ *           .setPerformanceRequirements(PerformanceRequirements.newBuilder().build())
+ *           .setStorageConfig(StorageConfig.newBuilder().build())
+ *           .build();
+ *   GenerateOptimizedManifestResponse response =
+ *       gkeInferenceQuickstartClient.generateOptimizedManifest(request);
+ * }
+ * }
+ */ +@Generated("by gapic-generator-java") +package com.google.cloud.gkerecommender.v1; + +import javax.annotation.Generated; diff --git a/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/stub/GkeInferenceQuickstartStub.java b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/stub/GkeInferenceQuickstartStub.java new file mode 100644 index 000000000000..8742a3d47fef --- /dev/null +++ b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/stub/GkeInferenceQuickstartStub.java @@ -0,0 +1,99 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.stub; + +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelServerVersionsPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelServersPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelsPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchProfilesPagedResponse; + +import com.google.api.gax.core.BackgroundResource; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest; +import com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse; +import com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest; +import com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse; +import com.google.cloud.gkerecommender.v1.FetchModelServersRequest; +import com.google.cloud.gkerecommender.v1.FetchModelServersResponse; +import com.google.cloud.gkerecommender.v1.FetchModelsRequest; +import com.google.cloud.gkerecommender.v1.FetchModelsResponse; +import com.google.cloud.gkerecommender.v1.FetchProfilesRequest; +import com.google.cloud.gkerecommender.v1.FetchProfilesResponse; +import com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest; +import com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * Base stub class for the GkeInferenceQuickstart service API. + * + *

This class is for advanced usage and reflects the underlying API directly. + */ +@Generated("by gapic-generator-java") +public abstract class GkeInferenceQuickstartStub implements BackgroundResource { + + public UnaryCallable fetchModelsPagedCallable() { + throw new UnsupportedOperationException("Not implemented: fetchModelsPagedCallable()"); + } + + public UnaryCallable fetchModelsCallable() { + throw new UnsupportedOperationException("Not implemented: fetchModelsCallable()"); + } + + public UnaryCallable + fetchModelServersPagedCallable() { + throw new UnsupportedOperationException("Not implemented: fetchModelServersPagedCallable()"); + } + + public UnaryCallable + fetchModelServersCallable() { + throw new UnsupportedOperationException("Not implemented: fetchModelServersCallable()"); + } + + public UnaryCallable + fetchModelServerVersionsPagedCallable() { + throw new UnsupportedOperationException( + "Not implemented: fetchModelServerVersionsPagedCallable()"); + } + + public UnaryCallable + fetchModelServerVersionsCallable() { + throw new UnsupportedOperationException("Not implemented: fetchModelServerVersionsCallable()"); + } + + public UnaryCallable + fetchProfilesPagedCallable() { + throw new UnsupportedOperationException("Not implemented: fetchProfilesPagedCallable()"); + } + + public UnaryCallable fetchProfilesCallable() { + throw new UnsupportedOperationException("Not implemented: fetchProfilesCallable()"); + } + + public UnaryCallable + generateOptimizedManifestCallable() { + throw new UnsupportedOperationException("Not implemented: generateOptimizedManifestCallable()"); + } + + public UnaryCallable + fetchBenchmarkingDataCallable() { + throw new UnsupportedOperationException("Not implemented: fetchBenchmarkingDataCallable()"); + } + + @Override + public abstract void close(); +} diff --git a/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/stub/GkeInferenceQuickstartStubSettings.java b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/stub/GkeInferenceQuickstartStubSettings.java new file mode 100644 index 000000000000..8cd33a1af47f --- /dev/null +++ b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/stub/GkeInferenceQuickstartStubSettings.java @@ -0,0 +1,751 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.stub; + +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelServerVersionsPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelServersPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelsPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchProfilesPagedResponse; + +import com.google.api.core.ApiFunction; +import com.google.api.core.ApiFuture; +import com.google.api.core.BetaApi; +import com.google.api.core.ObsoleteApi; +import com.google.api.gax.core.GaxProperties; +import com.google.api.gax.core.GoogleCredentialsProvider; +import com.google.api.gax.core.InstantiatingExecutorProvider; +import com.google.api.gax.grpc.GaxGrpcProperties; +import com.google.api.gax.grpc.GrpcTransportChannel; +import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; +import com.google.api.gax.httpjson.GaxHttpJsonProperties; +import com.google.api.gax.httpjson.HttpJsonTransportChannel; +import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider; +import com.google.api.gax.retrying.RetrySettings; +import com.google.api.gax.rpc.ApiCallContext; +import com.google.api.gax.rpc.ApiClientHeaderProvider; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.PageContext; +import com.google.api.gax.rpc.PagedCallSettings; +import com.google.api.gax.rpc.PagedListDescriptor; +import com.google.api.gax.rpc.PagedListResponseFactory; +import com.google.api.gax.rpc.StatusCode; +import com.google.api.gax.rpc.StubSettings; +import com.google.api.gax.rpc.TransportChannelProvider; +import com.google.api.gax.rpc.UnaryCallSettings; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest; +import com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse; +import com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest; +import com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse; +import com.google.cloud.gkerecommender.v1.FetchModelServersRequest; +import com.google.cloud.gkerecommender.v1.FetchModelServersResponse; +import com.google.cloud.gkerecommender.v1.FetchModelsRequest; +import com.google.cloud.gkerecommender.v1.FetchModelsResponse; +import com.google.cloud.gkerecommender.v1.FetchProfilesRequest; +import com.google.cloud.gkerecommender.v1.FetchProfilesResponse; +import com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest; +import com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse; +import com.google.cloud.gkerecommender.v1.Profile; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Lists; +import java.io.IOException; +import java.time.Duration; +import java.util.List; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * Settings class to configure an instance of {@link GkeInferenceQuickstartStub}. + * + *

The default instance has everything set to sensible defaults: + * + *

    + *
  • The default service address (gkerecommender.googleapis.com) and default port (443) are + * used. + *
  • Credentials are acquired automatically through Application Default Credentials. + *
  • Retries are configured for idempotent methods but not for non-idempotent methods. + *
+ * + *

The builder of this class is recursive, so contained classes are themselves builders. When + * build() is called, the tree of builders is called to create the complete settings object. + * + *

For example, to set the + * [RetrySettings](https://cloud.google.com/java/docs/reference/gax/latest/com.google.api.gax.retrying.RetrySettings) + * of generateOptimizedManifest: + * + *

{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * GkeInferenceQuickstartStubSettings.Builder gkeInferenceQuickstartSettingsBuilder =
+ *     GkeInferenceQuickstartStubSettings.newBuilder();
+ * gkeInferenceQuickstartSettingsBuilder
+ *     .generateOptimizedManifestSettings()
+ *     .setRetrySettings(
+ *         gkeInferenceQuickstartSettingsBuilder
+ *             .generateOptimizedManifestSettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setInitialRetryDelayDuration(Duration.ofSeconds(1))
+ *             .setInitialRpcTimeoutDuration(Duration.ofSeconds(5))
+ *             .setMaxAttempts(5)
+ *             .setMaxRetryDelayDuration(Duration.ofSeconds(30))
+ *             .setMaxRpcTimeoutDuration(Duration.ofSeconds(60))
+ *             .setRetryDelayMultiplier(1.3)
+ *             .setRpcTimeoutMultiplier(1.5)
+ *             .setTotalTimeoutDuration(Duration.ofSeconds(300))
+ *             .build());
+ * GkeInferenceQuickstartStubSettings gkeInferenceQuickstartSettings =
+ *     gkeInferenceQuickstartSettingsBuilder.build();
+ * }
+ * + * Please refer to the [Client Side Retry + * Guide](https://github.com/googleapis/google-cloud-java/blob/main/docs/client_retries.md) for + * additional support in setting retries. + */ +@Generated("by gapic-generator-java") +public class GkeInferenceQuickstartStubSettings + extends StubSettings { + /** The default scopes of the service. */ + private static final ImmutableList DEFAULT_SERVICE_SCOPES = + ImmutableList.builder().add("https://www.googleapis.com/auth/cloud-platform").build(); + + private final PagedCallSettings + fetchModelsSettings; + private final PagedCallSettings< + FetchModelServersRequest, FetchModelServersResponse, FetchModelServersPagedResponse> + fetchModelServersSettings; + private final PagedCallSettings< + FetchModelServerVersionsRequest, + FetchModelServerVersionsResponse, + FetchModelServerVersionsPagedResponse> + fetchModelServerVersionsSettings; + private final PagedCallSettings< + FetchProfilesRequest, FetchProfilesResponse, FetchProfilesPagedResponse> + fetchProfilesSettings; + private final UnaryCallSettings< + GenerateOptimizedManifestRequest, GenerateOptimizedManifestResponse> + generateOptimizedManifestSettings; + private final UnaryCallSettings + fetchBenchmarkingDataSettings; + + private static final PagedListDescriptor + FETCH_MODELS_PAGE_STR_DESC = + new PagedListDescriptor() { + @Override + public String emptyToken() { + return ""; + } + + @Override + public FetchModelsRequest injectToken(FetchModelsRequest payload, String token) { + return FetchModelsRequest.newBuilder(payload).setPageToken(token).build(); + } + + @Override + public FetchModelsRequest injectPageSize(FetchModelsRequest payload, int pageSize) { + return FetchModelsRequest.newBuilder(payload).setPageSize(pageSize).build(); + } + + @Override + public Integer extractPageSize(FetchModelsRequest payload) { + return payload.getPageSize(); + } + + @Override + public String extractNextToken(FetchModelsResponse payload) { + return payload.getNextPageToken(); + } + + @Override + public Iterable extractResources(FetchModelsResponse payload) { + return payload.getModelsList(); + } + }; + + private static final PagedListDescriptor< + FetchModelServersRequest, FetchModelServersResponse, String> + FETCH_MODEL_SERVERS_PAGE_STR_DESC = + new PagedListDescriptor() { + @Override + public String emptyToken() { + return ""; + } + + @Override + public FetchModelServersRequest injectToken( + FetchModelServersRequest payload, String token) { + return FetchModelServersRequest.newBuilder(payload).setPageToken(token).build(); + } + + @Override + public FetchModelServersRequest injectPageSize( + FetchModelServersRequest payload, int pageSize) { + return FetchModelServersRequest.newBuilder(payload).setPageSize(pageSize).build(); + } + + @Override + public Integer extractPageSize(FetchModelServersRequest payload) { + return payload.getPageSize(); + } + + @Override + public String extractNextToken(FetchModelServersResponse payload) { + return payload.getNextPageToken(); + } + + @Override + public Iterable extractResources(FetchModelServersResponse payload) { + return payload.getModelServersList(); + } + }; + + private static final PagedListDescriptor< + FetchModelServerVersionsRequest, FetchModelServerVersionsResponse, String> + FETCH_MODEL_SERVER_VERSIONS_PAGE_STR_DESC = + new PagedListDescriptor< + FetchModelServerVersionsRequest, FetchModelServerVersionsResponse, String>() { + @Override + public String emptyToken() { + return ""; + } + + @Override + public FetchModelServerVersionsRequest injectToken( + FetchModelServerVersionsRequest payload, String token) { + return FetchModelServerVersionsRequest.newBuilder(payload) + .setPageToken(token) + .build(); + } + + @Override + public FetchModelServerVersionsRequest injectPageSize( + FetchModelServerVersionsRequest payload, int pageSize) { + return FetchModelServerVersionsRequest.newBuilder(payload) + .setPageSize(pageSize) + .build(); + } + + @Override + public Integer extractPageSize(FetchModelServerVersionsRequest payload) { + return payload.getPageSize(); + } + + @Override + public String extractNextToken(FetchModelServerVersionsResponse payload) { + return payload.getNextPageToken(); + } + + @Override + public Iterable extractResources(FetchModelServerVersionsResponse payload) { + return payload.getModelServerVersionsList(); + } + }; + + private static final PagedListDescriptor + FETCH_PROFILES_PAGE_STR_DESC = + new PagedListDescriptor() { + @Override + public String emptyToken() { + return ""; + } + + @Override + public FetchProfilesRequest injectToken(FetchProfilesRequest payload, String token) { + return FetchProfilesRequest.newBuilder(payload).setPageToken(token).build(); + } + + @Override + public FetchProfilesRequest injectPageSize(FetchProfilesRequest payload, int pageSize) { + return FetchProfilesRequest.newBuilder(payload).setPageSize(pageSize).build(); + } + + @Override + public Integer extractPageSize(FetchProfilesRequest payload) { + return payload.getPageSize(); + } + + @Override + public String extractNextToken(FetchProfilesResponse payload) { + return payload.getNextPageToken(); + } + + @Override + public Iterable extractResources(FetchProfilesResponse payload) { + return payload.getProfileList(); + } + }; + + private static final PagedListResponseFactory< + FetchModelsRequest, FetchModelsResponse, FetchModelsPagedResponse> + FETCH_MODELS_PAGE_STR_FACT = + new PagedListResponseFactory< + FetchModelsRequest, FetchModelsResponse, FetchModelsPagedResponse>() { + @Override + public ApiFuture getFuturePagedResponse( + UnaryCallable callable, + FetchModelsRequest request, + ApiCallContext context, + ApiFuture futureResponse) { + PageContext pageContext = + PageContext.create(callable, FETCH_MODELS_PAGE_STR_DESC, request, context); + return FetchModelsPagedResponse.createAsync(pageContext, futureResponse); + } + }; + + private static final PagedListResponseFactory< + FetchModelServersRequest, FetchModelServersResponse, FetchModelServersPagedResponse> + FETCH_MODEL_SERVERS_PAGE_STR_FACT = + new PagedListResponseFactory< + FetchModelServersRequest, + FetchModelServersResponse, + FetchModelServersPagedResponse>() { + @Override + public ApiFuture getFuturePagedResponse( + UnaryCallable callable, + FetchModelServersRequest request, + ApiCallContext context, + ApiFuture futureResponse) { + PageContext pageContext = + PageContext.create(callable, FETCH_MODEL_SERVERS_PAGE_STR_DESC, request, context); + return FetchModelServersPagedResponse.createAsync(pageContext, futureResponse); + } + }; + + private static final PagedListResponseFactory< + FetchModelServerVersionsRequest, + FetchModelServerVersionsResponse, + FetchModelServerVersionsPagedResponse> + FETCH_MODEL_SERVER_VERSIONS_PAGE_STR_FACT = + new PagedListResponseFactory< + FetchModelServerVersionsRequest, + FetchModelServerVersionsResponse, + FetchModelServerVersionsPagedResponse>() { + @Override + public ApiFuture getFuturePagedResponse( + UnaryCallable + callable, + FetchModelServerVersionsRequest request, + ApiCallContext context, + ApiFuture futureResponse) { + PageContext + pageContext = + PageContext.create( + callable, FETCH_MODEL_SERVER_VERSIONS_PAGE_STR_DESC, request, context); + return FetchModelServerVersionsPagedResponse.createAsync(pageContext, futureResponse); + } + }; + + private static final PagedListResponseFactory< + FetchProfilesRequest, FetchProfilesResponse, FetchProfilesPagedResponse> + FETCH_PROFILES_PAGE_STR_FACT = + new PagedListResponseFactory< + FetchProfilesRequest, FetchProfilesResponse, FetchProfilesPagedResponse>() { + @Override + public ApiFuture getFuturePagedResponse( + UnaryCallable callable, + FetchProfilesRequest request, + ApiCallContext context, + ApiFuture futureResponse) { + PageContext pageContext = + PageContext.create(callable, FETCH_PROFILES_PAGE_STR_DESC, request, context); + return FetchProfilesPagedResponse.createAsync(pageContext, futureResponse); + } + }; + + /** Returns the object with the settings used for calls to fetchModels. */ + public PagedCallSettings + fetchModelsSettings() { + return fetchModelsSettings; + } + + /** Returns the object with the settings used for calls to fetchModelServers. */ + public PagedCallSettings< + FetchModelServersRequest, FetchModelServersResponse, FetchModelServersPagedResponse> + fetchModelServersSettings() { + return fetchModelServersSettings; + } + + /** Returns the object with the settings used for calls to fetchModelServerVersions. */ + public PagedCallSettings< + FetchModelServerVersionsRequest, + FetchModelServerVersionsResponse, + FetchModelServerVersionsPagedResponse> + fetchModelServerVersionsSettings() { + return fetchModelServerVersionsSettings; + } + + /** Returns the object with the settings used for calls to fetchProfiles. */ + public PagedCallSettings + fetchProfilesSettings() { + return fetchProfilesSettings; + } + + /** Returns the object with the settings used for calls to generateOptimizedManifest. */ + public UnaryCallSettings + generateOptimizedManifestSettings() { + return generateOptimizedManifestSettings; + } + + /** Returns the object with the settings used for calls to fetchBenchmarkingData. */ + public UnaryCallSettings + fetchBenchmarkingDataSettings() { + return fetchBenchmarkingDataSettings; + } + + public GkeInferenceQuickstartStub createStub() throws IOException { + if (getTransportChannelProvider() + .getTransportName() + .equals(GrpcTransportChannel.getGrpcTransportName())) { + return GrpcGkeInferenceQuickstartStub.create(this); + } + if (getTransportChannelProvider() + .getTransportName() + .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) { + return HttpJsonGkeInferenceQuickstartStub.create(this); + } + throw new UnsupportedOperationException( + String.format( + "Transport not supported: %s", getTransportChannelProvider().getTransportName())); + } + + /** Returns the default service name. */ + @Override + public String getServiceName() { + return "gkerecommender"; + } + + /** Returns a builder for the default ExecutorProvider for this service. */ + public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() { + return InstantiatingExecutorProvider.newBuilder(); + } + + /** Returns the default service endpoint. */ + @ObsoleteApi("Use getEndpoint() instead") + public static String getDefaultEndpoint() { + return "gkerecommender.googleapis.com:443"; + } + + /** Returns the default mTLS service endpoint. */ + public static String getDefaultMtlsEndpoint() { + return "gkerecommender.mtls.googleapis.com:443"; + } + + /** Returns the default service scopes. */ + public static List getDefaultServiceScopes() { + return DEFAULT_SERVICE_SCOPES; + } + + /** Returns a builder for the default credentials for this service. */ + public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() { + return GoogleCredentialsProvider.newBuilder() + .setScopesToApply(DEFAULT_SERVICE_SCOPES) + .setUseJwtAccessWithScope(true); + } + + /** Returns a builder for the default gRPC ChannelProvider for this service. */ + public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() { + return InstantiatingGrpcChannelProvider.newBuilder() + .setMaxInboundMessageSize(Integer.MAX_VALUE); + } + + /** Returns a builder for the default REST ChannelProvider for this service. */ + @BetaApi + public static InstantiatingHttpJsonChannelProvider.Builder + defaultHttpJsonTransportProviderBuilder() { + return InstantiatingHttpJsonChannelProvider.newBuilder(); + } + + public static TransportChannelProvider defaultTransportChannelProvider() { + return defaultGrpcTransportProviderBuilder().build(); + } + + public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() { + return ApiClientHeaderProvider.newBuilder() + .setGeneratedLibToken( + "gapic", GaxProperties.getLibraryVersion(GkeInferenceQuickstartStubSettings.class)) + .setTransportToken( + GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion()); + } + + public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() { + return ApiClientHeaderProvider.newBuilder() + .setGeneratedLibToken( + "gapic", GaxProperties.getLibraryVersion(GkeInferenceQuickstartStubSettings.class)) + .setTransportToken( + GaxHttpJsonProperties.getHttpJsonTokenName(), + GaxHttpJsonProperties.getHttpJsonVersion()); + } + + public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { + return GkeInferenceQuickstartStubSettings.defaultGrpcApiClientHeaderProviderBuilder(); + } + + /** Returns a new gRPC builder for this class. */ + public static Builder newBuilder() { + return Builder.createDefault(); + } + + /** Returns a new REST builder for this class. */ + public static Builder newHttpJsonBuilder() { + return Builder.createHttpJsonDefault(); + } + + /** Returns a new builder for this class. */ + public static Builder newBuilder(ClientContext clientContext) { + return new Builder(clientContext); + } + + /** Returns a builder containing all the values of this settings class. */ + public Builder toBuilder() { + return new Builder(this); + } + + protected GkeInferenceQuickstartStubSettings(Builder settingsBuilder) throws IOException { + super(settingsBuilder); + + fetchModelsSettings = settingsBuilder.fetchModelsSettings().build(); + fetchModelServersSettings = settingsBuilder.fetchModelServersSettings().build(); + fetchModelServerVersionsSettings = settingsBuilder.fetchModelServerVersionsSettings().build(); + fetchProfilesSettings = settingsBuilder.fetchProfilesSettings().build(); + generateOptimizedManifestSettings = settingsBuilder.generateOptimizedManifestSettings().build(); + fetchBenchmarkingDataSettings = settingsBuilder.fetchBenchmarkingDataSettings().build(); + } + + /** Builder for GkeInferenceQuickstartStubSettings. */ + public static class Builder + extends StubSettings.Builder { + private final ImmutableList> unaryMethodSettingsBuilders; + private final PagedCallSettings.Builder< + FetchModelsRequest, FetchModelsResponse, FetchModelsPagedResponse> + fetchModelsSettings; + private final PagedCallSettings.Builder< + FetchModelServersRequest, FetchModelServersResponse, FetchModelServersPagedResponse> + fetchModelServersSettings; + private final PagedCallSettings.Builder< + FetchModelServerVersionsRequest, + FetchModelServerVersionsResponse, + FetchModelServerVersionsPagedResponse> + fetchModelServerVersionsSettings; + private final PagedCallSettings.Builder< + FetchProfilesRequest, FetchProfilesResponse, FetchProfilesPagedResponse> + fetchProfilesSettings; + private final UnaryCallSettings.Builder< + GenerateOptimizedManifestRequest, GenerateOptimizedManifestResponse> + generateOptimizedManifestSettings; + private final UnaryCallSettings.Builder< + FetchBenchmarkingDataRequest, FetchBenchmarkingDataResponse> + fetchBenchmarkingDataSettings; + private static final ImmutableMap> + RETRYABLE_CODE_DEFINITIONS; + + static { + ImmutableMap.Builder> definitions = + ImmutableMap.builder(); + definitions.put( + "no_retry_0_codes", ImmutableSet.copyOf(Lists.newArrayList())); + RETRYABLE_CODE_DEFINITIONS = definitions.build(); + } + + private static final ImmutableMap RETRY_PARAM_DEFINITIONS; + + static { + ImmutableMap.Builder definitions = ImmutableMap.builder(); + RetrySettings settings = null; + settings = + RetrySettings.newBuilder() + .setInitialRpcTimeoutDuration(Duration.ofMillis(60000L)) + .setRpcTimeoutMultiplier(1.0) + .setMaxRpcTimeoutDuration(Duration.ofMillis(60000L)) + .setTotalTimeoutDuration(Duration.ofMillis(60000L)) + .build(); + definitions.put("no_retry_0_params", settings); + RETRY_PARAM_DEFINITIONS = definitions.build(); + } + + protected Builder() { + this(((ClientContext) null)); + } + + protected Builder(ClientContext clientContext) { + super(clientContext); + + fetchModelsSettings = PagedCallSettings.newBuilder(FETCH_MODELS_PAGE_STR_FACT); + fetchModelServersSettings = PagedCallSettings.newBuilder(FETCH_MODEL_SERVERS_PAGE_STR_FACT); + fetchModelServerVersionsSettings = + PagedCallSettings.newBuilder(FETCH_MODEL_SERVER_VERSIONS_PAGE_STR_FACT); + fetchProfilesSettings = PagedCallSettings.newBuilder(FETCH_PROFILES_PAGE_STR_FACT); + generateOptimizedManifestSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); + fetchBenchmarkingDataSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); + + unaryMethodSettingsBuilders = + ImmutableList.>of( + fetchModelsSettings, + fetchModelServersSettings, + fetchModelServerVersionsSettings, + fetchProfilesSettings, + generateOptimizedManifestSettings, + fetchBenchmarkingDataSettings); + initDefaults(this); + } + + protected Builder(GkeInferenceQuickstartStubSettings settings) { + super(settings); + + fetchModelsSettings = settings.fetchModelsSettings.toBuilder(); + fetchModelServersSettings = settings.fetchModelServersSettings.toBuilder(); + fetchModelServerVersionsSettings = settings.fetchModelServerVersionsSettings.toBuilder(); + fetchProfilesSettings = settings.fetchProfilesSettings.toBuilder(); + generateOptimizedManifestSettings = settings.generateOptimizedManifestSettings.toBuilder(); + fetchBenchmarkingDataSettings = settings.fetchBenchmarkingDataSettings.toBuilder(); + + unaryMethodSettingsBuilders = + ImmutableList.>of( + fetchModelsSettings, + fetchModelServersSettings, + fetchModelServerVersionsSettings, + fetchProfilesSettings, + generateOptimizedManifestSettings, + fetchBenchmarkingDataSettings); + } + + private static Builder createDefault() { + Builder builder = new Builder(((ClientContext) null)); + + builder.setTransportChannelProvider(defaultTransportChannelProvider()); + builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build()); + builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build()); + builder.setMtlsEndpoint(getDefaultMtlsEndpoint()); + builder.setSwitchToMtlsEndpointAllowed(true); + + return initDefaults(builder); + } + + private static Builder createHttpJsonDefault() { + Builder builder = new Builder(((ClientContext) null)); + + builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build()); + builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build()); + builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build()); + builder.setMtlsEndpoint(getDefaultMtlsEndpoint()); + builder.setSwitchToMtlsEndpointAllowed(true); + + return initDefaults(builder); + } + + private static Builder initDefaults(Builder builder) { + builder + .fetchModelsSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_0_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_0_params")); + + builder + .fetchModelServersSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_0_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_0_params")); + + builder + .fetchModelServerVersionsSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_0_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_0_params")); + + builder + .fetchProfilesSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_0_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_0_params")); + + builder + .generateOptimizedManifestSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_0_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_0_params")); + + builder + .fetchBenchmarkingDataSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_0_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_0_params")); + + return builder; + } + + /** + * Applies the given settings updater function to all of the unary API methods in this service. + * + *

Note: This method does not support applying settings to streaming methods. + */ + public Builder applyToAllUnaryMethods( + ApiFunction, Void> settingsUpdater) { + super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater); + return this; + } + + public ImmutableList> unaryMethodSettingsBuilders() { + return unaryMethodSettingsBuilders; + } + + /** Returns the builder for the settings used for calls to fetchModels. */ + public PagedCallSettings.Builder< + FetchModelsRequest, FetchModelsResponse, FetchModelsPagedResponse> + fetchModelsSettings() { + return fetchModelsSettings; + } + + /** Returns the builder for the settings used for calls to fetchModelServers. */ + public PagedCallSettings.Builder< + FetchModelServersRequest, FetchModelServersResponse, FetchModelServersPagedResponse> + fetchModelServersSettings() { + return fetchModelServersSettings; + } + + /** Returns the builder for the settings used for calls to fetchModelServerVersions. */ + public PagedCallSettings.Builder< + FetchModelServerVersionsRequest, + FetchModelServerVersionsResponse, + FetchModelServerVersionsPagedResponse> + fetchModelServerVersionsSettings() { + return fetchModelServerVersionsSettings; + } + + /** Returns the builder for the settings used for calls to fetchProfiles. */ + public PagedCallSettings.Builder< + FetchProfilesRequest, FetchProfilesResponse, FetchProfilesPagedResponse> + fetchProfilesSettings() { + return fetchProfilesSettings; + } + + /** Returns the builder for the settings used for calls to generateOptimizedManifest. */ + public UnaryCallSettings.Builder< + GenerateOptimizedManifestRequest, GenerateOptimizedManifestResponse> + generateOptimizedManifestSettings() { + return generateOptimizedManifestSettings; + } + + /** Returns the builder for the settings used for calls to fetchBenchmarkingData. */ + public UnaryCallSettings.Builder + fetchBenchmarkingDataSettings() { + return fetchBenchmarkingDataSettings; + } + + @Override + public GkeInferenceQuickstartStubSettings build() throws IOException { + return new GkeInferenceQuickstartStubSettings(this); + } + } +} diff --git a/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/stub/GrpcGkeInferenceQuickstartCallableFactory.java b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/stub/GrpcGkeInferenceQuickstartCallableFactory.java new file mode 100644 index 000000000000..d62db739ad7e --- /dev/null +++ b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/stub/GrpcGkeInferenceQuickstartCallableFactory.java @@ -0,0 +1,113 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.stub; + +import com.google.api.gax.grpc.GrpcCallSettings; +import com.google.api.gax.grpc.GrpcCallableFactory; +import com.google.api.gax.grpc.GrpcStubCallableFactory; +import com.google.api.gax.rpc.BatchingCallSettings; +import com.google.api.gax.rpc.BidiStreamingCallable; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.ClientStreamingCallable; +import com.google.api.gax.rpc.OperationCallSettings; +import com.google.api.gax.rpc.OperationCallable; +import com.google.api.gax.rpc.PagedCallSettings; +import com.google.api.gax.rpc.ServerStreamingCallSettings; +import com.google.api.gax.rpc.ServerStreamingCallable; +import com.google.api.gax.rpc.StreamingCallSettings; +import com.google.api.gax.rpc.UnaryCallSettings; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.longrunning.Operation; +import com.google.longrunning.stub.OperationsStub; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * gRPC callable factory implementation for the GkeInferenceQuickstart service API. + * + *

This class is for advanced usage. + */ +@Generated("by gapic-generator-java") +public class GrpcGkeInferenceQuickstartCallableFactory implements GrpcStubCallableFactory { + + @Override + public UnaryCallable createUnaryCallable( + GrpcCallSettings grpcCallSettings, + UnaryCallSettings callSettings, + ClientContext clientContext) { + return GrpcCallableFactory.createUnaryCallable(grpcCallSettings, callSettings, clientContext); + } + + @Override + public + UnaryCallable createPagedCallable( + GrpcCallSettings grpcCallSettings, + PagedCallSettings callSettings, + ClientContext clientContext) { + return GrpcCallableFactory.createPagedCallable(grpcCallSettings, callSettings, clientContext); + } + + @Override + public UnaryCallable createBatchingCallable( + GrpcCallSettings grpcCallSettings, + BatchingCallSettings callSettings, + ClientContext clientContext) { + return GrpcCallableFactory.createBatchingCallable( + grpcCallSettings, callSettings, clientContext); + } + + @Override + public + OperationCallable createOperationCallable( + GrpcCallSettings grpcCallSettings, + OperationCallSettings callSettings, + ClientContext clientContext, + OperationsStub operationsStub) { + return GrpcCallableFactory.createOperationCallable( + grpcCallSettings, callSettings, clientContext, operationsStub); + } + + @Override + public + BidiStreamingCallable createBidiStreamingCallable( + GrpcCallSettings grpcCallSettings, + StreamingCallSettings callSettings, + ClientContext clientContext) { + return GrpcCallableFactory.createBidiStreamingCallable( + grpcCallSettings, callSettings, clientContext); + } + + @Override + public + ServerStreamingCallable createServerStreamingCallable( + GrpcCallSettings grpcCallSettings, + ServerStreamingCallSettings callSettings, + ClientContext clientContext) { + return GrpcCallableFactory.createServerStreamingCallable( + grpcCallSettings, callSettings, clientContext); + } + + @Override + public + ClientStreamingCallable createClientStreamingCallable( + GrpcCallSettings grpcCallSettings, + StreamingCallSettings callSettings, + ClientContext clientContext) { + return GrpcCallableFactory.createClientStreamingCallable( + grpcCallSettings, callSettings, clientContext); + } +} diff --git a/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/stub/GrpcGkeInferenceQuickstartStub.java b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/stub/GrpcGkeInferenceQuickstartStub.java new file mode 100644 index 000000000000..8b4ce4330172 --- /dev/null +++ b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/stub/GrpcGkeInferenceQuickstartStub.java @@ -0,0 +1,377 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.stub; + +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelServerVersionsPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelServersPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelsPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchProfilesPagedResponse; + +import com.google.api.gax.core.BackgroundResource; +import com.google.api.gax.core.BackgroundResourceAggregation; +import com.google.api.gax.grpc.GrpcCallSettings; +import com.google.api.gax.grpc.GrpcStubCallableFactory; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest; +import com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse; +import com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest; +import com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse; +import com.google.cloud.gkerecommender.v1.FetchModelServersRequest; +import com.google.cloud.gkerecommender.v1.FetchModelServersResponse; +import com.google.cloud.gkerecommender.v1.FetchModelsRequest; +import com.google.cloud.gkerecommender.v1.FetchModelsResponse; +import com.google.cloud.gkerecommender.v1.FetchProfilesRequest; +import com.google.cloud.gkerecommender.v1.FetchProfilesResponse; +import com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest; +import com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse; +import com.google.longrunning.stub.GrpcOperationsStub; +import io.grpc.MethodDescriptor; +import io.grpc.protobuf.ProtoUtils; +import java.io.IOException; +import java.util.concurrent.TimeUnit; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * gRPC stub implementation for the GkeInferenceQuickstart service API. + * + *

This class is for advanced usage and reflects the underlying API directly. + */ +@Generated("by gapic-generator-java") +public class GrpcGkeInferenceQuickstartStub extends GkeInferenceQuickstartStub { + private static final MethodDescriptor + fetchModelsMethodDescriptor = + MethodDescriptor.newBuilder() + .setType(MethodDescriptor.MethodType.UNARY) + .setFullMethodName( + "google.cloud.gkerecommender.v1.GkeInferenceQuickstart/FetchModels") + .setRequestMarshaller(ProtoUtils.marshaller(FetchModelsRequest.getDefaultInstance())) + .setResponseMarshaller( + ProtoUtils.marshaller(FetchModelsResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) + .build(); + + private static final MethodDescriptor + fetchModelServersMethodDescriptor = + MethodDescriptor.newBuilder() + .setType(MethodDescriptor.MethodType.UNARY) + .setFullMethodName( + "google.cloud.gkerecommender.v1.GkeInferenceQuickstart/FetchModelServers") + .setRequestMarshaller( + ProtoUtils.marshaller(FetchModelServersRequest.getDefaultInstance())) + .setResponseMarshaller( + ProtoUtils.marshaller(FetchModelServersResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) + .build(); + + private static final MethodDescriptor< + FetchModelServerVersionsRequest, FetchModelServerVersionsResponse> + fetchModelServerVersionsMethodDescriptor = + MethodDescriptor + .newBuilder() + .setType(MethodDescriptor.MethodType.UNARY) + .setFullMethodName( + "google.cloud.gkerecommender.v1.GkeInferenceQuickstart/FetchModelServerVersions") + .setRequestMarshaller( + ProtoUtils.marshaller(FetchModelServerVersionsRequest.getDefaultInstance())) + .setResponseMarshaller( + ProtoUtils.marshaller(FetchModelServerVersionsResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) + .build(); + + private static final MethodDescriptor + fetchProfilesMethodDescriptor = + MethodDescriptor.newBuilder() + .setType(MethodDescriptor.MethodType.UNARY) + .setFullMethodName( + "google.cloud.gkerecommender.v1.GkeInferenceQuickstart/FetchProfiles") + .setRequestMarshaller( + ProtoUtils.marshaller(FetchProfilesRequest.getDefaultInstance())) + .setResponseMarshaller( + ProtoUtils.marshaller(FetchProfilesResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) + .build(); + + private static final MethodDescriptor< + GenerateOptimizedManifestRequest, GenerateOptimizedManifestResponse> + generateOptimizedManifestMethodDescriptor = + MethodDescriptor + .newBuilder() + .setType(MethodDescriptor.MethodType.UNARY) + .setFullMethodName( + "google.cloud.gkerecommender.v1.GkeInferenceQuickstart/GenerateOptimizedManifest") + .setRequestMarshaller( + ProtoUtils.marshaller(GenerateOptimizedManifestRequest.getDefaultInstance())) + .setResponseMarshaller( + ProtoUtils.marshaller(GenerateOptimizedManifestResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) + .build(); + + private static final MethodDescriptor + fetchBenchmarkingDataMethodDescriptor = + MethodDescriptor.newBuilder() + .setType(MethodDescriptor.MethodType.UNARY) + .setFullMethodName( + "google.cloud.gkerecommender.v1.GkeInferenceQuickstart/FetchBenchmarkingData") + .setRequestMarshaller( + ProtoUtils.marshaller(FetchBenchmarkingDataRequest.getDefaultInstance())) + .setResponseMarshaller( + ProtoUtils.marshaller(FetchBenchmarkingDataResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) + .build(); + + private final UnaryCallable fetchModelsCallable; + private final UnaryCallable + fetchModelsPagedCallable; + private final UnaryCallable + fetchModelServersCallable; + private final UnaryCallable + fetchModelServersPagedCallable; + private final UnaryCallable + fetchModelServerVersionsCallable; + private final UnaryCallable< + FetchModelServerVersionsRequest, FetchModelServerVersionsPagedResponse> + fetchModelServerVersionsPagedCallable; + private final UnaryCallable fetchProfilesCallable; + private final UnaryCallable + fetchProfilesPagedCallable; + private final UnaryCallable + generateOptimizedManifestCallable; + private final UnaryCallable + fetchBenchmarkingDataCallable; + + private final BackgroundResource backgroundResources; + private final GrpcOperationsStub operationsStub; + private final GrpcStubCallableFactory callableFactory; + + public static final GrpcGkeInferenceQuickstartStub create( + GkeInferenceQuickstartStubSettings settings) throws IOException { + return new GrpcGkeInferenceQuickstartStub(settings, ClientContext.create(settings)); + } + + public static final GrpcGkeInferenceQuickstartStub create(ClientContext clientContext) + throws IOException { + return new GrpcGkeInferenceQuickstartStub( + GkeInferenceQuickstartStubSettings.newBuilder().build(), clientContext); + } + + public static final GrpcGkeInferenceQuickstartStub create( + ClientContext clientContext, GrpcStubCallableFactory callableFactory) throws IOException { + return new GrpcGkeInferenceQuickstartStub( + GkeInferenceQuickstartStubSettings.newBuilder().build(), clientContext, callableFactory); + } + + /** + * Constructs an instance of GrpcGkeInferenceQuickstartStub, using the given settings. This is + * protected so that it is easy to make a subclass, but otherwise, the static factory methods + * should be preferred. + */ + protected GrpcGkeInferenceQuickstartStub( + GkeInferenceQuickstartStubSettings settings, ClientContext clientContext) throws IOException { + this(settings, clientContext, new GrpcGkeInferenceQuickstartCallableFactory()); + } + + /** + * Constructs an instance of GrpcGkeInferenceQuickstartStub, using the given settings. This is + * protected so that it is easy to make a subclass, but otherwise, the static factory methods + * should be preferred. + */ + protected GrpcGkeInferenceQuickstartStub( + GkeInferenceQuickstartStubSettings settings, + ClientContext clientContext, + GrpcStubCallableFactory callableFactory) + throws IOException { + this.callableFactory = callableFactory; + this.operationsStub = GrpcOperationsStub.create(clientContext, callableFactory); + + GrpcCallSettings fetchModelsTransportSettings = + GrpcCallSettings.newBuilder() + .setMethodDescriptor(fetchModelsMethodDescriptor) + .build(); + GrpcCallSettings + fetchModelServersTransportSettings = + GrpcCallSettings.newBuilder() + .setMethodDescriptor(fetchModelServersMethodDescriptor) + .build(); + GrpcCallSettings + fetchModelServerVersionsTransportSettings = + GrpcCallSettings + .newBuilder() + .setMethodDescriptor(fetchModelServerVersionsMethodDescriptor) + .build(); + GrpcCallSettings fetchProfilesTransportSettings = + GrpcCallSettings.newBuilder() + .setMethodDescriptor(fetchProfilesMethodDescriptor) + .build(); + GrpcCallSettings + generateOptimizedManifestTransportSettings = + GrpcCallSettings + .newBuilder() + .setMethodDescriptor(generateOptimizedManifestMethodDescriptor) + .build(); + GrpcCallSettings + fetchBenchmarkingDataTransportSettings = + GrpcCallSettings + .newBuilder() + .setMethodDescriptor(fetchBenchmarkingDataMethodDescriptor) + .build(); + + this.fetchModelsCallable = + callableFactory.createUnaryCallable( + fetchModelsTransportSettings, settings.fetchModelsSettings(), clientContext); + this.fetchModelsPagedCallable = + callableFactory.createPagedCallable( + fetchModelsTransportSettings, settings.fetchModelsSettings(), clientContext); + this.fetchModelServersCallable = + callableFactory.createUnaryCallable( + fetchModelServersTransportSettings, + settings.fetchModelServersSettings(), + clientContext); + this.fetchModelServersPagedCallable = + callableFactory.createPagedCallable( + fetchModelServersTransportSettings, + settings.fetchModelServersSettings(), + clientContext); + this.fetchModelServerVersionsCallable = + callableFactory.createUnaryCallable( + fetchModelServerVersionsTransportSettings, + settings.fetchModelServerVersionsSettings(), + clientContext); + this.fetchModelServerVersionsPagedCallable = + callableFactory.createPagedCallable( + fetchModelServerVersionsTransportSettings, + settings.fetchModelServerVersionsSettings(), + clientContext); + this.fetchProfilesCallable = + callableFactory.createUnaryCallable( + fetchProfilesTransportSettings, settings.fetchProfilesSettings(), clientContext); + this.fetchProfilesPagedCallable = + callableFactory.createPagedCallable( + fetchProfilesTransportSettings, settings.fetchProfilesSettings(), clientContext); + this.generateOptimizedManifestCallable = + callableFactory.createUnaryCallable( + generateOptimizedManifestTransportSettings, + settings.generateOptimizedManifestSettings(), + clientContext); + this.fetchBenchmarkingDataCallable = + callableFactory.createUnaryCallable( + fetchBenchmarkingDataTransportSettings, + settings.fetchBenchmarkingDataSettings(), + clientContext); + + this.backgroundResources = + new BackgroundResourceAggregation(clientContext.getBackgroundResources()); + } + + public GrpcOperationsStub getOperationsStub() { + return operationsStub; + } + + @Override + public UnaryCallable fetchModelsCallable() { + return fetchModelsCallable; + } + + @Override + public UnaryCallable fetchModelsPagedCallable() { + return fetchModelsPagedCallable; + } + + @Override + public UnaryCallable + fetchModelServersCallable() { + return fetchModelServersCallable; + } + + @Override + public UnaryCallable + fetchModelServersPagedCallable() { + return fetchModelServersPagedCallable; + } + + @Override + public UnaryCallable + fetchModelServerVersionsCallable() { + return fetchModelServerVersionsCallable; + } + + @Override + public UnaryCallable + fetchModelServerVersionsPagedCallable() { + return fetchModelServerVersionsPagedCallable; + } + + @Override + public UnaryCallable fetchProfilesCallable() { + return fetchProfilesCallable; + } + + @Override + public UnaryCallable + fetchProfilesPagedCallable() { + return fetchProfilesPagedCallable; + } + + @Override + public UnaryCallable + generateOptimizedManifestCallable() { + return generateOptimizedManifestCallable; + } + + @Override + public UnaryCallable + fetchBenchmarkingDataCallable() { + return fetchBenchmarkingDataCallable; + } + + @Override + public final void close() { + try { + backgroundResources.close(); + } catch (RuntimeException e) { + throw e; + } catch (Exception e) { + throw new IllegalStateException("Failed to close resource", e); + } + } + + @Override + public void shutdown() { + backgroundResources.shutdown(); + } + + @Override + public boolean isShutdown() { + return backgroundResources.isShutdown(); + } + + @Override + public boolean isTerminated() { + return backgroundResources.isTerminated(); + } + + @Override + public void shutdownNow() { + backgroundResources.shutdownNow(); + } + + @Override + public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { + return backgroundResources.awaitTermination(duration, unit); + } +} diff --git a/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/stub/HttpJsonGkeInferenceQuickstartCallableFactory.java b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/stub/HttpJsonGkeInferenceQuickstartCallableFactory.java new file mode 100644 index 000000000000..8072b9ef44a5 --- /dev/null +++ b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/stub/HttpJsonGkeInferenceQuickstartCallableFactory.java @@ -0,0 +1,101 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.stub; + +import com.google.api.gax.httpjson.HttpJsonCallSettings; +import com.google.api.gax.httpjson.HttpJsonCallableFactory; +import com.google.api.gax.httpjson.HttpJsonOperationSnapshotCallable; +import com.google.api.gax.httpjson.HttpJsonStubCallableFactory; +import com.google.api.gax.httpjson.longrunning.stub.OperationsStub; +import com.google.api.gax.rpc.BatchingCallSettings; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.OperationCallSettings; +import com.google.api.gax.rpc.OperationCallable; +import com.google.api.gax.rpc.PagedCallSettings; +import com.google.api.gax.rpc.ServerStreamingCallSettings; +import com.google.api.gax.rpc.ServerStreamingCallable; +import com.google.api.gax.rpc.UnaryCallSettings; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.longrunning.Operation; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * REST callable factory implementation for the GkeInferenceQuickstart service API. + * + *

This class is for advanced usage. + */ +@Generated("by gapic-generator-java") +public class HttpJsonGkeInferenceQuickstartCallableFactory + implements HttpJsonStubCallableFactory { + + @Override + public UnaryCallable createUnaryCallable( + HttpJsonCallSettings httpJsonCallSettings, + UnaryCallSettings callSettings, + ClientContext clientContext) { + return HttpJsonCallableFactory.createUnaryCallable( + httpJsonCallSettings, callSettings, clientContext); + } + + @Override + public + UnaryCallable createPagedCallable( + HttpJsonCallSettings httpJsonCallSettings, + PagedCallSettings callSettings, + ClientContext clientContext) { + return HttpJsonCallableFactory.createPagedCallable( + httpJsonCallSettings, callSettings, clientContext); + } + + @Override + public UnaryCallable createBatchingCallable( + HttpJsonCallSettings httpJsonCallSettings, + BatchingCallSettings callSettings, + ClientContext clientContext) { + return HttpJsonCallableFactory.createBatchingCallable( + httpJsonCallSettings, callSettings, clientContext); + } + + @Override + public + OperationCallable createOperationCallable( + HttpJsonCallSettings httpJsonCallSettings, + OperationCallSettings callSettings, + ClientContext clientContext, + OperationsStub operationsStub) { + UnaryCallable innerCallable = + HttpJsonCallableFactory.createBaseUnaryCallable( + httpJsonCallSettings, callSettings.getInitialCallSettings(), clientContext); + HttpJsonOperationSnapshotCallable initialCallable = + new HttpJsonOperationSnapshotCallable( + innerCallable, + httpJsonCallSettings.getMethodDescriptor().getOperationSnapshotFactory()); + return HttpJsonCallableFactory.createOperationCallable( + callSettings, clientContext, operationsStub.longRunningClient(), initialCallable); + } + + @Override + public + ServerStreamingCallable createServerStreamingCallable( + HttpJsonCallSettings httpJsonCallSettings, + ServerStreamingCallSettings callSettings, + ClientContext clientContext) { + return HttpJsonCallableFactory.createServerStreamingCallable( + httpJsonCallSettings, callSettings, clientContext); + } +} diff --git a/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/stub/HttpJsonGkeInferenceQuickstartStub.java b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/stub/HttpJsonGkeInferenceQuickstartStub.java new file mode 100644 index 000000000000..10053a85457e --- /dev/null +++ b/java-gkerecommender/google-cloud-gkerecommender/src/main/java/com/google/cloud/gkerecommender/v1/stub/HttpJsonGkeInferenceQuickstartStub.java @@ -0,0 +1,561 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.stub; + +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelServerVersionsPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelServersPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelsPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchProfilesPagedResponse; + +import com.google.api.core.InternalApi; +import com.google.api.gax.core.BackgroundResource; +import com.google.api.gax.core.BackgroundResourceAggregation; +import com.google.api.gax.httpjson.ApiMethodDescriptor; +import com.google.api.gax.httpjson.HttpJsonCallSettings; +import com.google.api.gax.httpjson.HttpJsonStubCallableFactory; +import com.google.api.gax.httpjson.ProtoMessageRequestFormatter; +import com.google.api.gax.httpjson.ProtoMessageResponseParser; +import com.google.api.gax.httpjson.ProtoRestSerializer; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest; +import com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse; +import com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest; +import com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse; +import com.google.cloud.gkerecommender.v1.FetchModelServersRequest; +import com.google.cloud.gkerecommender.v1.FetchModelServersResponse; +import com.google.cloud.gkerecommender.v1.FetchModelsRequest; +import com.google.cloud.gkerecommender.v1.FetchModelsResponse; +import com.google.cloud.gkerecommender.v1.FetchProfilesRequest; +import com.google.cloud.gkerecommender.v1.FetchProfilesResponse; +import com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest; +import com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse; +import com.google.protobuf.TypeRegistry; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * REST stub implementation for the GkeInferenceQuickstart service API. + * + *

This class is for advanced usage and reflects the underlying API directly. + */ +@Generated("by gapic-generator-java") +public class HttpJsonGkeInferenceQuickstartStub extends GkeInferenceQuickstartStub { + private static final TypeRegistry typeRegistry = TypeRegistry.newBuilder().build(); + + private static final ApiMethodDescriptor + fetchModelsMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName( + "google.cloud.gkerecommender.v1.GkeInferenceQuickstart/FetchModels") + .setHttpMethod("GET") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/models:fetch", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + if (request.hasPageSize()) { + serializer.putQueryParam(fields, "pageSize", request.getPageSize()); + } + if (request.hasPageToken()) { + serializer.putQueryParam(fields, "pageToken", request.getPageToken()); + } + serializer.putQueryParam(fields, "$alt", "json;enum-encoding=int"); + return fields; + }) + .setRequestBodyExtractor(request -> null) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(FetchModelsResponse.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private static final ApiMethodDescriptor + fetchModelServersMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName( + "google.cloud.gkerecommender.v1.GkeInferenceQuickstart/FetchModelServers") + .setHttpMethod("GET") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/modelServers:fetch", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putQueryParam(fields, "model", request.getModel()); + if (request.hasPageSize()) { + serializer.putQueryParam(fields, "pageSize", request.getPageSize()); + } + if (request.hasPageToken()) { + serializer.putQueryParam(fields, "pageToken", request.getPageToken()); + } + serializer.putQueryParam(fields, "$alt", "json;enum-encoding=int"); + return fields; + }) + .setRequestBodyExtractor(request -> null) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(FetchModelServersResponse.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private static final ApiMethodDescriptor< + FetchModelServerVersionsRequest, FetchModelServerVersionsResponse> + fetchModelServerVersionsMethodDescriptor = + ApiMethodDescriptor + .newBuilder() + .setFullMethodName( + "google.cloud.gkerecommender.v1.GkeInferenceQuickstart/FetchModelServerVersions") + .setHttpMethod("GET") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/modelServerVersions:fetch", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putQueryParam(fields, "model", request.getModel()); + serializer.putQueryParam( + fields, "modelServer", request.getModelServer()); + if (request.hasPageSize()) { + serializer.putQueryParam(fields, "pageSize", request.getPageSize()); + } + if (request.hasPageToken()) { + serializer.putQueryParam(fields, "pageToken", request.getPageToken()); + } + serializer.putQueryParam(fields, "$alt", "json;enum-encoding=int"); + return fields; + }) + .setRequestBodyExtractor(request -> null) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(FetchModelServerVersionsResponse.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private static final ApiMethodDescriptor + fetchProfilesMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName( + "google.cloud.gkerecommender.v1.GkeInferenceQuickstart/FetchProfiles") + .setHttpMethod("POST") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/profiles:fetch", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putQueryParam(fields, "$alt", "json;enum-encoding=int"); + return fields; + }) + .setRequestBodyExtractor( + request -> + ProtoRestSerializer.create() + .toBody("*", request.toBuilder().build(), true)) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(FetchProfilesResponse.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private static final ApiMethodDescriptor< + GenerateOptimizedManifestRequest, GenerateOptimizedManifestResponse> + generateOptimizedManifestMethodDescriptor = + ApiMethodDescriptor + .newBuilder() + .setFullMethodName( + "google.cloud.gkerecommender.v1.GkeInferenceQuickstart/GenerateOptimizedManifest") + .setHttpMethod("POST") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/optimizedManifest:generate", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putQueryParam(fields, "$alt", "json;enum-encoding=int"); + return fields; + }) + .setRequestBodyExtractor( + request -> + ProtoRestSerializer.create() + .toBody("*", request.toBuilder().build(), true)) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(GenerateOptimizedManifestResponse.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private static final ApiMethodDescriptor< + FetchBenchmarkingDataRequest, FetchBenchmarkingDataResponse> + fetchBenchmarkingDataMethodDescriptor = + ApiMethodDescriptor + .newBuilder() + .setFullMethodName( + "google.cloud.gkerecommender.v1.GkeInferenceQuickstart/FetchBenchmarkingData") + .setHttpMethod("POST") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/benchmarkingData:fetch", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putQueryParam(fields, "$alt", "json;enum-encoding=int"); + return fields; + }) + .setRequestBodyExtractor( + request -> + ProtoRestSerializer.create() + .toBody("*", request.toBuilder().build(), true)) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(FetchBenchmarkingDataResponse.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private final UnaryCallable fetchModelsCallable; + private final UnaryCallable + fetchModelsPagedCallable; + private final UnaryCallable + fetchModelServersCallable; + private final UnaryCallable + fetchModelServersPagedCallable; + private final UnaryCallable + fetchModelServerVersionsCallable; + private final UnaryCallable< + FetchModelServerVersionsRequest, FetchModelServerVersionsPagedResponse> + fetchModelServerVersionsPagedCallable; + private final UnaryCallable fetchProfilesCallable; + private final UnaryCallable + fetchProfilesPagedCallable; + private final UnaryCallable + generateOptimizedManifestCallable; + private final UnaryCallable + fetchBenchmarkingDataCallable; + + private final BackgroundResource backgroundResources; + private final HttpJsonStubCallableFactory callableFactory; + + public static final HttpJsonGkeInferenceQuickstartStub create( + GkeInferenceQuickstartStubSettings settings) throws IOException { + return new HttpJsonGkeInferenceQuickstartStub(settings, ClientContext.create(settings)); + } + + public static final HttpJsonGkeInferenceQuickstartStub create(ClientContext clientContext) + throws IOException { + return new HttpJsonGkeInferenceQuickstartStub( + GkeInferenceQuickstartStubSettings.newHttpJsonBuilder().build(), clientContext); + } + + public static final HttpJsonGkeInferenceQuickstartStub create( + ClientContext clientContext, HttpJsonStubCallableFactory callableFactory) throws IOException { + return new HttpJsonGkeInferenceQuickstartStub( + GkeInferenceQuickstartStubSettings.newHttpJsonBuilder().build(), + clientContext, + callableFactory); + } + + /** + * Constructs an instance of HttpJsonGkeInferenceQuickstartStub, using the given settings. This is + * protected so that it is easy to make a subclass, but otherwise, the static factory methods + * should be preferred. + */ + protected HttpJsonGkeInferenceQuickstartStub( + GkeInferenceQuickstartStubSettings settings, ClientContext clientContext) throws IOException { + this(settings, clientContext, new HttpJsonGkeInferenceQuickstartCallableFactory()); + } + + /** + * Constructs an instance of HttpJsonGkeInferenceQuickstartStub, using the given settings. This is + * protected so that it is easy to make a subclass, but otherwise, the static factory methods + * should be preferred. + */ + protected HttpJsonGkeInferenceQuickstartStub( + GkeInferenceQuickstartStubSettings settings, + ClientContext clientContext, + HttpJsonStubCallableFactory callableFactory) + throws IOException { + this.callableFactory = callableFactory; + + HttpJsonCallSettings fetchModelsTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(fetchModelsMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings + fetchModelServersTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(fetchModelServersMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings + fetchModelServerVersionsTransportSettings = + HttpJsonCallSettings + .newBuilder() + .setMethodDescriptor(fetchModelServerVersionsMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings + fetchProfilesTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(fetchProfilesMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings + generateOptimizedManifestTransportSettings = + HttpJsonCallSettings + .newBuilder() + .setMethodDescriptor(generateOptimizedManifestMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + HttpJsonCallSettings + fetchBenchmarkingDataTransportSettings = + HttpJsonCallSettings + .newBuilder() + .setMethodDescriptor(fetchBenchmarkingDataMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + + this.fetchModelsCallable = + callableFactory.createUnaryCallable( + fetchModelsTransportSettings, settings.fetchModelsSettings(), clientContext); + this.fetchModelsPagedCallable = + callableFactory.createPagedCallable( + fetchModelsTransportSettings, settings.fetchModelsSettings(), clientContext); + this.fetchModelServersCallable = + callableFactory.createUnaryCallable( + fetchModelServersTransportSettings, + settings.fetchModelServersSettings(), + clientContext); + this.fetchModelServersPagedCallable = + callableFactory.createPagedCallable( + fetchModelServersTransportSettings, + settings.fetchModelServersSettings(), + clientContext); + this.fetchModelServerVersionsCallable = + callableFactory.createUnaryCallable( + fetchModelServerVersionsTransportSettings, + settings.fetchModelServerVersionsSettings(), + clientContext); + this.fetchModelServerVersionsPagedCallable = + callableFactory.createPagedCallable( + fetchModelServerVersionsTransportSettings, + settings.fetchModelServerVersionsSettings(), + clientContext); + this.fetchProfilesCallable = + callableFactory.createUnaryCallable( + fetchProfilesTransportSettings, settings.fetchProfilesSettings(), clientContext); + this.fetchProfilesPagedCallable = + callableFactory.createPagedCallable( + fetchProfilesTransportSettings, settings.fetchProfilesSettings(), clientContext); + this.generateOptimizedManifestCallable = + callableFactory.createUnaryCallable( + generateOptimizedManifestTransportSettings, + settings.generateOptimizedManifestSettings(), + clientContext); + this.fetchBenchmarkingDataCallable = + callableFactory.createUnaryCallable( + fetchBenchmarkingDataTransportSettings, + settings.fetchBenchmarkingDataSettings(), + clientContext); + + this.backgroundResources = + new BackgroundResourceAggregation(clientContext.getBackgroundResources()); + } + + @InternalApi + public static List getMethodDescriptors() { + List methodDescriptors = new ArrayList<>(); + methodDescriptors.add(fetchModelsMethodDescriptor); + methodDescriptors.add(fetchModelServersMethodDescriptor); + methodDescriptors.add(fetchModelServerVersionsMethodDescriptor); + methodDescriptors.add(fetchProfilesMethodDescriptor); + methodDescriptors.add(generateOptimizedManifestMethodDescriptor); + methodDescriptors.add(fetchBenchmarkingDataMethodDescriptor); + return methodDescriptors; + } + + @Override + public UnaryCallable fetchModelsCallable() { + return fetchModelsCallable; + } + + @Override + public UnaryCallable fetchModelsPagedCallable() { + return fetchModelsPagedCallable; + } + + @Override + public UnaryCallable + fetchModelServersCallable() { + return fetchModelServersCallable; + } + + @Override + public UnaryCallable + fetchModelServersPagedCallable() { + return fetchModelServersPagedCallable; + } + + @Override + public UnaryCallable + fetchModelServerVersionsCallable() { + return fetchModelServerVersionsCallable; + } + + @Override + public UnaryCallable + fetchModelServerVersionsPagedCallable() { + return fetchModelServerVersionsPagedCallable; + } + + @Override + public UnaryCallable fetchProfilesCallable() { + return fetchProfilesCallable; + } + + @Override + public UnaryCallable + fetchProfilesPagedCallable() { + return fetchProfilesPagedCallable; + } + + @Override + public UnaryCallable + generateOptimizedManifestCallable() { + return generateOptimizedManifestCallable; + } + + @Override + public UnaryCallable + fetchBenchmarkingDataCallable() { + return fetchBenchmarkingDataCallable; + } + + @Override + public final void close() { + try { + backgroundResources.close(); + } catch (RuntimeException e) { + throw e; + } catch (Exception e) { + throw new IllegalStateException("Failed to close resource", e); + } + } + + @Override + public void shutdown() { + backgroundResources.shutdown(); + } + + @Override + public boolean isShutdown() { + return backgroundResources.isShutdown(); + } + + @Override + public boolean isTerminated() { + return backgroundResources.isTerminated(); + } + + @Override + public void shutdownNow() { + backgroundResources.shutdownNow(); + } + + @Override + public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { + return backgroundResources.awaitTermination(duration, unit); + } +} diff --git a/java-gkerecommender/google-cloud-gkerecommender/src/main/resources/META-INF/native-image/com.google.cloud.gkerecommender.v1/reflect-config.json b/java-gkerecommender/google-cloud-gkerecommender/src/main/resources/META-INF/native-image/com.google.cloud.gkerecommender.v1/reflect-config.json new file mode 100644 index 000000000000..164ca23c991c --- /dev/null +++ b/java-gkerecommender/google-cloud-gkerecommender/src/main/resources/META-INF/native-image/com.google.cloud.gkerecommender.v1/reflect-config.json @@ -0,0 +1,1595 @@ +[ + { + "name": "com.google.api.ClientLibraryDestination", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ClientLibraryOrganization", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ClientLibrarySettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ClientLibrarySettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CommonLanguageSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CommonLanguageSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CppSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CppSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CustomHttpPattern", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CustomHttpPattern$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.DotnetSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.DotnetSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.FieldBehavior", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.GoSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.GoSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Http", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Http$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.HttpRule", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.HttpRule$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.JavaSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.JavaSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.LaunchStage", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings$LongRunning", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings$LongRunning$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.NodeSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.NodeSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PhpSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PhpSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Publishing", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Publishing$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PythonSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PythonSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PythonSettings$ExperimentalFeatures", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PythonSettings$ExperimentalFeatures$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor$History", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor$Style", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceReference", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceReference$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.RubySettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.RubySettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.SelectiveGapicGeneration", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.SelectiveGapicGeneration$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.Amount", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.Amount$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.Cost", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.Cost$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchModelServersRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchModelServersRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchModelServersResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchModelServersResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchModelsRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchModelsRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchModelsResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchModelsResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchProfilesRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchProfilesRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchProfilesResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.FetchProfilesResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.KubernetesManifest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.KubernetesManifest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.MillisecondRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.MillisecondRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.ModelServerInfo", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.ModelServerInfo$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.PerformanceRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.PerformanceRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.PerformanceRequirements", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.PerformanceRequirements$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.PerformanceStats", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.PerformanceStats$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.Profile", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.Profile$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.ResourcesUsed", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.ResourcesUsed$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.StorageConfig", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.StorageConfig$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.TokensPerSecondRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.gkerecommender.v1.TokensPerSecondRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ExtensionRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ExtensionRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ReservedRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ReservedRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$Edition", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto$EnumReservedRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto$EnumReservedRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$Declaration", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$Declaration$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$VerificationState", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSet", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSet$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSet$EnumType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSet$FieldPresence", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSet$JsonFormat", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSet$MessageEncoding", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSet$RepeatedFieldEncoding", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSet$Utf8Validation", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSetDefaults", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSetDefaults$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSetDefaults$FeatureSetEditionDefault", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FeatureSetDefaults$FeatureSetEditionDefault$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Label", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Type", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$CType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$EditionDefault", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$EditionDefault$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$JSType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$OptionRetention", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$OptionTargetType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorSet", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorSet$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileOptions$OptimizeMode", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Annotation", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Annotation$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Annotation$Semantic", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MessageOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MessageOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodOptions$IdempotencyLevel", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo$Location", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo$Location$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption$NamePart", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption$NamePart$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Duration", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Duration$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + } +] \ No newline at end of file diff --git a/java-gkerecommender/google-cloud-gkerecommender/src/test/java/com/google/cloud/gkerecommender/v1/GkeInferenceQuickstartClientHttpJsonTest.java b/java-gkerecommender/google-cloud-gkerecommender/src/test/java/com/google/cloud/gkerecommender/v1/GkeInferenceQuickstartClientHttpJsonTest.java new file mode 100644 index 000000000000..5ded228ebe14 --- /dev/null +++ b/java-gkerecommender/google-cloud-gkerecommender/src/test/java/com/google/cloud/gkerecommender/v1/GkeInferenceQuickstartClientHttpJsonTest.java @@ -0,0 +1,440 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1; + +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelServerVersionsPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelServersPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelsPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchProfilesPagedResponse; + +import com.google.api.gax.core.NoCredentialsProvider; +import com.google.api.gax.httpjson.GaxHttpJsonProperties; +import com.google.api.gax.httpjson.testing.MockHttpService; +import com.google.api.gax.rpc.ApiClientHeaderProvider; +import com.google.api.gax.rpc.ApiException; +import com.google.api.gax.rpc.ApiExceptionFactory; +import com.google.api.gax.rpc.InvalidArgumentException; +import com.google.api.gax.rpc.StatusCode; +import com.google.api.gax.rpc.testing.FakeStatusCode; +import com.google.cloud.gkerecommender.v1.stub.HttpJsonGkeInferenceQuickstartStub; +import com.google.common.collect.Lists; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import javax.annotation.Generated; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +@Generated("by gapic-generator-java") +public class GkeInferenceQuickstartClientHttpJsonTest { + private static MockHttpService mockService; + private static GkeInferenceQuickstartClient client; + + @BeforeClass + public static void startStaticServer() throws IOException { + mockService = + new MockHttpService( + HttpJsonGkeInferenceQuickstartStub.getMethodDescriptors(), + GkeInferenceQuickstartSettings.getDefaultEndpoint()); + GkeInferenceQuickstartSettings settings = + GkeInferenceQuickstartSettings.newHttpJsonBuilder() + .setTransportChannelProvider( + GkeInferenceQuickstartSettings.defaultHttpJsonTransportProviderBuilder() + .setHttpTransport(mockService) + .build()) + .setCredentialsProvider(NoCredentialsProvider.create()) + .build(); + client = GkeInferenceQuickstartClient.create(settings); + } + + @AfterClass + public static void stopServer() { + client.close(); + } + + @Before + public void setUp() {} + + @After + public void tearDown() throws Exception { + mockService.reset(); + } + + @Test + public void fetchModelsTest() throws Exception { + String responsesElement = "responsesElement-318365110"; + FetchModelsResponse expectedResponse = + FetchModelsResponse.newBuilder() + .setNextPageToken("") + .addAllModels(Arrays.asList(responsesElement)) + .build(); + mockService.addResponse(expectedResponse); + + FetchModelsRequest request = + FetchModelsRequest.newBuilder() + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + + FetchModelsPagedResponse pagedListResponse = client.fetchModels(request); + + List resources = Lists.newArrayList(pagedListResponse.iterateAll()); + + Assert.assertEquals(1, resources.size()); + Assert.assertEquals(expectedResponse.getModelsList().get(0), resources.get(0)); + + List actualRequests = mockService.getRequestPaths(); + Assert.assertEquals(1, actualRequests.size()); + + String apiClientHeaderKey = + mockService + .getRequestHeaders() + .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) + .iterator() + .next(); + Assert.assertTrue( + GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() + .matcher(apiClientHeaderKey) + .matches()); + } + + @Test + public void fetchModelsExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + FetchModelsRequest request = + FetchModelsRequest.newBuilder() + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + client.fetchModels(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void fetchModelServersTest() throws Exception { + String responsesElement = "responsesElement-318365110"; + FetchModelServersResponse expectedResponse = + FetchModelServersResponse.newBuilder() + .setNextPageToken("") + .addAllModelServers(Arrays.asList(responsesElement)) + .build(); + mockService.addResponse(expectedResponse); + + FetchModelServersRequest request = + FetchModelServersRequest.newBuilder() + .setModel("model104069929") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + + FetchModelServersPagedResponse pagedListResponse = client.fetchModelServers(request); + + List resources = Lists.newArrayList(pagedListResponse.iterateAll()); + + Assert.assertEquals(1, resources.size()); + Assert.assertEquals(expectedResponse.getModelServersList().get(0), resources.get(0)); + + List actualRequests = mockService.getRequestPaths(); + Assert.assertEquals(1, actualRequests.size()); + + String apiClientHeaderKey = + mockService + .getRequestHeaders() + .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) + .iterator() + .next(); + Assert.assertTrue( + GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() + .matcher(apiClientHeaderKey) + .matches()); + } + + @Test + public void fetchModelServersExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + FetchModelServersRequest request = + FetchModelServersRequest.newBuilder() + .setModel("model104069929") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + client.fetchModelServers(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void fetchModelServerVersionsTest() throws Exception { + String responsesElement = "responsesElement-318365110"; + FetchModelServerVersionsResponse expectedResponse = + FetchModelServerVersionsResponse.newBuilder() + .setNextPageToken("") + .addAllModelServerVersions(Arrays.asList(responsesElement)) + .build(); + mockService.addResponse(expectedResponse); + + FetchModelServerVersionsRequest request = + FetchModelServerVersionsRequest.newBuilder() + .setModel("model104069929") + .setModelServer("modelServer475157452") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + + FetchModelServerVersionsPagedResponse pagedListResponse = + client.fetchModelServerVersions(request); + + List resources = Lists.newArrayList(pagedListResponse.iterateAll()); + + Assert.assertEquals(1, resources.size()); + Assert.assertEquals(expectedResponse.getModelServerVersionsList().get(0), resources.get(0)); + + List actualRequests = mockService.getRequestPaths(); + Assert.assertEquals(1, actualRequests.size()); + + String apiClientHeaderKey = + mockService + .getRequestHeaders() + .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) + .iterator() + .next(); + Assert.assertTrue( + GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() + .matcher(apiClientHeaderKey) + .matches()); + } + + @Test + public void fetchModelServerVersionsExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + FetchModelServerVersionsRequest request = + FetchModelServerVersionsRequest.newBuilder() + .setModel("model104069929") + .setModelServer("modelServer475157452") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + client.fetchModelServerVersions(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void fetchProfilesTest() throws Exception { + Profile responsesElement = Profile.newBuilder().build(); + FetchProfilesResponse expectedResponse = + FetchProfilesResponse.newBuilder() + .setNextPageToken("") + .addAllProfile(Arrays.asList(responsesElement)) + .build(); + mockService.addResponse(expectedResponse); + + FetchProfilesRequest request = + FetchProfilesRequest.newBuilder() + .setModel("model104069929") + .setModelServer("modelServer475157452") + .setModelServerVersion("modelServerVersion77054828") + .setPerformanceRequirements(PerformanceRequirements.newBuilder().build()) + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + + FetchProfilesPagedResponse pagedListResponse = client.fetchProfiles(request); + + List resources = Lists.newArrayList(pagedListResponse.iterateAll()); + + Assert.assertEquals(1, resources.size()); + Assert.assertEquals(expectedResponse.getProfileList().get(0), resources.get(0)); + + List actualRequests = mockService.getRequestPaths(); + Assert.assertEquals(1, actualRequests.size()); + + String apiClientHeaderKey = + mockService + .getRequestHeaders() + .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) + .iterator() + .next(); + Assert.assertTrue( + GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() + .matcher(apiClientHeaderKey) + .matches()); + } + + @Test + public void fetchProfilesExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + FetchProfilesRequest request = + FetchProfilesRequest.newBuilder() + .setModel("model104069929") + .setModelServer("modelServer475157452") + .setModelServerVersion("modelServerVersion77054828") + .setPerformanceRequirements(PerformanceRequirements.newBuilder().build()) + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + client.fetchProfiles(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void generateOptimizedManifestTest() throws Exception { + GenerateOptimizedManifestResponse expectedResponse = + GenerateOptimizedManifestResponse.newBuilder() + .addAllKubernetesManifests(new ArrayList()) + .addAllComments(new ArrayList()) + .setManifestVersion("manifestVersion1420559273") + .build(); + mockService.addResponse(expectedResponse); + + GenerateOptimizedManifestRequest request = + GenerateOptimizedManifestRequest.newBuilder() + .setModelServerInfo(ModelServerInfo.newBuilder().build()) + .setAcceleratorType("acceleratorType-82462651") + .setKubernetesNamespace("kubernetesNamespace-1862862667") + .setPerformanceRequirements(PerformanceRequirements.newBuilder().build()) + .setStorageConfig(StorageConfig.newBuilder().build()) + .build(); + + GenerateOptimizedManifestResponse actualResponse = client.generateOptimizedManifest(request); + Assert.assertEquals(expectedResponse, actualResponse); + + List actualRequests = mockService.getRequestPaths(); + Assert.assertEquals(1, actualRequests.size()); + + String apiClientHeaderKey = + mockService + .getRequestHeaders() + .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) + .iterator() + .next(); + Assert.assertTrue( + GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() + .matcher(apiClientHeaderKey) + .matches()); + } + + @Test + public void generateOptimizedManifestExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + GenerateOptimizedManifestRequest request = + GenerateOptimizedManifestRequest.newBuilder() + .setModelServerInfo(ModelServerInfo.newBuilder().build()) + .setAcceleratorType("acceleratorType-82462651") + .setKubernetesNamespace("kubernetesNamespace-1862862667") + .setPerformanceRequirements(PerformanceRequirements.newBuilder().build()) + .setStorageConfig(StorageConfig.newBuilder().build()) + .build(); + client.generateOptimizedManifest(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void fetchBenchmarkingDataTest() throws Exception { + FetchBenchmarkingDataResponse expectedResponse = + FetchBenchmarkingDataResponse.newBuilder().addAllProfile(new ArrayList()).build(); + mockService.addResponse(expectedResponse); + + FetchBenchmarkingDataRequest request = + FetchBenchmarkingDataRequest.newBuilder() + .setModelServerInfo(ModelServerInfo.newBuilder().build()) + .setInstanceType("instanceType-737655441") + .setPricingModel("pricingModel1050892035") + .build(); + + FetchBenchmarkingDataResponse actualResponse = client.fetchBenchmarkingData(request); + Assert.assertEquals(expectedResponse, actualResponse); + + List actualRequests = mockService.getRequestPaths(); + Assert.assertEquals(1, actualRequests.size()); + + String apiClientHeaderKey = + mockService + .getRequestHeaders() + .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) + .iterator() + .next(); + Assert.assertTrue( + GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() + .matcher(apiClientHeaderKey) + .matches()); + } + + @Test + public void fetchBenchmarkingDataExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + FetchBenchmarkingDataRequest request = + FetchBenchmarkingDataRequest.newBuilder() + .setModelServerInfo(ModelServerInfo.newBuilder().build()) + .setInstanceType("instanceType-737655441") + .setPricingModel("pricingModel1050892035") + .build(); + client.fetchBenchmarkingData(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } +} diff --git a/java-gkerecommender/google-cloud-gkerecommender/src/test/java/com/google/cloud/gkerecommender/v1/GkeInferenceQuickstartClientTest.java b/java-gkerecommender/google-cloud-gkerecommender/src/test/java/com/google/cloud/gkerecommender/v1/GkeInferenceQuickstartClientTest.java new file mode 100644 index 000000000000..0dabf5a04415 --- /dev/null +++ b/java-gkerecommender/google-cloud-gkerecommender/src/test/java/com/google/cloud/gkerecommender/v1/GkeInferenceQuickstartClientTest.java @@ -0,0 +1,430 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1; + +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelServerVersionsPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelServersPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchModelsPagedResponse; +import static com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient.FetchProfilesPagedResponse; + +import com.google.api.gax.core.NoCredentialsProvider; +import com.google.api.gax.grpc.GaxGrpcProperties; +import com.google.api.gax.grpc.testing.LocalChannelProvider; +import com.google.api.gax.grpc.testing.MockGrpcService; +import com.google.api.gax.grpc.testing.MockServiceHelper; +import com.google.api.gax.rpc.ApiClientHeaderProvider; +import com.google.api.gax.rpc.InvalidArgumentException; +import com.google.common.collect.Lists; +import com.google.protobuf.AbstractMessage; +import io.grpc.StatusRuntimeException; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import javax.annotation.Generated; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +@Generated("by gapic-generator-java") +public class GkeInferenceQuickstartClientTest { + private static MockGkeInferenceQuickstart mockGkeInferenceQuickstart; + private static MockServiceHelper mockServiceHelper; + private LocalChannelProvider channelProvider; + private GkeInferenceQuickstartClient client; + + @BeforeClass + public static void startStaticServer() { + mockGkeInferenceQuickstart = new MockGkeInferenceQuickstart(); + mockServiceHelper = + new MockServiceHelper( + UUID.randomUUID().toString(), + Arrays.asList(mockGkeInferenceQuickstart)); + mockServiceHelper.start(); + } + + @AfterClass + public static void stopServer() { + mockServiceHelper.stop(); + } + + @Before + public void setUp() throws IOException { + mockServiceHelper.reset(); + channelProvider = mockServiceHelper.createChannelProvider(); + GkeInferenceQuickstartSettings settings = + GkeInferenceQuickstartSettings.newBuilder() + .setTransportChannelProvider(channelProvider) + .setCredentialsProvider(NoCredentialsProvider.create()) + .build(); + client = GkeInferenceQuickstartClient.create(settings); + } + + @After + public void tearDown() throws Exception { + client.close(); + } + + @Test + public void fetchModelsTest() throws Exception { + String responsesElement = "responsesElement-318365110"; + FetchModelsResponse expectedResponse = + FetchModelsResponse.newBuilder() + .setNextPageToken("") + .addAllModels(Arrays.asList(responsesElement)) + .build(); + mockGkeInferenceQuickstart.addResponse(expectedResponse); + + FetchModelsRequest request = + FetchModelsRequest.newBuilder() + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + + FetchModelsPagedResponse pagedListResponse = client.fetchModels(request); + + List resources = Lists.newArrayList(pagedListResponse.iterateAll()); + + Assert.assertEquals(1, resources.size()); + Assert.assertEquals(expectedResponse.getModelsList().get(0), resources.get(0)); + + List actualRequests = mockGkeInferenceQuickstart.getRequests(); + Assert.assertEquals(1, actualRequests.size()); + FetchModelsRequest actualRequest = ((FetchModelsRequest) actualRequests.get(0)); + + Assert.assertEquals(request.getPageSize(), actualRequest.getPageSize()); + Assert.assertEquals(request.getPageToken(), actualRequest.getPageToken()); + Assert.assertTrue( + channelProvider.isHeaderSent( + ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), + GaxGrpcProperties.getDefaultApiClientHeaderPattern())); + } + + @Test + public void fetchModelsExceptionTest() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockGkeInferenceQuickstart.addException(exception); + + try { + FetchModelsRequest request = + FetchModelsRequest.newBuilder() + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + client.fetchModels(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void fetchModelServersTest() throws Exception { + String responsesElement = "responsesElement-318365110"; + FetchModelServersResponse expectedResponse = + FetchModelServersResponse.newBuilder() + .setNextPageToken("") + .addAllModelServers(Arrays.asList(responsesElement)) + .build(); + mockGkeInferenceQuickstart.addResponse(expectedResponse); + + FetchModelServersRequest request = + FetchModelServersRequest.newBuilder() + .setModel("model104069929") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + + FetchModelServersPagedResponse pagedListResponse = client.fetchModelServers(request); + + List resources = Lists.newArrayList(pagedListResponse.iterateAll()); + + Assert.assertEquals(1, resources.size()); + Assert.assertEquals(expectedResponse.getModelServersList().get(0), resources.get(0)); + + List actualRequests = mockGkeInferenceQuickstart.getRequests(); + Assert.assertEquals(1, actualRequests.size()); + FetchModelServersRequest actualRequest = ((FetchModelServersRequest) actualRequests.get(0)); + + Assert.assertEquals(request.getModel(), actualRequest.getModel()); + Assert.assertEquals(request.getPageSize(), actualRequest.getPageSize()); + Assert.assertEquals(request.getPageToken(), actualRequest.getPageToken()); + Assert.assertTrue( + channelProvider.isHeaderSent( + ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), + GaxGrpcProperties.getDefaultApiClientHeaderPattern())); + } + + @Test + public void fetchModelServersExceptionTest() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockGkeInferenceQuickstart.addException(exception); + + try { + FetchModelServersRequest request = + FetchModelServersRequest.newBuilder() + .setModel("model104069929") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + client.fetchModelServers(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void fetchModelServerVersionsTest() throws Exception { + String responsesElement = "responsesElement-318365110"; + FetchModelServerVersionsResponse expectedResponse = + FetchModelServerVersionsResponse.newBuilder() + .setNextPageToken("") + .addAllModelServerVersions(Arrays.asList(responsesElement)) + .build(); + mockGkeInferenceQuickstart.addResponse(expectedResponse); + + FetchModelServerVersionsRequest request = + FetchModelServerVersionsRequest.newBuilder() + .setModel("model104069929") + .setModelServer("modelServer475157452") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + + FetchModelServerVersionsPagedResponse pagedListResponse = + client.fetchModelServerVersions(request); + + List resources = Lists.newArrayList(pagedListResponse.iterateAll()); + + Assert.assertEquals(1, resources.size()); + Assert.assertEquals(expectedResponse.getModelServerVersionsList().get(0), resources.get(0)); + + List actualRequests = mockGkeInferenceQuickstart.getRequests(); + Assert.assertEquals(1, actualRequests.size()); + FetchModelServerVersionsRequest actualRequest = + ((FetchModelServerVersionsRequest) actualRequests.get(0)); + + Assert.assertEquals(request.getModel(), actualRequest.getModel()); + Assert.assertEquals(request.getModelServer(), actualRequest.getModelServer()); + Assert.assertEquals(request.getPageSize(), actualRequest.getPageSize()); + Assert.assertEquals(request.getPageToken(), actualRequest.getPageToken()); + Assert.assertTrue( + channelProvider.isHeaderSent( + ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), + GaxGrpcProperties.getDefaultApiClientHeaderPattern())); + } + + @Test + public void fetchModelServerVersionsExceptionTest() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockGkeInferenceQuickstart.addException(exception); + + try { + FetchModelServerVersionsRequest request = + FetchModelServerVersionsRequest.newBuilder() + .setModel("model104069929") + .setModelServer("modelServer475157452") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + client.fetchModelServerVersions(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void fetchProfilesTest() throws Exception { + Profile responsesElement = Profile.newBuilder().build(); + FetchProfilesResponse expectedResponse = + FetchProfilesResponse.newBuilder() + .setNextPageToken("") + .addAllProfile(Arrays.asList(responsesElement)) + .build(); + mockGkeInferenceQuickstart.addResponse(expectedResponse); + + FetchProfilesRequest request = + FetchProfilesRequest.newBuilder() + .setModel("model104069929") + .setModelServer("modelServer475157452") + .setModelServerVersion("modelServerVersion77054828") + .setPerformanceRequirements(PerformanceRequirements.newBuilder().build()) + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + + FetchProfilesPagedResponse pagedListResponse = client.fetchProfiles(request); + + List resources = Lists.newArrayList(pagedListResponse.iterateAll()); + + Assert.assertEquals(1, resources.size()); + Assert.assertEquals(expectedResponse.getProfileList().get(0), resources.get(0)); + + List actualRequests = mockGkeInferenceQuickstart.getRequests(); + Assert.assertEquals(1, actualRequests.size()); + FetchProfilesRequest actualRequest = ((FetchProfilesRequest) actualRequests.get(0)); + + Assert.assertEquals(request.getModel(), actualRequest.getModel()); + Assert.assertEquals(request.getModelServer(), actualRequest.getModelServer()); + Assert.assertEquals(request.getModelServerVersion(), actualRequest.getModelServerVersion()); + Assert.assertEquals( + request.getPerformanceRequirements(), actualRequest.getPerformanceRequirements()); + Assert.assertEquals(request.getPageSize(), actualRequest.getPageSize()); + Assert.assertEquals(request.getPageToken(), actualRequest.getPageToken()); + Assert.assertTrue( + channelProvider.isHeaderSent( + ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), + GaxGrpcProperties.getDefaultApiClientHeaderPattern())); + } + + @Test + public void fetchProfilesExceptionTest() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockGkeInferenceQuickstart.addException(exception); + + try { + FetchProfilesRequest request = + FetchProfilesRequest.newBuilder() + .setModel("model104069929") + .setModelServer("modelServer475157452") + .setModelServerVersion("modelServerVersion77054828") + .setPerformanceRequirements(PerformanceRequirements.newBuilder().build()) + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + client.fetchProfiles(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void generateOptimizedManifestTest() throws Exception { + GenerateOptimizedManifestResponse expectedResponse = + GenerateOptimizedManifestResponse.newBuilder() + .addAllKubernetesManifests(new ArrayList()) + .addAllComments(new ArrayList()) + .setManifestVersion("manifestVersion1420559273") + .build(); + mockGkeInferenceQuickstart.addResponse(expectedResponse); + + GenerateOptimizedManifestRequest request = + GenerateOptimizedManifestRequest.newBuilder() + .setModelServerInfo(ModelServerInfo.newBuilder().build()) + .setAcceleratorType("acceleratorType-82462651") + .setKubernetesNamespace("kubernetesNamespace-1862862667") + .setPerformanceRequirements(PerformanceRequirements.newBuilder().build()) + .setStorageConfig(StorageConfig.newBuilder().build()) + .build(); + + GenerateOptimizedManifestResponse actualResponse = client.generateOptimizedManifest(request); + Assert.assertEquals(expectedResponse, actualResponse); + + List actualRequests = mockGkeInferenceQuickstart.getRequests(); + Assert.assertEquals(1, actualRequests.size()); + GenerateOptimizedManifestRequest actualRequest = + ((GenerateOptimizedManifestRequest) actualRequests.get(0)); + + Assert.assertEquals(request.getModelServerInfo(), actualRequest.getModelServerInfo()); + Assert.assertEquals(request.getAcceleratorType(), actualRequest.getAcceleratorType()); + Assert.assertEquals(request.getKubernetesNamespace(), actualRequest.getKubernetesNamespace()); + Assert.assertEquals( + request.getPerformanceRequirements(), actualRequest.getPerformanceRequirements()); + Assert.assertEquals(request.getStorageConfig(), actualRequest.getStorageConfig()); + Assert.assertTrue( + channelProvider.isHeaderSent( + ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), + GaxGrpcProperties.getDefaultApiClientHeaderPattern())); + } + + @Test + public void generateOptimizedManifestExceptionTest() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockGkeInferenceQuickstart.addException(exception); + + try { + GenerateOptimizedManifestRequest request = + GenerateOptimizedManifestRequest.newBuilder() + .setModelServerInfo(ModelServerInfo.newBuilder().build()) + .setAcceleratorType("acceleratorType-82462651") + .setKubernetesNamespace("kubernetesNamespace-1862862667") + .setPerformanceRequirements(PerformanceRequirements.newBuilder().build()) + .setStorageConfig(StorageConfig.newBuilder().build()) + .build(); + client.generateOptimizedManifest(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void fetchBenchmarkingDataTest() throws Exception { + FetchBenchmarkingDataResponse expectedResponse = + FetchBenchmarkingDataResponse.newBuilder().addAllProfile(new ArrayList()).build(); + mockGkeInferenceQuickstart.addResponse(expectedResponse); + + FetchBenchmarkingDataRequest request = + FetchBenchmarkingDataRequest.newBuilder() + .setModelServerInfo(ModelServerInfo.newBuilder().build()) + .setInstanceType("instanceType-737655441") + .setPricingModel("pricingModel1050892035") + .build(); + + FetchBenchmarkingDataResponse actualResponse = client.fetchBenchmarkingData(request); + Assert.assertEquals(expectedResponse, actualResponse); + + List actualRequests = mockGkeInferenceQuickstart.getRequests(); + Assert.assertEquals(1, actualRequests.size()); + FetchBenchmarkingDataRequest actualRequest = + ((FetchBenchmarkingDataRequest) actualRequests.get(0)); + + Assert.assertEquals(request.getModelServerInfo(), actualRequest.getModelServerInfo()); + Assert.assertEquals(request.getInstanceType(), actualRequest.getInstanceType()); + Assert.assertEquals(request.getPricingModel(), actualRequest.getPricingModel()); + Assert.assertTrue( + channelProvider.isHeaderSent( + ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), + GaxGrpcProperties.getDefaultApiClientHeaderPattern())); + } + + @Test + public void fetchBenchmarkingDataExceptionTest() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockGkeInferenceQuickstart.addException(exception); + + try { + FetchBenchmarkingDataRequest request = + FetchBenchmarkingDataRequest.newBuilder() + .setModelServerInfo(ModelServerInfo.newBuilder().build()) + .setInstanceType("instanceType-737655441") + .setPricingModel("pricingModel1050892035") + .build(); + client.fetchBenchmarkingData(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } +} diff --git a/java-gkerecommender/google-cloud-gkerecommender/src/test/java/com/google/cloud/gkerecommender/v1/MockGkeInferenceQuickstart.java b/java-gkerecommender/google-cloud-gkerecommender/src/test/java/com/google/cloud/gkerecommender/v1/MockGkeInferenceQuickstart.java new file mode 100644 index 000000000000..ee9014031069 --- /dev/null +++ b/java-gkerecommender/google-cloud-gkerecommender/src/test/java/com/google/cloud/gkerecommender/v1/MockGkeInferenceQuickstart.java @@ -0,0 +1,59 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1; + +import com.google.api.core.BetaApi; +import com.google.api.gax.grpc.testing.MockGrpcService; +import com.google.protobuf.AbstractMessage; +import io.grpc.ServerServiceDefinition; +import java.util.List; +import javax.annotation.Generated; + +@BetaApi +@Generated("by gapic-generator-java") +public class MockGkeInferenceQuickstart implements MockGrpcService { + private final MockGkeInferenceQuickstartImpl serviceImpl; + + public MockGkeInferenceQuickstart() { + serviceImpl = new MockGkeInferenceQuickstartImpl(); + } + + @Override + public List getRequests() { + return serviceImpl.getRequests(); + } + + @Override + public void addResponse(AbstractMessage response) { + serviceImpl.addResponse(response); + } + + @Override + public void addException(Exception exception) { + serviceImpl.addException(exception); + } + + @Override + public ServerServiceDefinition getServiceDefinition() { + return serviceImpl.bindService(); + } + + @Override + public void reset() { + serviceImpl.reset(); + } +} diff --git a/java-gkerecommender/google-cloud-gkerecommender/src/test/java/com/google/cloud/gkerecommender/v1/MockGkeInferenceQuickstartImpl.java b/java-gkerecommender/google-cloud-gkerecommender/src/test/java/com/google/cloud/gkerecommender/v1/MockGkeInferenceQuickstartImpl.java new file mode 100644 index 000000000000..e31de989b8cd --- /dev/null +++ b/java-gkerecommender/google-cloud-gkerecommender/src/test/java/com/google/cloud/gkerecommender/v1/MockGkeInferenceQuickstartImpl.java @@ -0,0 +1,193 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1; + +import com.google.api.core.BetaApi; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartGrpc.GkeInferenceQuickstartImplBase; +import com.google.protobuf.AbstractMessage; +import io.grpc.stub.StreamObserver; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Queue; +import javax.annotation.Generated; + +@BetaApi +@Generated("by gapic-generator-java") +public class MockGkeInferenceQuickstartImpl extends GkeInferenceQuickstartImplBase { + private List requests; + private Queue responses; + + public MockGkeInferenceQuickstartImpl() { + requests = new ArrayList<>(); + responses = new LinkedList<>(); + } + + public List getRequests() { + return requests; + } + + public void addResponse(AbstractMessage response) { + responses.add(response); + } + + public void setResponses(List responses) { + this.responses = new LinkedList(responses); + } + + public void addException(Exception exception) { + responses.add(exception); + } + + public void reset() { + requests = new ArrayList<>(); + responses = new LinkedList<>(); + } + + @Override + public void fetchModels( + FetchModelsRequest request, StreamObserver responseObserver) { + Object response = responses.poll(); + if (response instanceof FetchModelsResponse) { + requests.add(request); + responseObserver.onNext(((FetchModelsResponse) response)); + responseObserver.onCompleted(); + } else if (response instanceof Exception) { + responseObserver.onError(((Exception) response)); + } else { + responseObserver.onError( + new IllegalArgumentException( + String.format( + "Unrecognized response type %s for method FetchModels, expected %s or %s", + response == null ? "null" : response.getClass().getName(), + FetchModelsResponse.class.getName(), + Exception.class.getName()))); + } + } + + @Override + public void fetchModelServers( + FetchModelServersRequest request, + StreamObserver responseObserver) { + Object response = responses.poll(); + if (response instanceof FetchModelServersResponse) { + requests.add(request); + responseObserver.onNext(((FetchModelServersResponse) response)); + responseObserver.onCompleted(); + } else if (response instanceof Exception) { + responseObserver.onError(((Exception) response)); + } else { + responseObserver.onError( + new IllegalArgumentException( + String.format( + "Unrecognized response type %s for method FetchModelServers, expected %s or %s", + response == null ? "null" : response.getClass().getName(), + FetchModelServersResponse.class.getName(), + Exception.class.getName()))); + } + } + + @Override + public void fetchModelServerVersions( + FetchModelServerVersionsRequest request, + StreamObserver responseObserver) { + Object response = responses.poll(); + if (response instanceof FetchModelServerVersionsResponse) { + requests.add(request); + responseObserver.onNext(((FetchModelServerVersionsResponse) response)); + responseObserver.onCompleted(); + } else if (response instanceof Exception) { + responseObserver.onError(((Exception) response)); + } else { + responseObserver.onError( + new IllegalArgumentException( + String.format( + "Unrecognized response type %s for method FetchModelServerVersions, expected %s" + + " or %s", + response == null ? "null" : response.getClass().getName(), + FetchModelServerVersionsResponse.class.getName(), + Exception.class.getName()))); + } + } + + @Override + public void fetchProfiles( + FetchProfilesRequest request, StreamObserver responseObserver) { + Object response = responses.poll(); + if (response instanceof FetchProfilesResponse) { + requests.add(request); + responseObserver.onNext(((FetchProfilesResponse) response)); + responseObserver.onCompleted(); + } else if (response instanceof Exception) { + responseObserver.onError(((Exception) response)); + } else { + responseObserver.onError( + new IllegalArgumentException( + String.format( + "Unrecognized response type %s for method FetchProfiles, expected %s or %s", + response == null ? "null" : response.getClass().getName(), + FetchProfilesResponse.class.getName(), + Exception.class.getName()))); + } + } + + @Override + public void generateOptimizedManifest( + GenerateOptimizedManifestRequest request, + StreamObserver responseObserver) { + Object response = responses.poll(); + if (response instanceof GenerateOptimizedManifestResponse) { + requests.add(request); + responseObserver.onNext(((GenerateOptimizedManifestResponse) response)); + responseObserver.onCompleted(); + } else if (response instanceof Exception) { + responseObserver.onError(((Exception) response)); + } else { + responseObserver.onError( + new IllegalArgumentException( + String.format( + "Unrecognized response type %s for method GenerateOptimizedManifest, expected %s" + + " or %s", + response == null ? "null" : response.getClass().getName(), + GenerateOptimizedManifestResponse.class.getName(), + Exception.class.getName()))); + } + } + + @Override + public void fetchBenchmarkingData( + FetchBenchmarkingDataRequest request, + StreamObserver responseObserver) { + Object response = responses.poll(); + if (response instanceof FetchBenchmarkingDataResponse) { + requests.add(request); + responseObserver.onNext(((FetchBenchmarkingDataResponse) response)); + responseObserver.onCompleted(); + } else if (response instanceof Exception) { + responseObserver.onError(((Exception) response)); + } else { + responseObserver.onError( + new IllegalArgumentException( + String.format( + "Unrecognized response type %s for method FetchBenchmarkingData, expected %s or" + + " %s", + response == null ? "null" : response.getClass().getName(), + FetchBenchmarkingDataResponse.class.getName(), + Exception.class.getName()))); + } + } +} diff --git a/java-gkerecommender/grpc-google-cloud-gkerecommender-v1/pom.xml b/java-gkerecommender/grpc-google-cloud-gkerecommender-v1/pom.xml new file mode 100644 index 000000000000..59dc0d714e36 --- /dev/null +++ b/java-gkerecommender/grpc-google-cloud-gkerecommender-v1/pom.xml @@ -0,0 +1,45 @@ + + 4.0.0 + com.google.api.grpc + grpc-google-cloud-gkerecommender-v1 + 0.0.1-SNAPSHOT + grpc-google-cloud-gkerecommender-v1 + GRPC library for google-cloud-gkerecommender + + com.google.cloud + google-cloud-gkerecommender-parent + 0.0.1-SNAPSHOT + + + + io.grpc + grpc-api + + + io.grpc + grpc-stub + + + io.grpc + grpc-protobuf + + + com.google.protobuf + protobuf-java + + + com.google.api.grpc + proto-google-common-protos + + + com.google.api.grpc + proto-google-cloud-gkerecommender-v1 + + + com.google.guava + guava + + + diff --git a/java-gkerecommender/grpc-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/GkeInferenceQuickstartGrpc.java b/java-gkerecommender/grpc-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/GkeInferenceQuickstartGrpc.java new file mode 100644 index 000000000000..3ad3efec3392 --- /dev/null +++ b/java-gkerecommender/grpc-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/GkeInferenceQuickstartGrpc.java @@ -0,0 +1,1276 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.gkerecommender.v1; + +import static io.grpc.MethodDescriptor.generateFullMethodName; + +/** + * + * + *
+ * GKE Inference Quickstart (GIQ) service provides profiles with performance
+ * metrics for popular models and model servers across multiple accelerators.
+ * These profiles help generate optimized best practices for running inference
+ * on GKE.
+ * 
+ */ +@io.grpc.stub.annotations.GrpcGenerated +public final class GkeInferenceQuickstartGrpc { + + private GkeInferenceQuickstartGrpc() {} + + public static final java.lang.String SERVICE_NAME = + "google.cloud.gkerecommender.v1.GkeInferenceQuickstart"; + + // Static method descriptors that strictly reflect the proto. + private static volatile io.grpc.MethodDescriptor< + com.google.cloud.gkerecommender.v1.FetchModelsRequest, + com.google.cloud.gkerecommender.v1.FetchModelsResponse> + getFetchModelsMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "FetchModels", + requestType = com.google.cloud.gkerecommender.v1.FetchModelsRequest.class, + responseType = com.google.cloud.gkerecommender.v1.FetchModelsResponse.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor< + com.google.cloud.gkerecommender.v1.FetchModelsRequest, + com.google.cloud.gkerecommender.v1.FetchModelsResponse> + getFetchModelsMethod() { + io.grpc.MethodDescriptor< + com.google.cloud.gkerecommender.v1.FetchModelsRequest, + com.google.cloud.gkerecommender.v1.FetchModelsResponse> + getFetchModelsMethod; + if ((getFetchModelsMethod = GkeInferenceQuickstartGrpc.getFetchModelsMethod) == null) { + synchronized (GkeInferenceQuickstartGrpc.class) { + if ((getFetchModelsMethod = GkeInferenceQuickstartGrpc.getFetchModelsMethod) == null) { + GkeInferenceQuickstartGrpc.getFetchModelsMethod = + getFetchModelsMethod = + io.grpc.MethodDescriptor + . + newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "FetchModels")) + .setSampledToLocalTracing(true) + .setRequestMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.gkerecommender.v1.FetchModelsRequest + .getDefaultInstance())) + .setResponseMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.gkerecommender.v1.FetchModelsResponse + .getDefaultInstance())) + .setSchemaDescriptor( + new GkeInferenceQuickstartMethodDescriptorSupplier("FetchModels")) + .build(); + } + } + } + return getFetchModelsMethod; + } + + private static volatile io.grpc.MethodDescriptor< + com.google.cloud.gkerecommender.v1.FetchModelServersRequest, + com.google.cloud.gkerecommender.v1.FetchModelServersResponse> + getFetchModelServersMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "FetchModelServers", + requestType = com.google.cloud.gkerecommender.v1.FetchModelServersRequest.class, + responseType = com.google.cloud.gkerecommender.v1.FetchModelServersResponse.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor< + com.google.cloud.gkerecommender.v1.FetchModelServersRequest, + com.google.cloud.gkerecommender.v1.FetchModelServersResponse> + getFetchModelServersMethod() { + io.grpc.MethodDescriptor< + com.google.cloud.gkerecommender.v1.FetchModelServersRequest, + com.google.cloud.gkerecommender.v1.FetchModelServersResponse> + getFetchModelServersMethod; + if ((getFetchModelServersMethod = GkeInferenceQuickstartGrpc.getFetchModelServersMethod) + == null) { + synchronized (GkeInferenceQuickstartGrpc.class) { + if ((getFetchModelServersMethod = GkeInferenceQuickstartGrpc.getFetchModelServersMethod) + == null) { + GkeInferenceQuickstartGrpc.getFetchModelServersMethod = + getFetchModelServersMethod = + io.grpc.MethodDescriptor + . + newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "FetchModelServers")) + .setSampledToLocalTracing(true) + .setRequestMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.gkerecommender.v1.FetchModelServersRequest + .getDefaultInstance())) + .setResponseMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.gkerecommender.v1.FetchModelServersResponse + .getDefaultInstance())) + .setSchemaDescriptor( + new GkeInferenceQuickstartMethodDescriptorSupplier("FetchModelServers")) + .build(); + } + } + } + return getFetchModelServersMethod; + } + + private static volatile io.grpc.MethodDescriptor< + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest, + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse> + getFetchModelServerVersionsMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "FetchModelServerVersions", + requestType = com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest.class, + responseType = com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor< + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest, + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse> + getFetchModelServerVersionsMethod() { + io.grpc.MethodDescriptor< + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest, + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse> + getFetchModelServerVersionsMethod; + if ((getFetchModelServerVersionsMethod = + GkeInferenceQuickstartGrpc.getFetchModelServerVersionsMethod) + == null) { + synchronized (GkeInferenceQuickstartGrpc.class) { + if ((getFetchModelServerVersionsMethod = + GkeInferenceQuickstartGrpc.getFetchModelServerVersionsMethod) + == null) { + GkeInferenceQuickstartGrpc.getFetchModelServerVersionsMethod = + getFetchModelServerVersionsMethod = + io.grpc.MethodDescriptor + . + newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName( + generateFullMethodName(SERVICE_NAME, "FetchModelServerVersions")) + .setSampledToLocalTracing(true) + .setRequestMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest + .getDefaultInstance())) + .setResponseMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse + .getDefaultInstance())) + .setSchemaDescriptor( + new GkeInferenceQuickstartMethodDescriptorSupplier( + "FetchModelServerVersions")) + .build(); + } + } + } + return getFetchModelServerVersionsMethod; + } + + private static volatile io.grpc.MethodDescriptor< + com.google.cloud.gkerecommender.v1.FetchProfilesRequest, + com.google.cloud.gkerecommender.v1.FetchProfilesResponse> + getFetchProfilesMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "FetchProfiles", + requestType = com.google.cloud.gkerecommender.v1.FetchProfilesRequest.class, + responseType = com.google.cloud.gkerecommender.v1.FetchProfilesResponse.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor< + com.google.cloud.gkerecommender.v1.FetchProfilesRequest, + com.google.cloud.gkerecommender.v1.FetchProfilesResponse> + getFetchProfilesMethod() { + io.grpc.MethodDescriptor< + com.google.cloud.gkerecommender.v1.FetchProfilesRequest, + com.google.cloud.gkerecommender.v1.FetchProfilesResponse> + getFetchProfilesMethod; + if ((getFetchProfilesMethod = GkeInferenceQuickstartGrpc.getFetchProfilesMethod) == null) { + synchronized (GkeInferenceQuickstartGrpc.class) { + if ((getFetchProfilesMethod = GkeInferenceQuickstartGrpc.getFetchProfilesMethod) == null) { + GkeInferenceQuickstartGrpc.getFetchProfilesMethod = + getFetchProfilesMethod = + io.grpc.MethodDescriptor + . + newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "FetchProfiles")) + .setSampledToLocalTracing(true) + .setRequestMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.gkerecommender.v1.FetchProfilesRequest + .getDefaultInstance())) + .setResponseMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.gkerecommender.v1.FetchProfilesResponse + .getDefaultInstance())) + .setSchemaDescriptor( + new GkeInferenceQuickstartMethodDescriptorSupplier("FetchProfiles")) + .build(); + } + } + } + return getFetchProfilesMethod; + } + + private static volatile io.grpc.MethodDescriptor< + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest, + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse> + getGenerateOptimizedManifestMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "GenerateOptimizedManifest", + requestType = com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest.class, + responseType = com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor< + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest, + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse> + getGenerateOptimizedManifestMethod() { + io.grpc.MethodDescriptor< + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest, + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse> + getGenerateOptimizedManifestMethod; + if ((getGenerateOptimizedManifestMethod = + GkeInferenceQuickstartGrpc.getGenerateOptimizedManifestMethod) + == null) { + synchronized (GkeInferenceQuickstartGrpc.class) { + if ((getGenerateOptimizedManifestMethod = + GkeInferenceQuickstartGrpc.getGenerateOptimizedManifestMethod) + == null) { + GkeInferenceQuickstartGrpc.getGenerateOptimizedManifestMethod = + getGenerateOptimizedManifestMethod = + io.grpc.MethodDescriptor + . + newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName( + generateFullMethodName(SERVICE_NAME, "GenerateOptimizedManifest")) + .setSampledToLocalTracing(true) + .setRequestMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest + .getDefaultInstance())) + .setResponseMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse + .getDefaultInstance())) + .setSchemaDescriptor( + new GkeInferenceQuickstartMethodDescriptorSupplier( + "GenerateOptimizedManifest")) + .build(); + } + } + } + return getGenerateOptimizedManifestMethod; + } + + private static volatile io.grpc.MethodDescriptor< + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest, + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse> + getFetchBenchmarkingDataMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "FetchBenchmarkingData", + requestType = com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest.class, + responseType = com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor< + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest, + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse> + getFetchBenchmarkingDataMethod() { + io.grpc.MethodDescriptor< + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest, + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse> + getFetchBenchmarkingDataMethod; + if ((getFetchBenchmarkingDataMethod = GkeInferenceQuickstartGrpc.getFetchBenchmarkingDataMethod) + == null) { + synchronized (GkeInferenceQuickstartGrpc.class) { + if ((getFetchBenchmarkingDataMethod = + GkeInferenceQuickstartGrpc.getFetchBenchmarkingDataMethod) + == null) { + GkeInferenceQuickstartGrpc.getFetchBenchmarkingDataMethod = + getFetchBenchmarkingDataMethod = + io.grpc.MethodDescriptor + . + newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName( + generateFullMethodName(SERVICE_NAME, "FetchBenchmarkingData")) + .setSampledToLocalTracing(true) + .setRequestMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest + .getDefaultInstance())) + .setResponseMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse + .getDefaultInstance())) + .setSchemaDescriptor( + new GkeInferenceQuickstartMethodDescriptorSupplier( + "FetchBenchmarkingData")) + .build(); + } + } + } + return getFetchBenchmarkingDataMethod; + } + + /** Creates a new async stub that supports all call types for the service */ + public static GkeInferenceQuickstartStub newStub(io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public GkeInferenceQuickstartStub newStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new GkeInferenceQuickstartStub(channel, callOptions); + } + }; + return GkeInferenceQuickstartStub.newStub(factory, channel); + } + + /** Creates a new blocking-style stub that supports all types of calls on the service */ + public static GkeInferenceQuickstartBlockingV2Stub newBlockingV2Stub(io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public GkeInferenceQuickstartBlockingV2Stub newStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new GkeInferenceQuickstartBlockingV2Stub(channel, callOptions); + } + }; + return GkeInferenceQuickstartBlockingV2Stub.newStub(factory, channel); + } + + /** + * Creates a new blocking-style stub that supports unary and streaming output calls on the service + */ + public static GkeInferenceQuickstartBlockingStub newBlockingStub(io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public GkeInferenceQuickstartBlockingStub newStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new GkeInferenceQuickstartBlockingStub(channel, callOptions); + } + }; + return GkeInferenceQuickstartBlockingStub.newStub(factory, channel); + } + + /** Creates a new ListenableFuture-style stub that supports unary calls on the service */ + public static GkeInferenceQuickstartFutureStub newFutureStub(io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public GkeInferenceQuickstartFutureStub newStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new GkeInferenceQuickstartFutureStub(channel, callOptions); + } + }; + return GkeInferenceQuickstartFutureStub.newStub(factory, channel); + } + + /** + * + * + *
+   * GKE Inference Quickstart (GIQ) service provides profiles with performance
+   * metrics for popular models and model servers across multiple accelerators.
+   * These profiles help generate optimized best practices for running inference
+   * on GKE.
+   * 
+ */ + public interface AsyncService { + + /** + * + * + *
+     * Fetches available models. Open-source models follow the Huggingface Hub
+     * `owner/model_name` format.
+     * 
+ */ + default void fetchModels( + com.google.cloud.gkerecommender.v1.FetchModelsRequest request, + io.grpc.stub.StreamObserver + responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( + getFetchModelsMethod(), responseObserver); + } + + /** + * + * + *
+     * Fetches available model servers. Open-source model servers use simplified,
+     * lowercase names (e.g., `vllm`).
+     * 
+ */ + default void fetchModelServers( + com.google.cloud.gkerecommender.v1.FetchModelServersRequest request, + io.grpc.stub.StreamObserver + responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( + getFetchModelServersMethod(), responseObserver); + } + + /** + * + * + *
+     * Fetches available model server versions. Open-source servers use their own
+     * versioning schemas (e.g., `vllm` uses semver like `v1.0.0`).
+     * Some model servers have different versioning schemas depending on the
+     * accelerator. For example, `vllm` uses semver on GPUs, but returns nightly
+     * build tags on TPUs. All available versions will be returned when different
+     * schemas are present.
+     * 
+ */ + default void fetchModelServerVersions( + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest request, + io.grpc.stub.StreamObserver< + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse> + responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( + getFetchModelServerVersionsMethod(), responseObserver); + } + + /** + * + * + *
+     * Fetches available profiles. A profile contains performance metrics and
+     * cost information for a specific model server setup. Profiles can be
+     * filtered by parameters. If no filters are provided, all profiles are
+     * returned.
+     * Profiles display a single value per performance metric based on the
+     * provided performance requirements. If no requirements are given, the
+     * metrics represent the inflection point. See [Run best practice inference
+     * with GKE Inference Quickstart
+     * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart#how)
+     * for details.
+     * 
+ */ + default void fetchProfiles( + com.google.cloud.gkerecommender.v1.FetchProfilesRequest request, + io.grpc.stub.StreamObserver + responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( + getFetchProfilesMethod(), responseObserver); + } + + /** + * + * + *
+     * Generates an optimized deployment manifest for a given model and model
+     * server, based on the specified accelerator, performance targets, and
+     * configurations. See [Run best practice inference with GKE Inference
+     * Quickstart
+     * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart)
+     * for deployment details.
+     * 
+ */ + default void generateOptimizedManifest( + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest request, + io.grpc.stub.StreamObserver< + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse> + responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( + getGenerateOptimizedManifestMethod(), responseObserver); + } + + /** + * + * + *
+     * Fetches all of the benchmarking data available for a profile. Benchmarking
+     * data returns all of the performance metrics available for a given model
+     * server setup on a given instance type.
+     * 
+ */ + default void fetchBenchmarkingData( + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest request, + io.grpc.stub.StreamObserver< + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse> + responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( + getFetchBenchmarkingDataMethod(), responseObserver); + } + } + + /** + * Base class for the server implementation of the service GkeInferenceQuickstart. + * + *
+   * GKE Inference Quickstart (GIQ) service provides profiles with performance
+   * metrics for popular models and model servers across multiple accelerators.
+   * These profiles help generate optimized best practices for running inference
+   * on GKE.
+   * 
+ */ + public abstract static class GkeInferenceQuickstartImplBase + implements io.grpc.BindableService, AsyncService { + + @java.lang.Override + public final io.grpc.ServerServiceDefinition bindService() { + return GkeInferenceQuickstartGrpc.bindService(this); + } + } + + /** + * A stub to allow clients to do asynchronous rpc calls to service GkeInferenceQuickstart. + * + *
+   * GKE Inference Quickstart (GIQ) service provides profiles with performance
+   * metrics for popular models and model servers across multiple accelerators.
+   * These profiles help generate optimized best practices for running inference
+   * on GKE.
+   * 
+ */ + public static final class GkeInferenceQuickstartStub + extends io.grpc.stub.AbstractAsyncStub { + private GkeInferenceQuickstartStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected GkeInferenceQuickstartStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new GkeInferenceQuickstartStub(channel, callOptions); + } + + /** + * + * + *
+     * Fetches available models. Open-source models follow the Huggingface Hub
+     * `owner/model_name` format.
+     * 
+ */ + public void fetchModels( + com.google.cloud.gkerecommender.v1.FetchModelsRequest request, + io.grpc.stub.StreamObserver + responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getFetchModelsMethod(), getCallOptions()), + request, + responseObserver); + } + + /** + * + * + *
+     * Fetches available model servers. Open-source model servers use simplified,
+     * lowercase names (e.g., `vllm`).
+     * 
+ */ + public void fetchModelServers( + com.google.cloud.gkerecommender.v1.FetchModelServersRequest request, + io.grpc.stub.StreamObserver + responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getFetchModelServersMethod(), getCallOptions()), + request, + responseObserver); + } + + /** + * + * + *
+     * Fetches available model server versions. Open-source servers use their own
+     * versioning schemas (e.g., `vllm` uses semver like `v1.0.0`).
+     * Some model servers have different versioning schemas depending on the
+     * accelerator. For example, `vllm` uses semver on GPUs, but returns nightly
+     * build tags on TPUs. All available versions will be returned when different
+     * schemas are present.
+     * 
+ */ + public void fetchModelServerVersions( + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest request, + io.grpc.stub.StreamObserver< + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse> + responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getFetchModelServerVersionsMethod(), getCallOptions()), + request, + responseObserver); + } + + /** + * + * + *
+     * Fetches available profiles. A profile contains performance metrics and
+     * cost information for a specific model server setup. Profiles can be
+     * filtered by parameters. If no filters are provided, all profiles are
+     * returned.
+     * Profiles display a single value per performance metric based on the
+     * provided performance requirements. If no requirements are given, the
+     * metrics represent the inflection point. See [Run best practice inference
+     * with GKE Inference Quickstart
+     * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart#how)
+     * for details.
+     * 
+ */ + public void fetchProfiles( + com.google.cloud.gkerecommender.v1.FetchProfilesRequest request, + io.grpc.stub.StreamObserver + responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getFetchProfilesMethod(), getCallOptions()), + request, + responseObserver); + } + + /** + * + * + *
+     * Generates an optimized deployment manifest for a given model and model
+     * server, based on the specified accelerator, performance targets, and
+     * configurations. See [Run best practice inference with GKE Inference
+     * Quickstart
+     * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart)
+     * for deployment details.
+     * 
+ */ + public void generateOptimizedManifest( + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest request, + io.grpc.stub.StreamObserver< + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse> + responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getGenerateOptimizedManifestMethod(), getCallOptions()), + request, + responseObserver); + } + + /** + * + * + *
+     * Fetches all of the benchmarking data available for a profile. Benchmarking
+     * data returns all of the performance metrics available for a given model
+     * server setup on a given instance type.
+     * 
+ */ + public void fetchBenchmarkingData( + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest request, + io.grpc.stub.StreamObserver< + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse> + responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getFetchBenchmarkingDataMethod(), getCallOptions()), + request, + responseObserver); + } + } + + /** + * A stub to allow clients to do synchronous rpc calls to service GkeInferenceQuickstart. + * + *
+   * GKE Inference Quickstart (GIQ) service provides profiles with performance
+   * metrics for popular models and model servers across multiple accelerators.
+   * These profiles help generate optimized best practices for running inference
+   * on GKE.
+   * 
+ */ + public static final class GkeInferenceQuickstartBlockingV2Stub + extends io.grpc.stub.AbstractBlockingStub { + private GkeInferenceQuickstartBlockingV2Stub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected GkeInferenceQuickstartBlockingV2Stub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new GkeInferenceQuickstartBlockingV2Stub(channel, callOptions); + } + + /** + * + * + *
+     * Fetches available models. Open-source models follow the Huggingface Hub
+     * `owner/model_name` format.
+     * 
+ */ + public com.google.cloud.gkerecommender.v1.FetchModelsResponse fetchModels( + com.google.cloud.gkerecommender.v1.FetchModelsRequest request) + throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getFetchModelsMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Fetches available model servers. Open-source model servers use simplified,
+     * lowercase names (e.g., `vllm`).
+     * 
+ */ + public com.google.cloud.gkerecommender.v1.FetchModelServersResponse fetchModelServers( + com.google.cloud.gkerecommender.v1.FetchModelServersRequest request) + throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getFetchModelServersMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Fetches available model server versions. Open-source servers use their own
+     * versioning schemas (e.g., `vllm` uses semver like `v1.0.0`).
+     * Some model servers have different versioning schemas depending on the
+     * accelerator. For example, `vllm` uses semver on GPUs, but returns nightly
+     * build tags on TPUs. All available versions will be returned when different
+     * schemas are present.
+     * 
+ */ + public com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse + fetchModelServerVersions( + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest request) + throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getFetchModelServerVersionsMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Fetches available profiles. A profile contains performance metrics and
+     * cost information for a specific model server setup. Profiles can be
+     * filtered by parameters. If no filters are provided, all profiles are
+     * returned.
+     * Profiles display a single value per performance metric based on the
+     * provided performance requirements. If no requirements are given, the
+     * metrics represent the inflection point. See [Run best practice inference
+     * with GKE Inference Quickstart
+     * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart#how)
+     * for details.
+     * 
+ */ + public com.google.cloud.gkerecommender.v1.FetchProfilesResponse fetchProfiles( + com.google.cloud.gkerecommender.v1.FetchProfilesRequest request) + throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getFetchProfilesMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Generates an optimized deployment manifest for a given model and model
+     * server, based on the specified accelerator, performance targets, and
+     * configurations. See [Run best practice inference with GKE Inference
+     * Quickstart
+     * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart)
+     * for deployment details.
+     * 
+ */ + public com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse + generateOptimizedManifest( + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest request) + throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getGenerateOptimizedManifestMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Fetches all of the benchmarking data available for a profile. Benchmarking
+     * data returns all of the performance metrics available for a given model
+     * server setup on a given instance type.
+     * 
+ */ + public com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse fetchBenchmarkingData( + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest request) + throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getFetchBenchmarkingDataMethod(), getCallOptions(), request); + } + } + + /** + * A stub to allow clients to do limited synchronous rpc calls to service GkeInferenceQuickstart. + * + *
+   * GKE Inference Quickstart (GIQ) service provides profiles with performance
+   * metrics for popular models and model servers across multiple accelerators.
+   * These profiles help generate optimized best practices for running inference
+   * on GKE.
+   * 
+ */ + public static final class GkeInferenceQuickstartBlockingStub + extends io.grpc.stub.AbstractBlockingStub { + private GkeInferenceQuickstartBlockingStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected GkeInferenceQuickstartBlockingStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new GkeInferenceQuickstartBlockingStub(channel, callOptions); + } + + /** + * + * + *
+     * Fetches available models. Open-source models follow the Huggingface Hub
+     * `owner/model_name` format.
+     * 
+ */ + public com.google.cloud.gkerecommender.v1.FetchModelsResponse fetchModels( + com.google.cloud.gkerecommender.v1.FetchModelsRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getFetchModelsMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Fetches available model servers. Open-source model servers use simplified,
+     * lowercase names (e.g., `vllm`).
+     * 
+ */ + public com.google.cloud.gkerecommender.v1.FetchModelServersResponse fetchModelServers( + com.google.cloud.gkerecommender.v1.FetchModelServersRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getFetchModelServersMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Fetches available model server versions. Open-source servers use their own
+     * versioning schemas (e.g., `vllm` uses semver like `v1.0.0`).
+     * Some model servers have different versioning schemas depending on the
+     * accelerator. For example, `vllm` uses semver on GPUs, but returns nightly
+     * build tags on TPUs. All available versions will be returned when different
+     * schemas are present.
+     * 
+ */ + public com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse + fetchModelServerVersions( + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getFetchModelServerVersionsMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Fetches available profiles. A profile contains performance metrics and
+     * cost information for a specific model server setup. Profiles can be
+     * filtered by parameters. If no filters are provided, all profiles are
+     * returned.
+     * Profiles display a single value per performance metric based on the
+     * provided performance requirements. If no requirements are given, the
+     * metrics represent the inflection point. See [Run best practice inference
+     * with GKE Inference Quickstart
+     * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart#how)
+     * for details.
+     * 
+ */ + public com.google.cloud.gkerecommender.v1.FetchProfilesResponse fetchProfiles( + com.google.cloud.gkerecommender.v1.FetchProfilesRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getFetchProfilesMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Generates an optimized deployment manifest for a given model and model
+     * server, based on the specified accelerator, performance targets, and
+     * configurations. See [Run best practice inference with GKE Inference
+     * Quickstart
+     * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart)
+     * for deployment details.
+     * 
+ */ + public com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse + generateOptimizedManifest( + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getGenerateOptimizedManifestMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Fetches all of the benchmarking data available for a profile. Benchmarking
+     * data returns all of the performance metrics available for a given model
+     * server setup on a given instance type.
+     * 
+ */ + public com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse fetchBenchmarkingData( + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getFetchBenchmarkingDataMethod(), getCallOptions(), request); + } + } + + /** + * A stub to allow clients to do ListenableFuture-style rpc calls to service + * GkeInferenceQuickstart. + * + *
+   * GKE Inference Quickstart (GIQ) service provides profiles with performance
+   * metrics for popular models and model servers across multiple accelerators.
+   * These profiles help generate optimized best practices for running inference
+   * on GKE.
+   * 
+ */ + public static final class GkeInferenceQuickstartFutureStub + extends io.grpc.stub.AbstractFutureStub { + private GkeInferenceQuickstartFutureStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected GkeInferenceQuickstartFutureStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new GkeInferenceQuickstartFutureStub(channel, callOptions); + } + + /** + * + * + *
+     * Fetches available models. Open-source models follow the Huggingface Hub
+     * `owner/model_name` format.
+     * 
+ */ + public com.google.common.util.concurrent.ListenableFuture< + com.google.cloud.gkerecommender.v1.FetchModelsResponse> + fetchModels(com.google.cloud.gkerecommender.v1.FetchModelsRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getFetchModelsMethod(), getCallOptions()), request); + } + + /** + * + * + *
+     * Fetches available model servers. Open-source model servers use simplified,
+     * lowercase names (e.g., `vllm`).
+     * 
+ */ + public com.google.common.util.concurrent.ListenableFuture< + com.google.cloud.gkerecommender.v1.FetchModelServersResponse> + fetchModelServers(com.google.cloud.gkerecommender.v1.FetchModelServersRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getFetchModelServersMethod(), getCallOptions()), request); + } + + /** + * + * + *
+     * Fetches available model server versions. Open-source servers use their own
+     * versioning schemas (e.g., `vllm` uses semver like `v1.0.0`).
+     * Some model servers have different versioning schemas depending on the
+     * accelerator. For example, `vllm` uses semver on GPUs, but returns nightly
+     * build tags on TPUs. All available versions will be returned when different
+     * schemas are present.
+     * 
+ */ + public com.google.common.util.concurrent.ListenableFuture< + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse> + fetchModelServerVersions( + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getFetchModelServerVersionsMethod(), getCallOptions()), request); + } + + /** + * + * + *
+     * Fetches available profiles. A profile contains performance metrics and
+     * cost information for a specific model server setup. Profiles can be
+     * filtered by parameters. If no filters are provided, all profiles are
+     * returned.
+     * Profiles display a single value per performance metric based on the
+     * provided performance requirements. If no requirements are given, the
+     * metrics represent the inflection point. See [Run best practice inference
+     * with GKE Inference Quickstart
+     * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart#how)
+     * for details.
+     * 
+ */ + public com.google.common.util.concurrent.ListenableFuture< + com.google.cloud.gkerecommender.v1.FetchProfilesResponse> + fetchProfiles(com.google.cloud.gkerecommender.v1.FetchProfilesRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getFetchProfilesMethod(), getCallOptions()), request); + } + + /** + * + * + *
+     * Generates an optimized deployment manifest for a given model and model
+     * server, based on the specified accelerator, performance targets, and
+     * configurations. See [Run best practice inference with GKE Inference
+     * Quickstart
+     * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart)
+     * for deployment details.
+     * 
+ */ + public com.google.common.util.concurrent.ListenableFuture< + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse> + generateOptimizedManifest( + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getGenerateOptimizedManifestMethod(), getCallOptions()), request); + } + + /** + * + * + *
+     * Fetches all of the benchmarking data available for a profile. Benchmarking
+     * data returns all of the performance metrics available for a given model
+     * server setup on a given instance type.
+     * 
+ */ + public com.google.common.util.concurrent.ListenableFuture< + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse> + fetchBenchmarkingData( + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getFetchBenchmarkingDataMethod(), getCallOptions()), request); + } + } + + private static final int METHODID_FETCH_MODELS = 0; + private static final int METHODID_FETCH_MODEL_SERVERS = 1; + private static final int METHODID_FETCH_MODEL_SERVER_VERSIONS = 2; + private static final int METHODID_FETCH_PROFILES = 3; + private static final int METHODID_GENERATE_OPTIMIZED_MANIFEST = 4; + private static final int METHODID_FETCH_BENCHMARKING_DATA = 5; + + private static final class MethodHandlers + implements io.grpc.stub.ServerCalls.UnaryMethod, + io.grpc.stub.ServerCalls.ServerStreamingMethod, + io.grpc.stub.ServerCalls.ClientStreamingMethod, + io.grpc.stub.ServerCalls.BidiStreamingMethod { + private final AsyncService serviceImpl; + private final int methodId; + + MethodHandlers(AsyncService serviceImpl, int methodId) { + this.serviceImpl = serviceImpl; + this.methodId = methodId; + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public void invoke(Req request, io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + case METHODID_FETCH_MODELS: + serviceImpl.fetchModels( + (com.google.cloud.gkerecommender.v1.FetchModelsRequest) request, + (io.grpc.stub.StreamObserver) + responseObserver); + break; + case METHODID_FETCH_MODEL_SERVERS: + serviceImpl.fetchModelServers( + (com.google.cloud.gkerecommender.v1.FetchModelServersRequest) request, + (io.grpc.stub.StreamObserver< + com.google.cloud.gkerecommender.v1.FetchModelServersResponse>) + responseObserver); + break; + case METHODID_FETCH_MODEL_SERVER_VERSIONS: + serviceImpl.fetchModelServerVersions( + (com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest) request, + (io.grpc.stub.StreamObserver< + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse>) + responseObserver); + break; + case METHODID_FETCH_PROFILES: + serviceImpl.fetchProfiles( + (com.google.cloud.gkerecommender.v1.FetchProfilesRequest) request, + (io.grpc.stub.StreamObserver< + com.google.cloud.gkerecommender.v1.FetchProfilesResponse>) + responseObserver); + break; + case METHODID_GENERATE_OPTIMIZED_MANIFEST: + serviceImpl.generateOptimizedManifest( + (com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest) request, + (io.grpc.stub.StreamObserver< + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse>) + responseObserver); + break; + case METHODID_FETCH_BENCHMARKING_DATA: + serviceImpl.fetchBenchmarkingData( + (com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest) request, + (io.grpc.stub.StreamObserver< + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse>) + responseObserver); + break; + default: + throw new AssertionError(); + } + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public io.grpc.stub.StreamObserver invoke( + io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + default: + throw new AssertionError(); + } + } + } + + public static final io.grpc.ServerServiceDefinition bindService(AsyncService service) { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + getFetchModelsMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + com.google.cloud.gkerecommender.v1.FetchModelsRequest, + com.google.cloud.gkerecommender.v1.FetchModelsResponse>( + service, METHODID_FETCH_MODELS))) + .addMethod( + getFetchModelServersMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + com.google.cloud.gkerecommender.v1.FetchModelServersRequest, + com.google.cloud.gkerecommender.v1.FetchModelServersResponse>( + service, METHODID_FETCH_MODEL_SERVERS))) + .addMethod( + getFetchModelServerVersionsMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest, + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse>( + service, METHODID_FETCH_MODEL_SERVER_VERSIONS))) + .addMethod( + getFetchProfilesMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + com.google.cloud.gkerecommender.v1.FetchProfilesRequest, + com.google.cloud.gkerecommender.v1.FetchProfilesResponse>( + service, METHODID_FETCH_PROFILES))) + .addMethod( + getGenerateOptimizedManifestMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest, + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse>( + service, METHODID_GENERATE_OPTIMIZED_MANIFEST))) + .addMethod( + getFetchBenchmarkingDataMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest, + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse>( + service, METHODID_FETCH_BENCHMARKING_DATA))) + .build(); + } + + private abstract static class GkeInferenceQuickstartBaseDescriptorSupplier + implements io.grpc.protobuf.ProtoFileDescriptorSupplier, + io.grpc.protobuf.ProtoServiceDescriptorSupplier { + GkeInferenceQuickstartBaseDescriptorSupplier() {} + + @java.lang.Override + public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto.getDescriptor(); + } + + @java.lang.Override + public com.google.protobuf.Descriptors.ServiceDescriptor getServiceDescriptor() { + return getFileDescriptor().findServiceByName("GkeInferenceQuickstart"); + } + } + + private static final class GkeInferenceQuickstartFileDescriptorSupplier + extends GkeInferenceQuickstartBaseDescriptorSupplier { + GkeInferenceQuickstartFileDescriptorSupplier() {} + } + + private static final class GkeInferenceQuickstartMethodDescriptorSupplier + extends GkeInferenceQuickstartBaseDescriptorSupplier + implements io.grpc.protobuf.ProtoMethodDescriptorSupplier { + private final java.lang.String methodName; + + GkeInferenceQuickstartMethodDescriptorSupplier(java.lang.String methodName) { + this.methodName = methodName; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.MethodDescriptor getMethodDescriptor() { + return getServiceDescriptor().findMethodByName(methodName); + } + } + + private static volatile io.grpc.ServiceDescriptor serviceDescriptor; + + public static io.grpc.ServiceDescriptor getServiceDescriptor() { + io.grpc.ServiceDescriptor result = serviceDescriptor; + if (result == null) { + synchronized (GkeInferenceQuickstartGrpc.class) { + result = serviceDescriptor; + if (result == null) { + serviceDescriptor = + result = + io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME) + .setSchemaDescriptor(new GkeInferenceQuickstartFileDescriptorSupplier()) + .addMethod(getFetchModelsMethod()) + .addMethod(getFetchModelServersMethod()) + .addMethod(getFetchModelServerVersionsMethod()) + .addMethod(getFetchProfilesMethod()) + .addMethod(getGenerateOptimizedManifestMethod()) + .addMethod(getFetchBenchmarkingDataMethod()) + .build(); + } + } + } + return result; + } +} diff --git a/java-gkerecommender/owlbot.py b/java-gkerecommender/owlbot.py new file mode 100644 index 000000000000..2ba11e6bba67 --- /dev/null +++ b/java-gkerecommender/owlbot.py @@ -0,0 +1,36 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import synthtool as s +from synthtool.languages import java + + +for library in s.get_staging_dirs(): + # put any special-case replacements here + s.move(library) + +s.remove_staging_dirs() +java.common_templates(monorepo=True, excludes=[ + ".github/*", + ".kokoro/*", + "samples/*", + "CODE_OF_CONDUCT.md", + "CONTRIBUTING.md", + "LICENSE", + "SECURITY.md", + "java.header", + "license-checks.xml", + "renovate.json", + ".gitignore" +]) \ No newline at end of file diff --git a/java-gkerecommender/pom.xml b/java-gkerecommender/pom.xml new file mode 100644 index 000000000000..b88abab0d08b --- /dev/null +++ b/java-gkerecommender/pom.xml @@ -0,0 +1,55 @@ + + + 4.0.0 + com.google.cloud + google-cloud-gkerecommender-parent + pom + 0.0.1-SNAPSHOT + Google GKE Recommender API Parent + + Java idiomatic client for Google Cloud Platform services. + + + + com.google.cloud + google-cloud-jar-parent + 1.75.0-SNAPSHOT + ../google-cloud-jar-parent/pom.xml + + + + UTF-8 + UTF-8 + github + google-cloud-gkerecommender-parent + + + + + + com.google.cloud + google-cloud-gkerecommender + 0.0.1-SNAPSHOT + + + com.google.api.grpc + grpc-google-cloud-gkerecommender-v1 + 0.0.1-SNAPSHOT + + + com.google.api.grpc + proto-google-cloud-gkerecommender-v1 + 0.0.1-SNAPSHOT + + + + + + + google-cloud-gkerecommender + grpc-google-cloud-gkerecommender-v1 + proto-google-cloud-gkerecommender-v1 + google-cloud-gkerecommender-bom + + + diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/clirr-ignored-differences.xml b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/clirr-ignored-differences.xml new file mode 100644 index 000000000000..278d71eb09b2 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/clirr-ignored-differences.xml @@ -0,0 +1,80 @@ + + + + + 7012 + com/google/cloud/gkerecommender/v1/*OrBuilder + * get*(*) + + + 7012 + com/google/cloud/gkerecommender/v1/*OrBuilder + boolean contains*(*) + + + 7012 + com/google/cloud/gkerecommender/v1/*OrBuilder + boolean has*(*) + + + + 7006 + com/google/cloud/gkerecommender/v1/** + * getDefaultInstanceForType() + ** + + + 7006 + com/google/cloud/gkerecommender/v1/** + * addRepeatedField(*) + ** + + + 7006 + com/google/cloud/gkerecommender/v1/** + * clear() + ** + + + 7006 + com/google/cloud/gkerecommender/v1/** + * clearField(*) + ** + + + 7006 + com/google/cloud/gkerecommender/v1/** + * clearOneof(*) + ** + + + 7006 + com/google/cloud/gkerecommender/v1/** + * clone() + ** + + + 7006 + com/google/cloud/gkerecommender/v1/** + * mergeUnknownFields(*) + ** + + + 7006 + com/google/cloud/gkerecommender/v1/** + * setField(*) + ** + + + 7006 + com/google/cloud/gkerecommender/v1/** + * setRepeatedField(*) + ** + + + 7006 + com/google/cloud/gkerecommender/v1/** + * setUnknownFields(*) + ** + + diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/pom.xml b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/pom.xml new file mode 100644 index 000000000000..f20d10a515a8 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/pom.xml @@ -0,0 +1,37 @@ + + 4.0.0 + com.google.api.grpc + proto-google-cloud-gkerecommender-v1 + 0.0.1-SNAPSHOT + proto-google-cloud-gkerecommender-v1 + Proto library for google-cloud-gkerecommender + + com.google.cloud + google-cloud-gkerecommender-parent + 0.0.1-SNAPSHOT + + + + com.google.protobuf + protobuf-java + + + com.google.api.grpc + proto-google-common-protos + + + com.google.api.grpc + proto-google-iam-v1 + + + com.google.api + api-common + + + com.google.guava + guava + + + diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/Amount.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/Amount.java new file mode 100644 index 000000000000..e9ca1c36732a --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/Amount.java @@ -0,0 +1,661 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Represents an amount of money in a specific currency.
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.Amount} + */ +public final class Amount extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.Amount) + AmountOrBuilder { + private static final long serialVersionUID = 0L; + + // Use Amount.newBuilder() to construct. + private Amount(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private Amount() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Amount(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_Amount_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_Amount_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.Amount.class, + com.google.cloud.gkerecommender.v1.Amount.Builder.class); + } + + public static final int UNITS_FIELD_NUMBER = 1; + private long units_ = 0L; + + /** + * + * + *
+   * Output only. The whole units of the amount.
+   * For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+   * 
+ * + * int64 units = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The units. + */ + @java.lang.Override + public long getUnits() { + return units_; + } + + public static final int NANOS_FIELD_NUMBER = 2; + private int nanos_ = 0; + + /** + * + * + *
+   * Output only. Number of nano (10^-9) units of the amount.
+   * The value must be between -999,999,999 and +999,999,999 inclusive.
+   * If `units` is positive, `nanos` must be positive or zero.
+   * If `units` is zero, `nanos` can be positive, zero, or negative.
+   * If `units` is negative, `nanos` must be negative or zero.
+   * For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+   * 
+ * + * int32 nanos = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The nanos. + */ + @java.lang.Override + public int getNanos() { + return nanos_; + } + + 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 (units_ != 0L) { + output.writeInt64(1, units_); + } + if (nanos_ != 0) { + output.writeInt32(2, nanos_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (units_ != 0L) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(1, units_); + } + if (nanos_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, nanos_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.Amount)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.Amount other = + (com.google.cloud.gkerecommender.v1.Amount) obj; + + if (getUnits() != other.getUnits()) return false; + if (getNanos() != other.getNanos()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) 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) + UNITS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getUnits()); + hash = (37 * hash) + NANOS_FIELD_NUMBER; + hash = (53 * hash) + getNanos(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.Amount parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.Amount parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.Amount parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.Amount parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.Amount parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.Amount parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.Amount parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.Amount 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 com.google.cloud.gkerecommender.v1.Amount parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.Amount 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 com.google.cloud.gkerecommender.v1.Amount parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.Amount 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(com.google.cloud.gkerecommender.v1.Amount 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; + } + + /** + * + * + *
+   * Represents an amount of money in a specific currency.
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.Amount} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.Amount) + com.google.cloud.gkerecommender.v1.AmountOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_Amount_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_Amount_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.Amount.class, + com.google.cloud.gkerecommender.v1.Amount.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.Amount.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + units_ = 0L; + nanos_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_Amount_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.Amount getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.Amount.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.Amount build() { + com.google.cloud.gkerecommender.v1.Amount result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.Amount buildPartial() { + com.google.cloud.gkerecommender.v1.Amount result = + new com.google.cloud.gkerecommender.v1.Amount(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.gkerecommender.v1.Amount result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.units_ = units_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.nanos_ = nanos_; + } + } + + @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 com.google.cloud.gkerecommender.v1.Amount) { + return mergeFrom((com.google.cloud.gkerecommender.v1.Amount) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.gkerecommender.v1.Amount other) { + if (other == com.google.cloud.gkerecommender.v1.Amount.getDefaultInstance()) return this; + if (other.getUnits() != 0L) { + setUnits(other.getUnits()); + } + if (other.getNanos() != 0) { + setNanos(other.getNanos()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: + { + units_ = input.readInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: + { + nanos_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private long units_; + + /** + * + * + *
+     * Output only. The whole units of the amount.
+     * For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+     * 
+ * + * int64 units = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The units. + */ + @java.lang.Override + public long getUnits() { + return units_; + } + + /** + * + * + *
+     * Output only. The whole units of the amount.
+     * For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+     * 
+ * + * int64 units = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The units to set. + * @return This builder for chaining. + */ + public Builder setUnits(long value) { + + units_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The whole units of the amount.
+     * For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+     * 
+ * + * int64 units = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearUnits() { + bitField0_ = (bitField0_ & ~0x00000001); + units_ = 0L; + onChanged(); + return this; + } + + private int nanos_; + + /** + * + * + *
+     * Output only. Number of nano (10^-9) units of the amount.
+     * The value must be between -999,999,999 and +999,999,999 inclusive.
+     * If `units` is positive, `nanos` must be positive or zero.
+     * If `units` is zero, `nanos` can be positive, zero, or negative.
+     * If `units` is negative, `nanos` must be negative or zero.
+     * For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+     * 
+ * + * int32 nanos = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The nanos. + */ + @java.lang.Override + public int getNanos() { + return nanos_; + } + + /** + * + * + *
+     * Output only. Number of nano (10^-9) units of the amount.
+     * The value must be between -999,999,999 and +999,999,999 inclusive.
+     * If `units` is positive, `nanos` must be positive or zero.
+     * If `units` is zero, `nanos` can be positive, zero, or negative.
+     * If `units` is negative, `nanos` must be negative or zero.
+     * For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+     * 
+ * + * int32 nanos = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The nanos to set. + * @return This builder for chaining. + */ + public Builder setNanos(int value) { + + nanos_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. Number of nano (10^-9) units of the amount.
+     * The value must be between -999,999,999 and +999,999,999 inclusive.
+     * If `units` is positive, `nanos` must be positive or zero.
+     * If `units` is zero, `nanos` can be positive, zero, or negative.
+     * If `units` is negative, `nanos` must be negative or zero.
+     * For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+     * 
+ * + * int32 nanos = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearNanos() { + bitField0_ = (bitField0_ & ~0x00000002); + nanos_ = 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:google.cloud.gkerecommender.v1.Amount) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.Amount) + private static final com.google.cloud.gkerecommender.v1.Amount DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.Amount(); + } + + public static com.google.cloud.gkerecommender.v1.Amount getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Amount parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.Amount getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/AmountOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/AmountOrBuilder.java new file mode 100644 index 000000000000..96d5f32a9de9 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/AmountOrBuilder.java @@ -0,0 +1,58 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface AmountOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.Amount) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Output only. The whole units of the amount.
+   * For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+   * 
+ * + * int64 units = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The units. + */ + long getUnits(); + + /** + * + * + *
+   * Output only. Number of nano (10^-9) units of the amount.
+   * The value must be between -999,999,999 and +999,999,999 inclusive.
+   * If `units` is positive, `nanos` must be positive or zero.
+   * If `units` is zero, `nanos` can be positive, zero, or negative.
+   * If `units` is negative, `nanos` must be negative or zero.
+   * For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+   * 
+ * + * int32 nanos = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The nanos. + */ + int getNanos(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/Cost.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/Cost.java new file mode 100644 index 000000000000..07e794cf7998 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/Cost.java @@ -0,0 +1,1481 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Cost for running a model deployment on a given instance type. Currently, only
+ * USD currency code is supported.
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.Cost} + */ +public final class Cost extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.Cost) + CostOrBuilder { + private static final long serialVersionUID = 0L; + + // Use Cost.newBuilder() to construct. + private Cost(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private Cost() { + pricingModel_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Cost(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_Cost_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_Cost_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.Cost.class, + com.google.cloud.gkerecommender.v1.Cost.Builder.class); + } + + private int bitField0_; + public static final int COST_PER_MILLION_OUTPUT_TOKENS_FIELD_NUMBER = 1; + private com.google.cloud.gkerecommender.v1.Amount costPerMillionOutputTokens_; + + /** + * + * + *
+   * Optional. The cost per million output tokens, calculated as:
+   * $/output token = GPU $/s / (1/output-to-input-cost-ratio * input tokens/s +
+   * output tokens/s)
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_output_tokens = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the costPerMillionOutputTokens field is set. + */ + @java.lang.Override + public boolean hasCostPerMillionOutputTokens() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Optional. The cost per million output tokens, calculated as:
+   * $/output token = GPU $/s / (1/output-to-input-cost-ratio * input tokens/s +
+   * output tokens/s)
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_output_tokens = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The costPerMillionOutputTokens. + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.Amount getCostPerMillionOutputTokens() { + return costPerMillionOutputTokens_ == null + ? com.google.cloud.gkerecommender.v1.Amount.getDefaultInstance() + : costPerMillionOutputTokens_; + } + + /** + * + * + *
+   * Optional. The cost per million output tokens, calculated as:
+   * $/output token = GPU $/s / (1/output-to-input-cost-ratio * input tokens/s +
+   * output tokens/s)
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_output_tokens = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.AmountOrBuilder + getCostPerMillionOutputTokensOrBuilder() { + return costPerMillionOutputTokens_ == null + ? com.google.cloud.gkerecommender.v1.Amount.getDefaultInstance() + : costPerMillionOutputTokens_; + } + + public static final int COST_PER_MILLION_INPUT_TOKENS_FIELD_NUMBER = 2; + private com.google.cloud.gkerecommender.v1.Amount costPerMillionInputTokens_; + + /** + * + * + *
+   * Optional. The cost per million input tokens. $/input token = ($/output
+   * token) / output-to-input-cost-ratio.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_input_tokens = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the costPerMillionInputTokens field is set. + */ + @java.lang.Override + public boolean hasCostPerMillionInputTokens() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Optional. The cost per million input tokens. $/input token = ($/output
+   * token) / output-to-input-cost-ratio.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_input_tokens = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The costPerMillionInputTokens. + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.Amount getCostPerMillionInputTokens() { + return costPerMillionInputTokens_ == null + ? com.google.cloud.gkerecommender.v1.Amount.getDefaultInstance() + : costPerMillionInputTokens_; + } + + /** + * + * + *
+   * Optional. The cost per million input tokens. $/input token = ($/output
+   * token) / output-to-input-cost-ratio.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_input_tokens = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.AmountOrBuilder + getCostPerMillionInputTokensOrBuilder() { + return costPerMillionInputTokens_ == null + ? com.google.cloud.gkerecommender.v1.Amount.getDefaultInstance() + : costPerMillionInputTokens_; + } + + public static final int PRICING_MODEL_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object pricingModel_ = ""; + + /** + * + * + *
+   * Optional. The pricing model used to calculate the cost. Can be one of:
+   * `3-years-cud`, `1-year-cud`, `on-demand`, `spot`. If not provided, `spot`
+   * will be used.
+   * 
+ * + * string pricing_model = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pricingModel. + */ + @java.lang.Override + public java.lang.String getPricingModel() { + java.lang.Object ref = pricingModel_; + 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(); + pricingModel_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. The pricing model used to calculate the cost. Can be one of:
+   * `3-years-cud`, `1-year-cud`, `on-demand`, `spot`. If not provided, `spot`
+   * will be used.
+   * 
+ * + * string pricing_model = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pricingModel. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPricingModelBytes() { + java.lang.Object ref = pricingModel_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + pricingModel_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int OUTPUT_INPUT_COST_RATIO_FIELD_NUMBER = 4; + private float outputInputCostRatio_ = 0F; + + /** + * + * + *
+   * Optional. The output-to-input cost ratio. This determines how the total GPU
+   * cost is split between input and output tokens. If not provided, `4.0` is
+   * used, assuming a 4:1 output:input cost ratio.
+   * 
+ * + * optional float output_input_cost_ratio = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the outputInputCostRatio field is set. + */ + @java.lang.Override + public boolean hasOutputInputCostRatio() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * Optional. The output-to-input cost ratio. This determines how the total GPU
+   * cost is split between input and output tokens. If not provided, `4.0` is
+   * used, assuming a 4:1 output:input cost ratio.
+   * 
+ * + * optional float output_input_cost_ratio = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The outputInputCostRatio. + */ + @java.lang.Override + public float getOutputInputCostRatio() { + return outputInputCostRatio_; + } + + 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 (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getCostPerMillionOutputTokens()); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(2, getCostPerMillionInputTokens()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pricingModel_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, pricingModel_); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeFloat(4, outputInputCostRatio_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 1, getCostPerMillionOutputTokens()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 2, getCostPerMillionInputTokens()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pricingModel_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, pricingModel_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeFloatSize(4, outputInputCostRatio_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.Cost)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.Cost other = (com.google.cloud.gkerecommender.v1.Cost) obj; + + if (hasCostPerMillionOutputTokens() != other.hasCostPerMillionOutputTokens()) return false; + if (hasCostPerMillionOutputTokens()) { + if (!getCostPerMillionOutputTokens().equals(other.getCostPerMillionOutputTokens())) + return false; + } + if (hasCostPerMillionInputTokens() != other.hasCostPerMillionInputTokens()) return false; + if (hasCostPerMillionInputTokens()) { + if (!getCostPerMillionInputTokens().equals(other.getCostPerMillionInputTokens())) + return false; + } + if (!getPricingModel().equals(other.getPricingModel())) return false; + if (hasOutputInputCostRatio() != other.hasOutputInputCostRatio()) return false; + if (hasOutputInputCostRatio()) { + if (java.lang.Float.floatToIntBits(getOutputInputCostRatio()) + != java.lang.Float.floatToIntBits(other.getOutputInputCostRatio())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasCostPerMillionOutputTokens()) { + hash = (37 * hash) + COST_PER_MILLION_OUTPUT_TOKENS_FIELD_NUMBER; + hash = (53 * hash) + getCostPerMillionOutputTokens().hashCode(); + } + if (hasCostPerMillionInputTokens()) { + hash = (37 * hash) + COST_PER_MILLION_INPUT_TOKENS_FIELD_NUMBER; + hash = (53 * hash) + getCostPerMillionInputTokens().hashCode(); + } + hash = (37 * hash) + PRICING_MODEL_FIELD_NUMBER; + hash = (53 * hash) + getPricingModel().hashCode(); + if (hasOutputInputCostRatio()) { + hash = (37 * hash) + OUTPUT_INPUT_COST_RATIO_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits(getOutputInputCostRatio()); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.Cost parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.Cost parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.Cost parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.Cost parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.Cost parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.Cost parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.Cost parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.Cost 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 com.google.cloud.gkerecommender.v1.Cost parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.Cost 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 com.google.cloud.gkerecommender.v1.Cost parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.Cost 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(com.google.cloud.gkerecommender.v1.Cost 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; + } + + /** + * + * + *
+   * Cost for running a model deployment on a given instance type. Currently, only
+   * USD currency code is supported.
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.Cost} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.Cost) + com.google.cloud.gkerecommender.v1.CostOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_Cost_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_Cost_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.Cost.class, + com.google.cloud.gkerecommender.v1.Cost.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.Cost.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getCostPerMillionOutputTokensFieldBuilder(); + getCostPerMillionInputTokensFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + costPerMillionOutputTokens_ = null; + if (costPerMillionOutputTokensBuilder_ != null) { + costPerMillionOutputTokensBuilder_.dispose(); + costPerMillionOutputTokensBuilder_ = null; + } + costPerMillionInputTokens_ = null; + if (costPerMillionInputTokensBuilder_ != null) { + costPerMillionInputTokensBuilder_.dispose(); + costPerMillionInputTokensBuilder_ = null; + } + pricingModel_ = ""; + outputInputCostRatio_ = 0F; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_Cost_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.Cost getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.Cost.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.Cost build() { + com.google.cloud.gkerecommender.v1.Cost result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.Cost buildPartial() { + com.google.cloud.gkerecommender.v1.Cost result = + new com.google.cloud.gkerecommender.v1.Cost(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.gkerecommender.v1.Cost result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.costPerMillionOutputTokens_ = + costPerMillionOutputTokensBuilder_ == null + ? costPerMillionOutputTokens_ + : costPerMillionOutputTokensBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.costPerMillionInputTokens_ = + costPerMillionInputTokensBuilder_ == null + ? costPerMillionInputTokens_ + : costPerMillionInputTokensBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.pricingModel_ = pricingModel_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.outputInputCostRatio_ = outputInputCostRatio_; + to_bitField0_ |= 0x00000004; + } + result.bitField0_ |= to_bitField0_; + } + + @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 com.google.cloud.gkerecommender.v1.Cost) { + return mergeFrom((com.google.cloud.gkerecommender.v1.Cost) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.gkerecommender.v1.Cost other) { + if (other == com.google.cloud.gkerecommender.v1.Cost.getDefaultInstance()) return this; + if (other.hasCostPerMillionOutputTokens()) { + mergeCostPerMillionOutputTokens(other.getCostPerMillionOutputTokens()); + } + if (other.hasCostPerMillionInputTokens()) { + mergeCostPerMillionInputTokens(other.getCostPerMillionInputTokens()); + } + if (!other.getPricingModel().isEmpty()) { + pricingModel_ = other.pricingModel_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.hasOutputInputCostRatio()) { + setOutputInputCostRatio(other.getOutputInputCostRatio()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage( + getCostPerMillionOutputTokensFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + input.readMessage( + getCostPerMillionInputTokensFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + pricingModel_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 37: + { + outputInputCostRatio_ = input.readFloat(); + bitField0_ |= 0x00000008; + break; + } // case 37 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.cloud.gkerecommender.v1.Amount costPerMillionOutputTokens_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.Amount, + com.google.cloud.gkerecommender.v1.Amount.Builder, + com.google.cloud.gkerecommender.v1.AmountOrBuilder> + costPerMillionOutputTokensBuilder_; + + /** + * + * + *
+     * Optional. The cost per million output tokens, calculated as:
+     * $/output token = GPU $/s / (1/output-to-input-cost-ratio * input tokens/s +
+     * output tokens/s)
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_output_tokens = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the costPerMillionOutputTokens field is set. + */ + public boolean hasCostPerMillionOutputTokens() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Optional. The cost per million output tokens, calculated as:
+     * $/output token = GPU $/s / (1/output-to-input-cost-ratio * input tokens/s +
+     * output tokens/s)
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_output_tokens = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The costPerMillionOutputTokens. + */ + public com.google.cloud.gkerecommender.v1.Amount getCostPerMillionOutputTokens() { + if (costPerMillionOutputTokensBuilder_ == null) { + return costPerMillionOutputTokens_ == null + ? com.google.cloud.gkerecommender.v1.Amount.getDefaultInstance() + : costPerMillionOutputTokens_; + } else { + return costPerMillionOutputTokensBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Optional. The cost per million output tokens, calculated as:
+     * $/output token = GPU $/s / (1/output-to-input-cost-ratio * input tokens/s +
+     * output tokens/s)
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_output_tokens = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setCostPerMillionOutputTokens(com.google.cloud.gkerecommender.v1.Amount value) { + if (costPerMillionOutputTokensBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + costPerMillionOutputTokens_ = value; + } else { + costPerMillionOutputTokensBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The cost per million output tokens, calculated as:
+     * $/output token = GPU $/s / (1/output-to-input-cost-ratio * input tokens/s +
+     * output tokens/s)
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_output_tokens = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setCostPerMillionOutputTokens( + com.google.cloud.gkerecommender.v1.Amount.Builder builderForValue) { + if (costPerMillionOutputTokensBuilder_ == null) { + costPerMillionOutputTokens_ = builderForValue.build(); + } else { + costPerMillionOutputTokensBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The cost per million output tokens, calculated as:
+     * $/output token = GPU $/s / (1/output-to-input-cost-ratio * input tokens/s +
+     * output tokens/s)
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_output_tokens = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeCostPerMillionOutputTokens( + com.google.cloud.gkerecommender.v1.Amount value) { + if (costPerMillionOutputTokensBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && costPerMillionOutputTokens_ != null + && costPerMillionOutputTokens_ + != com.google.cloud.gkerecommender.v1.Amount.getDefaultInstance()) { + getCostPerMillionOutputTokensBuilder().mergeFrom(value); + } else { + costPerMillionOutputTokens_ = value; + } + } else { + costPerMillionOutputTokensBuilder_.mergeFrom(value); + } + if (costPerMillionOutputTokens_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Optional. The cost per million output tokens, calculated as:
+     * $/output token = GPU $/s / (1/output-to-input-cost-ratio * input tokens/s +
+     * output tokens/s)
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_output_tokens = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearCostPerMillionOutputTokens() { + bitField0_ = (bitField0_ & ~0x00000001); + costPerMillionOutputTokens_ = null; + if (costPerMillionOutputTokensBuilder_ != null) { + costPerMillionOutputTokensBuilder_.dispose(); + costPerMillionOutputTokensBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The cost per million output tokens, calculated as:
+     * $/output token = GPU $/s / (1/output-to-input-cost-ratio * input tokens/s +
+     * output tokens/s)
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_output_tokens = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.gkerecommender.v1.Amount.Builder + getCostPerMillionOutputTokensBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getCostPerMillionOutputTokensFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. The cost per million output tokens, calculated as:
+     * $/output token = GPU $/s / (1/output-to-input-cost-ratio * input tokens/s +
+     * output tokens/s)
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_output_tokens = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.gkerecommender.v1.AmountOrBuilder + getCostPerMillionOutputTokensOrBuilder() { + if (costPerMillionOutputTokensBuilder_ != null) { + return costPerMillionOutputTokensBuilder_.getMessageOrBuilder(); + } else { + return costPerMillionOutputTokens_ == null + ? com.google.cloud.gkerecommender.v1.Amount.getDefaultInstance() + : costPerMillionOutputTokens_; + } + } + + /** + * + * + *
+     * Optional. The cost per million output tokens, calculated as:
+     * $/output token = GPU $/s / (1/output-to-input-cost-ratio * input tokens/s +
+     * output tokens/s)
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_output_tokens = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.Amount, + com.google.cloud.gkerecommender.v1.Amount.Builder, + com.google.cloud.gkerecommender.v1.AmountOrBuilder> + getCostPerMillionOutputTokensFieldBuilder() { + if (costPerMillionOutputTokensBuilder_ == null) { + costPerMillionOutputTokensBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.Amount, + com.google.cloud.gkerecommender.v1.Amount.Builder, + com.google.cloud.gkerecommender.v1.AmountOrBuilder>( + getCostPerMillionOutputTokens(), getParentForChildren(), isClean()); + costPerMillionOutputTokens_ = null; + } + return costPerMillionOutputTokensBuilder_; + } + + private com.google.cloud.gkerecommender.v1.Amount costPerMillionInputTokens_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.Amount, + com.google.cloud.gkerecommender.v1.Amount.Builder, + com.google.cloud.gkerecommender.v1.AmountOrBuilder> + costPerMillionInputTokensBuilder_; + + /** + * + * + *
+     * Optional. The cost per million input tokens. $/input token = ($/output
+     * token) / output-to-input-cost-ratio.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_input_tokens = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the costPerMillionInputTokens field is set. + */ + public boolean hasCostPerMillionInputTokens() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Optional. The cost per million input tokens. $/input token = ($/output
+     * token) / output-to-input-cost-ratio.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_input_tokens = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The costPerMillionInputTokens. + */ + public com.google.cloud.gkerecommender.v1.Amount getCostPerMillionInputTokens() { + if (costPerMillionInputTokensBuilder_ == null) { + return costPerMillionInputTokens_ == null + ? com.google.cloud.gkerecommender.v1.Amount.getDefaultInstance() + : costPerMillionInputTokens_; + } else { + return costPerMillionInputTokensBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Optional. The cost per million input tokens. $/input token = ($/output
+     * token) / output-to-input-cost-ratio.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_input_tokens = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setCostPerMillionInputTokens(com.google.cloud.gkerecommender.v1.Amount value) { + if (costPerMillionInputTokensBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + costPerMillionInputTokens_ = value; + } else { + costPerMillionInputTokensBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The cost per million input tokens. $/input token = ($/output
+     * token) / output-to-input-cost-ratio.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_input_tokens = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setCostPerMillionInputTokens( + com.google.cloud.gkerecommender.v1.Amount.Builder builderForValue) { + if (costPerMillionInputTokensBuilder_ == null) { + costPerMillionInputTokens_ = builderForValue.build(); + } else { + costPerMillionInputTokensBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The cost per million input tokens. $/input token = ($/output
+     * token) / output-to-input-cost-ratio.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_input_tokens = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeCostPerMillionInputTokens(com.google.cloud.gkerecommender.v1.Amount value) { + if (costPerMillionInputTokensBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) + && costPerMillionInputTokens_ != null + && costPerMillionInputTokens_ + != com.google.cloud.gkerecommender.v1.Amount.getDefaultInstance()) { + getCostPerMillionInputTokensBuilder().mergeFrom(value); + } else { + costPerMillionInputTokens_ = value; + } + } else { + costPerMillionInputTokensBuilder_.mergeFrom(value); + } + if (costPerMillionInputTokens_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Optional. The cost per million input tokens. $/input token = ($/output
+     * token) / output-to-input-cost-ratio.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_input_tokens = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearCostPerMillionInputTokens() { + bitField0_ = (bitField0_ & ~0x00000002); + costPerMillionInputTokens_ = null; + if (costPerMillionInputTokensBuilder_ != null) { + costPerMillionInputTokensBuilder_.dispose(); + costPerMillionInputTokensBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The cost per million input tokens. $/input token = ($/output
+     * token) / output-to-input-cost-ratio.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_input_tokens = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.gkerecommender.v1.Amount.Builder getCostPerMillionInputTokensBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getCostPerMillionInputTokensFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. The cost per million input tokens. $/input token = ($/output
+     * token) / output-to-input-cost-ratio.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_input_tokens = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.gkerecommender.v1.AmountOrBuilder + getCostPerMillionInputTokensOrBuilder() { + if (costPerMillionInputTokensBuilder_ != null) { + return costPerMillionInputTokensBuilder_.getMessageOrBuilder(); + } else { + return costPerMillionInputTokens_ == null + ? com.google.cloud.gkerecommender.v1.Amount.getDefaultInstance() + : costPerMillionInputTokens_; + } + } + + /** + * + * + *
+     * Optional. The cost per million input tokens. $/input token = ($/output
+     * token) / output-to-input-cost-ratio.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_input_tokens = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.Amount, + com.google.cloud.gkerecommender.v1.Amount.Builder, + com.google.cloud.gkerecommender.v1.AmountOrBuilder> + getCostPerMillionInputTokensFieldBuilder() { + if (costPerMillionInputTokensBuilder_ == null) { + costPerMillionInputTokensBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.Amount, + com.google.cloud.gkerecommender.v1.Amount.Builder, + com.google.cloud.gkerecommender.v1.AmountOrBuilder>( + getCostPerMillionInputTokens(), getParentForChildren(), isClean()); + costPerMillionInputTokens_ = null; + } + return costPerMillionInputTokensBuilder_; + } + + private java.lang.Object pricingModel_ = ""; + + /** + * + * + *
+     * Optional. The pricing model used to calculate the cost. Can be one of:
+     * `3-years-cud`, `1-year-cud`, `on-demand`, `spot`. If not provided, `spot`
+     * will be used.
+     * 
+ * + * string pricing_model = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pricingModel. + */ + public java.lang.String getPricingModel() { + java.lang.Object ref = pricingModel_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pricingModel_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. The pricing model used to calculate the cost. Can be one of:
+     * `3-years-cud`, `1-year-cud`, `on-demand`, `spot`. If not provided, `spot`
+     * will be used.
+     * 
+ * + * string pricing_model = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pricingModel. + */ + public com.google.protobuf.ByteString getPricingModelBytes() { + java.lang.Object ref = pricingModel_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + pricingModel_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. The pricing model used to calculate the cost. Can be one of:
+     * `3-years-cud`, `1-year-cud`, `on-demand`, `spot`. If not provided, `spot`
+     * will be used.
+     * 
+ * + * string pricing_model = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The pricingModel to set. + * @return This builder for chaining. + */ + public Builder setPricingModel(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + pricingModel_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The pricing model used to calculate the cost. Can be one of:
+     * `3-years-cud`, `1-year-cud`, `on-demand`, `spot`. If not provided, `spot`
+     * will be used.
+     * 
+ * + * string pricing_model = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearPricingModel() { + pricingModel_ = getDefaultInstance().getPricingModel(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The pricing model used to calculate the cost. Can be one of:
+     * `3-years-cud`, `1-year-cud`, `on-demand`, `spot`. If not provided, `spot`
+     * will be used.
+     * 
+ * + * string pricing_model = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for pricingModel to set. + * @return This builder for chaining. + */ + public Builder setPricingModelBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + pricingModel_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private float outputInputCostRatio_; + + /** + * + * + *
+     * Optional. The output-to-input cost ratio. This determines how the total GPU
+     * cost is split between input and output tokens. If not provided, `4.0` is
+     * used, assuming a 4:1 output:input cost ratio.
+     * 
+ * + * optional float output_input_cost_ratio = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the outputInputCostRatio field is set. + */ + @java.lang.Override + public boolean hasOutputInputCostRatio() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Optional. The output-to-input cost ratio. This determines how the total GPU
+     * cost is split between input and output tokens. If not provided, `4.0` is
+     * used, assuming a 4:1 output:input cost ratio.
+     * 
+ * + * optional float output_input_cost_ratio = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The outputInputCostRatio. + */ + @java.lang.Override + public float getOutputInputCostRatio() { + return outputInputCostRatio_; + } + + /** + * + * + *
+     * Optional. The output-to-input cost ratio. This determines how the total GPU
+     * cost is split between input and output tokens. If not provided, `4.0` is
+     * used, assuming a 4:1 output:input cost ratio.
+     * 
+ * + * optional float output_input_cost_ratio = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @param value The outputInputCostRatio to set. + * @return This builder for chaining. + */ + public Builder setOutputInputCostRatio(float value) { + + outputInputCostRatio_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The output-to-input cost ratio. This determines how the total GPU
+     * cost is split between input and output tokens. If not provided, `4.0` is
+     * used, assuming a 4:1 output:input cost ratio.
+     * 
+ * + * optional float output_input_cost_ratio = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return This builder for chaining. + */ + public Builder clearOutputInputCostRatio() { + bitField0_ = (bitField0_ & ~0x00000008); + outputInputCostRatio_ = 0F; + 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:google.cloud.gkerecommender.v1.Cost) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.Cost) + private static final com.google.cloud.gkerecommender.v1.Cost DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.Cost(); + } + + public static com.google.cloud.gkerecommender.v1.Cost getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Cost parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.Cost getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/CostOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/CostOrBuilder.java new file mode 100644 index 000000000000..ee2c85cff53d --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/CostOrBuilder.java @@ -0,0 +1,183 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface CostOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.Cost) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Optional. The cost per million output tokens, calculated as:
+   * $/output token = GPU $/s / (1/output-to-input-cost-ratio * input tokens/s +
+   * output tokens/s)
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_output_tokens = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the costPerMillionOutputTokens field is set. + */ + boolean hasCostPerMillionOutputTokens(); + + /** + * + * + *
+   * Optional. The cost per million output tokens, calculated as:
+   * $/output token = GPU $/s / (1/output-to-input-cost-ratio * input tokens/s +
+   * output tokens/s)
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_output_tokens = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The costPerMillionOutputTokens. + */ + com.google.cloud.gkerecommender.v1.Amount getCostPerMillionOutputTokens(); + + /** + * + * + *
+   * Optional. The cost per million output tokens, calculated as:
+   * $/output token = GPU $/s / (1/output-to-input-cost-ratio * input tokens/s +
+   * output tokens/s)
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_output_tokens = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.cloud.gkerecommender.v1.AmountOrBuilder getCostPerMillionOutputTokensOrBuilder(); + + /** + * + * + *
+   * Optional. The cost per million input tokens. $/input token = ($/output
+   * token) / output-to-input-cost-ratio.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_input_tokens = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the costPerMillionInputTokens field is set. + */ + boolean hasCostPerMillionInputTokens(); + + /** + * + * + *
+   * Optional. The cost per million input tokens. $/input token = ($/output
+   * token) / output-to-input-cost-ratio.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_input_tokens = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The costPerMillionInputTokens. + */ + com.google.cloud.gkerecommender.v1.Amount getCostPerMillionInputTokens(); + + /** + * + * + *
+   * Optional. The cost per million input tokens. $/input token = ($/output
+   * token) / output-to-input-cost-ratio.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.Amount cost_per_million_input_tokens = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.cloud.gkerecommender.v1.AmountOrBuilder getCostPerMillionInputTokensOrBuilder(); + + /** + * + * + *
+   * Optional. The pricing model used to calculate the cost. Can be one of:
+   * `3-years-cud`, `1-year-cud`, `on-demand`, `spot`. If not provided, `spot`
+   * will be used.
+   * 
+ * + * string pricing_model = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pricingModel. + */ + java.lang.String getPricingModel(); + + /** + * + * + *
+   * Optional. The pricing model used to calculate the cost. Can be one of:
+   * `3-years-cud`, `1-year-cud`, `on-demand`, `spot`. If not provided, `spot`
+   * will be used.
+   * 
+ * + * string pricing_model = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pricingModel. + */ + com.google.protobuf.ByteString getPricingModelBytes(); + + /** + * + * + *
+   * Optional. The output-to-input cost ratio. This determines how the total GPU
+   * cost is split between input and output tokens. If not provided, `4.0` is
+   * used, assuming a 4:1 output:input cost ratio.
+   * 
+ * + * optional float output_input_cost_ratio = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the outputInputCostRatio field is set. + */ + boolean hasOutputInputCostRatio(); + + /** + * + * + *
+   * Optional. The output-to-input cost ratio. This determines how the total GPU
+   * cost is split between input and output tokens. If not provided, `4.0` is
+   * used, assuming a 4:1 output:input cost ratio.
+   * 
+ * + * optional float output_input_cost_ratio = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The outputInputCostRatio. + */ + float getOutputInputCostRatio(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchBenchmarkingDataRequest.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchBenchmarkingDataRequest.java new file mode 100644 index 000000000000..9370c289439d --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchBenchmarkingDataRequest.java @@ -0,0 +1,1211 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Request message for
+ * [GkeInferenceQuickstart.FetchBenchmarkingData][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchBenchmarkingData].
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest} + */ +public final class FetchBenchmarkingDataRequest extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest) + FetchBenchmarkingDataRequestOrBuilder { + private static final long serialVersionUID = 0L; + + // Use FetchBenchmarkingDataRequest.newBuilder() to construct. + private FetchBenchmarkingDataRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private FetchBenchmarkingDataRequest() { + instanceType_ = ""; + pricingModel_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new FetchBenchmarkingDataRequest(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest.class, + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest.Builder.class); + } + + private int bitField0_; + public static final int MODEL_SERVER_INFO_FIELD_NUMBER = 1; + private com.google.cloud.gkerecommender.v1.ModelServerInfo modelServerInfo_; + + /** + * + * + *
+   * Required. The model server configuration to get benchmarking data for. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid configurations.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return Whether the modelServerInfo field is set. + */ + @java.lang.Override + public boolean hasModelServerInfo() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Required. The model server configuration to get benchmarking data for. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid configurations.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The modelServerInfo. + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.ModelServerInfo getModelServerInfo() { + return modelServerInfo_ == null + ? com.google.cloud.gkerecommender.v1.ModelServerInfo.getDefaultInstance() + : modelServerInfo_; + } + + /** + * + * + *
+   * Required. The model server configuration to get benchmarking data for. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid configurations.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder getModelServerInfoOrBuilder() { + return modelServerInfo_ == null + ? com.google.cloud.gkerecommender.v1.ModelServerInfo.getDefaultInstance() + : modelServerInfo_; + } + + public static final int INSTANCE_TYPE_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object instanceType_ = ""; + + /** + * + * + *
+   * Optional. The instance type to filter benchmarking data. Instance types are
+   * in the format `a2-highgpu-1g`. If not provided, all instance types for the
+   * given profile's `model_server_info` will be returned. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find available instance types.
+   * 
+ * + * string instance_type = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The instanceType. + */ + @java.lang.Override + public java.lang.String getInstanceType() { + java.lang.Object ref = instanceType_; + 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(); + instanceType_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. The instance type to filter benchmarking data. Instance types are
+   * in the format `a2-highgpu-1g`. If not provided, all instance types for the
+   * given profile's `model_server_info` will be returned. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find available instance types.
+   * 
+ * + * string instance_type = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for instanceType. + */ + @java.lang.Override + public com.google.protobuf.ByteString getInstanceTypeBytes() { + java.lang.Object ref = instanceType_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + instanceType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRICING_MODEL_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object pricingModel_ = ""; + + /** + * + * + *
+   * Optional. The pricing model to use for the benchmarking data. Defaults to
+   * `spot`.
+   * 
+ * + * string pricing_model = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pricingModel. + */ + @java.lang.Override + public java.lang.String getPricingModel() { + java.lang.Object ref = pricingModel_; + 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(); + pricingModel_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. The pricing model to use for the benchmarking data. Defaults to
+   * `spot`.
+   * 
+ * + * string pricing_model = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pricingModel. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPricingModelBytes() { + java.lang.Object ref = pricingModel_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + pricingModel_ = 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 { + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getModelServerInfo()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(instanceType_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, instanceType_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pricingModel_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, pricingModel_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getModelServerInfo()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(instanceType_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, instanceType_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pricingModel_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, pricingModel_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest other = + (com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest) obj; + + if (hasModelServerInfo() != other.hasModelServerInfo()) return false; + if (hasModelServerInfo()) { + if (!getModelServerInfo().equals(other.getModelServerInfo())) return false; + } + if (!getInstanceType().equals(other.getInstanceType())) return false; + if (!getPricingModel().equals(other.getPricingModel())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasModelServerInfo()) { + hash = (37 * hash) + MODEL_SERVER_INFO_FIELD_NUMBER; + hash = (53 * hash) + getModelServerInfo().hashCode(); + } + hash = (37 * hash) + INSTANCE_TYPE_FIELD_NUMBER; + hash = (53 * hash) + getInstanceType().hashCode(); + hash = (37 * hash) + PRICING_MODEL_FIELD_NUMBER; + hash = (53 * hash) + getPricingModel().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest 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 com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest 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 com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest 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( + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest 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; + } + + /** + * + * + *
+   * Request message for
+   * [GkeInferenceQuickstart.FetchBenchmarkingData][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchBenchmarkingData].
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest) + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest.class, + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getModelServerInfoFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + modelServerInfo_ = null; + if (modelServerInfoBuilder_ != null) { + modelServerInfoBuilder_.dispose(); + modelServerInfoBuilder_ = null; + } + instanceType_ = ""; + pricingModel_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataRequest_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest + getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest build() { + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest buildPartial() { + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest result = + new com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.modelServerInfo_ = + modelServerInfoBuilder_ == null ? modelServerInfo_ : modelServerInfoBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.instanceType_ = instanceType_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.pricingModel_ = pricingModel_; + } + result.bitField0_ |= to_bitField0_; + } + + @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 com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest) { + return mergeFrom((com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest other) { + if (other + == com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest.getDefaultInstance()) + return this; + if (other.hasModelServerInfo()) { + mergeModelServerInfo(other.getModelServerInfo()); + } + if (!other.getInstanceType().isEmpty()) { + instanceType_ = other.instanceType_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getPricingModel().isEmpty()) { + pricingModel_ = other.pricingModel_; + bitField0_ |= 0x00000004; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getModelServerInfoFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 26: + { + instanceType_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 26 + case 34: + { + pricingModel_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 34 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.cloud.gkerecommender.v1.ModelServerInfo modelServerInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.ModelServerInfo, + com.google.cloud.gkerecommender.v1.ModelServerInfo.Builder, + com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder> + modelServerInfoBuilder_; + + /** + * + * + *
+     * Required. The model server configuration to get benchmarking data for. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return Whether the modelServerInfo field is set. + */ + public boolean hasModelServerInfo() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Required. The model server configuration to get benchmarking data for. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The modelServerInfo. + */ + public com.google.cloud.gkerecommender.v1.ModelServerInfo getModelServerInfo() { + if (modelServerInfoBuilder_ == null) { + return modelServerInfo_ == null + ? com.google.cloud.gkerecommender.v1.ModelServerInfo.getDefaultInstance() + : modelServerInfo_; + } else { + return modelServerInfoBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Required. The model server configuration to get benchmarking data for. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder setModelServerInfo(com.google.cloud.gkerecommender.v1.ModelServerInfo value) { + if (modelServerInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + modelServerInfo_ = value; + } else { + modelServerInfoBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The model server configuration to get benchmarking data for. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder setModelServerInfo( + com.google.cloud.gkerecommender.v1.ModelServerInfo.Builder builderForValue) { + if (modelServerInfoBuilder_ == null) { + modelServerInfo_ = builderForValue.build(); + } else { + modelServerInfoBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The model server configuration to get benchmarking data for. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder mergeModelServerInfo(com.google.cloud.gkerecommender.v1.ModelServerInfo value) { + if (modelServerInfoBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && modelServerInfo_ != null + && modelServerInfo_ + != com.google.cloud.gkerecommender.v1.ModelServerInfo.getDefaultInstance()) { + getModelServerInfoBuilder().mergeFrom(value); + } else { + modelServerInfo_ = value; + } + } else { + modelServerInfoBuilder_.mergeFrom(value); + } + if (modelServerInfo_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Required. The model server configuration to get benchmarking data for. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder clearModelServerInfo() { + bitField0_ = (bitField0_ & ~0x00000001); + modelServerInfo_ = null; + if (modelServerInfoBuilder_ != null) { + modelServerInfoBuilder_.dispose(); + modelServerInfoBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The model server configuration to get benchmarking data for. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public com.google.cloud.gkerecommender.v1.ModelServerInfo.Builder getModelServerInfoBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getModelServerInfoFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Required. The model server configuration to get benchmarking data for. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder + getModelServerInfoOrBuilder() { + if (modelServerInfoBuilder_ != null) { + return modelServerInfoBuilder_.getMessageOrBuilder(); + } else { + return modelServerInfo_ == null + ? com.google.cloud.gkerecommender.v1.ModelServerInfo.getDefaultInstance() + : modelServerInfo_; + } + } + + /** + * + * + *
+     * Required. The model server configuration to get benchmarking data for. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.ModelServerInfo, + com.google.cloud.gkerecommender.v1.ModelServerInfo.Builder, + com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder> + getModelServerInfoFieldBuilder() { + if (modelServerInfoBuilder_ == null) { + modelServerInfoBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.ModelServerInfo, + com.google.cloud.gkerecommender.v1.ModelServerInfo.Builder, + com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder>( + getModelServerInfo(), getParentForChildren(), isClean()); + modelServerInfo_ = null; + } + return modelServerInfoBuilder_; + } + + private java.lang.Object instanceType_ = ""; + + /** + * + * + *
+     * Optional. The instance type to filter benchmarking data. Instance types are
+     * in the format `a2-highgpu-1g`. If not provided, all instance types for the
+     * given profile's `model_server_info` will be returned. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find available instance types.
+     * 
+ * + * string instance_type = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The instanceType. + */ + public java.lang.String getInstanceType() { + java.lang.Object ref = instanceType_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + instanceType_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. The instance type to filter benchmarking data. Instance types are
+     * in the format `a2-highgpu-1g`. If not provided, all instance types for the
+     * given profile's `model_server_info` will be returned. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find available instance types.
+     * 
+ * + * string instance_type = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for instanceType. + */ + public com.google.protobuf.ByteString getInstanceTypeBytes() { + java.lang.Object ref = instanceType_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + instanceType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. The instance type to filter benchmarking data. Instance types are
+     * in the format `a2-highgpu-1g`. If not provided, all instance types for the
+     * given profile's `model_server_info` will be returned. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find available instance types.
+     * 
+ * + * string instance_type = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The instanceType to set. + * @return This builder for chaining. + */ + public Builder setInstanceType(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + instanceType_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The instance type to filter benchmarking data. Instance types are
+     * in the format `a2-highgpu-1g`. If not provided, all instance types for the
+     * given profile's `model_server_info` will be returned. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find available instance types.
+     * 
+ * + * string instance_type = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearInstanceType() { + instanceType_ = getDefaultInstance().getInstanceType(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The instance type to filter benchmarking data. Instance types are
+     * in the format `a2-highgpu-1g`. If not provided, all instance types for the
+     * given profile's `model_server_info` will be returned. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find available instance types.
+     * 
+ * + * string instance_type = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for instanceType to set. + * @return This builder for chaining. + */ + public Builder setInstanceTypeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + instanceType_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object pricingModel_ = ""; + + /** + * + * + *
+     * Optional. The pricing model to use for the benchmarking data. Defaults to
+     * `spot`.
+     * 
+ * + * string pricing_model = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pricingModel. + */ + public java.lang.String getPricingModel() { + java.lang.Object ref = pricingModel_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pricingModel_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. The pricing model to use for the benchmarking data. Defaults to
+     * `spot`.
+     * 
+ * + * string pricing_model = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pricingModel. + */ + public com.google.protobuf.ByteString getPricingModelBytes() { + java.lang.Object ref = pricingModel_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + pricingModel_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. The pricing model to use for the benchmarking data. Defaults to
+     * `spot`.
+     * 
+ * + * string pricing_model = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The pricingModel to set. + * @return This builder for chaining. + */ + public Builder setPricingModel(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + pricingModel_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The pricing model to use for the benchmarking data. Defaults to
+     * `spot`.
+     * 
+ * + * string pricing_model = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearPricingModel() { + pricingModel_ = getDefaultInstance().getPricingModel(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The pricing model to use for the benchmarking data. Defaults to
+     * `spot`.
+     * 
+ * + * string pricing_model = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for pricingModel to set. + * @return This builder for chaining. + */ + public Builder setPricingModelBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + pricingModel_ = value; + bitField0_ |= 0x00000004; + 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:google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest) + private static final com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest(); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FetchBenchmarkingDataRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchBenchmarkingDataRequestOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchBenchmarkingDataRequestOrBuilder.java new file mode 100644 index 000000000000..6c0934b1908e --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchBenchmarkingDataRequestOrBuilder.java @@ -0,0 +1,137 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface FetchBenchmarkingDataRequestOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Required. The model server configuration to get benchmarking data for. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid configurations.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return Whether the modelServerInfo field is set. + */ + boolean hasModelServerInfo(); + + /** + * + * + *
+   * Required. The model server configuration to get benchmarking data for. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid configurations.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The modelServerInfo. + */ + com.google.cloud.gkerecommender.v1.ModelServerInfo getModelServerInfo(); + + /** + * + * + *
+   * Required. The model server configuration to get benchmarking data for. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid configurations.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder getModelServerInfoOrBuilder(); + + /** + * + * + *
+   * Optional. The instance type to filter benchmarking data. Instance types are
+   * in the format `a2-highgpu-1g`. If not provided, all instance types for the
+   * given profile's `model_server_info` will be returned. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find available instance types.
+   * 
+ * + * string instance_type = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The instanceType. + */ + java.lang.String getInstanceType(); + + /** + * + * + *
+   * Optional. The instance type to filter benchmarking data. Instance types are
+   * in the format `a2-highgpu-1g`. If not provided, all instance types for the
+   * given profile's `model_server_info` will be returned. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find available instance types.
+   * 
+ * + * string instance_type = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for instanceType. + */ + com.google.protobuf.ByteString getInstanceTypeBytes(); + + /** + * + * + *
+   * Optional. The pricing model to use for the benchmarking data. Defaults to
+   * `spot`.
+   * 
+ * + * string pricing_model = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pricingModel. + */ + java.lang.String getPricingModel(); + + /** + * + * + *
+   * Optional. The pricing model to use for the benchmarking data. Defaults to
+   * `spot`.
+   * 
+ * + * string pricing_model = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pricingModel. + */ + com.google.protobuf.ByteString getPricingModelBytes(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchBenchmarkingDataResponse.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchBenchmarkingDataResponse.java new file mode 100644 index 000000000000..3204b07cdd2f --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchBenchmarkingDataResponse.java @@ -0,0 +1,1039 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Response message for
+ * [GkeInferenceQuickstart.FetchBenchmarkingData][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchBenchmarkingData].
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse} + */ +public final class FetchBenchmarkingDataResponse extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse) + FetchBenchmarkingDataResponseOrBuilder { + private static final long serialVersionUID = 0L; + + // Use FetchBenchmarkingDataResponse.newBuilder() to construct. + private FetchBenchmarkingDataResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private FetchBenchmarkingDataResponse() { + profile_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new FetchBenchmarkingDataResponse(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse.class, + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse.Builder.class); + } + + public static final int PROFILE_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List profile_; + + /** + * + * + *
+   * Output only. List of profiles containing their respective benchmarking
+   * data.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public java.util.List getProfileList() { + return profile_; + } + + /** + * + * + *
+   * Output only. List of profiles containing their respective benchmarking
+   * data.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public java.util.List + getProfileOrBuilderList() { + return profile_; + } + + /** + * + * + *
+   * Output only. List of profiles containing their respective benchmarking
+   * data.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public int getProfileCount() { + return profile_.size(); + } + + /** + * + * + *
+   * Output only. List of profiles containing their respective benchmarking
+   * data.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.Profile getProfile(int index) { + return profile_.get(index); + } + + /** + * + * + *
+   * Output only. List of profiles containing their respective benchmarking
+   * data.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.ProfileOrBuilder getProfileOrBuilder(int index) { + return profile_.get(index); + } + + 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 < profile_.size(); i++) { + output.writeMessage(1, profile_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < profile_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, profile_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse other = + (com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse) obj; + + if (!getProfileList().equals(other.getProfileList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getProfileCount() > 0) { + hash = (37 * hash) + PROFILE_FIELD_NUMBER; + hash = (53 * hash) + getProfileList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse 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 com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse 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 com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse 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( + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse 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; + } + + /** + * + * + *
+   * Response message for
+   * [GkeInferenceQuickstart.FetchBenchmarkingData][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchBenchmarkingData].
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse) + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse.class, + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (profileBuilder_ == null) { + profile_ = java.util.Collections.emptyList(); + } else { + profile_ = null; + profileBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataResponse_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse + getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse build() { + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse buildPartial() { + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse result = + new com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields( + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse result) { + if (profileBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + profile_ = java.util.Collections.unmodifiableList(profile_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.profile_ = profile_; + } else { + result.profile_ = profileBuilder_.build(); + } + } + + private void buildPartial0( + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse result) { + int from_bitField0_ = bitField0_; + } + + @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 com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse) { + return mergeFrom((com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse other) { + if (other + == com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse.getDefaultInstance()) + return this; + if (profileBuilder_ == null) { + if (!other.profile_.isEmpty()) { + if (profile_.isEmpty()) { + profile_ = other.profile_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureProfileIsMutable(); + profile_.addAll(other.profile_); + } + onChanged(); + } + } else { + if (!other.profile_.isEmpty()) { + if (profileBuilder_.isEmpty()) { + profileBuilder_.dispose(); + profileBuilder_ = null; + profile_ = other.profile_; + bitField0_ = (bitField0_ & ~0x00000001); + profileBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getProfileFieldBuilder() + : null; + } else { + profileBuilder_.addAllMessages(other.profile_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + com.google.cloud.gkerecommender.v1.Profile m = + input.readMessage( + com.google.cloud.gkerecommender.v1.Profile.parser(), extensionRegistry); + if (profileBuilder_ == null) { + ensureProfileIsMutable(); + profile_.add(m); + } else { + profileBuilder_.addMessage(m); + } + break; + } // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.util.List profile_ = + java.util.Collections.emptyList(); + + private void ensureProfileIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + profile_ = new java.util.ArrayList(profile_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.gkerecommender.v1.Profile, + com.google.cloud.gkerecommender.v1.Profile.Builder, + com.google.cloud.gkerecommender.v1.ProfileOrBuilder> + profileBuilder_; + + /** + * + * + *
+     * Output only. List of profiles containing their respective benchmarking
+     * data.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public java.util.List getProfileList() { + if (profileBuilder_ == null) { + return java.util.Collections.unmodifiableList(profile_); + } else { + return profileBuilder_.getMessageList(); + } + } + + /** + * + * + *
+     * Output only. List of profiles containing their respective benchmarking
+     * data.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public int getProfileCount() { + if (profileBuilder_ == null) { + return profile_.size(); + } else { + return profileBuilder_.getCount(); + } + } + + /** + * + * + *
+     * Output only. List of profiles containing their respective benchmarking
+     * data.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.Profile getProfile(int index) { + if (profileBuilder_ == null) { + return profile_.get(index); + } else { + return profileBuilder_.getMessage(index); + } + } + + /** + * + * + *
+     * Output only. List of profiles containing their respective benchmarking
+     * data.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setProfile(int index, com.google.cloud.gkerecommender.v1.Profile value) { + if (profileBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureProfileIsMutable(); + profile_.set(index, value); + onChanged(); + } else { + profileBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Output only. List of profiles containing their respective benchmarking
+     * data.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setProfile( + int index, com.google.cloud.gkerecommender.v1.Profile.Builder builderForValue) { + if (profileBuilder_ == null) { + ensureProfileIsMutable(); + profile_.set(index, builderForValue.build()); + onChanged(); + } else { + profileBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Output only. List of profiles containing their respective benchmarking
+     * data.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addProfile(com.google.cloud.gkerecommender.v1.Profile value) { + if (profileBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureProfileIsMutable(); + profile_.add(value); + onChanged(); + } else { + profileBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+     * Output only. List of profiles containing their respective benchmarking
+     * data.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addProfile(int index, com.google.cloud.gkerecommender.v1.Profile value) { + if (profileBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureProfileIsMutable(); + profile_.add(index, value); + onChanged(); + } else { + profileBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Output only. List of profiles containing their respective benchmarking
+     * data.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addProfile(com.google.cloud.gkerecommender.v1.Profile.Builder builderForValue) { + if (profileBuilder_ == null) { + ensureProfileIsMutable(); + profile_.add(builderForValue.build()); + onChanged(); + } else { + profileBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Output only. List of profiles containing their respective benchmarking
+     * data.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addProfile( + int index, com.google.cloud.gkerecommender.v1.Profile.Builder builderForValue) { + if (profileBuilder_ == null) { + ensureProfileIsMutable(); + profile_.add(index, builderForValue.build()); + onChanged(); + } else { + profileBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Output only. List of profiles containing their respective benchmarking
+     * data.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addAllProfile( + java.lang.Iterable values) { + if (profileBuilder_ == null) { + ensureProfileIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, profile_); + onChanged(); + } else { + profileBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+     * Output only. List of profiles containing their respective benchmarking
+     * data.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder clearProfile() { + if (profileBuilder_ == null) { + profile_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + profileBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Output only. List of profiles containing their respective benchmarking
+     * data.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder removeProfile(int index) { + if (profileBuilder_ == null) { + ensureProfileIsMutable(); + profile_.remove(index); + onChanged(); + } else { + profileBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+     * Output only. List of profiles containing their respective benchmarking
+     * data.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.Profile.Builder getProfileBuilder(int index) { + return getProfileFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+     * Output only. List of profiles containing their respective benchmarking
+     * data.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.ProfileOrBuilder getProfileOrBuilder(int index) { + if (profileBuilder_ == null) { + return profile_.get(index); + } else { + return profileBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+     * Output only. List of profiles containing their respective benchmarking
+     * data.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public java.util.List + getProfileOrBuilderList() { + if (profileBuilder_ != null) { + return profileBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(profile_); + } + } + + /** + * + * + *
+     * Output only. List of profiles containing their respective benchmarking
+     * data.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.Profile.Builder addProfileBuilder() { + return getProfileFieldBuilder() + .addBuilder(com.google.cloud.gkerecommender.v1.Profile.getDefaultInstance()); + } + + /** + * + * + *
+     * Output only. List of profiles containing their respective benchmarking
+     * data.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.Profile.Builder addProfileBuilder(int index) { + return getProfileFieldBuilder() + .addBuilder(index, com.google.cloud.gkerecommender.v1.Profile.getDefaultInstance()); + } + + /** + * + * + *
+     * Output only. List of profiles containing their respective benchmarking
+     * data.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public java.util.List + getProfileBuilderList() { + return getProfileFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.gkerecommender.v1.Profile, + com.google.cloud.gkerecommender.v1.Profile.Builder, + com.google.cloud.gkerecommender.v1.ProfileOrBuilder> + getProfileFieldBuilder() { + if (profileBuilder_ == null) { + profileBuilder_ = + new com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.gkerecommender.v1.Profile, + com.google.cloud.gkerecommender.v1.Profile.Builder, + com.google.cloud.gkerecommender.v1.ProfileOrBuilder>( + profile_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + profile_ = null; + } + return profileBuilder_; + } + + @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:google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse) + private static final com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse(); + } + + public static com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FetchBenchmarkingDataResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchBenchmarkingDataResponseOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchBenchmarkingDataResponseOrBuilder.java new file mode 100644 index 000000000000..435bdf1755ed --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchBenchmarkingDataResponseOrBuilder.java @@ -0,0 +1,97 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface FetchBenchmarkingDataResponseOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Output only. List of profiles containing their respective benchmarking
+   * data.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + java.util.List getProfileList(); + + /** + * + * + *
+   * Output only. List of profiles containing their respective benchmarking
+   * data.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.cloud.gkerecommender.v1.Profile getProfile(int index); + + /** + * + * + *
+   * Output only. List of profiles containing their respective benchmarking
+   * data.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + int getProfileCount(); + + /** + * + * + *
+   * Output only. List of profiles containing their respective benchmarking
+   * data.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + java.util.List + getProfileOrBuilderList(); + + /** + * + * + *
+   * Output only. List of profiles containing their respective benchmarking
+   * data.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.cloud.gkerecommender.v1.ProfileOrBuilder getProfileOrBuilder(int index); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServerVersionsRequest.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServerVersionsRequest.java new file mode 100644 index 000000000000..2556c33d8d1e --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServerVersionsRequest.java @@ -0,0 +1,1328 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Request message for
+ * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions].
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest} + */ +public final class FetchModelServerVersionsRequest extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest) + FetchModelServerVersionsRequestOrBuilder { + private static final long serialVersionUID = 0L; + + // Use FetchModelServerVersionsRequest.newBuilder() to construct. + private FetchModelServerVersionsRequest( + com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private FetchModelServerVersionsRequest() { + model_ = ""; + modelServer_ = ""; + pageToken_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new FetchModelServerVersionsRequest(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest.class, + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest.Builder.class); + } + + private int bitField0_; + public static final int MODEL_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object model_ = ""; + + /** + * + * + *
+   * Required. The model for which to list model server versions. Open-source
+   * models follow the Huggingface Hub `owner/model_name` format. Use
+   * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+   * to find available models.
+   * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The model. + */ + @java.lang.Override + public java.lang.String getModel() { + java.lang.Object ref = model_; + 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(); + model_ = s; + return s; + } + } + + /** + * + * + *
+   * Required. The model for which to list model server versions. Open-source
+   * models follow the Huggingface Hub `owner/model_name` format. Use
+   * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+   * to find available models.
+   * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for model. + */ + @java.lang.Override + public com.google.protobuf.ByteString getModelBytes() { + java.lang.Object ref = model_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + model_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MODEL_SERVER_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object modelServer_ = ""; + + /** + * + * + *
+   * Required. The model server for which to list versions. Open-source model
+   * servers use simplified, lowercase names (e.g., `vllm`). Use
+   * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+   * to find available model servers.
+   * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The modelServer. + */ + @java.lang.Override + public java.lang.String getModelServer() { + java.lang.Object ref = modelServer_; + 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(); + modelServer_ = s; + return s; + } + } + + /** + * + * + *
+   * Required. The model server for which to list versions. Open-source model
+   * servers use simplified, lowercase names (e.g., `vllm`). Use
+   * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+   * to find available model servers.
+   * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for modelServer. + */ + @java.lang.Override + public com.google.protobuf.ByteString getModelServerBytes() { + java.lang.Object ref = modelServer_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + modelServer_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PAGE_SIZE_FIELD_NUMBER = 3; + private int pageSize_ = 0; + + /** + * + * + *
+   * Optional. The target number of results to return in a single response.
+   * If not specified, a default value will be chosen by the service.
+   * Note that the response may include a partial list and a caller should
+   * only rely on the response's
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+   * to determine if there are more instances left to be queried.
+   * 
+ * + * optional int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageSize field is set. + */ + @java.lang.Override + public boolean hasPageSize() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Optional. The target number of results to return in a single response.
+   * If not specified, a default value will be chosen by the service.
+   * Note that the response may include a partial list and a caller should
+   * only rely on the response's
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+   * to determine if there are more instances left to be queried.
+   * 
+ * + * optional int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageSize. + */ + @java.lang.Override + public int getPageSize() { + return pageSize_; + } + + public static final int PAGE_TOKEN_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object pageToken_ = ""; + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+   * received from a previous `FetchModelServerVersionsRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchModelServerVersionsRequest` must match the call that provided the
+   * page token.
+   * 
+ * + * optional string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageToken field is set. + */ + @java.lang.Override + public boolean hasPageToken() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+   * received from a previous `FetchModelServerVersionsRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchModelServerVersionsRequest` must match the call that provided the
+   * page token.
+   * 
+ * + * optional string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageToken. + */ + @java.lang.Override + public java.lang.String getPageToken() { + java.lang.Object ref = pageToken_; + 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(); + pageToken_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+   * received from a previous `FetchModelServerVersionsRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchModelServerVersionsRequest` must match the call that provided the
+   * page token.
+   * 
+ * + * optional string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pageToken. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPageTokenBytes() { + java.lang.Object ref = pageToken_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + pageToken_ = 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 { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, model_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(modelServer_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, modelServer_); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeInt32(3, pageSize_); + } + if (((bitField0_ & 0x00000002) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, pageToken_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, model_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(modelServer_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, modelServer_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(3, pageSize_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, pageToken_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest other = + (com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest) obj; + + if (!getModel().equals(other.getModel())) return false; + if (!getModelServer().equals(other.getModelServer())) return false; + if (hasPageSize() != other.hasPageSize()) return false; + if (hasPageSize()) { + if (getPageSize() != other.getPageSize()) return false; + } + if (hasPageToken() != other.hasPageToken()) return false; + if (hasPageToken()) { + if (!getPageToken().equals(other.getPageToken())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) 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) + MODEL_FIELD_NUMBER; + hash = (53 * hash) + getModel().hashCode(); + hash = (37 * hash) + MODEL_SERVER_FIELD_NUMBER; + hash = (53 * hash) + getModelServer().hashCode(); + if (hasPageSize()) { + hash = (37 * hash) + PAGE_SIZE_FIELD_NUMBER; + hash = (53 * hash) + getPageSize(); + } + if (hasPageToken()) { + hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER; + hash = (53 * hash) + getPageToken().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest 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 com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest + 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 com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest 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( + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest 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; + } + + /** + * + * + *
+   * Request message for
+   * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions].
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest) + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest.class, + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest.Builder.class); + } + + // Construct using + // com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + model_ = ""; + modelServer_ = ""; + pageSize_ = 0; + pageToken_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsRequest_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest + getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest build() { + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest buildPartial() { + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest result = + new com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.model_ = model_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.modelServer_ = modelServer_; + } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000004) != 0)) { + result.pageSize_ = pageSize_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.pageToken_ = pageToken_; + to_bitField0_ |= 0x00000002; + } + result.bitField0_ |= to_bitField0_; + } + + @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 com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest) { + return mergeFrom( + (com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest other) { + if (other + == com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest + .getDefaultInstance()) return this; + if (!other.getModel().isEmpty()) { + model_ = other.model_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getModelServer().isEmpty()) { + modelServer_ = other.modelServer_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.hasPageSize()) { + setPageSize(other.getPageSize()); + } + if (other.hasPageToken()) { + pageToken_ = other.pageToken_; + bitField0_ |= 0x00000008; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + model_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + modelServer_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: + { + pageSize_ = input.readInt32(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 34: + { + pageToken_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.lang.Object model_ = ""; + + /** + * + * + *
+     * Required. The model for which to list model server versions. Open-source
+     * models follow the Huggingface Hub `owner/model_name` format. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The model. + */ + public java.lang.String getModel() { + java.lang.Object ref = model_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + model_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Required. The model for which to list model server versions. Open-source
+     * models follow the Huggingface Hub `owner/model_name` format. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for model. + */ + public com.google.protobuf.ByteString getModelBytes() { + java.lang.Object ref = model_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + model_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Required. The model for which to list model server versions. Open-source
+     * models follow the Huggingface Hub `owner/model_name` format. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The model to set. + * @return This builder for chaining. + */ + public Builder setModel(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + model_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The model for which to list model server versions. Open-source
+     * models follow the Huggingface Hub `owner/model_name` format. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearModel() { + model_ = getDefaultInstance().getModel(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The model for which to list model server versions. Open-source
+     * models follow the Huggingface Hub `owner/model_name` format. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for model to set. + * @return This builder for chaining. + */ + public Builder setModelBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + model_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object modelServer_ = ""; + + /** + * + * + *
+     * Required. The model server for which to list versions. Open-source model
+     * servers use simplified, lowercase names (e.g., `vllm`). Use
+     * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+     * to find available model servers.
+     * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The modelServer. + */ + public java.lang.String getModelServer() { + java.lang.Object ref = modelServer_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + modelServer_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Required. The model server for which to list versions. Open-source model
+     * servers use simplified, lowercase names (e.g., `vllm`). Use
+     * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+     * to find available model servers.
+     * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for modelServer. + */ + public com.google.protobuf.ByteString getModelServerBytes() { + java.lang.Object ref = modelServer_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + modelServer_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Required. The model server for which to list versions. Open-source model
+     * servers use simplified, lowercase names (e.g., `vllm`). Use
+     * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+     * to find available model servers.
+     * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The modelServer to set. + * @return This builder for chaining. + */ + public Builder setModelServer(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + modelServer_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The model server for which to list versions. Open-source model
+     * servers use simplified, lowercase names (e.g., `vllm`). Use
+     * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+     * to find available model servers.
+     * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearModelServer() { + modelServer_ = getDefaultInstance().getModelServer(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The model server for which to list versions. Open-source model
+     * servers use simplified, lowercase names (e.g., `vllm`). Use
+     * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+     * to find available model servers.
+     * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for modelServer to set. + * @return This builder for chaining. + */ + public Builder setModelServerBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + modelServer_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private int pageSize_; + + /** + * + * + *
+     * Optional. The target number of results to return in a single response.
+     * If not specified, a default value will be chosen by the service.
+     * Note that the response may include a partial list and a caller should
+     * only rely on the response's
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+     * to determine if there are more instances left to be queried.
+     * 
+ * + * optional int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageSize field is set. + */ + @java.lang.Override + public boolean hasPageSize() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * Optional. The target number of results to return in a single response.
+     * If not specified, a default value will be chosen by the service.
+     * Note that the response may include a partial list and a caller should
+     * only rely on the response's
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+     * to determine if there are more instances left to be queried.
+     * 
+ * + * optional int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageSize. + */ + @java.lang.Override + public int getPageSize() { + return pageSize_; + } + + /** + * + * + *
+     * Optional. The target number of results to return in a single response.
+     * If not specified, a default value will be chosen by the service.
+     * Note that the response may include a partial list and a caller should
+     * only rely on the response's
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+     * to determine if there are more instances left to be queried.
+     * 
+ * + * optional int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The pageSize to set. + * @return This builder for chaining. + */ + public Builder setPageSize(int value) { + + pageSize_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The target number of results to return in a single response.
+     * If not specified, a default value will be chosen by the service.
+     * Note that the response may include a partial list and a caller should
+     * only rely on the response's
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+     * to determine if there are more instances left to be queried.
+     * 
+ * + * optional int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearPageSize() { + bitField0_ = (bitField0_ & ~0x00000004); + pageSize_ = 0; + onChanged(); + return this; + } + + private java.lang.Object pageToken_ = ""; + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+     * received from a previous `FetchModelServerVersionsRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchModelServerVersionsRequest` must match the call that provided the
+     * page token.
+     * 
+ * + * optional string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageToken field is set. + */ + public boolean hasPageToken() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+     * received from a previous `FetchModelServerVersionsRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchModelServerVersionsRequest` must match the call that provided the
+     * page token.
+     * 
+ * + * optional string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageToken. + */ + public java.lang.String getPageToken() { + java.lang.Object ref = pageToken_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pageToken_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+     * received from a previous `FetchModelServerVersionsRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchModelServerVersionsRequest` must match the call that provided the
+     * page token.
+     * 
+ * + * optional string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pageToken. + */ + public com.google.protobuf.ByteString getPageTokenBytes() { + java.lang.Object ref = pageToken_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + pageToken_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+     * received from a previous `FetchModelServerVersionsRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchModelServerVersionsRequest` must match the call that provided the
+     * page token.
+     * 
+ * + * optional string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The pageToken to set. + * @return This builder for chaining. + */ + public Builder setPageToken(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + pageToken_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+     * received from a previous `FetchModelServerVersionsRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchModelServerVersionsRequest` must match the call that provided the
+     * page token.
+     * 
+ * + * optional string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearPageToken() { + pageToken_ = getDefaultInstance().getPageToken(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+     * received from a previous `FetchModelServerVersionsRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchModelServerVersionsRequest` must match the call that provided the
+     * page token.
+     * 
+ * + * optional string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for pageToken to set. + * @return This builder for chaining. + */ + public Builder setPageTokenBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + pageToken_ = value; + bitField0_ |= 0x00000008; + 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:google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest) + private static final com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest(); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FetchModelServerVersionsRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServerVersionsRequestOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServerVersionsRequestOrBuilder.java new file mode 100644 index 000000000000..400e7888c87d --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServerVersionsRequestOrBuilder.java @@ -0,0 +1,183 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface FetchModelServerVersionsRequestOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Required. The model for which to list model server versions. Open-source
+   * models follow the Huggingface Hub `owner/model_name` format. Use
+   * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+   * to find available models.
+   * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The model. + */ + java.lang.String getModel(); + + /** + * + * + *
+   * Required. The model for which to list model server versions. Open-source
+   * models follow the Huggingface Hub `owner/model_name` format. Use
+   * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+   * to find available models.
+   * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for model. + */ + com.google.protobuf.ByteString getModelBytes(); + + /** + * + * + *
+   * Required. The model server for which to list versions. Open-source model
+   * servers use simplified, lowercase names (e.g., `vllm`). Use
+   * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+   * to find available model servers.
+   * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The modelServer. + */ + java.lang.String getModelServer(); + + /** + * + * + *
+   * Required. The model server for which to list versions. Open-source model
+   * servers use simplified, lowercase names (e.g., `vllm`). Use
+   * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+   * to find available model servers.
+   * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for modelServer. + */ + com.google.protobuf.ByteString getModelServerBytes(); + + /** + * + * + *
+   * Optional. The target number of results to return in a single response.
+   * If not specified, a default value will be chosen by the service.
+   * Note that the response may include a partial list and a caller should
+   * only rely on the response's
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+   * to determine if there are more instances left to be queried.
+   * 
+ * + * optional int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageSize field is set. + */ + boolean hasPageSize(); + + /** + * + * + *
+   * Optional. The target number of results to return in a single response.
+   * If not specified, a default value will be chosen by the service.
+   * Note that the response may include a partial list and a caller should
+   * only rely on the response's
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+   * to determine if there are more instances left to be queried.
+   * 
+ * + * optional int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageSize. + */ + int getPageSize(); + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+   * received from a previous `FetchModelServerVersionsRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchModelServerVersionsRequest` must match the call that provided the
+   * page token.
+   * 
+ * + * optional string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageToken field is set. + */ + boolean hasPageToken(); + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+   * received from a previous `FetchModelServerVersionsRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchModelServerVersionsRequest` must match the call that provided the
+   * page token.
+   * 
+ * + * optional string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageToken. + */ + java.lang.String getPageToken(); + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token]
+   * received from a previous `FetchModelServerVersionsRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchModelServerVersionsRequest` must match the call that provided the
+   * page token.
+   * 
+ * + * optional string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pageToken. + */ + com.google.protobuf.ByteString getPageTokenBytes(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServerVersionsResponse.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServerVersionsResponse.java new file mode 100644 index 000000000000..e0cb7b50310d --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServerVersionsResponse.java @@ -0,0 +1,980 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Response message for
+ * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions].
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse} + */ +public final class FetchModelServerVersionsResponse extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse) + FetchModelServerVersionsResponseOrBuilder { + private static final long serialVersionUID = 0L; + + // Use FetchModelServerVersionsResponse.newBuilder() to construct. + private FetchModelServerVersionsResponse( + com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private FetchModelServerVersionsResponse() { + modelServerVersions_ = com.google.protobuf.LazyStringArrayList.emptyList(); + nextPageToken_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new FetchModelServerVersionsResponse(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.class, + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.Builder.class); + } + + public static final int MODEL_SERVER_VERSIONS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList modelServerVersions_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+   * Output only. A list of available model server versions.
+   * 
+ * + * repeated string model_server_versions = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return A list containing the modelServerVersions. + */ + public com.google.protobuf.ProtocolStringList getModelServerVersionsList() { + return modelServerVersions_; + } + + /** + * + * + *
+   * Output only. A list of available model server versions.
+   * 
+ * + * repeated string model_server_versions = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The count of modelServerVersions. + */ + public int getModelServerVersionsCount() { + return modelServerVersions_.size(); + } + + /** + * + * + *
+   * Output only. A list of available model server versions.
+   * 
+ * + * repeated string model_server_versions = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param index The index of the element to return. + * @return The modelServerVersions at the given index. + */ + public java.lang.String getModelServerVersions(int index) { + return modelServerVersions_.get(index); + } + + /** + * + * + *
+   * Output only. A list of available model server versions.
+   * 
+ * + * repeated string model_server_versions = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param index The index of the value to return. + * @return The bytes of the modelServerVersions at the given index. + */ + public com.google.protobuf.ByteString getModelServerVersionsBytes(int index) { + return modelServerVersions_.getByteString(index); + } + + public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object nextPageToken_ = ""; + + /** + * + * + *
+   * Output only. A token which may be sent as
+   * [page_token][FetchModelServerVersionsResponse.page_token] in a subsequent
+   * `FetchModelServerVersionsResponse` call to retrieve the next page of
+   * results. If this field is omitted or empty, then there are no more results
+   * to return.
+   * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The nextPageToken. + */ + @java.lang.Override + public java.lang.String getNextPageToken() { + java.lang.Object ref = nextPageToken_; + 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(); + nextPageToken_ = s; + return s; + } + } + + /** + * + * + *
+   * Output only. A token which may be sent as
+   * [page_token][FetchModelServerVersionsResponse.page_token] in a subsequent
+   * `FetchModelServerVersionsResponse` call to retrieve the next page of
+   * results. If this field is omitted or empty, then there are no more results
+   * to return.
+   * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for nextPageToken. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNextPageTokenBytes() { + java.lang.Object ref = nextPageToken_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + nextPageToken_ = 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 { + for (int i = 0; i < modelServerVersions_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, modelServerVersions_.getRaw(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, nextPageToken_); + } + getUnknownFields().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 < modelServerVersions_.size(); i++) { + dataSize += computeStringSizeNoTag(modelServerVersions_.getRaw(i)); + } + size += dataSize; + size += 1 * getModelServerVersionsList().size(); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, nextPageToken_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse other = + (com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse) obj; + + if (!getModelServerVersionsList().equals(other.getModelServerVersionsList())) return false; + if (!getNextPageToken().equals(other.getNextPageToken())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getModelServerVersionsCount() > 0) { + hash = (37 * hash) + MODEL_SERVER_VERSIONS_FIELD_NUMBER; + hash = (53 * hash) + getModelServerVersionsList().hashCode(); + } + hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER; + hash = (53 * hash) + getNextPageToken().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse 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 com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse + 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 com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse 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( + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse 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; + } + + /** + * + * + *
+   * Response message for
+   * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions].
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse) + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.class, + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.Builder.class); + } + + // Construct using + // com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + modelServerVersions_ = com.google.protobuf.LazyStringArrayList.emptyList(); + nextPageToken_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsResponse_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse + getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse build() { + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse buildPartial() { + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse result = + new com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + modelServerVersions_.makeImmutable(); + result.modelServerVersions_ = modelServerVersions_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.nextPageToken_ = nextPageToken_; + } + } + + @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 com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse) { + return mergeFrom( + (com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse other) { + if (other + == com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse + .getDefaultInstance()) return this; + if (!other.modelServerVersions_.isEmpty()) { + if (modelServerVersions_.isEmpty()) { + modelServerVersions_ = other.modelServerVersions_; + bitField0_ |= 0x00000001; + } else { + ensureModelServerVersionsIsMutable(); + modelServerVersions_.addAll(other.modelServerVersions_); + } + onChanged(); + } + if (!other.getNextPageToken().isEmpty()) { + nextPageToken_ = other.nextPageToken_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + 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(); + ensureModelServerVersionsIsMutable(); + modelServerVersions_.add(s); + break; + } // case 10 + case 18: + { + nextPageToken_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.protobuf.LazyStringArrayList modelServerVersions_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensureModelServerVersionsIsMutable() { + if (!modelServerVersions_.isModifiable()) { + modelServerVersions_ = new com.google.protobuf.LazyStringArrayList(modelServerVersions_); + } + bitField0_ |= 0x00000001; + } + + /** + * + * + *
+     * Output only. A list of available model server versions.
+     * 
+ * + * repeated string model_server_versions = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return A list containing the modelServerVersions. + */ + public com.google.protobuf.ProtocolStringList getModelServerVersionsList() { + modelServerVersions_.makeImmutable(); + return modelServerVersions_; + } + + /** + * + * + *
+     * Output only. A list of available model server versions.
+     * 
+ * + * repeated string model_server_versions = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The count of modelServerVersions. + */ + public int getModelServerVersionsCount() { + return modelServerVersions_.size(); + } + + /** + * + * + *
+     * Output only. A list of available model server versions.
+     * 
+ * + * repeated string model_server_versions = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param index The index of the element to return. + * @return The modelServerVersions at the given index. + */ + public java.lang.String getModelServerVersions(int index) { + return modelServerVersions_.get(index); + } + + /** + * + * + *
+     * Output only. A list of available model server versions.
+     * 
+ * + * repeated string model_server_versions = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param index The index of the value to return. + * @return The bytes of the modelServerVersions at the given index. + */ + public com.google.protobuf.ByteString getModelServerVersionsBytes(int index) { + return modelServerVersions_.getByteString(index); + } + + /** + * + * + *
+     * Output only. A list of available model server versions.
+     * 
+ * + * repeated string model_server_versions = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param index The index to set the value at. + * @param value The modelServerVersions to set. + * @return This builder for chaining. + */ + public Builder setModelServerVersions(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureModelServerVersionsIsMutable(); + modelServerVersions_.set(index, value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. A list of available model server versions.
+     * 
+ * + * repeated string model_server_versions = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param value The modelServerVersions to add. + * @return This builder for chaining. + */ + public Builder addModelServerVersions(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureModelServerVersionsIsMutable(); + modelServerVersions_.add(value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. A list of available model server versions.
+     * 
+ * + * repeated string model_server_versions = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param values The modelServerVersions to add. + * @return This builder for chaining. + */ + public Builder addAllModelServerVersions(java.lang.Iterable values) { + ensureModelServerVersionsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, modelServerVersions_); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. A list of available model server versions.
+     * 
+ * + * repeated string model_server_versions = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return This builder for chaining. + */ + public Builder clearModelServerVersions() { + modelServerVersions_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + ; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. A list of available model server versions.
+     * 
+ * + * repeated string model_server_versions = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param value The bytes of the modelServerVersions to add. + * @return This builder for chaining. + */ + public Builder addModelServerVersionsBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureModelServerVersionsIsMutable(); + modelServerVersions_.add(value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object nextPageToken_ = ""; + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchModelServerVersionsResponse.page_token] in a subsequent
+     * `FetchModelServerVersionsResponse` call to retrieve the next page of
+     * results. If this field is omitted or empty, then there are no more results
+     * to return.
+     * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The nextPageToken. + */ + public java.lang.String getNextPageToken() { + java.lang.Object ref = nextPageToken_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + nextPageToken_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchModelServerVersionsResponse.page_token] in a subsequent
+     * `FetchModelServerVersionsResponse` call to retrieve the next page of
+     * results. If this field is omitted or empty, then there are no more results
+     * to return.
+     * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for nextPageToken. + */ + public com.google.protobuf.ByteString getNextPageTokenBytes() { + java.lang.Object ref = nextPageToken_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + nextPageToken_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchModelServerVersionsResponse.page_token] in a subsequent
+     * `FetchModelServerVersionsResponse` call to retrieve the next page of
+     * results. If this field is omitted or empty, then there are no more results
+     * to return.
+     * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The nextPageToken to set. + * @return This builder for chaining. + */ + public Builder setNextPageToken(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + nextPageToken_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchModelServerVersionsResponse.page_token] in a subsequent
+     * `FetchModelServerVersionsResponse` call to retrieve the next page of
+     * results. If this field is omitted or empty, then there are no more results
+     * to return.
+     * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearNextPageToken() { + nextPageToken_ = getDefaultInstance().getNextPageToken(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchModelServerVersionsResponse.page_token] in a subsequent
+     * `FetchModelServerVersionsResponse` call to retrieve the next page of
+     * results. If this field is omitted or empty, then there are no more results
+     * to return.
+     * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The bytes for nextPageToken to set. + * @return This builder for chaining. + */ + public Builder setNextPageTokenBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + nextPageToken_ = value; + bitField0_ |= 0x00000002; + 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:google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse) + private static final com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse(); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FetchModelServerVersionsResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServerVersionsResponseOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServerVersionsResponseOrBuilder.java new file mode 100644 index 000000000000..5937da70035f --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServerVersionsResponseOrBuilder.java @@ -0,0 +1,118 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface FetchModelServerVersionsResponseOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Output only. A list of available model server versions.
+   * 
+ * + * repeated string model_server_versions = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return A list containing the modelServerVersions. + */ + java.util.List getModelServerVersionsList(); + + /** + * + * + *
+   * Output only. A list of available model server versions.
+   * 
+ * + * repeated string model_server_versions = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The count of modelServerVersions. + */ + int getModelServerVersionsCount(); + + /** + * + * + *
+   * Output only. A list of available model server versions.
+   * 
+ * + * repeated string model_server_versions = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param index The index of the element to return. + * @return The modelServerVersions at the given index. + */ + java.lang.String getModelServerVersions(int index); + + /** + * + * + *
+   * Output only. A list of available model server versions.
+   * 
+ * + * repeated string model_server_versions = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param index The index of the value to return. + * @return The bytes of the modelServerVersions at the given index. + */ + com.google.protobuf.ByteString getModelServerVersionsBytes(int index); + + /** + * + * + *
+   * Output only. A token which may be sent as
+   * [page_token][FetchModelServerVersionsResponse.page_token] in a subsequent
+   * `FetchModelServerVersionsResponse` call to retrieve the next page of
+   * results. If this field is omitted or empty, then there are no more results
+   * to return.
+   * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The nextPageToken. + */ + java.lang.String getNextPageToken(); + + /** + * + * + *
+   * Output only. A token which may be sent as
+   * [page_token][FetchModelServerVersionsResponse.page_token] in a subsequent
+   * `FetchModelServerVersionsResponse` call to retrieve the next page of
+   * results. If this field is omitted or empty, then there are no more results
+   * to return.
+   * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for nextPageToken. + */ + com.google.protobuf.ByteString getNextPageTokenBytes(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServersRequest.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServersRequest.java new file mode 100644 index 000000000000..276f5cc5c6dd --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServersRequest.java @@ -0,0 +1,1106 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Request message for
+ * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers].
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchModelServersRequest} + */ +public final class FetchModelServersRequest extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.FetchModelServersRequest) + FetchModelServersRequestOrBuilder { + private static final long serialVersionUID = 0L; + + // Use FetchModelServersRequest.newBuilder() to construct. + private FetchModelServersRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private FetchModelServersRequest() { + model_ = ""; + pageToken_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new FetchModelServersRequest(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServersRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServersRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchModelServersRequest.class, + com.google.cloud.gkerecommender.v1.FetchModelServersRequest.Builder.class); + } + + private int bitField0_; + public static final int MODEL_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object model_ = ""; + + /** + * + * + *
+   * Required. The model for which to list model servers. Open-source models
+   * follow the Huggingface Hub `owner/model_name` format. Use
+   * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+   * to find available models.
+   * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The model. + */ + @java.lang.Override + public java.lang.String getModel() { + java.lang.Object ref = model_; + 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(); + model_ = s; + return s; + } + } + + /** + * + * + *
+   * Required. The model for which to list model servers. Open-source models
+   * follow the Huggingface Hub `owner/model_name` format. Use
+   * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+   * to find available models.
+   * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for model. + */ + @java.lang.Override + public com.google.protobuf.ByteString getModelBytes() { + java.lang.Object ref = model_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + model_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PAGE_SIZE_FIELD_NUMBER = 2; + private int pageSize_ = 0; + + /** + * + * + *
+   * Optional. The target number of results to return in a single response.
+   * If not specified, a default value will be chosen by the service.
+   * Note that the response may include a partial list and a caller should
+   * only rely on the response's
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+   * to determine if there are more instances left to be queried.
+   * 
+ * + * optional int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageSize field is set. + */ + @java.lang.Override + public boolean hasPageSize() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Optional. The target number of results to return in a single response.
+   * If not specified, a default value will be chosen by the service.
+   * Note that the response may include a partial list and a caller should
+   * only rely on the response's
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+   * to determine if there are more instances left to be queried.
+   * 
+ * + * optional int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageSize. + */ + @java.lang.Override + public int getPageSize() { + return pageSize_; + } + + public static final int PAGE_TOKEN_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object pageToken_ = ""; + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+   * received from a previous `FetchModelServersRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchModelServersRequest` must match the call that provided the page
+   * token.
+   * 
+ * + * optional string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageToken field is set. + */ + @java.lang.Override + public boolean hasPageToken() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+   * received from a previous `FetchModelServersRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchModelServersRequest` must match the call that provided the page
+   * token.
+   * 
+ * + * optional string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageToken. + */ + @java.lang.Override + public java.lang.String getPageToken() { + java.lang.Object ref = pageToken_; + 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(); + pageToken_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+   * received from a previous `FetchModelServersRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchModelServersRequest` must match the call that provided the page
+   * token.
+   * 
+ * + * optional string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pageToken. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPageTokenBytes() { + java.lang.Object ref = pageToken_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + pageToken_ = 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 { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, model_); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeInt32(2, pageSize_); + } + if (((bitField0_ & 0x00000002) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, pageToken_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, model_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, pageSize_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, pageToken_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.FetchModelServersRequest)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.FetchModelServersRequest other = + (com.google.cloud.gkerecommender.v1.FetchModelServersRequest) obj; + + if (!getModel().equals(other.getModel())) return false; + if (hasPageSize() != other.hasPageSize()) return false; + if (hasPageSize()) { + if (getPageSize() != other.getPageSize()) return false; + } + if (hasPageToken() != other.hasPageToken()) return false; + if (hasPageToken()) { + if (!getPageToken().equals(other.getPageToken())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) 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) + MODEL_FIELD_NUMBER; + hash = (53 * hash) + getModel().hashCode(); + if (hasPageSize()) { + hash = (37 * hash) + PAGE_SIZE_FIELD_NUMBER; + hash = (53 * hash) + getPageSize(); + } + if (hasPageToken()) { + hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER; + hash = (53 * hash) + getPageToken().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersRequest parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersRequest parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersRequest parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersRequest parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersRequest 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 com.google.cloud.gkerecommender.v1.FetchModelServersRequest parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersRequest 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 com.google.cloud.gkerecommender.v1.FetchModelServersRequest parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersRequest 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( + com.google.cloud.gkerecommender.v1.FetchModelServersRequest 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; + } + + /** + * + * + *
+   * Request message for
+   * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers].
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchModelServersRequest} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.FetchModelServersRequest) + com.google.cloud.gkerecommender.v1.FetchModelServersRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServersRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServersRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchModelServersRequest.class, + com.google.cloud.gkerecommender.v1.FetchModelServersRequest.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.FetchModelServersRequest.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + model_ = ""; + pageSize_ = 0; + pageToken_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServersRequest_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelServersRequest getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.FetchModelServersRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelServersRequest build() { + com.google.cloud.gkerecommender.v1.FetchModelServersRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelServersRequest buildPartial() { + com.google.cloud.gkerecommender.v1.FetchModelServersRequest result = + new com.google.cloud.gkerecommender.v1.FetchModelServersRequest(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.gkerecommender.v1.FetchModelServersRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.model_ = model_; + } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.pageSize_ = pageSize_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.pageToken_ = pageToken_; + to_bitField0_ |= 0x00000002; + } + result.bitField0_ |= to_bitField0_; + } + + @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 com.google.cloud.gkerecommender.v1.FetchModelServersRequest) { + return mergeFrom((com.google.cloud.gkerecommender.v1.FetchModelServersRequest) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.gkerecommender.v1.FetchModelServersRequest other) { + if (other == com.google.cloud.gkerecommender.v1.FetchModelServersRequest.getDefaultInstance()) + return this; + if (!other.getModel().isEmpty()) { + model_ = other.model_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.hasPageSize()) { + setPageSize(other.getPageSize()); + } + if (other.hasPageToken()) { + pageToken_ = other.pageToken_; + bitField0_ |= 0x00000004; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + model_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: + { + pageSize_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 26: + { + pageToken_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.lang.Object model_ = ""; + + /** + * + * + *
+     * Required. The model for which to list model servers. Open-source models
+     * follow the Huggingface Hub `owner/model_name` format. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The model. + */ + public java.lang.String getModel() { + java.lang.Object ref = model_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + model_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Required. The model for which to list model servers. Open-source models
+     * follow the Huggingface Hub `owner/model_name` format. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for model. + */ + public com.google.protobuf.ByteString getModelBytes() { + java.lang.Object ref = model_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + model_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Required. The model for which to list model servers. Open-source models
+     * follow the Huggingface Hub `owner/model_name` format. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The model to set. + * @return This builder for chaining. + */ + public Builder setModel(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + model_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The model for which to list model servers. Open-source models
+     * follow the Huggingface Hub `owner/model_name` format. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearModel() { + model_ = getDefaultInstance().getModel(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The model for which to list model servers. Open-source models
+     * follow the Huggingface Hub `owner/model_name` format. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for model to set. + * @return This builder for chaining. + */ + public Builder setModelBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + model_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private int pageSize_; + + /** + * + * + *
+     * Optional. The target number of results to return in a single response.
+     * If not specified, a default value will be chosen by the service.
+     * Note that the response may include a partial list and a caller should
+     * only rely on the response's
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+     * to determine if there are more instances left to be queried.
+     * 
+ * + * optional int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageSize field is set. + */ + @java.lang.Override + public boolean hasPageSize() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Optional. The target number of results to return in a single response.
+     * If not specified, a default value will be chosen by the service.
+     * Note that the response may include a partial list and a caller should
+     * only rely on the response's
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+     * to determine if there are more instances left to be queried.
+     * 
+ * + * optional int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageSize. + */ + @java.lang.Override + public int getPageSize() { + return pageSize_; + } + + /** + * + * + *
+     * Optional. The target number of results to return in a single response.
+     * If not specified, a default value will be chosen by the service.
+     * Note that the response may include a partial list and a caller should
+     * only rely on the response's
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+     * to determine if there are more instances left to be queried.
+     * 
+ * + * optional int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The pageSize to set. + * @return This builder for chaining. + */ + public Builder setPageSize(int value) { + + pageSize_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The target number of results to return in a single response.
+     * If not specified, a default value will be chosen by the service.
+     * Note that the response may include a partial list and a caller should
+     * only rely on the response's
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+     * to determine if there are more instances left to be queried.
+     * 
+ * + * optional int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearPageSize() { + bitField0_ = (bitField0_ & ~0x00000002); + pageSize_ = 0; + onChanged(); + return this; + } + + private java.lang.Object pageToken_ = ""; + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+     * received from a previous `FetchModelServersRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchModelServersRequest` must match the call that provided the page
+     * token.
+     * 
+ * + * optional string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageToken field is set. + */ + public boolean hasPageToken() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+     * received from a previous `FetchModelServersRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchModelServersRequest` must match the call that provided the page
+     * token.
+     * 
+ * + * optional string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageToken. + */ + public java.lang.String getPageToken() { + java.lang.Object ref = pageToken_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pageToken_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+     * received from a previous `FetchModelServersRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchModelServersRequest` must match the call that provided the page
+     * token.
+     * 
+ * + * optional string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pageToken. + */ + public com.google.protobuf.ByteString getPageTokenBytes() { + java.lang.Object ref = pageToken_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + pageToken_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+     * received from a previous `FetchModelServersRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchModelServersRequest` must match the call that provided the page
+     * token.
+     * 
+ * + * optional string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The pageToken to set. + * @return This builder for chaining. + */ + public Builder setPageToken(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + pageToken_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+     * received from a previous `FetchModelServersRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchModelServersRequest` must match the call that provided the page
+     * token.
+     * 
+ * + * optional string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearPageToken() { + pageToken_ = getDefaultInstance().getPageToken(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+     * received from a previous `FetchModelServersRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchModelServersRequest` must match the call that provided the page
+     * token.
+     * 
+ * + * optional string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for pageToken to set. + * @return This builder for chaining. + */ + public Builder setPageTokenBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + pageToken_ = value; + bitField0_ |= 0x00000004; + 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:google.cloud.gkerecommender.v1.FetchModelServersRequest) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.FetchModelServersRequest) + private static final com.google.cloud.gkerecommender.v1.FetchModelServersRequest DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.FetchModelServersRequest(); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FetchModelServersRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelServersRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServersRequestOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServersRequestOrBuilder.java new file mode 100644 index 000000000000..be0d5331414e --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServersRequestOrBuilder.java @@ -0,0 +1,151 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface FetchModelServersRequestOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.FetchModelServersRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Required. The model for which to list model servers. Open-source models
+   * follow the Huggingface Hub `owner/model_name` format. Use
+   * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+   * to find available models.
+   * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The model. + */ + java.lang.String getModel(); + + /** + * + * + *
+   * Required. The model for which to list model servers. Open-source models
+   * follow the Huggingface Hub `owner/model_name` format. Use
+   * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+   * to find available models.
+   * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for model. + */ + com.google.protobuf.ByteString getModelBytes(); + + /** + * + * + *
+   * Optional. The target number of results to return in a single response.
+   * If not specified, a default value will be chosen by the service.
+   * Note that the response may include a partial list and a caller should
+   * only rely on the response's
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+   * to determine if there are more instances left to be queried.
+   * 
+ * + * optional int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageSize field is set. + */ + boolean hasPageSize(); + + /** + * + * + *
+   * Optional. The target number of results to return in a single response.
+   * If not specified, a default value will be chosen by the service.
+   * Note that the response may include a partial list and a caller should
+   * only rely on the response's
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+   * to determine if there are more instances left to be queried.
+   * 
+ * + * optional int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageSize. + */ + int getPageSize(); + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+   * received from a previous `FetchModelServersRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchModelServersRequest` must match the call that provided the page
+   * token.
+   * 
+ * + * optional string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageToken field is set. + */ + boolean hasPageToken(); + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+   * received from a previous `FetchModelServersRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchModelServersRequest` must match the call that provided the page
+   * token.
+   * 
+ * + * optional string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageToken. + */ + java.lang.String getPageToken(); + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token]
+   * received from a previous `FetchModelServersRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchModelServersRequest` must match the call that provided the page
+   * token.
+   * 
+ * + * optional string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pageToken. + */ + com.google.protobuf.ByteString getPageTokenBytes(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServersResponse.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServersResponse.java new file mode 100644 index 000000000000..f35bb88a8029 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServersResponse.java @@ -0,0 +1,972 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Response message for
+ * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers].
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchModelServersResponse} + */ +public final class FetchModelServersResponse extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.FetchModelServersResponse) + FetchModelServersResponseOrBuilder { + private static final long serialVersionUID = 0L; + + // Use FetchModelServersResponse.newBuilder() to construct. + private FetchModelServersResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private FetchModelServersResponse() { + modelServers_ = com.google.protobuf.LazyStringArrayList.emptyList(); + nextPageToken_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new FetchModelServersResponse(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServersResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServersResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchModelServersResponse.class, + com.google.cloud.gkerecommender.v1.FetchModelServersResponse.Builder.class); + } + + public static final int MODEL_SERVERS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList modelServers_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+   * Output only. List of available model servers. Open-source model servers use
+   * simplified, lowercase names (e.g., `vllm`).
+   * 
+ * + * repeated string model_servers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return A list containing the modelServers. + */ + public com.google.protobuf.ProtocolStringList getModelServersList() { + return modelServers_; + } + + /** + * + * + *
+   * Output only. List of available model servers. Open-source model servers use
+   * simplified, lowercase names (e.g., `vllm`).
+   * 
+ * + * repeated string model_servers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The count of modelServers. + */ + public int getModelServersCount() { + return modelServers_.size(); + } + + /** + * + * + *
+   * Output only. List of available model servers. Open-source model servers use
+   * simplified, lowercase names (e.g., `vllm`).
+   * 
+ * + * repeated string model_servers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index of the element to return. + * @return The modelServers at the given index. + */ + public java.lang.String getModelServers(int index) { + return modelServers_.get(index); + } + + /** + * + * + *
+   * Output only. List of available model servers. Open-source model servers use
+   * simplified, lowercase names (e.g., `vllm`).
+   * 
+ * + * repeated string model_servers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index of the value to return. + * @return The bytes of the modelServers at the given index. + */ + public com.google.protobuf.ByteString getModelServersBytes(int index) { + return modelServers_.getByteString(index); + } + + public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object nextPageToken_ = ""; + + /** + * + * + *
+   * Output only. A token which may be sent as
+   * [page_token][FetchModelServersResponse.page_token] in a subsequent
+   * `FetchModelServersResponse` call to retrieve the next page of results.
+   * If this field is omitted or empty, then there are no more results to
+   * return.
+   * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The nextPageToken. + */ + @java.lang.Override + public java.lang.String getNextPageToken() { + java.lang.Object ref = nextPageToken_; + 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(); + nextPageToken_ = s; + return s; + } + } + + /** + * + * + *
+   * Output only. A token which may be sent as
+   * [page_token][FetchModelServersResponse.page_token] in a subsequent
+   * `FetchModelServersResponse` call to retrieve the next page of results.
+   * If this field is omitted or empty, then there are no more results to
+   * return.
+   * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for nextPageToken. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNextPageTokenBytes() { + java.lang.Object ref = nextPageToken_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + nextPageToken_ = 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 { + for (int i = 0; i < modelServers_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, modelServers_.getRaw(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, nextPageToken_); + } + getUnknownFields().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 < modelServers_.size(); i++) { + dataSize += computeStringSizeNoTag(modelServers_.getRaw(i)); + } + size += dataSize; + size += 1 * getModelServersList().size(); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, nextPageToken_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.FetchModelServersResponse)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.FetchModelServersResponse other = + (com.google.cloud.gkerecommender.v1.FetchModelServersResponse) obj; + + if (!getModelServersList().equals(other.getModelServersList())) return false; + if (!getNextPageToken().equals(other.getNextPageToken())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getModelServersCount() > 0) { + hash = (37 * hash) + MODEL_SERVERS_FIELD_NUMBER; + hash = (53 * hash) + getModelServersList().hashCode(); + } + hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER; + hash = (53 * hash) + getNextPageToken().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersResponse parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersResponse parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersResponse parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersResponse parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersResponse 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 com.google.cloud.gkerecommender.v1.FetchModelServersResponse parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersResponse 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 com.google.cloud.gkerecommender.v1.FetchModelServersResponse parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersResponse 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( + com.google.cloud.gkerecommender.v1.FetchModelServersResponse 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; + } + + /** + * + * + *
+   * Response message for
+   * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers].
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchModelServersResponse} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.FetchModelServersResponse) + com.google.cloud.gkerecommender.v1.FetchModelServersResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServersResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServersResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchModelServersResponse.class, + com.google.cloud.gkerecommender.v1.FetchModelServersResponse.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.FetchModelServersResponse.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + modelServers_ = com.google.protobuf.LazyStringArrayList.emptyList(); + nextPageToken_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelServersResponse_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelServersResponse + getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.FetchModelServersResponse.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelServersResponse build() { + com.google.cloud.gkerecommender.v1.FetchModelServersResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelServersResponse buildPartial() { + com.google.cloud.gkerecommender.v1.FetchModelServersResponse result = + new com.google.cloud.gkerecommender.v1.FetchModelServersResponse(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.cloud.gkerecommender.v1.FetchModelServersResponse result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + modelServers_.makeImmutable(); + result.modelServers_ = modelServers_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.nextPageToken_ = nextPageToken_; + } + } + + @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 com.google.cloud.gkerecommender.v1.FetchModelServersResponse) { + return mergeFrom((com.google.cloud.gkerecommender.v1.FetchModelServersResponse) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.gkerecommender.v1.FetchModelServersResponse other) { + if (other + == com.google.cloud.gkerecommender.v1.FetchModelServersResponse.getDefaultInstance()) + return this; + if (!other.modelServers_.isEmpty()) { + if (modelServers_.isEmpty()) { + modelServers_ = other.modelServers_; + bitField0_ |= 0x00000001; + } else { + ensureModelServersIsMutable(); + modelServers_.addAll(other.modelServers_); + } + onChanged(); + } + if (!other.getNextPageToken().isEmpty()) { + nextPageToken_ = other.nextPageToken_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + 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(); + ensureModelServersIsMutable(); + modelServers_.add(s); + break; + } // case 10 + case 18: + { + nextPageToken_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.protobuf.LazyStringArrayList modelServers_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensureModelServersIsMutable() { + if (!modelServers_.isModifiable()) { + modelServers_ = new com.google.protobuf.LazyStringArrayList(modelServers_); + } + bitField0_ |= 0x00000001; + } + + /** + * + * + *
+     * Output only. List of available model servers. Open-source model servers use
+     * simplified, lowercase names (e.g., `vllm`).
+     * 
+ * + * repeated string model_servers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return A list containing the modelServers. + */ + public com.google.protobuf.ProtocolStringList getModelServersList() { + modelServers_.makeImmutable(); + return modelServers_; + } + + /** + * + * + *
+     * Output only. List of available model servers. Open-source model servers use
+     * simplified, lowercase names (e.g., `vllm`).
+     * 
+ * + * repeated string model_servers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The count of modelServers. + */ + public int getModelServersCount() { + return modelServers_.size(); + } + + /** + * + * + *
+     * Output only. List of available model servers. Open-source model servers use
+     * simplified, lowercase names (e.g., `vllm`).
+     * 
+ * + * repeated string model_servers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index of the element to return. + * @return The modelServers at the given index. + */ + public java.lang.String getModelServers(int index) { + return modelServers_.get(index); + } + + /** + * + * + *
+     * Output only. List of available model servers. Open-source model servers use
+     * simplified, lowercase names (e.g., `vllm`).
+     * 
+ * + * repeated string model_servers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index of the value to return. + * @return The bytes of the modelServers at the given index. + */ + public com.google.protobuf.ByteString getModelServersBytes(int index) { + return modelServers_.getByteString(index); + } + + /** + * + * + *
+     * Output only. List of available model servers. Open-source model servers use
+     * simplified, lowercase names (e.g., `vllm`).
+     * 
+ * + * repeated string model_servers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index to set the value at. + * @param value The modelServers to set. + * @return This builder for chaining. + */ + public Builder setModelServers(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureModelServersIsMutable(); + modelServers_.set(index, value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. List of available model servers. Open-source model servers use
+     * simplified, lowercase names (e.g., `vllm`).
+     * 
+ * + * repeated string model_servers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The modelServers to add. + * @return This builder for chaining. + */ + public Builder addModelServers(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureModelServersIsMutable(); + modelServers_.add(value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. List of available model servers. Open-source model servers use
+     * simplified, lowercase names (e.g., `vllm`).
+     * 
+ * + * repeated string model_servers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param values The modelServers to add. + * @return This builder for chaining. + */ + public Builder addAllModelServers(java.lang.Iterable values) { + ensureModelServersIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, modelServers_); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. List of available model servers. Open-source model servers use
+     * simplified, lowercase names (e.g., `vllm`).
+     * 
+ * + * repeated string model_servers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearModelServers() { + modelServers_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + ; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. List of available model servers. Open-source model servers use
+     * simplified, lowercase names (e.g., `vllm`).
+     * 
+ * + * repeated string model_servers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The bytes of the modelServers to add. + * @return This builder for chaining. + */ + public Builder addModelServersBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureModelServersIsMutable(); + modelServers_.add(value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object nextPageToken_ = ""; + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchModelServersResponse.page_token] in a subsequent
+     * `FetchModelServersResponse` call to retrieve the next page of results.
+     * If this field is omitted or empty, then there are no more results to
+     * return.
+     * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The nextPageToken. + */ + public java.lang.String getNextPageToken() { + java.lang.Object ref = nextPageToken_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + nextPageToken_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchModelServersResponse.page_token] in a subsequent
+     * `FetchModelServersResponse` call to retrieve the next page of results.
+     * If this field is omitted or empty, then there are no more results to
+     * return.
+     * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for nextPageToken. + */ + public com.google.protobuf.ByteString getNextPageTokenBytes() { + java.lang.Object ref = nextPageToken_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + nextPageToken_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchModelServersResponse.page_token] in a subsequent
+     * `FetchModelServersResponse` call to retrieve the next page of results.
+     * If this field is omitted or empty, then there are no more results to
+     * return.
+     * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The nextPageToken to set. + * @return This builder for chaining. + */ + public Builder setNextPageToken(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + nextPageToken_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchModelServersResponse.page_token] in a subsequent
+     * `FetchModelServersResponse` call to retrieve the next page of results.
+     * If this field is omitted or empty, then there are no more results to
+     * return.
+     * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearNextPageToken() { + nextPageToken_ = getDefaultInstance().getNextPageToken(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchModelServersResponse.page_token] in a subsequent
+     * `FetchModelServersResponse` call to retrieve the next page of results.
+     * If this field is omitted or empty, then there are no more results to
+     * return.
+     * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The bytes for nextPageToken to set. + * @return This builder for chaining. + */ + public Builder setNextPageTokenBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + nextPageToken_ = value; + bitField0_ |= 0x00000002; + 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:google.cloud.gkerecommender.v1.FetchModelServersResponse) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.FetchModelServersResponse) + private static final com.google.cloud.gkerecommender.v1.FetchModelServersResponse + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.FetchModelServersResponse(); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelServersResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FetchModelServersResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelServersResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServersResponseOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServersResponseOrBuilder.java new file mode 100644 index 000000000000..095e63163895 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelServersResponseOrBuilder.java @@ -0,0 +1,118 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface FetchModelServersResponseOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.FetchModelServersResponse) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Output only. List of available model servers. Open-source model servers use
+   * simplified, lowercase names (e.g., `vllm`).
+   * 
+ * + * repeated string model_servers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return A list containing the modelServers. + */ + java.util.List getModelServersList(); + + /** + * + * + *
+   * Output only. List of available model servers. Open-source model servers use
+   * simplified, lowercase names (e.g., `vllm`).
+   * 
+ * + * repeated string model_servers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The count of modelServers. + */ + int getModelServersCount(); + + /** + * + * + *
+   * Output only. List of available model servers. Open-source model servers use
+   * simplified, lowercase names (e.g., `vllm`).
+   * 
+ * + * repeated string model_servers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index of the element to return. + * @return The modelServers at the given index. + */ + java.lang.String getModelServers(int index); + + /** + * + * + *
+   * Output only. List of available model servers. Open-source model servers use
+   * simplified, lowercase names (e.g., `vllm`).
+   * 
+ * + * repeated string model_servers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index of the value to return. + * @return The bytes of the modelServers at the given index. + */ + com.google.protobuf.ByteString getModelServersBytes(int index); + + /** + * + * + *
+   * Output only. A token which may be sent as
+   * [page_token][FetchModelServersResponse.page_token] in a subsequent
+   * `FetchModelServersResponse` call to retrieve the next page of results.
+   * If this field is omitted or empty, then there are no more results to
+   * return.
+   * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The nextPageToken. + */ + java.lang.String getNextPageToken(); + + /** + * + * + *
+   * Output only. A token which may be sent as
+   * [page_token][FetchModelServersResponse.page_token] in a subsequent
+   * `FetchModelServersResponse` call to retrieve the next page of results.
+   * If this field is omitted or empty, then there are no more results to
+   * return.
+   * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for nextPageToken. + */ + com.google.protobuf.ByteString getNextPageTokenBytes(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelsRequest.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelsRequest.java new file mode 100644 index 000000000000..6444662f1163 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelsRequest.java @@ -0,0 +1,887 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Request message for
+ * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels].
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchModelsRequest} + */ +public final class FetchModelsRequest extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.FetchModelsRequest) + FetchModelsRequestOrBuilder { + private static final long serialVersionUID = 0L; + + // Use FetchModelsRequest.newBuilder() to construct. + private FetchModelsRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private FetchModelsRequest() { + pageToken_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new FetchModelsRequest(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelsRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelsRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchModelsRequest.class, + com.google.cloud.gkerecommender.v1.FetchModelsRequest.Builder.class); + } + + private int bitField0_; + public static final int PAGE_SIZE_FIELD_NUMBER = 1; + private int pageSize_ = 0; + + /** + * + * + *
+   * Optional. The target number of results to return in a single response.
+   * If not specified, a default value will be chosen by the service.
+   * Note that the response may include a partial list and a caller should
+   * only rely on the response's
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+   * to determine if there are more instances left to be queried.
+   * 
+ * + * optional int32 page_size = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageSize field is set. + */ + @java.lang.Override + public boolean hasPageSize() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Optional. The target number of results to return in a single response.
+   * If not specified, a default value will be chosen by the service.
+   * Note that the response may include a partial list and a caller should
+   * only rely on the response's
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+   * to determine if there are more instances left to be queried.
+   * 
+ * + * optional int32 page_size = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageSize. + */ + @java.lang.Override + public int getPageSize() { + return pageSize_; + } + + public static final int PAGE_TOKEN_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object pageToken_ = ""; + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+   * received from a previous `FetchModelsRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchModelsRequest` must match the call that provided the page token.
+   * 
+ * + * optional string page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageToken field is set. + */ + @java.lang.Override + public boolean hasPageToken() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+   * received from a previous `FetchModelsRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchModelsRequest` must match the call that provided the page token.
+   * 
+ * + * optional string page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageToken. + */ + @java.lang.Override + public java.lang.String getPageToken() { + java.lang.Object ref = pageToken_; + 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(); + pageToken_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+   * received from a previous `FetchModelsRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchModelsRequest` must match the call that provided the page token.
+   * 
+ * + * optional string page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pageToken. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPageTokenBytes() { + java.lang.Object ref = pageToken_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + pageToken_ = 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 { + if (((bitField0_ & 0x00000001) != 0)) { + output.writeInt32(1, pageSize_); + } + if (((bitField0_ & 0x00000002) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, pageToken_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, pageSize_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, pageToken_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.FetchModelsRequest)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.FetchModelsRequest other = + (com.google.cloud.gkerecommender.v1.FetchModelsRequest) obj; + + if (hasPageSize() != other.hasPageSize()) return false; + if (hasPageSize()) { + if (getPageSize() != other.getPageSize()) return false; + } + if (hasPageToken() != other.hasPageToken()) return false; + if (hasPageToken()) { + if (!getPageToken().equals(other.getPageToken())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasPageSize()) { + hash = (37 * hash) + PAGE_SIZE_FIELD_NUMBER; + hash = (53 * hash) + getPageSize(); + } + if (hasPageToken()) { + hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER; + hash = (53 * hash) + getPageToken().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsRequest parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsRequest parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsRequest parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsRequest parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsRequest 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 com.google.cloud.gkerecommender.v1.FetchModelsRequest parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsRequest 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 com.google.cloud.gkerecommender.v1.FetchModelsRequest parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsRequest 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( + com.google.cloud.gkerecommender.v1.FetchModelsRequest 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; + } + + /** + * + * + *
+   * Request message for
+   * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels].
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchModelsRequest} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.FetchModelsRequest) + com.google.cloud.gkerecommender.v1.FetchModelsRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelsRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelsRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchModelsRequest.class, + com.google.cloud.gkerecommender.v1.FetchModelsRequest.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.FetchModelsRequest.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + pageSize_ = 0; + pageToken_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelsRequest_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelsRequest getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.FetchModelsRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelsRequest build() { + com.google.cloud.gkerecommender.v1.FetchModelsRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelsRequest buildPartial() { + com.google.cloud.gkerecommender.v1.FetchModelsRequest result = + new com.google.cloud.gkerecommender.v1.FetchModelsRequest(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.gkerecommender.v1.FetchModelsRequest result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.pageSize_ = pageSize_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.pageToken_ = pageToken_; + to_bitField0_ |= 0x00000002; + } + result.bitField0_ |= to_bitField0_; + } + + @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 com.google.cloud.gkerecommender.v1.FetchModelsRequest) { + return mergeFrom((com.google.cloud.gkerecommender.v1.FetchModelsRequest) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.gkerecommender.v1.FetchModelsRequest other) { + if (other == com.google.cloud.gkerecommender.v1.FetchModelsRequest.getDefaultInstance()) + return this; + if (other.hasPageSize()) { + setPageSize(other.getPageSize()); + } + if (other.hasPageToken()) { + pageToken_ = other.pageToken_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: + { + pageSize_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: + { + pageToken_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private int pageSize_; + + /** + * + * + *
+     * Optional. The target number of results to return in a single response.
+     * If not specified, a default value will be chosen by the service.
+     * Note that the response may include a partial list and a caller should
+     * only rely on the response's
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+     * to determine if there are more instances left to be queried.
+     * 
+ * + * optional int32 page_size = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageSize field is set. + */ + @java.lang.Override + public boolean hasPageSize() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Optional. The target number of results to return in a single response.
+     * If not specified, a default value will be chosen by the service.
+     * Note that the response may include a partial list and a caller should
+     * only rely on the response's
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+     * to determine if there are more instances left to be queried.
+     * 
+ * + * optional int32 page_size = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageSize. + */ + @java.lang.Override + public int getPageSize() { + return pageSize_; + } + + /** + * + * + *
+     * Optional. The target number of results to return in a single response.
+     * If not specified, a default value will be chosen by the service.
+     * Note that the response may include a partial list and a caller should
+     * only rely on the response's
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+     * to determine if there are more instances left to be queried.
+     * 
+ * + * optional int32 page_size = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The pageSize to set. + * @return This builder for chaining. + */ + public Builder setPageSize(int value) { + + pageSize_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The target number of results to return in a single response.
+     * If not specified, a default value will be chosen by the service.
+     * Note that the response may include a partial list and a caller should
+     * only rely on the response's
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+     * to determine if there are more instances left to be queried.
+     * 
+ * + * optional int32 page_size = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearPageSize() { + bitField0_ = (bitField0_ & ~0x00000001); + pageSize_ = 0; + onChanged(); + return this; + } + + private java.lang.Object pageToken_ = ""; + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+     * received from a previous `FetchModelsRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchModelsRequest` must match the call that provided the page token.
+     * 
+ * + * optional string page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageToken field is set. + */ + public boolean hasPageToken() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+     * received from a previous `FetchModelsRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchModelsRequest` must match the call that provided the page token.
+     * 
+ * + * optional string page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageToken. + */ + public java.lang.String getPageToken() { + java.lang.Object ref = pageToken_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pageToken_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+     * received from a previous `FetchModelsRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchModelsRequest` must match the call that provided the page token.
+     * 
+ * + * optional string page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pageToken. + */ + public com.google.protobuf.ByteString getPageTokenBytes() { + java.lang.Object ref = pageToken_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + pageToken_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+     * received from a previous `FetchModelsRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchModelsRequest` must match the call that provided the page token.
+     * 
+ * + * optional string page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The pageToken to set. + * @return This builder for chaining. + */ + public Builder setPageToken(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + pageToken_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+     * received from a previous `FetchModelsRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchModelsRequest` must match the call that provided the page token.
+     * 
+ * + * optional string page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearPageToken() { + pageToken_ = getDefaultInstance().getPageToken(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+     * received from a previous `FetchModelsRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchModelsRequest` must match the call that provided the page token.
+     * 
+ * + * optional string page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for pageToken to set. + * @return This builder for chaining. + */ + public Builder setPageTokenBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + pageToken_ = value; + bitField0_ |= 0x00000002; + 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:google.cloud.gkerecommender.v1.FetchModelsRequest) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.FetchModelsRequest) + private static final com.google.cloud.gkerecommender.v1.FetchModelsRequest DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.FetchModelsRequest(); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FetchModelsRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelsRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelsRequestOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelsRequestOrBuilder.java new file mode 100644 index 000000000000..9fc5f0c605ba --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelsRequestOrBuilder.java @@ -0,0 +1,116 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface FetchModelsRequestOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.FetchModelsRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Optional. The target number of results to return in a single response.
+   * If not specified, a default value will be chosen by the service.
+   * Note that the response may include a partial list and a caller should
+   * only rely on the response's
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+   * to determine if there are more instances left to be queried.
+   * 
+ * + * optional int32 page_size = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageSize field is set. + */ + boolean hasPageSize(); + + /** + * + * + *
+   * Optional. The target number of results to return in a single response.
+   * If not specified, a default value will be chosen by the service.
+   * Note that the response may include a partial list and a caller should
+   * only rely on the response's
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+   * to determine if there are more instances left to be queried.
+   * 
+ * + * optional int32 page_size = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageSize. + */ + int getPageSize(); + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+   * received from a previous `FetchModelsRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchModelsRequest` must match the call that provided the page token.
+   * 
+ * + * optional string page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageToken field is set. + */ + boolean hasPageToken(); + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+   * received from a previous `FetchModelsRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchModelsRequest` must match the call that provided the page token.
+   * 
+ * + * optional string page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageToken. + */ + java.lang.String getPageToken(); + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token]
+   * received from a previous `FetchModelsRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchModelsRequest` must match the call that provided the page token.
+   * 
+ * + * optional string page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pageToken. + */ + com.google.protobuf.ByteString getPageTokenBytes(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelsResponse.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelsResponse.java new file mode 100644 index 000000000000..109991e08636 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelsResponse.java @@ -0,0 +1,968 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Response message for
+ * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels].
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchModelsResponse} + */ +public final class FetchModelsResponse extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.FetchModelsResponse) + FetchModelsResponseOrBuilder { + private static final long serialVersionUID = 0L; + + // Use FetchModelsResponse.newBuilder() to construct. + private FetchModelsResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private FetchModelsResponse() { + models_ = com.google.protobuf.LazyStringArrayList.emptyList(); + nextPageToken_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new FetchModelsResponse(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelsResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelsResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchModelsResponse.class, + com.google.cloud.gkerecommender.v1.FetchModelsResponse.Builder.class); + } + + public static final int MODELS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList models_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+   * Output only. List of available models. Open-source models follow the
+   * Huggingface Hub `owner/model_name` format.
+   * 
+ * + * repeated string models = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return A list containing the models. + */ + public com.google.protobuf.ProtocolStringList getModelsList() { + return models_; + } + + /** + * + * + *
+   * Output only. List of available models. Open-source models follow the
+   * Huggingface Hub `owner/model_name` format.
+   * 
+ * + * repeated string models = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The count of models. + */ + public int getModelsCount() { + return models_.size(); + } + + /** + * + * + *
+   * Output only. List of available models. Open-source models follow the
+   * Huggingface Hub `owner/model_name` format.
+   * 
+ * + * repeated string models = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index of the element to return. + * @return The models at the given index. + */ + public java.lang.String getModels(int index) { + return models_.get(index); + } + + /** + * + * + *
+   * Output only. List of available models. Open-source models follow the
+   * Huggingface Hub `owner/model_name` format.
+   * 
+ * + * repeated string models = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index of the value to return. + * @return The bytes of the models at the given index. + */ + public com.google.protobuf.ByteString getModelsBytes(int index) { + return models_.getByteString(index); + } + + public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object nextPageToken_ = ""; + + /** + * + * + *
+   * Output only. A token which may be sent as
+   * [page_token][FetchModelsResponse.page_token] in a subsequent
+   * `FetchModelsResponse` call to retrieve the next page of results.
+   * If this field is omitted or empty, then there are no more results to
+   * return.
+   * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The nextPageToken. + */ + @java.lang.Override + public java.lang.String getNextPageToken() { + java.lang.Object ref = nextPageToken_; + 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(); + nextPageToken_ = s; + return s; + } + } + + /** + * + * + *
+   * Output only. A token which may be sent as
+   * [page_token][FetchModelsResponse.page_token] in a subsequent
+   * `FetchModelsResponse` call to retrieve the next page of results.
+   * If this field is omitted or empty, then there are no more results to
+   * return.
+   * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for nextPageToken. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNextPageTokenBytes() { + java.lang.Object ref = nextPageToken_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + nextPageToken_ = 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 { + for (int i = 0; i < models_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, models_.getRaw(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, nextPageToken_); + } + getUnknownFields().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 < models_.size(); i++) { + dataSize += computeStringSizeNoTag(models_.getRaw(i)); + } + size += dataSize; + size += 1 * getModelsList().size(); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, nextPageToken_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.FetchModelsResponse)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.FetchModelsResponse other = + (com.google.cloud.gkerecommender.v1.FetchModelsResponse) obj; + + if (!getModelsList().equals(other.getModelsList())) return false; + if (!getNextPageToken().equals(other.getNextPageToken())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getModelsCount() > 0) { + hash = (37 * hash) + MODELS_FIELD_NUMBER; + hash = (53 * hash) + getModelsList().hashCode(); + } + hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER; + hash = (53 * hash) + getNextPageToken().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsResponse parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsResponse parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsResponse parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsResponse parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsResponse 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 com.google.cloud.gkerecommender.v1.FetchModelsResponse parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsResponse 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 com.google.cloud.gkerecommender.v1.FetchModelsResponse parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsResponse 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( + com.google.cloud.gkerecommender.v1.FetchModelsResponse 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; + } + + /** + * + * + *
+   * Response message for
+   * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels].
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchModelsResponse} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.FetchModelsResponse) + com.google.cloud.gkerecommender.v1.FetchModelsResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelsResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelsResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchModelsResponse.class, + com.google.cloud.gkerecommender.v1.FetchModelsResponse.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.FetchModelsResponse.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + models_ = com.google.protobuf.LazyStringArrayList.emptyList(); + nextPageToken_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchModelsResponse_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelsResponse getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.FetchModelsResponse.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelsResponse build() { + com.google.cloud.gkerecommender.v1.FetchModelsResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelsResponse buildPartial() { + com.google.cloud.gkerecommender.v1.FetchModelsResponse result = + new com.google.cloud.gkerecommender.v1.FetchModelsResponse(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.gkerecommender.v1.FetchModelsResponse result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + models_.makeImmutable(); + result.models_ = models_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.nextPageToken_ = nextPageToken_; + } + } + + @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 com.google.cloud.gkerecommender.v1.FetchModelsResponse) { + return mergeFrom((com.google.cloud.gkerecommender.v1.FetchModelsResponse) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.gkerecommender.v1.FetchModelsResponse other) { + if (other == com.google.cloud.gkerecommender.v1.FetchModelsResponse.getDefaultInstance()) + return this; + if (!other.models_.isEmpty()) { + if (models_.isEmpty()) { + models_ = other.models_; + bitField0_ |= 0x00000001; + } else { + ensureModelsIsMutable(); + models_.addAll(other.models_); + } + onChanged(); + } + if (!other.getNextPageToken().isEmpty()) { + nextPageToken_ = other.nextPageToken_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + 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(); + ensureModelsIsMutable(); + models_.add(s); + break; + } // case 10 + case 18: + { + nextPageToken_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.protobuf.LazyStringArrayList models_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensureModelsIsMutable() { + if (!models_.isModifiable()) { + models_ = new com.google.protobuf.LazyStringArrayList(models_); + } + bitField0_ |= 0x00000001; + } + + /** + * + * + *
+     * Output only. List of available models. Open-source models follow the
+     * Huggingface Hub `owner/model_name` format.
+     * 
+ * + * repeated string models = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return A list containing the models. + */ + public com.google.protobuf.ProtocolStringList getModelsList() { + models_.makeImmutable(); + return models_; + } + + /** + * + * + *
+     * Output only. List of available models. Open-source models follow the
+     * Huggingface Hub `owner/model_name` format.
+     * 
+ * + * repeated string models = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The count of models. + */ + public int getModelsCount() { + return models_.size(); + } + + /** + * + * + *
+     * Output only. List of available models. Open-source models follow the
+     * Huggingface Hub `owner/model_name` format.
+     * 
+ * + * repeated string models = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index of the element to return. + * @return The models at the given index. + */ + public java.lang.String getModels(int index) { + return models_.get(index); + } + + /** + * + * + *
+     * Output only. List of available models. Open-source models follow the
+     * Huggingface Hub `owner/model_name` format.
+     * 
+ * + * repeated string models = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index of the value to return. + * @return The bytes of the models at the given index. + */ + public com.google.protobuf.ByteString getModelsBytes(int index) { + return models_.getByteString(index); + } + + /** + * + * + *
+     * Output only. List of available models. Open-source models follow the
+     * Huggingface Hub `owner/model_name` format.
+     * 
+ * + * repeated string models = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index to set the value at. + * @param value The models to set. + * @return This builder for chaining. + */ + public Builder setModels(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureModelsIsMutable(); + models_.set(index, value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. List of available models. Open-source models follow the
+     * Huggingface Hub `owner/model_name` format.
+     * 
+ * + * repeated string models = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The models to add. + * @return This builder for chaining. + */ + public Builder addModels(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureModelsIsMutable(); + models_.add(value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. List of available models. Open-source models follow the
+     * Huggingface Hub `owner/model_name` format.
+     * 
+ * + * repeated string models = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param values The models to add. + * @return This builder for chaining. + */ + public Builder addAllModels(java.lang.Iterable values) { + ensureModelsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, models_); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. List of available models. Open-source models follow the
+     * Huggingface Hub `owner/model_name` format.
+     * 
+ * + * repeated string models = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearModels() { + models_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + ; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. List of available models. Open-source models follow the
+     * Huggingface Hub `owner/model_name` format.
+     * 
+ * + * repeated string models = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The bytes of the models to add. + * @return This builder for chaining. + */ + public Builder addModelsBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureModelsIsMutable(); + models_.add(value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object nextPageToken_ = ""; + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchModelsResponse.page_token] in a subsequent
+     * `FetchModelsResponse` call to retrieve the next page of results.
+     * If this field is omitted or empty, then there are no more results to
+     * return.
+     * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The nextPageToken. + */ + public java.lang.String getNextPageToken() { + java.lang.Object ref = nextPageToken_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + nextPageToken_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchModelsResponse.page_token] in a subsequent
+     * `FetchModelsResponse` call to retrieve the next page of results.
+     * If this field is omitted or empty, then there are no more results to
+     * return.
+     * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for nextPageToken. + */ + public com.google.protobuf.ByteString getNextPageTokenBytes() { + java.lang.Object ref = nextPageToken_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + nextPageToken_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchModelsResponse.page_token] in a subsequent
+     * `FetchModelsResponse` call to retrieve the next page of results.
+     * If this field is omitted or empty, then there are no more results to
+     * return.
+     * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The nextPageToken to set. + * @return This builder for chaining. + */ + public Builder setNextPageToken(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + nextPageToken_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchModelsResponse.page_token] in a subsequent
+     * `FetchModelsResponse` call to retrieve the next page of results.
+     * If this field is omitted or empty, then there are no more results to
+     * return.
+     * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearNextPageToken() { + nextPageToken_ = getDefaultInstance().getNextPageToken(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchModelsResponse.page_token] in a subsequent
+     * `FetchModelsResponse` call to retrieve the next page of results.
+     * If this field is omitted or empty, then there are no more results to
+     * return.
+     * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The bytes for nextPageToken to set. + * @return This builder for chaining. + */ + public Builder setNextPageTokenBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + nextPageToken_ = value; + bitField0_ |= 0x00000002; + 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:google.cloud.gkerecommender.v1.FetchModelsResponse) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.FetchModelsResponse) + private static final com.google.cloud.gkerecommender.v1.FetchModelsResponse DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.FetchModelsResponse(); + } + + public static com.google.cloud.gkerecommender.v1.FetchModelsResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FetchModelsResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchModelsResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelsResponseOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelsResponseOrBuilder.java new file mode 100644 index 000000000000..14a9b7321143 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchModelsResponseOrBuilder.java @@ -0,0 +1,118 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface FetchModelsResponseOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.FetchModelsResponse) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Output only. List of available models. Open-source models follow the
+   * Huggingface Hub `owner/model_name` format.
+   * 
+ * + * repeated string models = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return A list containing the models. + */ + java.util.List getModelsList(); + + /** + * + * + *
+   * Output only. List of available models. Open-source models follow the
+   * Huggingface Hub `owner/model_name` format.
+   * 
+ * + * repeated string models = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The count of models. + */ + int getModelsCount(); + + /** + * + * + *
+   * Output only. List of available models. Open-source models follow the
+   * Huggingface Hub `owner/model_name` format.
+   * 
+ * + * repeated string models = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index of the element to return. + * @return The models at the given index. + */ + java.lang.String getModels(int index); + + /** + * + * + *
+   * Output only. List of available models. Open-source models follow the
+   * Huggingface Hub `owner/model_name` format.
+   * 
+ * + * repeated string models = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index of the value to return. + * @return The bytes of the models at the given index. + */ + com.google.protobuf.ByteString getModelsBytes(int index); + + /** + * + * + *
+   * Output only. A token which may be sent as
+   * [page_token][FetchModelsResponse.page_token] in a subsequent
+   * `FetchModelsResponse` call to retrieve the next page of results.
+   * If this field is omitted or empty, then there are no more results to
+   * return.
+   * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The nextPageToken. + */ + java.lang.String getNextPageToken(); + + /** + * + * + *
+   * Output only. A token which may be sent as
+   * [page_token][FetchModelsResponse.page_token] in a subsequent
+   * `FetchModelsResponse` call to retrieve the next page of results.
+   * If this field is omitted or empty, then there are no more results to
+   * return.
+   * 
+ * + * string next_page_token = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for nextPageToken. + */ + com.google.protobuf.ByteString getNextPageTokenBytes(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchProfilesRequest.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchProfilesRequest.java new file mode 100644 index 000000000000..c2891b13bd51 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchProfilesRequest.java @@ -0,0 +1,1882 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Request message for
+ * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles].
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchProfilesRequest} + */ +public final class FetchProfilesRequest extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.FetchProfilesRequest) + FetchProfilesRequestOrBuilder { + private static final long serialVersionUID = 0L; + + // Use FetchProfilesRequest.newBuilder() to construct. + private FetchProfilesRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private FetchProfilesRequest() { + model_ = ""; + modelServer_ = ""; + modelServerVersion_ = ""; + pageToken_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new FetchProfilesRequest(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchProfilesRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchProfilesRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchProfilesRequest.class, + com.google.cloud.gkerecommender.v1.FetchProfilesRequest.Builder.class); + } + + private int bitField0_; + public static final int MODEL_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object model_ = ""; + + /** + * + * + *
+   * Optional. The model to filter profiles by. Open-source models follow the
+   * Huggingface Hub `owner/model_name` format. If not provided, all models are
+   * returned. Use
+   * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+   * to find available models.
+   * 
+ * + * string model = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The model. + */ + @java.lang.Override + public java.lang.String getModel() { + java.lang.Object ref = model_; + 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(); + model_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. The model to filter profiles by. Open-source models follow the
+   * Huggingface Hub `owner/model_name` format. If not provided, all models are
+   * returned. Use
+   * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+   * to find available models.
+   * 
+ * + * string model = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for model. + */ + @java.lang.Override + public com.google.protobuf.ByteString getModelBytes() { + java.lang.Object ref = model_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + model_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MODEL_SERVER_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object modelServer_ = ""; + + /** + * + * + *
+   * Optional. The model server to filter profiles by. If not provided, all
+   * model servers are returned. Use
+   * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+   * to find available model servers for a given model.
+   * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The modelServer. + */ + @java.lang.Override + public java.lang.String getModelServer() { + java.lang.Object ref = modelServer_; + 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(); + modelServer_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. The model server to filter profiles by. If not provided, all
+   * model servers are returned. Use
+   * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+   * to find available model servers for a given model.
+   * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for modelServer. + */ + @java.lang.Override + public com.google.protobuf.ByteString getModelServerBytes() { + java.lang.Object ref = modelServer_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + modelServer_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MODEL_SERVER_VERSION_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object modelServerVersion_ = ""; + + /** + * + * + *
+   * Optional. The model server version to filter profiles by. If not provided,
+   * all model server versions are returned. Use
+   * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]
+   * to find available versions for a given model and server.
+   * 
+ * + * string model_server_version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The modelServerVersion. + */ + @java.lang.Override + public java.lang.String getModelServerVersion() { + java.lang.Object ref = modelServerVersion_; + 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(); + modelServerVersion_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. The model server version to filter profiles by. If not provided,
+   * all model server versions are returned. Use
+   * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]
+   * to find available versions for a given model and server.
+   * 
+ * + * string model_server_version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for modelServerVersion. + */ + @java.lang.Override + public com.google.protobuf.ByteString getModelServerVersionBytes() { + java.lang.Object ref = modelServerVersion_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + modelServerVersion_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PERFORMANCE_REQUIREMENTS_FIELD_NUMBER = 4; + private com.google.cloud.gkerecommender.v1.PerformanceRequirements performanceRequirements_; + + /** + * + * + *
+   * Optional. The performance requirements to filter profiles. Profiles that do
+   * not meet these requirements are filtered out. If not provided, all profiles
+   * are returned.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the performanceRequirements field is set. + */ + @java.lang.Override + public boolean hasPerformanceRequirements() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Optional. The performance requirements to filter profiles. Profiles that do
+   * not meet these requirements are filtered out. If not provided, all profiles
+   * are returned.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The performanceRequirements. + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceRequirements getPerformanceRequirements() { + return performanceRequirements_ == null + ? com.google.cloud.gkerecommender.v1.PerformanceRequirements.getDefaultInstance() + : performanceRequirements_; + } + + /** + * + * + *
+   * Optional. The performance requirements to filter profiles. Profiles that do
+   * not meet these requirements are filtered out. If not provided, all profiles
+   * are returned.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceRequirementsOrBuilder + getPerformanceRequirementsOrBuilder() { + return performanceRequirements_ == null + ? com.google.cloud.gkerecommender.v1.PerformanceRequirements.getDefaultInstance() + : performanceRequirements_; + } + + public static final int PAGE_SIZE_FIELD_NUMBER = 5; + private int pageSize_ = 0; + + /** + * + * + *
+   * Optional. The target number of results to return in a single response. If
+   * not specified, a default value will be chosen by the service. Note that the
+   * response may include a partial list and a caller should only rely on the
+   * response's
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+   * to determine if there are more instances left to be queried.
+   * 
+ * + * optional int32 page_size = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageSize field is set. + */ + @java.lang.Override + public boolean hasPageSize() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Optional. The target number of results to return in a single response. If
+   * not specified, a default value will be chosen by the service. Note that the
+   * response may include a partial list and a caller should only rely on the
+   * response's
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+   * to determine if there are more instances left to be queried.
+   * 
+ * + * optional int32 page_size = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageSize. + */ + @java.lang.Override + public int getPageSize() { + return pageSize_; + } + + public static final int PAGE_TOKEN_FIELD_NUMBER = 6; + + @SuppressWarnings("serial") + private volatile java.lang.Object pageToken_ = ""; + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+   * received from a previous `FetchProfilesRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchProfilesRequest` must match the call that provided the page
+   * token.
+   * 
+ * + * optional string page_token = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageToken field is set. + */ + @java.lang.Override + public boolean hasPageToken() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+   * received from a previous `FetchProfilesRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchProfilesRequest` must match the call that provided the page
+   * token.
+   * 
+ * + * optional string page_token = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageToken. + */ + @java.lang.Override + public java.lang.String getPageToken() { + java.lang.Object ref = pageToken_; + 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(); + pageToken_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+   * received from a previous `FetchProfilesRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchProfilesRequest` must match the call that provided the page
+   * token.
+   * 
+ * + * optional string page_token = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pageToken. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPageTokenBytes() { + java.lang.Object ref = pageToken_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + pageToken_ = 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 { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, model_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(modelServer_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, modelServer_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(modelServerVersion_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, modelServerVersion_); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(4, getPerformanceRequirements()); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeInt32(5, pageSize_); + } + if (((bitField0_ & 0x00000004) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, pageToken_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, model_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(modelServer_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, modelServer_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(modelServerVersion_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, modelServerVersion_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(4, getPerformanceRequirements()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(5, pageSize_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, pageToken_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.FetchProfilesRequest)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.FetchProfilesRequest other = + (com.google.cloud.gkerecommender.v1.FetchProfilesRequest) obj; + + if (!getModel().equals(other.getModel())) return false; + if (!getModelServer().equals(other.getModelServer())) return false; + if (!getModelServerVersion().equals(other.getModelServerVersion())) return false; + if (hasPerformanceRequirements() != other.hasPerformanceRequirements()) return false; + if (hasPerformanceRequirements()) { + if (!getPerformanceRequirements().equals(other.getPerformanceRequirements())) return false; + } + if (hasPageSize() != other.hasPageSize()) return false; + if (hasPageSize()) { + if (getPageSize() != other.getPageSize()) return false; + } + if (hasPageToken() != other.hasPageToken()) return false; + if (hasPageToken()) { + if (!getPageToken().equals(other.getPageToken())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) 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) + MODEL_FIELD_NUMBER; + hash = (53 * hash) + getModel().hashCode(); + hash = (37 * hash) + MODEL_SERVER_FIELD_NUMBER; + hash = (53 * hash) + getModelServer().hashCode(); + hash = (37 * hash) + MODEL_SERVER_VERSION_FIELD_NUMBER; + hash = (53 * hash) + getModelServerVersion().hashCode(); + if (hasPerformanceRequirements()) { + hash = (37 * hash) + PERFORMANCE_REQUIREMENTS_FIELD_NUMBER; + hash = (53 * hash) + getPerformanceRequirements().hashCode(); + } + if (hasPageSize()) { + hash = (37 * hash) + PAGE_SIZE_FIELD_NUMBER; + hash = (53 * hash) + getPageSize(); + } + if (hasPageToken()) { + hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER; + hash = (53 * hash) + getPageToken().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesRequest parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesRequest parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesRequest parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesRequest parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesRequest 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 com.google.cloud.gkerecommender.v1.FetchProfilesRequest parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesRequest 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 com.google.cloud.gkerecommender.v1.FetchProfilesRequest parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesRequest 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( + com.google.cloud.gkerecommender.v1.FetchProfilesRequest 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; + } + + /** + * + * + *
+   * Request message for
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles].
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchProfilesRequest} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.FetchProfilesRequest) + com.google.cloud.gkerecommender.v1.FetchProfilesRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchProfilesRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchProfilesRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchProfilesRequest.class, + com.google.cloud.gkerecommender.v1.FetchProfilesRequest.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.FetchProfilesRequest.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getPerformanceRequirementsFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + model_ = ""; + modelServer_ = ""; + modelServerVersion_ = ""; + performanceRequirements_ = null; + if (performanceRequirementsBuilder_ != null) { + performanceRequirementsBuilder_.dispose(); + performanceRequirementsBuilder_ = null; + } + pageSize_ = 0; + pageToken_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchProfilesRequest_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchProfilesRequest getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.FetchProfilesRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchProfilesRequest build() { + com.google.cloud.gkerecommender.v1.FetchProfilesRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchProfilesRequest buildPartial() { + com.google.cloud.gkerecommender.v1.FetchProfilesRequest result = + new com.google.cloud.gkerecommender.v1.FetchProfilesRequest(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.gkerecommender.v1.FetchProfilesRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.model_ = model_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.modelServer_ = modelServer_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.modelServerVersion_ = modelServerVersion_; + } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000008) != 0)) { + result.performanceRequirements_ = + performanceRequirementsBuilder_ == null + ? performanceRequirements_ + : performanceRequirementsBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.pageSize_ = pageSize_; + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.pageToken_ = pageToken_; + to_bitField0_ |= 0x00000004; + } + result.bitField0_ |= to_bitField0_; + } + + @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 com.google.cloud.gkerecommender.v1.FetchProfilesRequest) { + return mergeFrom((com.google.cloud.gkerecommender.v1.FetchProfilesRequest) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.gkerecommender.v1.FetchProfilesRequest other) { + if (other == com.google.cloud.gkerecommender.v1.FetchProfilesRequest.getDefaultInstance()) + return this; + if (!other.getModel().isEmpty()) { + model_ = other.model_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getModelServer().isEmpty()) { + modelServer_ = other.modelServer_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getModelServerVersion().isEmpty()) { + modelServerVersion_ = other.modelServerVersion_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.hasPerformanceRequirements()) { + mergePerformanceRequirements(other.getPerformanceRequirements()); + } + if (other.hasPageSize()) { + setPageSize(other.getPageSize()); + } + if (other.hasPageToken()) { + pageToken_ = other.pageToken_; + bitField0_ |= 0x00000020; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + model_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + modelServer_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + modelServerVersion_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + input.readMessage( + getPerformanceRequirementsFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 40: + { + pageSize_ = input.readInt32(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 50: + { + pageToken_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 50 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.lang.Object model_ = ""; + + /** + * + * + *
+     * Optional. The model to filter profiles by. Open-source models follow the
+     * Huggingface Hub `owner/model_name` format. If not provided, all models are
+     * returned. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The model. + */ + public java.lang.String getModel() { + java.lang.Object ref = model_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + model_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. The model to filter profiles by. Open-source models follow the
+     * Huggingface Hub `owner/model_name` format. If not provided, all models are
+     * returned. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for model. + */ + public com.google.protobuf.ByteString getModelBytes() { + java.lang.Object ref = model_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + model_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. The model to filter profiles by. Open-source models follow the
+     * Huggingface Hub `owner/model_name` format. If not provided, all models are
+     * returned. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The model to set. + * @return This builder for chaining. + */ + public Builder setModel(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + model_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The model to filter profiles by. Open-source models follow the
+     * Huggingface Hub `owner/model_name` format. If not provided, all models are
+     * returned. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearModel() { + model_ = getDefaultInstance().getModel(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The model to filter profiles by. Open-source models follow the
+     * Huggingface Hub `owner/model_name` format. If not provided, all models are
+     * returned. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for model to set. + * @return This builder for chaining. + */ + public Builder setModelBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + model_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object modelServer_ = ""; + + /** + * + * + *
+     * Optional. The model server to filter profiles by. If not provided, all
+     * model servers are returned. Use
+     * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+     * to find available model servers for a given model.
+     * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The modelServer. + */ + public java.lang.String getModelServer() { + java.lang.Object ref = modelServer_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + modelServer_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. The model server to filter profiles by. If not provided, all
+     * model servers are returned. Use
+     * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+     * to find available model servers for a given model.
+     * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for modelServer. + */ + public com.google.protobuf.ByteString getModelServerBytes() { + java.lang.Object ref = modelServer_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + modelServer_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. The model server to filter profiles by. If not provided, all
+     * model servers are returned. Use
+     * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+     * to find available model servers for a given model.
+     * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The modelServer to set. + * @return This builder for chaining. + */ + public Builder setModelServer(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + modelServer_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The model server to filter profiles by. If not provided, all
+     * model servers are returned. Use
+     * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+     * to find available model servers for a given model.
+     * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearModelServer() { + modelServer_ = getDefaultInstance().getModelServer(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The model server to filter profiles by. If not provided, all
+     * model servers are returned. Use
+     * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+     * to find available model servers for a given model.
+     * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for modelServer to set. + * @return This builder for chaining. + */ + public Builder setModelServerBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + modelServer_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object modelServerVersion_ = ""; + + /** + * + * + *
+     * Optional. The model server version to filter profiles by. If not provided,
+     * all model server versions are returned. Use
+     * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]
+     * to find available versions for a given model and server.
+     * 
+ * + * string model_server_version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The modelServerVersion. + */ + public java.lang.String getModelServerVersion() { + java.lang.Object ref = modelServerVersion_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + modelServerVersion_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. The model server version to filter profiles by. If not provided,
+     * all model server versions are returned. Use
+     * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]
+     * to find available versions for a given model and server.
+     * 
+ * + * string model_server_version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for modelServerVersion. + */ + public com.google.protobuf.ByteString getModelServerVersionBytes() { + java.lang.Object ref = modelServerVersion_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + modelServerVersion_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. The model server version to filter profiles by. If not provided,
+     * all model server versions are returned. Use
+     * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]
+     * to find available versions for a given model and server.
+     * 
+ * + * string model_server_version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The modelServerVersion to set. + * @return This builder for chaining. + */ + public Builder setModelServerVersion(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + modelServerVersion_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The model server version to filter profiles by. If not provided,
+     * all model server versions are returned. Use
+     * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]
+     * to find available versions for a given model and server.
+     * 
+ * + * string model_server_version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearModelServerVersion() { + modelServerVersion_ = getDefaultInstance().getModelServerVersion(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The model server version to filter profiles by. If not provided,
+     * all model server versions are returned. Use
+     * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]
+     * to find available versions for a given model and server.
+     * 
+ * + * string model_server_version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for modelServerVersion to set. + * @return This builder for chaining. + */ + public Builder setModelServerVersionBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + modelServerVersion_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private com.google.cloud.gkerecommender.v1.PerformanceRequirements performanceRequirements_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.PerformanceRequirements, + com.google.cloud.gkerecommender.v1.PerformanceRequirements.Builder, + com.google.cloud.gkerecommender.v1.PerformanceRequirementsOrBuilder> + performanceRequirementsBuilder_; + + /** + * + * + *
+     * Optional. The performance requirements to filter profiles. Profiles that do
+     * not meet these requirements are filtered out. If not provided, all profiles
+     * are returned.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the performanceRequirements field is set. + */ + public boolean hasPerformanceRequirements() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Optional. The performance requirements to filter profiles. Profiles that do
+     * not meet these requirements are filtered out. If not provided, all profiles
+     * are returned.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The performanceRequirements. + */ + public com.google.cloud.gkerecommender.v1.PerformanceRequirements getPerformanceRequirements() { + if (performanceRequirementsBuilder_ == null) { + return performanceRequirements_ == null + ? com.google.cloud.gkerecommender.v1.PerformanceRequirements.getDefaultInstance() + : performanceRequirements_; + } else { + return performanceRequirementsBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Optional. The performance requirements to filter profiles. Profiles that do
+     * not meet these requirements are filtered out. If not provided, all profiles
+     * are returned.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setPerformanceRequirements( + com.google.cloud.gkerecommender.v1.PerformanceRequirements value) { + if (performanceRequirementsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + performanceRequirements_ = value; + } else { + performanceRequirementsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The performance requirements to filter profiles. Profiles that do
+     * not meet these requirements are filtered out. If not provided, all profiles
+     * are returned.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setPerformanceRequirements( + com.google.cloud.gkerecommender.v1.PerformanceRequirements.Builder builderForValue) { + if (performanceRequirementsBuilder_ == null) { + performanceRequirements_ = builderForValue.build(); + } else { + performanceRequirementsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The performance requirements to filter profiles. Profiles that do
+     * not meet these requirements are filtered out. If not provided, all profiles
+     * are returned.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergePerformanceRequirements( + com.google.cloud.gkerecommender.v1.PerformanceRequirements value) { + if (performanceRequirementsBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) + && performanceRequirements_ != null + && performanceRequirements_ + != com.google.cloud.gkerecommender.v1.PerformanceRequirements + .getDefaultInstance()) { + getPerformanceRequirementsBuilder().mergeFrom(value); + } else { + performanceRequirements_ = value; + } + } else { + performanceRequirementsBuilder_.mergeFrom(value); + } + if (performanceRequirements_ != null) { + bitField0_ |= 0x00000008; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Optional. The performance requirements to filter profiles. Profiles that do
+     * not meet these requirements are filtered out. If not provided, all profiles
+     * are returned.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearPerformanceRequirements() { + bitField0_ = (bitField0_ & ~0x00000008); + performanceRequirements_ = null; + if (performanceRequirementsBuilder_ != null) { + performanceRequirementsBuilder_.dispose(); + performanceRequirementsBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The performance requirements to filter profiles. Profiles that do
+     * not meet these requirements are filtered out. If not provided, all profiles
+     * are returned.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.gkerecommender.v1.PerformanceRequirements.Builder + getPerformanceRequirementsBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getPerformanceRequirementsFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. The performance requirements to filter profiles. Profiles that do
+     * not meet these requirements are filtered out. If not provided, all profiles
+     * are returned.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.gkerecommender.v1.PerformanceRequirementsOrBuilder + getPerformanceRequirementsOrBuilder() { + if (performanceRequirementsBuilder_ != null) { + return performanceRequirementsBuilder_.getMessageOrBuilder(); + } else { + return performanceRequirements_ == null + ? com.google.cloud.gkerecommender.v1.PerformanceRequirements.getDefaultInstance() + : performanceRequirements_; + } + } + + /** + * + * + *
+     * Optional. The performance requirements to filter profiles. Profiles that do
+     * not meet these requirements are filtered out. If not provided, all profiles
+     * are returned.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.PerformanceRequirements, + com.google.cloud.gkerecommender.v1.PerformanceRequirements.Builder, + com.google.cloud.gkerecommender.v1.PerformanceRequirementsOrBuilder> + getPerformanceRequirementsFieldBuilder() { + if (performanceRequirementsBuilder_ == null) { + performanceRequirementsBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.PerformanceRequirements, + com.google.cloud.gkerecommender.v1.PerformanceRequirements.Builder, + com.google.cloud.gkerecommender.v1.PerformanceRequirementsOrBuilder>( + getPerformanceRequirements(), getParentForChildren(), isClean()); + performanceRequirements_ = null; + } + return performanceRequirementsBuilder_; + } + + private int pageSize_; + + /** + * + * + *
+     * Optional. The target number of results to return in a single response. If
+     * not specified, a default value will be chosen by the service. Note that the
+     * response may include a partial list and a caller should only rely on the
+     * response's
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+     * to determine if there are more instances left to be queried.
+     * 
+ * + * optional int32 page_size = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageSize field is set. + */ + @java.lang.Override + public boolean hasPageSize() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * Optional. The target number of results to return in a single response. If
+     * not specified, a default value will be chosen by the service. Note that the
+     * response may include a partial list and a caller should only rely on the
+     * response's
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+     * to determine if there are more instances left to be queried.
+     * 
+ * + * optional int32 page_size = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageSize. + */ + @java.lang.Override + public int getPageSize() { + return pageSize_; + } + + /** + * + * + *
+     * Optional. The target number of results to return in a single response. If
+     * not specified, a default value will be chosen by the service. Note that the
+     * response may include a partial list and a caller should only rely on the
+     * response's
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+     * to determine if there are more instances left to be queried.
+     * 
+ * + * optional int32 page_size = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The pageSize to set. + * @return This builder for chaining. + */ + public Builder setPageSize(int value) { + + pageSize_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The target number of results to return in a single response. If
+     * not specified, a default value will be chosen by the service. Note that the
+     * response may include a partial list and a caller should only rely on the
+     * response's
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+     * to determine if there are more instances left to be queried.
+     * 
+ * + * optional int32 page_size = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearPageSize() { + bitField0_ = (bitField0_ & ~0x00000010); + pageSize_ = 0; + onChanged(); + return this; + } + + private java.lang.Object pageToken_ = ""; + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+     * received from a previous `FetchProfilesRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchProfilesRequest` must match the call that provided the page
+     * token.
+     * 
+ * + * optional string page_token = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageToken field is set. + */ + public boolean hasPageToken() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+     * received from a previous `FetchProfilesRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchProfilesRequest` must match the call that provided the page
+     * token.
+     * 
+ * + * optional string page_token = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageToken. + */ + public java.lang.String getPageToken() { + java.lang.Object ref = pageToken_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pageToken_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+     * received from a previous `FetchProfilesRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchProfilesRequest` must match the call that provided the page
+     * token.
+     * 
+ * + * optional string page_token = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pageToken. + */ + public com.google.protobuf.ByteString getPageTokenBytes() { + java.lang.Object ref = pageToken_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + pageToken_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+     * received from a previous `FetchProfilesRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchProfilesRequest` must match the call that provided the page
+     * token.
+     * 
+ * + * optional string page_token = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The pageToken to set. + * @return This builder for chaining. + */ + public Builder setPageToken(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + pageToken_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+     * received from a previous `FetchProfilesRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchProfilesRequest` must match the call that provided the page
+     * token.
+     * 
+ * + * optional string page_token = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearPageToken() { + pageToken_ = getDefaultInstance().getPageToken(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The value of
+     * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+     * received from a previous `FetchProfilesRequest` call.
+     * Provide this to retrieve the subsequent page in a multi-page list of
+     * results. When paginating, all other parameters provided to
+     * `FetchProfilesRequest` must match the call that provided the page
+     * token.
+     * 
+ * + * optional string page_token = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for pageToken to set. + * @return This builder for chaining. + */ + public Builder setPageTokenBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + pageToken_ = value; + bitField0_ |= 0x00000020; + 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:google.cloud.gkerecommender.v1.FetchProfilesRequest) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.FetchProfilesRequest) + private static final com.google.cloud.gkerecommender.v1.FetchProfilesRequest DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.FetchProfilesRequest(); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FetchProfilesRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchProfilesRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchProfilesRequestOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchProfilesRequestOrBuilder.java new file mode 100644 index 000000000000..2cbc43c0f1f1 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchProfilesRequestOrBuilder.java @@ -0,0 +1,267 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface FetchProfilesRequestOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.FetchProfilesRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Optional. The model to filter profiles by. Open-source models follow the
+   * Huggingface Hub `owner/model_name` format. If not provided, all models are
+   * returned. Use
+   * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+   * to find available models.
+   * 
+ * + * string model = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The model. + */ + java.lang.String getModel(); + + /** + * + * + *
+   * Optional. The model to filter profiles by. Open-source models follow the
+   * Huggingface Hub `owner/model_name` format. If not provided, all models are
+   * returned. Use
+   * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+   * to find available models.
+   * 
+ * + * string model = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for model. + */ + com.google.protobuf.ByteString getModelBytes(); + + /** + * + * + *
+   * Optional. The model server to filter profiles by. If not provided, all
+   * model servers are returned. Use
+   * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+   * to find available model servers for a given model.
+   * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The modelServer. + */ + java.lang.String getModelServer(); + + /** + * + * + *
+   * Optional. The model server to filter profiles by. If not provided, all
+   * model servers are returned. Use
+   * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+   * to find available model servers for a given model.
+   * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for modelServer. + */ + com.google.protobuf.ByteString getModelServerBytes(); + + /** + * + * + *
+   * Optional. The model server version to filter profiles by. If not provided,
+   * all model server versions are returned. Use
+   * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]
+   * to find available versions for a given model and server.
+   * 
+ * + * string model_server_version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The modelServerVersion. + */ + java.lang.String getModelServerVersion(); + + /** + * + * + *
+   * Optional. The model server version to filter profiles by. If not provided,
+   * all model server versions are returned. Use
+   * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]
+   * to find available versions for a given model and server.
+   * 
+ * + * string model_server_version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for modelServerVersion. + */ + com.google.protobuf.ByteString getModelServerVersionBytes(); + + /** + * + * + *
+   * Optional. The performance requirements to filter profiles. Profiles that do
+   * not meet these requirements are filtered out. If not provided, all profiles
+   * are returned.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the performanceRequirements field is set. + */ + boolean hasPerformanceRequirements(); + + /** + * + * + *
+   * Optional. The performance requirements to filter profiles. Profiles that do
+   * not meet these requirements are filtered out. If not provided, all profiles
+   * are returned.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The performanceRequirements. + */ + com.google.cloud.gkerecommender.v1.PerformanceRequirements getPerformanceRequirements(); + + /** + * + * + *
+   * Optional. The performance requirements to filter profiles. Profiles that do
+   * not meet these requirements are filtered out. If not provided, all profiles
+   * are returned.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.cloud.gkerecommender.v1.PerformanceRequirementsOrBuilder + getPerformanceRequirementsOrBuilder(); + + /** + * + * + *
+   * Optional. The target number of results to return in a single response. If
+   * not specified, a default value will be chosen by the service. Note that the
+   * response may include a partial list and a caller should only rely on the
+   * response's
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+   * to determine if there are more instances left to be queried.
+   * 
+ * + * optional int32 page_size = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageSize field is set. + */ + boolean hasPageSize(); + + /** + * + * + *
+   * Optional. The target number of results to return in a single response. If
+   * not specified, a default value will be chosen by the service. Note that the
+   * response may include a partial list and a caller should only rely on the
+   * response's
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+   * to determine if there are more instances left to be queried.
+   * 
+ * + * optional int32 page_size = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageSize. + */ + int getPageSize(); + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+   * received from a previous `FetchProfilesRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchProfilesRequest` must match the call that provided the page
+   * token.
+   * 
+ * + * optional string page_token = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the pageToken field is set. + */ + boolean hasPageToken(); + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+   * received from a previous `FetchProfilesRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchProfilesRequest` must match the call that provided the page
+   * token.
+   * 
+ * + * optional string page_token = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The pageToken. + */ + java.lang.String getPageToken(); + + /** + * + * + *
+   * Optional. The value of
+   * [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token]
+   * received from a previous `FetchProfilesRequest` call.
+   * Provide this to retrieve the subsequent page in a multi-page list of
+   * results. When paginating, all other parameters provided to
+   * `FetchProfilesRequest` must match the call that provided the page
+   * token.
+   * 
+ * + * optional string page_token = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for pageToken. + */ + com.google.protobuf.ByteString getPageTokenBytes(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchProfilesResponse.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchProfilesResponse.java new file mode 100644 index 000000000000..49d2e006ce43 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchProfilesResponse.java @@ -0,0 +1,1767 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Response message for
+ * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles].
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchProfilesResponse} + */ +public final class FetchProfilesResponse extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.FetchProfilesResponse) + FetchProfilesResponseOrBuilder { + private static final long serialVersionUID = 0L; + + // Use FetchProfilesResponse.newBuilder() to construct. + private FetchProfilesResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private FetchProfilesResponse() { + profile_ = java.util.Collections.emptyList(); + comments_ = ""; + nextPageToken_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new FetchProfilesResponse(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchProfilesResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchProfilesResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchProfilesResponse.class, + com.google.cloud.gkerecommender.v1.FetchProfilesResponse.Builder.class); + } + + private int bitField0_; + public static final int PROFILE_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List profile_; + + /** + * + * + *
+   * Output only. List of profiles that match the given model server info and
+   * performance requirements (if provided).
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public java.util.List getProfileList() { + return profile_; + } + + /** + * + * + *
+   * Output only. List of profiles that match the given model server info and
+   * performance requirements (if provided).
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public java.util.List + getProfileOrBuilderList() { + return profile_; + } + + /** + * + * + *
+   * Output only. List of profiles that match the given model server info and
+   * performance requirements (if provided).
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public int getProfileCount() { + return profile_.size(); + } + + /** + * + * + *
+   * Output only. List of profiles that match the given model server info and
+   * performance requirements (if provided).
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.Profile getProfile(int index) { + return profile_.get(index); + } + + /** + * + * + *
+   * Output only. List of profiles that match the given model server info and
+   * performance requirements (if provided).
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.ProfileOrBuilder getProfileOrBuilder(int index) { + return profile_.get(index); + } + + public static final int PERFORMANCE_RANGE_FIELD_NUMBER = 2; + private com.google.cloud.gkerecommender.v1.PerformanceRange performanceRange_; + + /** + * + * + *
+   * Output only. The combined range of performance values observed across all
+   * profiles in this response.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRange performance_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the performanceRange field is set. + */ + @java.lang.Override + public boolean hasPerformanceRange() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Output only. The combined range of performance values observed across all
+   * profiles in this response.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRange performance_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The performanceRange. + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceRange getPerformanceRange() { + return performanceRange_ == null + ? com.google.cloud.gkerecommender.v1.PerformanceRange.getDefaultInstance() + : performanceRange_; + } + + /** + * + * + *
+   * Output only. The combined range of performance values observed across all
+   * profiles in this response.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRange performance_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceRangeOrBuilder + getPerformanceRangeOrBuilder() { + return performanceRange_ == null + ? com.google.cloud.gkerecommender.v1.PerformanceRange.getDefaultInstance() + : performanceRange_; + } + + public static final int COMMENTS_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object comments_ = ""; + + /** + * + * + *
+   * Output only. Additional comments related to the response.
+   * 
+ * + * string comments = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The comments. + */ + @java.lang.Override + public java.lang.String getComments() { + java.lang.Object ref = comments_; + 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(); + comments_ = s; + return s; + } + } + + /** + * + * + *
+   * Output only. Additional comments related to the response.
+   * 
+ * + * string comments = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for comments. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCommentsBytes() { + java.lang.Object ref = comments_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + comments_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object nextPageToken_ = ""; + + /** + * + * + *
+   * Output only. A token which may be sent as
+   * [page_token][FetchProfilesResponse.page_token] in a subsequent
+   * `FetchProfilesResponse` call to retrieve the next page of results. If this
+   * field is omitted or empty, then there are no more results to return.
+   * 
+ * + * string next_page_token = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The nextPageToken. + */ + @java.lang.Override + public java.lang.String getNextPageToken() { + java.lang.Object ref = nextPageToken_; + 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(); + nextPageToken_ = s; + return s; + } + } + + /** + * + * + *
+   * Output only. A token which may be sent as
+   * [page_token][FetchProfilesResponse.page_token] in a subsequent
+   * `FetchProfilesResponse` call to retrieve the next page of results. If this
+   * field is omitted or empty, then there are no more results to return.
+   * 
+ * + * string next_page_token = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for nextPageToken. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNextPageTokenBytes() { + java.lang.Object ref = nextPageToken_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + nextPageToken_ = 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 { + for (int i = 0; i < profile_.size(); i++) { + output.writeMessage(1, profile_.get(i)); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(2, getPerformanceRange()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(comments_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, comments_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, nextPageToken_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < profile_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, profile_.get(i)); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getPerformanceRange()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(comments_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, comments_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, nextPageToken_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.FetchProfilesResponse)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.FetchProfilesResponse other = + (com.google.cloud.gkerecommender.v1.FetchProfilesResponse) obj; + + if (!getProfileList().equals(other.getProfileList())) return false; + if (hasPerformanceRange() != other.hasPerformanceRange()) return false; + if (hasPerformanceRange()) { + if (!getPerformanceRange().equals(other.getPerformanceRange())) return false; + } + if (!getComments().equals(other.getComments())) return false; + if (!getNextPageToken().equals(other.getNextPageToken())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getProfileCount() > 0) { + hash = (37 * hash) + PROFILE_FIELD_NUMBER; + hash = (53 * hash) + getProfileList().hashCode(); + } + if (hasPerformanceRange()) { + hash = (37 * hash) + PERFORMANCE_RANGE_FIELD_NUMBER; + hash = (53 * hash) + getPerformanceRange().hashCode(); + } + hash = (37 * hash) + COMMENTS_FIELD_NUMBER; + hash = (53 * hash) + getComments().hashCode(); + hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER; + hash = (53 * hash) + getNextPageToken().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesResponse parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesResponse parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesResponse parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesResponse parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesResponse 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 com.google.cloud.gkerecommender.v1.FetchProfilesResponse parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesResponse 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 com.google.cloud.gkerecommender.v1.FetchProfilesResponse parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesResponse 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( + com.google.cloud.gkerecommender.v1.FetchProfilesResponse 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; + } + + /** + * + * + *
+   * Response message for
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles].
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.FetchProfilesResponse} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.FetchProfilesResponse) + com.google.cloud.gkerecommender.v1.FetchProfilesResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchProfilesResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchProfilesResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.FetchProfilesResponse.class, + com.google.cloud.gkerecommender.v1.FetchProfilesResponse.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.FetchProfilesResponse.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getProfileFieldBuilder(); + getPerformanceRangeFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (profileBuilder_ == null) { + profile_ = java.util.Collections.emptyList(); + } else { + profile_ = null; + profileBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + performanceRange_ = null; + if (performanceRangeBuilder_ != null) { + performanceRangeBuilder_.dispose(); + performanceRangeBuilder_ = null; + } + comments_ = ""; + nextPageToken_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_FetchProfilesResponse_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchProfilesResponse getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.FetchProfilesResponse.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchProfilesResponse build() { + com.google.cloud.gkerecommender.v1.FetchProfilesResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchProfilesResponse buildPartial() { + com.google.cloud.gkerecommender.v1.FetchProfilesResponse result = + new com.google.cloud.gkerecommender.v1.FetchProfilesResponse(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields( + com.google.cloud.gkerecommender.v1.FetchProfilesResponse result) { + if (profileBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + profile_ = java.util.Collections.unmodifiableList(profile_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.profile_ = profile_; + } else { + result.profile_ = profileBuilder_.build(); + } + } + + private void buildPartial0(com.google.cloud.gkerecommender.v1.FetchProfilesResponse result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.performanceRange_ = + performanceRangeBuilder_ == null ? performanceRange_ : performanceRangeBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.comments_ = comments_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.nextPageToken_ = nextPageToken_; + } + result.bitField0_ |= to_bitField0_; + } + + @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 com.google.cloud.gkerecommender.v1.FetchProfilesResponse) { + return mergeFrom((com.google.cloud.gkerecommender.v1.FetchProfilesResponse) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.gkerecommender.v1.FetchProfilesResponse other) { + if (other == com.google.cloud.gkerecommender.v1.FetchProfilesResponse.getDefaultInstance()) + return this; + if (profileBuilder_ == null) { + if (!other.profile_.isEmpty()) { + if (profile_.isEmpty()) { + profile_ = other.profile_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureProfileIsMutable(); + profile_.addAll(other.profile_); + } + onChanged(); + } + } else { + if (!other.profile_.isEmpty()) { + if (profileBuilder_.isEmpty()) { + profileBuilder_.dispose(); + profileBuilder_ = null; + profile_ = other.profile_; + bitField0_ = (bitField0_ & ~0x00000001); + profileBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getProfileFieldBuilder() + : null; + } else { + profileBuilder_.addAllMessages(other.profile_); + } + } + } + if (other.hasPerformanceRange()) { + mergePerformanceRange(other.getPerformanceRange()); + } + if (!other.getComments().isEmpty()) { + comments_ = other.comments_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getNextPageToken().isEmpty()) { + nextPageToken_ = other.nextPageToken_; + bitField0_ |= 0x00000008; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + com.google.cloud.gkerecommender.v1.Profile m = + input.readMessage( + com.google.cloud.gkerecommender.v1.Profile.parser(), extensionRegistry); + if (profileBuilder_ == null) { + ensureProfileIsMutable(); + profile_.add(m); + } else { + profileBuilder_.addMessage(m); + } + break; + } // case 10 + case 18: + { + input.readMessage( + getPerformanceRangeFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + comments_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + nextPageToken_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.util.List profile_ = + java.util.Collections.emptyList(); + + private void ensureProfileIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + profile_ = new java.util.ArrayList(profile_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.gkerecommender.v1.Profile, + com.google.cloud.gkerecommender.v1.Profile.Builder, + com.google.cloud.gkerecommender.v1.ProfileOrBuilder> + profileBuilder_; + + /** + * + * + *
+     * Output only. List of profiles that match the given model server info and
+     * performance requirements (if provided).
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public java.util.List getProfileList() { + if (profileBuilder_ == null) { + return java.util.Collections.unmodifiableList(profile_); + } else { + return profileBuilder_.getMessageList(); + } + } + + /** + * + * + *
+     * Output only. List of profiles that match the given model server info and
+     * performance requirements (if provided).
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public int getProfileCount() { + if (profileBuilder_ == null) { + return profile_.size(); + } else { + return profileBuilder_.getCount(); + } + } + + /** + * + * + *
+     * Output only. List of profiles that match the given model server info and
+     * performance requirements (if provided).
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.Profile getProfile(int index) { + if (profileBuilder_ == null) { + return profile_.get(index); + } else { + return profileBuilder_.getMessage(index); + } + } + + /** + * + * + *
+     * Output only. List of profiles that match the given model server info and
+     * performance requirements (if provided).
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setProfile(int index, com.google.cloud.gkerecommender.v1.Profile value) { + if (profileBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureProfileIsMutable(); + profile_.set(index, value); + onChanged(); + } else { + profileBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Output only. List of profiles that match the given model server info and
+     * performance requirements (if provided).
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setProfile( + int index, com.google.cloud.gkerecommender.v1.Profile.Builder builderForValue) { + if (profileBuilder_ == null) { + ensureProfileIsMutable(); + profile_.set(index, builderForValue.build()); + onChanged(); + } else { + profileBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Output only. List of profiles that match the given model server info and
+     * performance requirements (if provided).
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addProfile(com.google.cloud.gkerecommender.v1.Profile value) { + if (profileBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureProfileIsMutable(); + profile_.add(value); + onChanged(); + } else { + profileBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+     * Output only. List of profiles that match the given model server info and
+     * performance requirements (if provided).
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addProfile(int index, com.google.cloud.gkerecommender.v1.Profile value) { + if (profileBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureProfileIsMutable(); + profile_.add(index, value); + onChanged(); + } else { + profileBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Output only. List of profiles that match the given model server info and
+     * performance requirements (if provided).
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addProfile(com.google.cloud.gkerecommender.v1.Profile.Builder builderForValue) { + if (profileBuilder_ == null) { + ensureProfileIsMutable(); + profile_.add(builderForValue.build()); + onChanged(); + } else { + profileBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Output only. List of profiles that match the given model server info and
+     * performance requirements (if provided).
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addProfile( + int index, com.google.cloud.gkerecommender.v1.Profile.Builder builderForValue) { + if (profileBuilder_ == null) { + ensureProfileIsMutable(); + profile_.add(index, builderForValue.build()); + onChanged(); + } else { + profileBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Output only. List of profiles that match the given model server info and
+     * performance requirements (if provided).
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addAllProfile( + java.lang.Iterable values) { + if (profileBuilder_ == null) { + ensureProfileIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, profile_); + onChanged(); + } else { + profileBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+     * Output only. List of profiles that match the given model server info and
+     * performance requirements (if provided).
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder clearProfile() { + if (profileBuilder_ == null) { + profile_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + profileBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Output only. List of profiles that match the given model server info and
+     * performance requirements (if provided).
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder removeProfile(int index) { + if (profileBuilder_ == null) { + ensureProfileIsMutable(); + profile_.remove(index); + onChanged(); + } else { + profileBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+     * Output only. List of profiles that match the given model server info and
+     * performance requirements (if provided).
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.Profile.Builder getProfileBuilder(int index) { + return getProfileFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+     * Output only. List of profiles that match the given model server info and
+     * performance requirements (if provided).
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.ProfileOrBuilder getProfileOrBuilder(int index) { + if (profileBuilder_ == null) { + return profile_.get(index); + } else { + return profileBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+     * Output only. List of profiles that match the given model server info and
+     * performance requirements (if provided).
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public java.util.List + getProfileOrBuilderList() { + if (profileBuilder_ != null) { + return profileBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(profile_); + } + } + + /** + * + * + *
+     * Output only. List of profiles that match the given model server info and
+     * performance requirements (if provided).
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.Profile.Builder addProfileBuilder() { + return getProfileFieldBuilder() + .addBuilder(com.google.cloud.gkerecommender.v1.Profile.getDefaultInstance()); + } + + /** + * + * + *
+     * Output only. List of profiles that match the given model server info and
+     * performance requirements (if provided).
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.Profile.Builder addProfileBuilder(int index) { + return getProfileFieldBuilder() + .addBuilder(index, com.google.cloud.gkerecommender.v1.Profile.getDefaultInstance()); + } + + /** + * + * + *
+     * Output only. List of profiles that match the given model server info and
+     * performance requirements (if provided).
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public java.util.List + getProfileBuilderList() { + return getProfileFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.gkerecommender.v1.Profile, + com.google.cloud.gkerecommender.v1.Profile.Builder, + com.google.cloud.gkerecommender.v1.ProfileOrBuilder> + getProfileFieldBuilder() { + if (profileBuilder_ == null) { + profileBuilder_ = + new com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.gkerecommender.v1.Profile, + com.google.cloud.gkerecommender.v1.Profile.Builder, + com.google.cloud.gkerecommender.v1.ProfileOrBuilder>( + profile_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + profile_ = null; + } + return profileBuilder_; + } + + private com.google.cloud.gkerecommender.v1.PerformanceRange performanceRange_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.PerformanceRange, + com.google.cloud.gkerecommender.v1.PerformanceRange.Builder, + com.google.cloud.gkerecommender.v1.PerformanceRangeOrBuilder> + performanceRangeBuilder_; + + /** + * + * + *
+     * Output only. The combined range of performance values observed across all
+     * profiles in this response.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRange performance_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the performanceRange field is set. + */ + public boolean hasPerformanceRange() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Output only. The combined range of performance values observed across all
+     * profiles in this response.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRange performance_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The performanceRange. + */ + public com.google.cloud.gkerecommender.v1.PerformanceRange getPerformanceRange() { + if (performanceRangeBuilder_ == null) { + return performanceRange_ == null + ? com.google.cloud.gkerecommender.v1.PerformanceRange.getDefaultInstance() + : performanceRange_; + } else { + return performanceRangeBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Output only. The combined range of performance values observed across all
+     * profiles in this response.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRange performance_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setPerformanceRange(com.google.cloud.gkerecommender.v1.PerformanceRange value) { + if (performanceRangeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + performanceRange_ = value; + } else { + performanceRangeBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The combined range of performance values observed across all
+     * profiles in this response.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRange performance_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setPerformanceRange( + com.google.cloud.gkerecommender.v1.PerformanceRange.Builder builderForValue) { + if (performanceRangeBuilder_ == null) { + performanceRange_ = builderForValue.build(); + } else { + performanceRangeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The combined range of performance values observed across all
+     * profiles in this response.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRange performance_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder mergePerformanceRange( + com.google.cloud.gkerecommender.v1.PerformanceRange value) { + if (performanceRangeBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) + && performanceRange_ != null + && performanceRange_ + != com.google.cloud.gkerecommender.v1.PerformanceRange.getDefaultInstance()) { + getPerformanceRangeBuilder().mergeFrom(value); + } else { + performanceRange_ = value; + } + } else { + performanceRangeBuilder_.mergeFrom(value); + } + if (performanceRange_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Output only. The combined range of performance values observed across all
+     * profiles in this response.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRange performance_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder clearPerformanceRange() { + bitField0_ = (bitField0_ & ~0x00000002); + performanceRange_ = null; + if (performanceRangeBuilder_ != null) { + performanceRangeBuilder_.dispose(); + performanceRangeBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The combined range of performance values observed across all
+     * profiles in this response.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRange performance_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.PerformanceRange.Builder + getPerformanceRangeBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getPerformanceRangeFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Output only. The combined range of performance values observed across all
+     * profiles in this response.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRange performance_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.PerformanceRangeOrBuilder + getPerformanceRangeOrBuilder() { + if (performanceRangeBuilder_ != null) { + return performanceRangeBuilder_.getMessageOrBuilder(); + } else { + return performanceRange_ == null + ? com.google.cloud.gkerecommender.v1.PerformanceRange.getDefaultInstance() + : performanceRange_; + } + } + + /** + * + * + *
+     * Output only. The combined range of performance values observed across all
+     * profiles in this response.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRange performance_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.PerformanceRange, + com.google.cloud.gkerecommender.v1.PerformanceRange.Builder, + com.google.cloud.gkerecommender.v1.PerformanceRangeOrBuilder> + getPerformanceRangeFieldBuilder() { + if (performanceRangeBuilder_ == null) { + performanceRangeBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.PerformanceRange, + com.google.cloud.gkerecommender.v1.PerformanceRange.Builder, + com.google.cloud.gkerecommender.v1.PerformanceRangeOrBuilder>( + getPerformanceRange(), getParentForChildren(), isClean()); + performanceRange_ = null; + } + return performanceRangeBuilder_; + } + + private java.lang.Object comments_ = ""; + + /** + * + * + *
+     * Output only. Additional comments related to the response.
+     * 
+ * + * string comments = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The comments. + */ + public java.lang.String getComments() { + java.lang.Object ref = comments_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + comments_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Output only. Additional comments related to the response.
+     * 
+ * + * string comments = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for comments. + */ + public com.google.protobuf.ByteString getCommentsBytes() { + java.lang.Object ref = comments_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + comments_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Output only. Additional comments related to the response.
+     * 
+ * + * string comments = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The comments to set. + * @return This builder for chaining. + */ + public Builder setComments(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + comments_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. Additional comments related to the response.
+     * 
+ * + * string comments = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearComments() { + comments_ = getDefaultInstance().getComments(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. Additional comments related to the response.
+     * 
+ * + * string comments = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The bytes for comments to set. + * @return This builder for chaining. + */ + public Builder setCommentsBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + comments_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object nextPageToken_ = ""; + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchProfilesResponse.page_token] in a subsequent
+     * `FetchProfilesResponse` call to retrieve the next page of results. If this
+     * field is omitted or empty, then there are no more results to return.
+     * 
+ * + * string next_page_token = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The nextPageToken. + */ + public java.lang.String getNextPageToken() { + java.lang.Object ref = nextPageToken_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + nextPageToken_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchProfilesResponse.page_token] in a subsequent
+     * `FetchProfilesResponse` call to retrieve the next page of results. If this
+     * field is omitted or empty, then there are no more results to return.
+     * 
+ * + * string next_page_token = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for nextPageToken. + */ + public com.google.protobuf.ByteString getNextPageTokenBytes() { + java.lang.Object ref = nextPageToken_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + nextPageToken_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchProfilesResponse.page_token] in a subsequent
+     * `FetchProfilesResponse` call to retrieve the next page of results. If this
+     * field is omitted or empty, then there are no more results to return.
+     * 
+ * + * string next_page_token = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The nextPageToken to set. + * @return This builder for chaining. + */ + public Builder setNextPageToken(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + nextPageToken_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchProfilesResponse.page_token] in a subsequent
+     * `FetchProfilesResponse` call to retrieve the next page of results. If this
+     * field is omitted or empty, then there are no more results to return.
+     * 
+ * + * string next_page_token = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearNextPageToken() { + nextPageToken_ = getDefaultInstance().getNextPageToken(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. A token which may be sent as
+     * [page_token][FetchProfilesResponse.page_token] in a subsequent
+     * `FetchProfilesResponse` call to retrieve the next page of results. If this
+     * field is omitted or empty, then there are no more results to return.
+     * 
+ * + * string next_page_token = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The bytes for nextPageToken to set. + * @return This builder for chaining. + */ + public Builder setNextPageTokenBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + nextPageToken_ = value; + bitField0_ |= 0x00000008; + 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:google.cloud.gkerecommender.v1.FetchProfilesResponse) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.FetchProfilesResponse) + private static final com.google.cloud.gkerecommender.v1.FetchProfilesResponse DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.FetchProfilesResponse(); + } + + public static com.google.cloud.gkerecommender.v1.FetchProfilesResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FetchProfilesResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.FetchProfilesResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchProfilesResponseOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchProfilesResponseOrBuilder.java new file mode 100644 index 000000000000..556fe4dbc434 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/FetchProfilesResponseOrBuilder.java @@ -0,0 +1,201 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface FetchProfilesResponseOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.FetchProfilesResponse) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Output only. List of profiles that match the given model server info and
+   * performance requirements (if provided).
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + java.util.List getProfileList(); + + /** + * + * + *
+   * Output only. List of profiles that match the given model server info and
+   * performance requirements (if provided).
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.cloud.gkerecommender.v1.Profile getProfile(int index); + + /** + * + * + *
+   * Output only. List of profiles that match the given model server info and
+   * performance requirements (if provided).
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + int getProfileCount(); + + /** + * + * + *
+   * Output only. List of profiles that match the given model server info and
+   * performance requirements (if provided).
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + java.util.List + getProfileOrBuilderList(); + + /** + * + * + *
+   * Output only. List of profiles that match the given model server info and
+   * performance requirements (if provided).
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Profile profile = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.cloud.gkerecommender.v1.ProfileOrBuilder getProfileOrBuilder(int index); + + /** + * + * + *
+   * Output only. The combined range of performance values observed across all
+   * profiles in this response.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRange performance_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the performanceRange field is set. + */ + boolean hasPerformanceRange(); + + /** + * + * + *
+   * Output only. The combined range of performance values observed across all
+   * profiles in this response.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRange performance_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The performanceRange. + */ + com.google.cloud.gkerecommender.v1.PerformanceRange getPerformanceRange(); + + /** + * + * + *
+   * Output only. The combined range of performance values observed across all
+   * profiles in this response.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRange performance_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.cloud.gkerecommender.v1.PerformanceRangeOrBuilder getPerformanceRangeOrBuilder(); + + /** + * + * + *
+   * Output only. Additional comments related to the response.
+   * 
+ * + * string comments = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The comments. + */ + java.lang.String getComments(); + + /** + * + * + *
+   * Output only. Additional comments related to the response.
+   * 
+ * + * string comments = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for comments. + */ + com.google.protobuf.ByteString getCommentsBytes(); + + /** + * + * + *
+   * Output only. A token which may be sent as
+   * [page_token][FetchProfilesResponse.page_token] in a subsequent
+   * `FetchProfilesResponse` call to retrieve the next page of results. If this
+   * field is omitted or empty, then there are no more results to return.
+   * 
+ * + * string next_page_token = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The nextPageToken. + */ + java.lang.String getNextPageToken(); + + /** + * + * + *
+   * Output only. A token which may be sent as
+   * [page_token][FetchProfilesResponse.page_token] in a subsequent
+   * `FetchProfilesResponse` call to retrieve the next page of results. If this
+   * field is omitted or empty, then there are no more results to return.
+   * 
+ * + * string next_page_token = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for nextPageToken. + */ + com.google.protobuf.ByteString getNextPageTokenBytes(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/GenerateOptimizedManifestRequest.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/GenerateOptimizedManifestRequest.java new file mode 100644 index 000000000000..e75a06c42045 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/GenerateOptimizedManifestRequest.java @@ -0,0 +1,1891 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Request message for
+ * [GkeInferenceQuickstart.GenerateOptimizedManifest][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.GenerateOptimizedManifest].
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest} + */ +public final class GenerateOptimizedManifestRequest extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest) + GenerateOptimizedManifestRequestOrBuilder { + private static final long serialVersionUID = 0L; + + // Use GenerateOptimizedManifestRequest.newBuilder() to construct. + private GenerateOptimizedManifestRequest( + com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private GenerateOptimizedManifestRequest() { + acceleratorType_ = ""; + kubernetesNamespace_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new GenerateOptimizedManifestRequest(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest.class, + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest.Builder.class); + } + + private int bitField0_; + public static final int MODEL_SERVER_INFO_FIELD_NUMBER = 1; + private com.google.cloud.gkerecommender.v1.ModelServerInfo modelServerInfo_; + + /** + * + * + *
+   * Required. The model server configuration to generate the manifest for. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid configurations.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return Whether the modelServerInfo field is set. + */ + @java.lang.Override + public boolean hasModelServerInfo() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Required. The model server configuration to generate the manifest for. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid configurations.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The modelServerInfo. + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.ModelServerInfo getModelServerInfo() { + return modelServerInfo_ == null + ? com.google.cloud.gkerecommender.v1.ModelServerInfo.getDefaultInstance() + : modelServerInfo_; + } + + /** + * + * + *
+   * Required. The model server configuration to generate the manifest for. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid configurations.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder getModelServerInfoOrBuilder() { + return modelServerInfo_ == null + ? com.google.cloud.gkerecommender.v1.ModelServerInfo.getDefaultInstance() + : modelServerInfo_; + } + + public static final int ACCELERATOR_TYPE_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object acceleratorType_ = ""; + + /** + * + * + *
+   * Required. The accelerator type. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid accelerators for a given `model_server_info`.
+   * 
+ * + * string accelerator_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The acceleratorType. + */ + @java.lang.Override + public java.lang.String getAcceleratorType() { + java.lang.Object ref = acceleratorType_; + 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(); + acceleratorType_ = s; + return s; + } + } + + /** + * + * + *
+   * Required. The accelerator type. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid accelerators for a given `model_server_info`.
+   * 
+ * + * string accelerator_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for acceleratorType. + */ + @java.lang.Override + public com.google.protobuf.ByteString getAcceleratorTypeBytes() { + java.lang.Object ref = acceleratorType_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + acceleratorType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int KUBERNETES_NAMESPACE_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object kubernetesNamespace_ = ""; + + /** + * + * + *
+   * Optional. The kubernetes namespace to deploy the manifests in.
+   * 
+ * + * string kubernetes_namespace = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The kubernetesNamespace. + */ + @java.lang.Override + public java.lang.String getKubernetesNamespace() { + java.lang.Object ref = kubernetesNamespace_; + 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(); + kubernetesNamespace_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. The kubernetes namespace to deploy the manifests in.
+   * 
+ * + * string kubernetes_namespace = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for kubernetesNamespace. + */ + @java.lang.Override + public com.google.protobuf.ByteString getKubernetesNamespaceBytes() { + java.lang.Object ref = kubernetesNamespace_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + kubernetesNamespace_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PERFORMANCE_REQUIREMENTS_FIELD_NUMBER = 4; + private com.google.cloud.gkerecommender.v1.PerformanceRequirements performanceRequirements_; + + /** + * + * + *
+   * Optional. The performance requirements to use for generating Horizontal Pod
+   * Autoscaler (HPA) resources. If provided, the manifest includes HPA
+   * resources to adjust the model server replica count to maintain the
+   * specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are
+   * not currently supported for HPA generation. If the specified targets are
+   * not achievable, the HPA manifest will not be generated.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the performanceRequirements field is set. + */ + @java.lang.Override + public boolean hasPerformanceRequirements() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Optional. The performance requirements to use for generating Horizontal Pod
+   * Autoscaler (HPA) resources. If provided, the manifest includes HPA
+   * resources to adjust the model server replica count to maintain the
+   * specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are
+   * not currently supported for HPA generation. If the specified targets are
+   * not achievable, the HPA manifest will not be generated.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The performanceRequirements. + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceRequirements getPerformanceRequirements() { + return performanceRequirements_ == null + ? com.google.cloud.gkerecommender.v1.PerformanceRequirements.getDefaultInstance() + : performanceRequirements_; + } + + /** + * + * + *
+   * Optional. The performance requirements to use for generating Horizontal Pod
+   * Autoscaler (HPA) resources. If provided, the manifest includes HPA
+   * resources to adjust the model server replica count to maintain the
+   * specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are
+   * not currently supported for HPA generation. If the specified targets are
+   * not achievable, the HPA manifest will not be generated.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceRequirementsOrBuilder + getPerformanceRequirementsOrBuilder() { + return performanceRequirements_ == null + ? com.google.cloud.gkerecommender.v1.PerformanceRequirements.getDefaultInstance() + : performanceRequirements_; + } + + public static final int STORAGE_CONFIG_FIELD_NUMBER = 5; + private com.google.cloud.gkerecommender.v1.StorageConfig storageConfig_; + + /** + * + * + *
+   * Optional. The storage configuration for the model. If not provided, the
+   * model is loaded from Huggingface.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.StorageConfig storage_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the storageConfig field is set. + */ + @java.lang.Override + public boolean hasStorageConfig() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * Optional. The storage configuration for the model. If not provided, the
+   * model is loaded from Huggingface.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.StorageConfig storage_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The storageConfig. + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.StorageConfig getStorageConfig() { + return storageConfig_ == null + ? com.google.cloud.gkerecommender.v1.StorageConfig.getDefaultInstance() + : storageConfig_; + } + + /** + * + * + *
+   * Optional. The storage configuration for the model. If not provided, the
+   * model is loaded from Huggingface.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.StorageConfig storage_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.StorageConfigOrBuilder getStorageConfigOrBuilder() { + return storageConfig_ == null + ? com.google.cloud.gkerecommender.v1.StorageConfig.getDefaultInstance() + : storageConfig_; + } + + 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 (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getModelServerInfo()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(acceleratorType_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, acceleratorType_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kubernetesNamespace_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, kubernetesNamespace_); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(4, getPerformanceRequirements()); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeMessage(5, getStorageConfig()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getModelServerInfo()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(acceleratorType_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, acceleratorType_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kubernetesNamespace_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, kubernetesNamespace_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(4, getPerformanceRequirements()); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getStorageConfig()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest other = + (com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest) obj; + + if (hasModelServerInfo() != other.hasModelServerInfo()) return false; + if (hasModelServerInfo()) { + if (!getModelServerInfo().equals(other.getModelServerInfo())) return false; + } + if (!getAcceleratorType().equals(other.getAcceleratorType())) return false; + if (!getKubernetesNamespace().equals(other.getKubernetesNamespace())) return false; + if (hasPerformanceRequirements() != other.hasPerformanceRequirements()) return false; + if (hasPerformanceRequirements()) { + if (!getPerformanceRequirements().equals(other.getPerformanceRequirements())) return false; + } + if (hasStorageConfig() != other.hasStorageConfig()) return false; + if (hasStorageConfig()) { + if (!getStorageConfig().equals(other.getStorageConfig())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasModelServerInfo()) { + hash = (37 * hash) + MODEL_SERVER_INFO_FIELD_NUMBER; + hash = (53 * hash) + getModelServerInfo().hashCode(); + } + hash = (37 * hash) + ACCELERATOR_TYPE_FIELD_NUMBER; + hash = (53 * hash) + getAcceleratorType().hashCode(); + hash = (37 * hash) + KUBERNETES_NAMESPACE_FIELD_NUMBER; + hash = (53 * hash) + getKubernetesNamespace().hashCode(); + if (hasPerformanceRequirements()) { + hash = (37 * hash) + PERFORMANCE_REQUIREMENTS_FIELD_NUMBER; + hash = (53 * hash) + getPerformanceRequirements().hashCode(); + } + if (hasStorageConfig()) { + hash = (37 * hash) + STORAGE_CONFIG_FIELD_NUMBER; + hash = (53 * hash) + getStorageConfig().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest 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 com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest + 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 com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest 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( + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest 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; + } + + /** + * + * + *
+   * Request message for
+   * [GkeInferenceQuickstart.GenerateOptimizedManifest][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.GenerateOptimizedManifest].
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest) + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest.class, + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest.Builder.class); + } + + // Construct using + // com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getModelServerInfoFieldBuilder(); + getPerformanceRequirementsFieldBuilder(); + getStorageConfigFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + modelServerInfo_ = null; + if (modelServerInfoBuilder_ != null) { + modelServerInfoBuilder_.dispose(); + modelServerInfoBuilder_ = null; + } + acceleratorType_ = ""; + kubernetesNamespace_ = ""; + performanceRequirements_ = null; + if (performanceRequirementsBuilder_ != null) { + performanceRequirementsBuilder_.dispose(); + performanceRequirementsBuilder_ = null; + } + storageConfig_ = null; + if (storageConfigBuilder_ != null) { + storageConfigBuilder_.dispose(); + storageConfigBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestRequest_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest + getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest build() { + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest buildPartial() { + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest result = + new com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.modelServerInfo_ = + modelServerInfoBuilder_ == null ? modelServerInfo_ : modelServerInfoBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.acceleratorType_ = acceleratorType_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.kubernetesNamespace_ = kubernetesNamespace_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.performanceRequirements_ = + performanceRequirementsBuilder_ == null + ? performanceRequirements_ + : performanceRequirementsBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.storageConfig_ = + storageConfigBuilder_ == null ? storageConfig_ : storageConfigBuilder_.build(); + to_bitField0_ |= 0x00000004; + } + result.bitField0_ |= to_bitField0_; + } + + @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 com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest) { + return mergeFrom( + (com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest other) { + if (other + == com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest + .getDefaultInstance()) return this; + if (other.hasModelServerInfo()) { + mergeModelServerInfo(other.getModelServerInfo()); + } + if (!other.getAcceleratorType().isEmpty()) { + acceleratorType_ = other.acceleratorType_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getKubernetesNamespace().isEmpty()) { + kubernetesNamespace_ = other.kubernetesNamespace_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.hasPerformanceRequirements()) { + mergePerformanceRequirements(other.getPerformanceRequirements()); + } + if (other.hasStorageConfig()) { + mergeStorageConfig(other.getStorageConfig()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getModelServerInfoFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + acceleratorType_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + kubernetesNamespace_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + input.readMessage( + getPerformanceRequirementsFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: + { + input.readMessage(getStorageConfigFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000010; + break; + } // case 42 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.cloud.gkerecommender.v1.ModelServerInfo modelServerInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.ModelServerInfo, + com.google.cloud.gkerecommender.v1.ModelServerInfo.Builder, + com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder> + modelServerInfoBuilder_; + + /** + * + * + *
+     * Required. The model server configuration to generate the manifest for. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return Whether the modelServerInfo field is set. + */ + public boolean hasModelServerInfo() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Required. The model server configuration to generate the manifest for. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The modelServerInfo. + */ + public com.google.cloud.gkerecommender.v1.ModelServerInfo getModelServerInfo() { + if (modelServerInfoBuilder_ == null) { + return modelServerInfo_ == null + ? com.google.cloud.gkerecommender.v1.ModelServerInfo.getDefaultInstance() + : modelServerInfo_; + } else { + return modelServerInfoBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Required. The model server configuration to generate the manifest for. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder setModelServerInfo(com.google.cloud.gkerecommender.v1.ModelServerInfo value) { + if (modelServerInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + modelServerInfo_ = value; + } else { + modelServerInfoBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The model server configuration to generate the manifest for. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder setModelServerInfo( + com.google.cloud.gkerecommender.v1.ModelServerInfo.Builder builderForValue) { + if (modelServerInfoBuilder_ == null) { + modelServerInfo_ = builderForValue.build(); + } else { + modelServerInfoBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The model server configuration to generate the manifest for. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder mergeModelServerInfo(com.google.cloud.gkerecommender.v1.ModelServerInfo value) { + if (modelServerInfoBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && modelServerInfo_ != null + && modelServerInfo_ + != com.google.cloud.gkerecommender.v1.ModelServerInfo.getDefaultInstance()) { + getModelServerInfoBuilder().mergeFrom(value); + } else { + modelServerInfo_ = value; + } + } else { + modelServerInfoBuilder_.mergeFrom(value); + } + if (modelServerInfo_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Required. The model server configuration to generate the manifest for. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder clearModelServerInfo() { + bitField0_ = (bitField0_ & ~0x00000001); + modelServerInfo_ = null; + if (modelServerInfoBuilder_ != null) { + modelServerInfoBuilder_.dispose(); + modelServerInfoBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The model server configuration to generate the manifest for. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public com.google.cloud.gkerecommender.v1.ModelServerInfo.Builder getModelServerInfoBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getModelServerInfoFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Required. The model server configuration to generate the manifest for. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder + getModelServerInfoOrBuilder() { + if (modelServerInfoBuilder_ != null) { + return modelServerInfoBuilder_.getMessageOrBuilder(); + } else { + return modelServerInfo_ == null + ? com.google.cloud.gkerecommender.v1.ModelServerInfo.getDefaultInstance() + : modelServerInfo_; + } + } + + /** + * + * + *
+     * Required. The model server configuration to generate the manifest for. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.ModelServerInfo, + com.google.cloud.gkerecommender.v1.ModelServerInfo.Builder, + com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder> + getModelServerInfoFieldBuilder() { + if (modelServerInfoBuilder_ == null) { + modelServerInfoBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.ModelServerInfo, + com.google.cloud.gkerecommender.v1.ModelServerInfo.Builder, + com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder>( + getModelServerInfo(), getParentForChildren(), isClean()); + modelServerInfo_ = null; + } + return modelServerInfoBuilder_; + } + + private java.lang.Object acceleratorType_ = ""; + + /** + * + * + *
+     * Required. The accelerator type. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid accelerators for a given `model_server_info`.
+     * 
+ * + * string accelerator_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The acceleratorType. + */ + public java.lang.String getAcceleratorType() { + java.lang.Object ref = acceleratorType_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + acceleratorType_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Required. The accelerator type. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid accelerators for a given `model_server_info`.
+     * 
+ * + * string accelerator_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for acceleratorType. + */ + public com.google.protobuf.ByteString getAcceleratorTypeBytes() { + java.lang.Object ref = acceleratorType_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + acceleratorType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Required. The accelerator type. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid accelerators for a given `model_server_info`.
+     * 
+ * + * string accelerator_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The acceleratorType to set. + * @return This builder for chaining. + */ + public Builder setAcceleratorType(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + acceleratorType_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The accelerator type. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid accelerators for a given `model_server_info`.
+     * 
+ * + * string accelerator_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearAcceleratorType() { + acceleratorType_ = getDefaultInstance().getAcceleratorType(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The accelerator type. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid accelerators for a given `model_server_info`.
+     * 
+ * + * string accelerator_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for acceleratorType to set. + * @return This builder for chaining. + */ + public Builder setAcceleratorTypeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + acceleratorType_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object kubernetesNamespace_ = ""; + + /** + * + * + *
+     * Optional. The kubernetes namespace to deploy the manifests in.
+     * 
+ * + * string kubernetes_namespace = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The kubernetesNamespace. + */ + public java.lang.String getKubernetesNamespace() { + java.lang.Object ref = kubernetesNamespace_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + kubernetesNamespace_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. The kubernetes namespace to deploy the manifests in.
+     * 
+ * + * string kubernetes_namespace = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for kubernetesNamespace. + */ + public com.google.protobuf.ByteString getKubernetesNamespaceBytes() { + java.lang.Object ref = kubernetesNamespace_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + kubernetesNamespace_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. The kubernetes namespace to deploy the manifests in.
+     * 
+ * + * string kubernetes_namespace = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The kubernetesNamespace to set. + * @return This builder for chaining. + */ + public Builder setKubernetesNamespace(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + kubernetesNamespace_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The kubernetes namespace to deploy the manifests in.
+     * 
+ * + * string kubernetes_namespace = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearKubernetesNamespace() { + kubernetesNamespace_ = getDefaultInstance().getKubernetesNamespace(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The kubernetes namespace to deploy the manifests in.
+     * 
+ * + * string kubernetes_namespace = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for kubernetesNamespace to set. + * @return This builder for chaining. + */ + public Builder setKubernetesNamespaceBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + kubernetesNamespace_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private com.google.cloud.gkerecommender.v1.PerformanceRequirements performanceRequirements_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.PerformanceRequirements, + com.google.cloud.gkerecommender.v1.PerformanceRequirements.Builder, + com.google.cloud.gkerecommender.v1.PerformanceRequirementsOrBuilder> + performanceRequirementsBuilder_; + + /** + * + * + *
+     * Optional. The performance requirements to use for generating Horizontal Pod
+     * Autoscaler (HPA) resources. If provided, the manifest includes HPA
+     * resources to adjust the model server replica count to maintain the
+     * specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are
+     * not currently supported for HPA generation. If the specified targets are
+     * not achievable, the HPA manifest will not be generated.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the performanceRequirements field is set. + */ + public boolean hasPerformanceRequirements() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Optional. The performance requirements to use for generating Horizontal Pod
+     * Autoscaler (HPA) resources. If provided, the manifest includes HPA
+     * resources to adjust the model server replica count to maintain the
+     * specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are
+     * not currently supported for HPA generation. If the specified targets are
+     * not achievable, the HPA manifest will not be generated.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The performanceRequirements. + */ + public com.google.cloud.gkerecommender.v1.PerformanceRequirements getPerformanceRequirements() { + if (performanceRequirementsBuilder_ == null) { + return performanceRequirements_ == null + ? com.google.cloud.gkerecommender.v1.PerformanceRequirements.getDefaultInstance() + : performanceRequirements_; + } else { + return performanceRequirementsBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Optional. The performance requirements to use for generating Horizontal Pod
+     * Autoscaler (HPA) resources. If provided, the manifest includes HPA
+     * resources to adjust the model server replica count to maintain the
+     * specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are
+     * not currently supported for HPA generation. If the specified targets are
+     * not achievable, the HPA manifest will not be generated.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setPerformanceRequirements( + com.google.cloud.gkerecommender.v1.PerformanceRequirements value) { + if (performanceRequirementsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + performanceRequirements_ = value; + } else { + performanceRequirementsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The performance requirements to use for generating Horizontal Pod
+     * Autoscaler (HPA) resources. If provided, the manifest includes HPA
+     * resources to adjust the model server replica count to maintain the
+     * specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are
+     * not currently supported for HPA generation. If the specified targets are
+     * not achievable, the HPA manifest will not be generated.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setPerformanceRequirements( + com.google.cloud.gkerecommender.v1.PerformanceRequirements.Builder builderForValue) { + if (performanceRequirementsBuilder_ == null) { + performanceRequirements_ = builderForValue.build(); + } else { + performanceRequirementsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The performance requirements to use for generating Horizontal Pod
+     * Autoscaler (HPA) resources. If provided, the manifest includes HPA
+     * resources to adjust the model server replica count to maintain the
+     * specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are
+     * not currently supported for HPA generation. If the specified targets are
+     * not achievable, the HPA manifest will not be generated.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergePerformanceRequirements( + com.google.cloud.gkerecommender.v1.PerformanceRequirements value) { + if (performanceRequirementsBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) + && performanceRequirements_ != null + && performanceRequirements_ + != com.google.cloud.gkerecommender.v1.PerformanceRequirements + .getDefaultInstance()) { + getPerformanceRequirementsBuilder().mergeFrom(value); + } else { + performanceRequirements_ = value; + } + } else { + performanceRequirementsBuilder_.mergeFrom(value); + } + if (performanceRequirements_ != null) { + bitField0_ |= 0x00000008; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Optional. The performance requirements to use for generating Horizontal Pod
+     * Autoscaler (HPA) resources. If provided, the manifest includes HPA
+     * resources to adjust the model server replica count to maintain the
+     * specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are
+     * not currently supported for HPA generation. If the specified targets are
+     * not achievable, the HPA manifest will not be generated.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearPerformanceRequirements() { + bitField0_ = (bitField0_ & ~0x00000008); + performanceRequirements_ = null; + if (performanceRequirementsBuilder_ != null) { + performanceRequirementsBuilder_.dispose(); + performanceRequirementsBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The performance requirements to use for generating Horizontal Pod
+     * Autoscaler (HPA) resources. If provided, the manifest includes HPA
+     * resources to adjust the model server replica count to maintain the
+     * specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are
+     * not currently supported for HPA generation. If the specified targets are
+     * not achievable, the HPA manifest will not be generated.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.gkerecommender.v1.PerformanceRequirements.Builder + getPerformanceRequirementsBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getPerformanceRequirementsFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. The performance requirements to use for generating Horizontal Pod
+     * Autoscaler (HPA) resources. If provided, the manifest includes HPA
+     * resources to adjust the model server replica count to maintain the
+     * specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are
+     * not currently supported for HPA generation. If the specified targets are
+     * not achievable, the HPA manifest will not be generated.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.gkerecommender.v1.PerformanceRequirementsOrBuilder + getPerformanceRequirementsOrBuilder() { + if (performanceRequirementsBuilder_ != null) { + return performanceRequirementsBuilder_.getMessageOrBuilder(); + } else { + return performanceRequirements_ == null + ? com.google.cloud.gkerecommender.v1.PerformanceRequirements.getDefaultInstance() + : performanceRequirements_; + } + } + + /** + * + * + *
+     * Optional. The performance requirements to use for generating Horizontal Pod
+     * Autoscaler (HPA) resources. If provided, the manifest includes HPA
+     * resources to adjust the model server replica count to maintain the
+     * specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are
+     * not currently supported for HPA generation. If the specified targets are
+     * not achievable, the HPA manifest will not be generated.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.PerformanceRequirements, + com.google.cloud.gkerecommender.v1.PerformanceRequirements.Builder, + com.google.cloud.gkerecommender.v1.PerformanceRequirementsOrBuilder> + getPerformanceRequirementsFieldBuilder() { + if (performanceRequirementsBuilder_ == null) { + performanceRequirementsBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.PerformanceRequirements, + com.google.cloud.gkerecommender.v1.PerformanceRequirements.Builder, + com.google.cloud.gkerecommender.v1.PerformanceRequirementsOrBuilder>( + getPerformanceRequirements(), getParentForChildren(), isClean()); + performanceRequirements_ = null; + } + return performanceRequirementsBuilder_; + } + + private com.google.cloud.gkerecommender.v1.StorageConfig storageConfig_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.StorageConfig, + com.google.cloud.gkerecommender.v1.StorageConfig.Builder, + com.google.cloud.gkerecommender.v1.StorageConfigOrBuilder> + storageConfigBuilder_; + + /** + * + * + *
+     * Optional. The storage configuration for the model. If not provided, the
+     * model is loaded from Huggingface.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.StorageConfig storage_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the storageConfig field is set. + */ + public boolean hasStorageConfig() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * Optional. The storage configuration for the model. If not provided, the
+     * model is loaded from Huggingface.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.StorageConfig storage_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The storageConfig. + */ + public com.google.cloud.gkerecommender.v1.StorageConfig getStorageConfig() { + if (storageConfigBuilder_ == null) { + return storageConfig_ == null + ? com.google.cloud.gkerecommender.v1.StorageConfig.getDefaultInstance() + : storageConfig_; + } else { + return storageConfigBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Optional. The storage configuration for the model. If not provided, the
+     * model is loaded from Huggingface.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.StorageConfig storage_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setStorageConfig(com.google.cloud.gkerecommender.v1.StorageConfig value) { + if (storageConfigBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + storageConfig_ = value; + } else { + storageConfigBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The storage configuration for the model. If not provided, the
+     * model is loaded from Huggingface.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.StorageConfig storage_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setStorageConfig( + com.google.cloud.gkerecommender.v1.StorageConfig.Builder builderForValue) { + if (storageConfigBuilder_ == null) { + storageConfig_ = builderForValue.build(); + } else { + storageConfigBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The storage configuration for the model. If not provided, the
+     * model is loaded from Huggingface.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.StorageConfig storage_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeStorageConfig(com.google.cloud.gkerecommender.v1.StorageConfig value) { + if (storageConfigBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) + && storageConfig_ != null + && storageConfig_ + != com.google.cloud.gkerecommender.v1.StorageConfig.getDefaultInstance()) { + getStorageConfigBuilder().mergeFrom(value); + } else { + storageConfig_ = value; + } + } else { + storageConfigBuilder_.mergeFrom(value); + } + if (storageConfig_ != null) { + bitField0_ |= 0x00000010; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Optional. The storage configuration for the model. If not provided, the
+     * model is loaded from Huggingface.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.StorageConfig storage_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearStorageConfig() { + bitField0_ = (bitField0_ & ~0x00000010); + storageConfig_ = null; + if (storageConfigBuilder_ != null) { + storageConfigBuilder_.dispose(); + storageConfigBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The storage configuration for the model. If not provided, the
+     * model is loaded from Huggingface.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.StorageConfig storage_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.gkerecommender.v1.StorageConfig.Builder getStorageConfigBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getStorageConfigFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. The storage configuration for the model. If not provided, the
+     * model is loaded from Huggingface.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.StorageConfig storage_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.gkerecommender.v1.StorageConfigOrBuilder getStorageConfigOrBuilder() { + if (storageConfigBuilder_ != null) { + return storageConfigBuilder_.getMessageOrBuilder(); + } else { + return storageConfig_ == null + ? com.google.cloud.gkerecommender.v1.StorageConfig.getDefaultInstance() + : storageConfig_; + } + } + + /** + * + * + *
+     * Optional. The storage configuration for the model. If not provided, the
+     * model is loaded from Huggingface.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.StorageConfig storage_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.StorageConfig, + com.google.cloud.gkerecommender.v1.StorageConfig.Builder, + com.google.cloud.gkerecommender.v1.StorageConfigOrBuilder> + getStorageConfigFieldBuilder() { + if (storageConfigBuilder_ == null) { + storageConfigBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.StorageConfig, + com.google.cloud.gkerecommender.v1.StorageConfig.Builder, + com.google.cloud.gkerecommender.v1.StorageConfigOrBuilder>( + getStorageConfig(), getParentForChildren(), isClean()); + storageConfig_ = null; + } + return storageConfigBuilder_; + } + + @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:google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest) + private static final com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest(); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GenerateOptimizedManifestRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/GenerateOptimizedManifestRequestOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/GenerateOptimizedManifestRequestOrBuilder.java new file mode 100644 index 000000000000..c9b5beb242b4 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/GenerateOptimizedManifestRequestOrBuilder.java @@ -0,0 +1,236 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface GenerateOptimizedManifestRequestOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Required. The model server configuration to generate the manifest for. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid configurations.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return Whether the modelServerInfo field is set. + */ + boolean hasModelServerInfo(); + + /** + * + * + *
+   * Required. The model server configuration to generate the manifest for. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid configurations.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The modelServerInfo. + */ + com.google.cloud.gkerecommender.v1.ModelServerInfo getModelServerInfo(); + + /** + * + * + *
+   * Required. The model server configuration to generate the manifest for. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid configurations.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder getModelServerInfoOrBuilder(); + + /** + * + * + *
+   * Required. The accelerator type. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid accelerators for a given `model_server_info`.
+   * 
+ * + * string accelerator_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The acceleratorType. + */ + java.lang.String getAcceleratorType(); + + /** + * + * + *
+   * Required. The accelerator type. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid accelerators for a given `model_server_info`.
+   * 
+ * + * string accelerator_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for acceleratorType. + */ + com.google.protobuf.ByteString getAcceleratorTypeBytes(); + + /** + * + * + *
+   * Optional. The kubernetes namespace to deploy the manifests in.
+   * 
+ * + * string kubernetes_namespace = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The kubernetesNamespace. + */ + java.lang.String getKubernetesNamespace(); + + /** + * + * + *
+   * Optional. The kubernetes namespace to deploy the manifests in.
+   * 
+ * + * string kubernetes_namespace = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for kubernetesNamespace. + */ + com.google.protobuf.ByteString getKubernetesNamespaceBytes(); + + /** + * + * + *
+   * Optional. The performance requirements to use for generating Horizontal Pod
+   * Autoscaler (HPA) resources. If provided, the manifest includes HPA
+   * resources to adjust the model server replica count to maintain the
+   * specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are
+   * not currently supported for HPA generation. If the specified targets are
+   * not achievable, the HPA manifest will not be generated.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the performanceRequirements field is set. + */ + boolean hasPerformanceRequirements(); + + /** + * + * + *
+   * Optional. The performance requirements to use for generating Horizontal Pod
+   * Autoscaler (HPA) resources. If provided, the manifest includes HPA
+   * resources to adjust the model server replica count to maintain the
+   * specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are
+   * not currently supported for HPA generation. If the specified targets are
+   * not achievable, the HPA manifest will not be generated.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The performanceRequirements. + */ + com.google.cloud.gkerecommender.v1.PerformanceRequirements getPerformanceRequirements(); + + /** + * + * + *
+   * Optional. The performance requirements to use for generating Horizontal Pod
+   * Autoscaler (HPA) resources. If provided, the manifest includes HPA
+   * resources to adjust the model server replica count to maintain the
+   * specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are
+   * not currently supported for HPA generation. If the specified targets are
+   * not achievable, the HPA manifest will not be generated.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.PerformanceRequirements performance_requirements = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.cloud.gkerecommender.v1.PerformanceRequirementsOrBuilder + getPerformanceRequirementsOrBuilder(); + + /** + * + * + *
+   * Optional. The storage configuration for the model. If not provided, the
+   * model is loaded from Huggingface.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.StorageConfig storage_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the storageConfig field is set. + */ + boolean hasStorageConfig(); + + /** + * + * + *
+   * Optional. The storage configuration for the model. If not provided, the
+   * model is loaded from Huggingface.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.StorageConfig storage_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The storageConfig. + */ + com.google.cloud.gkerecommender.v1.StorageConfig getStorageConfig(); + + /** + * + * + *
+   * Optional. The storage configuration for the model. If not provided, the
+   * model is loaded from Huggingface.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.StorageConfig storage_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.cloud.gkerecommender.v1.StorageConfigOrBuilder getStorageConfigOrBuilder(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/GenerateOptimizedManifestResponse.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/GenerateOptimizedManifestResponse.java new file mode 100644 index 000000000000..607574031745 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/GenerateOptimizedManifestResponse.java @@ -0,0 +1,1549 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Response message for
+ * [GkeInferenceQuickstart.GenerateOptimizedManifest][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.GenerateOptimizedManifest].
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse} + */ +public final class GenerateOptimizedManifestResponse extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse) + GenerateOptimizedManifestResponseOrBuilder { + private static final long serialVersionUID = 0L; + + // Use GenerateOptimizedManifestResponse.newBuilder() to construct. + private GenerateOptimizedManifestResponse( + com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private GenerateOptimizedManifestResponse() { + kubernetesManifests_ = java.util.Collections.emptyList(); + comments_ = com.google.protobuf.LazyStringArrayList.emptyList(); + manifestVersion_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new GenerateOptimizedManifestResponse(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse.class, + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse.Builder.class); + } + + public static final int KUBERNETES_MANIFESTS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List + kubernetesManifests_; + + /** + * + * + *
+   * Output only. A list of generated Kubernetes manifests.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public java.util.List + getKubernetesManifestsList() { + return kubernetesManifests_; + } + + /** + * + * + *
+   * Output only. A list of generated Kubernetes manifests.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public java.util.List + getKubernetesManifestsOrBuilderList() { + return kubernetesManifests_; + } + + /** + * + * + *
+   * Output only. A list of generated Kubernetes manifests.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public int getKubernetesManifestsCount() { + return kubernetesManifests_.size(); + } + + /** + * + * + *
+   * Output only. A list of generated Kubernetes manifests.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.KubernetesManifest getKubernetesManifests(int index) { + return kubernetesManifests_.get(index); + } + + /** + * + * + *
+   * Output only. A list of generated Kubernetes manifests.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.KubernetesManifestOrBuilder + getKubernetesManifestsOrBuilder(int index) { + return kubernetesManifests_.get(index); + } + + public static final int COMMENTS_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList comments_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+   * Output only. Comments related to deploying the generated manifests.
+   * 
+ * + * repeated string comments = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return A list containing the comments. + */ + public com.google.protobuf.ProtocolStringList getCommentsList() { + return comments_; + } + + /** + * + * + *
+   * Output only. Comments related to deploying the generated manifests.
+   * 
+ * + * repeated string comments = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The count of comments. + */ + public int getCommentsCount() { + return comments_.size(); + } + + /** + * + * + *
+   * Output only. Comments related to deploying the generated manifests.
+   * 
+ * + * repeated string comments = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index of the element to return. + * @return The comments at the given index. + */ + public java.lang.String getComments(int index) { + return comments_.get(index); + } + + /** + * + * + *
+   * Output only. Comments related to deploying the generated manifests.
+   * 
+ * + * repeated string comments = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index of the value to return. + * @return The bytes of the comments at the given index. + */ + public com.google.protobuf.ByteString getCommentsBytes(int index) { + return comments_.getByteString(index); + } + + public static final int MANIFEST_VERSION_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object manifestVersion_ = ""; + + /** + * + * + *
+   * Output only. Additional information about the versioned dependencies used
+   * to generate the manifests. See [Run best practice inference with GKE
+   * Inference Quickstart
+   * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart)
+   * for details.
+   * 
+ * + * string manifest_version = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The manifestVersion. + */ + @java.lang.Override + public java.lang.String getManifestVersion() { + java.lang.Object ref = manifestVersion_; + 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(); + manifestVersion_ = s; + return s; + } + } + + /** + * + * + *
+   * Output only. Additional information about the versioned dependencies used
+   * to generate the manifests. See [Run best practice inference with GKE
+   * Inference Quickstart
+   * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart)
+   * for details.
+   * 
+ * + * string manifest_version = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for manifestVersion. + */ + @java.lang.Override + public com.google.protobuf.ByteString getManifestVersionBytes() { + java.lang.Object ref = manifestVersion_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + manifestVersion_ = 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 { + for (int i = 0; i < kubernetesManifests_.size(); i++) { + output.writeMessage(1, kubernetesManifests_.get(i)); + } + for (int i = 0; i < comments_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, comments_.getRaw(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(manifestVersion_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, manifestVersion_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < kubernetesManifests_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(1, kubernetesManifests_.get(i)); + } + { + int dataSize = 0; + for (int i = 0; i < comments_.size(); i++) { + dataSize += computeStringSizeNoTag(comments_.getRaw(i)); + } + size += dataSize; + size += 1 * getCommentsList().size(); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(manifestVersion_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, manifestVersion_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse other = + (com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse) obj; + + if (!getKubernetesManifestsList().equals(other.getKubernetesManifestsList())) return false; + if (!getCommentsList().equals(other.getCommentsList())) return false; + if (!getManifestVersion().equals(other.getManifestVersion())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getKubernetesManifestsCount() > 0) { + hash = (37 * hash) + KUBERNETES_MANIFESTS_FIELD_NUMBER; + hash = (53 * hash) + getKubernetesManifestsList().hashCode(); + } + if (getCommentsCount() > 0) { + hash = (37 * hash) + COMMENTS_FIELD_NUMBER; + hash = (53 * hash) + getCommentsList().hashCode(); + } + hash = (37 * hash) + MANIFEST_VERSION_FIELD_NUMBER; + hash = (53 * hash) + getManifestVersion().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse 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 com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse + 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 com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse 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( + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse 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; + } + + /** + * + * + *
+   * Response message for
+   * [GkeInferenceQuickstart.GenerateOptimizedManifest][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.GenerateOptimizedManifest].
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse) + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse.class, + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse.Builder.class); + } + + // Construct using + // com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (kubernetesManifestsBuilder_ == null) { + kubernetesManifests_ = java.util.Collections.emptyList(); + } else { + kubernetesManifests_ = null; + kubernetesManifestsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + comments_ = com.google.protobuf.LazyStringArrayList.emptyList(); + manifestVersion_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestResponse_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse + getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse build() { + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse buildPartial() { + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse result = + new com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields( + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse result) { + if (kubernetesManifestsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + kubernetesManifests_ = java.util.Collections.unmodifiableList(kubernetesManifests_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.kubernetesManifests_ = kubernetesManifests_; + } else { + result.kubernetesManifests_ = kubernetesManifestsBuilder_.build(); + } + } + + private void buildPartial0( + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000002) != 0)) { + comments_.makeImmutable(); + result.comments_ = comments_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.manifestVersion_ = manifestVersion_; + } + } + + @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 com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse) { + return mergeFrom( + (com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse other) { + if (other + == com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse + .getDefaultInstance()) return this; + if (kubernetesManifestsBuilder_ == null) { + if (!other.kubernetesManifests_.isEmpty()) { + if (kubernetesManifests_.isEmpty()) { + kubernetesManifests_ = other.kubernetesManifests_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureKubernetesManifestsIsMutable(); + kubernetesManifests_.addAll(other.kubernetesManifests_); + } + onChanged(); + } + } else { + if (!other.kubernetesManifests_.isEmpty()) { + if (kubernetesManifestsBuilder_.isEmpty()) { + kubernetesManifestsBuilder_.dispose(); + kubernetesManifestsBuilder_ = null; + kubernetesManifests_ = other.kubernetesManifests_; + bitField0_ = (bitField0_ & ~0x00000001); + kubernetesManifestsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getKubernetesManifestsFieldBuilder() + : null; + } else { + kubernetesManifestsBuilder_.addAllMessages(other.kubernetesManifests_); + } + } + } + if (!other.comments_.isEmpty()) { + if (comments_.isEmpty()) { + comments_ = other.comments_; + bitField0_ |= 0x00000002; + } else { + ensureCommentsIsMutable(); + comments_.addAll(other.comments_); + } + onChanged(); + } + if (!other.getManifestVersion().isEmpty()) { + manifestVersion_ = other.manifestVersion_; + bitField0_ |= 0x00000004; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + com.google.cloud.gkerecommender.v1.KubernetesManifest m = + input.readMessage( + com.google.cloud.gkerecommender.v1.KubernetesManifest.parser(), + extensionRegistry); + if (kubernetesManifestsBuilder_ == null) { + ensureKubernetesManifestsIsMutable(); + kubernetesManifests_.add(m); + } else { + kubernetesManifestsBuilder_.addMessage(m); + } + break; + } // case 10 + case 18: + { + java.lang.String s = input.readStringRequireUtf8(); + ensureCommentsIsMutable(); + comments_.add(s); + break; + } // case 18 + case 26: + { + manifestVersion_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.util.List + kubernetesManifests_ = java.util.Collections.emptyList(); + + private void ensureKubernetesManifestsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + kubernetesManifests_ = + new java.util.ArrayList( + kubernetesManifests_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.gkerecommender.v1.KubernetesManifest, + com.google.cloud.gkerecommender.v1.KubernetesManifest.Builder, + com.google.cloud.gkerecommender.v1.KubernetesManifestOrBuilder> + kubernetesManifestsBuilder_; + + /** + * + * + *
+     * Output only. A list of generated Kubernetes manifests.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public java.util.List + getKubernetesManifestsList() { + if (kubernetesManifestsBuilder_ == null) { + return java.util.Collections.unmodifiableList(kubernetesManifests_); + } else { + return kubernetesManifestsBuilder_.getMessageList(); + } + } + + /** + * + * + *
+     * Output only. A list of generated Kubernetes manifests.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public int getKubernetesManifestsCount() { + if (kubernetesManifestsBuilder_ == null) { + return kubernetesManifests_.size(); + } else { + return kubernetesManifestsBuilder_.getCount(); + } + } + + /** + * + * + *
+     * Output only. A list of generated Kubernetes manifests.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.KubernetesManifest getKubernetesManifests(int index) { + if (kubernetesManifestsBuilder_ == null) { + return kubernetesManifests_.get(index); + } else { + return kubernetesManifestsBuilder_.getMessage(index); + } + } + + /** + * + * + *
+     * Output only. A list of generated Kubernetes manifests.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setKubernetesManifests( + int index, com.google.cloud.gkerecommender.v1.KubernetesManifest value) { + if (kubernetesManifestsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureKubernetesManifestsIsMutable(); + kubernetesManifests_.set(index, value); + onChanged(); + } else { + kubernetesManifestsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Output only. A list of generated Kubernetes manifests.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setKubernetesManifests( + int index, com.google.cloud.gkerecommender.v1.KubernetesManifest.Builder builderForValue) { + if (kubernetesManifestsBuilder_ == null) { + ensureKubernetesManifestsIsMutable(); + kubernetesManifests_.set(index, builderForValue.build()); + onChanged(); + } else { + kubernetesManifestsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Output only. A list of generated Kubernetes manifests.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addKubernetesManifests( + com.google.cloud.gkerecommender.v1.KubernetesManifest value) { + if (kubernetesManifestsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureKubernetesManifestsIsMutable(); + kubernetesManifests_.add(value); + onChanged(); + } else { + kubernetesManifestsBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+     * Output only. A list of generated Kubernetes manifests.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addKubernetesManifests( + int index, com.google.cloud.gkerecommender.v1.KubernetesManifest value) { + if (kubernetesManifestsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureKubernetesManifestsIsMutable(); + kubernetesManifests_.add(index, value); + onChanged(); + } else { + kubernetesManifestsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Output only. A list of generated Kubernetes manifests.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addKubernetesManifests( + com.google.cloud.gkerecommender.v1.KubernetesManifest.Builder builderForValue) { + if (kubernetesManifestsBuilder_ == null) { + ensureKubernetesManifestsIsMutable(); + kubernetesManifests_.add(builderForValue.build()); + onChanged(); + } else { + kubernetesManifestsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Output only. A list of generated Kubernetes manifests.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addKubernetesManifests( + int index, com.google.cloud.gkerecommender.v1.KubernetesManifest.Builder builderForValue) { + if (kubernetesManifestsBuilder_ == null) { + ensureKubernetesManifestsIsMutable(); + kubernetesManifests_.add(index, builderForValue.build()); + onChanged(); + } else { + kubernetesManifestsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Output only. A list of generated Kubernetes manifests.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addAllKubernetesManifests( + java.lang.Iterable + values) { + if (kubernetesManifestsBuilder_ == null) { + ensureKubernetesManifestsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, kubernetesManifests_); + onChanged(); + } else { + kubernetesManifestsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+     * Output only. A list of generated Kubernetes manifests.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder clearKubernetesManifests() { + if (kubernetesManifestsBuilder_ == null) { + kubernetesManifests_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + kubernetesManifestsBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Output only. A list of generated Kubernetes manifests.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder removeKubernetesManifests(int index) { + if (kubernetesManifestsBuilder_ == null) { + ensureKubernetesManifestsIsMutable(); + kubernetesManifests_.remove(index); + onChanged(); + } else { + kubernetesManifestsBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+     * Output only. A list of generated Kubernetes manifests.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.KubernetesManifest.Builder + getKubernetesManifestsBuilder(int index) { + return getKubernetesManifestsFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+     * Output only. A list of generated Kubernetes manifests.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.KubernetesManifestOrBuilder + getKubernetesManifestsOrBuilder(int index) { + if (kubernetesManifestsBuilder_ == null) { + return kubernetesManifests_.get(index); + } else { + return kubernetesManifestsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+     * Output only. A list of generated Kubernetes manifests.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public java.util.List + getKubernetesManifestsOrBuilderList() { + if (kubernetesManifestsBuilder_ != null) { + return kubernetesManifestsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(kubernetesManifests_); + } + } + + /** + * + * + *
+     * Output only. A list of generated Kubernetes manifests.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.KubernetesManifest.Builder + addKubernetesManifestsBuilder() { + return getKubernetesManifestsFieldBuilder() + .addBuilder(com.google.cloud.gkerecommender.v1.KubernetesManifest.getDefaultInstance()); + } + + /** + * + * + *
+     * Output only. A list of generated Kubernetes manifests.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.KubernetesManifest.Builder + addKubernetesManifestsBuilder(int index) { + return getKubernetesManifestsFieldBuilder() + .addBuilder( + index, com.google.cloud.gkerecommender.v1.KubernetesManifest.getDefaultInstance()); + } + + /** + * + * + *
+     * Output only. A list of generated Kubernetes manifests.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public java.util.List + getKubernetesManifestsBuilderList() { + return getKubernetesManifestsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.gkerecommender.v1.KubernetesManifest, + com.google.cloud.gkerecommender.v1.KubernetesManifest.Builder, + com.google.cloud.gkerecommender.v1.KubernetesManifestOrBuilder> + getKubernetesManifestsFieldBuilder() { + if (kubernetesManifestsBuilder_ == null) { + kubernetesManifestsBuilder_ = + new com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.gkerecommender.v1.KubernetesManifest, + com.google.cloud.gkerecommender.v1.KubernetesManifest.Builder, + com.google.cloud.gkerecommender.v1.KubernetesManifestOrBuilder>( + kubernetesManifests_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + kubernetesManifests_ = null; + } + return kubernetesManifestsBuilder_; + } + + private com.google.protobuf.LazyStringArrayList comments_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensureCommentsIsMutable() { + if (!comments_.isModifiable()) { + comments_ = new com.google.protobuf.LazyStringArrayList(comments_); + } + bitField0_ |= 0x00000002; + } + + /** + * + * + *
+     * Output only. Comments related to deploying the generated manifests.
+     * 
+ * + * repeated string comments = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return A list containing the comments. + */ + public com.google.protobuf.ProtocolStringList getCommentsList() { + comments_.makeImmutable(); + return comments_; + } + + /** + * + * + *
+     * Output only. Comments related to deploying the generated manifests.
+     * 
+ * + * repeated string comments = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The count of comments. + */ + public int getCommentsCount() { + return comments_.size(); + } + + /** + * + * + *
+     * Output only. Comments related to deploying the generated manifests.
+     * 
+ * + * repeated string comments = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index of the element to return. + * @return The comments at the given index. + */ + public java.lang.String getComments(int index) { + return comments_.get(index); + } + + /** + * + * + *
+     * Output only. Comments related to deploying the generated manifests.
+     * 
+ * + * repeated string comments = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index of the value to return. + * @return The bytes of the comments at the given index. + */ + public com.google.protobuf.ByteString getCommentsBytes(int index) { + return comments_.getByteString(index); + } + + /** + * + * + *
+     * Output only. Comments related to deploying the generated manifests.
+     * 
+ * + * repeated string comments = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index to set the value at. + * @param value The comments to set. + * @return This builder for chaining. + */ + public Builder setComments(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureCommentsIsMutable(); + comments_.set(index, value); + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. Comments related to deploying the generated manifests.
+     * 
+ * + * repeated string comments = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The comments to add. + * @return This builder for chaining. + */ + public Builder addComments(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureCommentsIsMutable(); + comments_.add(value); + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. Comments related to deploying the generated manifests.
+     * 
+ * + * repeated string comments = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param values The comments to add. + * @return This builder for chaining. + */ + public Builder addAllComments(java.lang.Iterable values) { + ensureCommentsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, comments_); + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. Comments related to deploying the generated manifests.
+     * 
+ * + * repeated string comments = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearComments() { + comments_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + ; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. Comments related to deploying the generated manifests.
+     * 
+ * + * repeated string comments = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The bytes of the comments to add. + * @return This builder for chaining. + */ + public Builder addCommentsBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureCommentsIsMutable(); + comments_.add(value); + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object manifestVersion_ = ""; + + /** + * + * + *
+     * Output only. Additional information about the versioned dependencies used
+     * to generate the manifests. See [Run best practice inference with GKE
+     * Inference Quickstart
+     * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart)
+     * for details.
+     * 
+ * + * string manifest_version = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The manifestVersion. + */ + public java.lang.String getManifestVersion() { + java.lang.Object ref = manifestVersion_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + manifestVersion_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Output only. Additional information about the versioned dependencies used
+     * to generate the manifests. See [Run best practice inference with GKE
+     * Inference Quickstart
+     * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart)
+     * for details.
+     * 
+ * + * string manifest_version = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for manifestVersion. + */ + public com.google.protobuf.ByteString getManifestVersionBytes() { + java.lang.Object ref = manifestVersion_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + manifestVersion_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Output only. Additional information about the versioned dependencies used
+     * to generate the manifests. See [Run best practice inference with GKE
+     * Inference Quickstart
+     * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart)
+     * for details.
+     * 
+ * + * string manifest_version = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The manifestVersion to set. + * @return This builder for chaining. + */ + public Builder setManifestVersion(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + manifestVersion_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. Additional information about the versioned dependencies used
+     * to generate the manifests. See [Run best practice inference with GKE
+     * Inference Quickstart
+     * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart)
+     * for details.
+     * 
+ * + * string manifest_version = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearManifestVersion() { + manifestVersion_ = getDefaultInstance().getManifestVersion(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. Additional information about the versioned dependencies used
+     * to generate the manifests. See [Run best practice inference with GKE
+     * Inference Quickstart
+     * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart)
+     * for details.
+     * 
+ * + * string manifest_version = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The bytes for manifestVersion to set. + * @return This builder for chaining. + */ + public Builder setManifestVersionBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + manifestVersion_ = value; + bitField0_ |= 0x00000004; + 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:google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse) + private static final com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse(); + } + + public static com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GenerateOptimizedManifestResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/GenerateOptimizedManifestResponseOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/GenerateOptimizedManifestResponseOrBuilder.java new file mode 100644 index 000000000000..0c5558289bae --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/GenerateOptimizedManifestResponseOrBuilder.java @@ -0,0 +1,182 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface GenerateOptimizedManifestResponseOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Output only. A list of generated Kubernetes manifests.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + java.util.List + getKubernetesManifestsList(); + + /** + * + * + *
+   * Output only. A list of generated Kubernetes manifests.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.cloud.gkerecommender.v1.KubernetesManifest getKubernetesManifests(int index); + + /** + * + * + *
+   * Output only. A list of generated Kubernetes manifests.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + int getKubernetesManifestsCount(); + + /** + * + * + *
+   * Output only. A list of generated Kubernetes manifests.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + java.util.List + getKubernetesManifestsOrBuilderList(); + + /** + * + * + *
+   * Output only. A list of generated Kubernetes manifests.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.KubernetesManifest kubernetes_manifests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.cloud.gkerecommender.v1.KubernetesManifestOrBuilder getKubernetesManifestsOrBuilder( + int index); + + /** + * + * + *
+   * Output only. Comments related to deploying the generated manifests.
+   * 
+ * + * repeated string comments = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return A list containing the comments. + */ + java.util.List getCommentsList(); + + /** + * + * + *
+   * Output only. Comments related to deploying the generated manifests.
+   * 
+ * + * repeated string comments = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The count of comments. + */ + int getCommentsCount(); + + /** + * + * + *
+   * Output only. Comments related to deploying the generated manifests.
+   * 
+ * + * repeated string comments = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index of the element to return. + * @return The comments at the given index. + */ + java.lang.String getComments(int index); + + /** + * + * + *
+   * Output only. Comments related to deploying the generated manifests.
+   * 
+ * + * repeated string comments = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param index The index of the value to return. + * @return The bytes of the comments at the given index. + */ + com.google.protobuf.ByteString getCommentsBytes(int index); + + /** + * + * + *
+   * Output only. Additional information about the versioned dependencies used
+   * to generate the manifests. See [Run best practice inference with GKE
+   * Inference Quickstart
+   * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart)
+   * for details.
+   * 
+ * + * string manifest_version = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The manifestVersion. + */ + java.lang.String getManifestVersion(); + + /** + * + * + *
+   * Output only. Additional information about the versioned dependencies used
+   * to generate the manifests. See [Run best practice inference with GKE
+   * Inference Quickstart
+   * recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart)
+   * for details.
+   * 
+ * + * string manifest_version = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for manifestVersion. + */ + com.google.protobuf.ByteString getManifestVersionBytes(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/GkeRecommenderProto.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/GkeRecommenderProto.java new file mode 100644 index 000000000000..f9ee056d6756 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/GkeRecommenderProto.java @@ -0,0 +1,529 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public final class GkeRecommenderProto { + private GkeRecommenderProto() {} + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {} + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry); + } + + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_FetchModelsRequest_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_FetchModelsRequest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_FetchModelsResponse_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_FetchModelsResponse_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_FetchModelServersRequest_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_FetchModelServersRequest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_FetchModelServersResponse_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_FetchModelServersResponse_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsRequest_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsRequest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsResponse_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsResponse_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataRequest_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataRequest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataResponse_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataResponse_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_FetchProfilesRequest_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_FetchProfilesRequest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_PerformanceRequirements_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_PerformanceRequirements_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_Amount_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_Amount_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_Cost_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_Cost_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_TokensPerSecondRange_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_TokensPerSecondRange_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_MillisecondRange_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_MillisecondRange_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_PerformanceRange_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_PerformanceRange_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_FetchProfilesResponse_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_FetchProfilesResponse_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_ModelServerInfo_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_ModelServerInfo_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_ResourcesUsed_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_ResourcesUsed_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_PerformanceStats_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_PerformanceStats_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_Profile_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_Profile_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestRequest_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestRequest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_KubernetesManifest_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_KubernetesManifest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestResponse_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestResponse_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_gkerecommender_v1_StorageConfig_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_gkerecommender_v1_StorageConfig_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + return descriptor; + } + + private static com.google.protobuf.Descriptors.FileDescriptor descriptor; + + static { + java.lang.String[] descriptorData = { + "\n" + + "3google/cloud/gkerecommender/v1/gkerecommender.proto\022\036google.cloud.gkerecommend" + + "er.v1\032\034google/api/annotations.proto\032\027goo" + + "gle/api/client.proto\032\037google/api/field_behavior.proto\"l\n" + + "\022FetchModelsRequest\022\033\n" + + "\tpage_size\030\001 \001(\005B\003\340A\001H\000\210\001\001\022\034\n\n" + + "page_token\030\002 \001(\tB\003\340A\001H\001\210\001\001B\014\n\n" + + "_page_sizeB\r\n" + + "\013_page_token\"H\n" + + "\023FetchModelsResponse\022\023\n" + + "\006models\030\001 \003(\tB\003\340A\003\022\034\n" + + "\017next_page_token\030\002 \001(\tB\003\340A\003\"\206\001\n" + + "\030FetchModelServersRequest\022\022\n" + + "\005model\030\001 \001(\tB\003\340A\002\022\033\n" + + "\tpage_size\030\002 \001(\005B\003\340A\001H\000\210\001\001\022\034\n\n" + + "page_token\030\003 \001(\tB\003\340A\001H\001\210\001\001B\014\n\n" + + "_page_sizeB\r\n" + + "\013_page_token\"U\n" + + "\031FetchModelServersResponse\022\032\n\r" + + "model_servers\030\001 \003(\tB\003\340A\003\022\034\n" + + "\017next_page_token\030\002 \001(\tB\003\340A\003\"\250\001\n" + + "\037FetchModelServerVersionsRequest\022\022\n" + + "\005model\030\001 \001(\tB\003\340A\002\022\031\n" + + "\014model_server\030\002 \001(\tB\003\340A\002\022\033\n" + + "\tpage_size\030\003 \001(\005B\003\340A\001H\000\210\001\001\022\034\n\n" + + "page_token\030\004 \001(\tB\003\340A\001H\001\210\001\001B\014\n\n" + + "_page_sizeB\r\n" + + "\013_page_token\"d\n" + + " FetchModelServerVersionsResponse\022\"\n" + + "\025model_server_versions\030\001 \003(\tB\003\340A\003\022\034\n" + + "\017next_page_token\030\002 \001(\tB\003\340A\003\"\247\001\n" + + "\034FetchBenchmarkingDataRequest\022O\n" + + "\021model_server_info\030\001 \001(\0132/.goo" + + "gle.cloud.gkerecommender.v1.ModelServerInfoB\003\340A\002\022\032\n\r" + + "instance_type\030\003 \001(\tB\003\340A\001\022\032\n\r" + + "pricing_model\030\004 \001(\tB\003\340A\001\"^\n" + + "\035FetchBenchmarkingDataResponse\022=\n" + + "\007profile\030\001 \003(\0132\'.goo" + + "gle.cloud.gkerecommender.v1.ProfileB\003\340A\003\"\240\002\n" + + "\024FetchProfilesRequest\022\022\n" + + "\005model\030\001 \001(\tB\003\340A\001\022\031\n" + + "\014model_server\030\002 \001(\tB\003\340A\001\022!\n" + + "\024model_server_version\030\003 \001(\tB\003\340A\001\022^\n" + + "\030performance_requirements\030\004 \001(\01327.google.cloud.gke" + + "recommender.v1.PerformanceRequirementsB\003\340A\001\022\033\n" + + "\tpage_size\030\005 \001(\005B\003\340A\001H\000\210\001\001\022\034\n\n" + + "page_token\030\006 \001(\tB\003\340A\001H\001\210\001\001B\014\n\n" + + "_page_sizeB\r\n" + + "\013_page_token\"\355\001\n" + + "\027PerformanceRequirements\022+\n" + + "\031target_ntpot_milliseconds\030\001 \001(\005B\003\340A\001H\000\210\001\001\022*\n" + + "\030target_ttft_milliseconds\030\002 \001(\005B\003\340A\001H\001\210\001\001\022>\n" + + "\013target_cost\030\003" + + " \001(\0132$.google.cloud.gkerecommender.v1.CostB\003\340A\001B\034\n" + + "\032_target_ntpot_millisecondsB\033\n" + + "\031_target_ttft_milliseconds\"0\n" + + "\006Amount\022\022\n" + + "\005units\030\001 \001(\003B\003\340A\003\022\022\n" + + "\005nanos\030\002 \001(\005B\003\340A\003\"\222\002\n" + + "\004Cost\022S\n" + + "\036cost_per_million_output_tokens\030\001" + + " \001(\0132&.google.cloud.gkerecommender.v1.AmountB\003\340A\001\022R\n" + + "\035cost_per_million_input_tokens\030\002 \001(\0132&.goo" + + "gle.cloud.gkerecommender.v1.AmountB\003\340A\001\022\032\n\r" + + "pricing_model\030\003 \001(\tB\003\340A\001\022)\n" + + "\027output_input_cost_ratio\030\004 \001(\002B\003\340A\001H\000\210\001\001B\032\n" + + "\030_output_input_cost_ratio\":\n" + + "\024TokensPerSecondRange\022\020\n" + + "\003min\030\001 \001(\005B\003\340A\003\022\020\n" + + "\003max\030\002 \001(\005B\003\340A\003\"6\n" + + "\020MillisecondRange\022\020\n" + + "\003min\030\001 \001(\005B\003\340A\003\022\020\n" + + "\003max\030\002 \001(\005B\003\340A\003\"\205\002\n" + + "\020PerformanceRange\022Z\n" + + "\027throughput_output_range\030\001 \001(\01324.google.cl" + + "oud.gkerecommender.v1.TokensPerSecondRangeB\003\340A\003\022I\n\n" + + "ttft_range\030\002 \001(\01320.google.clo" + + "ud.gkerecommender.v1.MillisecondRangeB\003\340A\003\022J\n" + + "\013ntpot_range\030\003 \001(\01320.google.cloud.g" + + "kerecommender.v1.MillisecondRangeB\003\340A\003\"\335\001\n" + + "\025FetchProfilesResponse\022=\n" + + "\007profile\030\001 \003(" + + "\0132\'.google.cloud.gkerecommender.v1.ProfileB\003\340A\003\022P\n" + + "\021performance_range\030\002 \001(\01320.goo" + + "gle.cloud.gkerecommender.v1.PerformanceRangeB\003\340A\003\022\025\n" + + "\010comments\030\003 \001(\tB\003\340A\003\022\034\n" + + "\017next_page_token\030\004 \001(\tB\003\340A\003\"c\n" + + "\017ModelServerInfo\022\022\n" + + "\005model\030\001 \001(\tB\003\340A\002\022\031\n" + + "\014model_server\030\002 \001(\tB\003\340A\002\022!\n" + + "\024model_server_version\030\003 \001(\tB\003\340A\001\"/\n\r" + + "ResourcesUsed\022\036\n" + + "\021accelerator_count\030\001 \001(\005B\003\340A\003\"\324\001\n" + + "\020PerformanceStats\022\037\n" + + "\022queries_per_second\030\001 \001(\002B\003\340A\003\022%\n" + + "\030output_tokens_per_second\030\002 \001(\005B\003\340A\003\022\037\n" + + "\022ntpot_milliseconds\030\003 \001(\005B\003\340A\003\022\036\n" + + "\021ttft_milliseconds\030\004 \001(\005B\003\340A\003\0227\n" + + "\004cost\030\005" + + " \003(\0132$.google.cloud.gkerecommender.v1.CostB\003\340A\003\"\316\002\n" + + "\007Profile\022O\n" + + "\021model_server_info\030\001 \001(\0132/.google.clou" + + "d.gkerecommender.v1.ModelServerInfoB\003\340A\003\022\035\n" + + "\020accelerator_type\030\002 \001(\tB\003\340A\003\022\031\n" + + "\014tpu_topology\030\003 \001(\tB\003\340A\003\022\032\n\r" + + "instance_type\030\004 \001(\tB\003\340A\003\022J\n" + + "\016resources_used\030\005 \001(\0132-.google." + + "cloud.gkerecommender.v1.ResourcesUsedB\003\340A\003\022P\n" + + "\021performance_stats\030\006 \003(\01320.google.c" + + "loud.gkerecommender.v1.PerformanceStatsB\003\340A\003\"\341\002\n" + + " GenerateOptimizedManifestRequest\022O\n" + + "\021model_server_info\030\001 \001(\0132/.google.cl" + + "oud.gkerecommender.v1.ModelServerInfoB\003\340A\002\022\035\n" + + "\020accelerator_type\030\002 \001(\tB\003\340A\002\022!\n" + + "\024kubernetes_namespace\030\003 \001(\tB\003\340A\001\022^\n" + + "\030performance_requirements\030\004 \001(\01327.google.cloud.gk" + + "erecommender.v1.PerformanceRequirementsB\003\340A\001\022J\n" + + "\016storage_config\030\005 \001(\0132-.google.cl" + + "oud.gkerecommender.v1.StorageConfigB\003\340A\001\"W\n" + + "\022KubernetesManifest\022\021\n" + + "\004kind\030\001 \001(\tB\003\340A\003\022\030\n" + + "\013api_version\030\002 \001(\tB\003\340A\003\022\024\n" + + "\007content\030\003 \001(\tB\003\340A\003\"\260\001\n" + + "!GenerateOptimizedManifestResponse\022U\n" + + "\024kubernetes_manifests\030\001 \003(\01322." + + "google.cloud.gkerecommender.v1.KubernetesManifestB\003\340A\003\022\025\n" + + "\010comments\030\002 \003(\tB\003\340A\003\022\035\n" + + "\020manifest_version\030\003 \001(\tB\003\340A\003\"Q\n\r" + + "StorageConfig\022\035\n" + + "\020model_bucket_uri\030\001 \001(\tB\003\340A\001\022!\n" + + "\024xla_cache_bucket_uri\030\002 \001(\tB\003\340A\0012\232\t\n" + + "\026GkeInferenceQuickstart\022\220\001\n" + + "\013FetchModels\0222.google.cloud.gkerecommender.v1.FetchModelsR" + + "equest\0323.google.cloud.gkerecommender.v1." + + "FetchModelsResponse\"\030\202\323\344\223\002\022\022\020/v1/models:fetch\022\250\001\n" + + "\021FetchModelServers\0228.google.cloud.gkerecommender.v1.FetchModelServersRe" + + "quest\0329.google.cloud.gkerecommender.v1.F" + + "etchModelServersResponse\"\036\202\323\344\223\002\030\022\026/v1/modelServers:fetch\022\304\001\n" + + "\030FetchModelServerVersions\022?.google.cloud.gkerecommender.v1.F" + + "etchModelServerVersionsRequest\032@.google.cloud.gkerecommender.v1.FetchModelServer" + + "VersionsResponse\"%\202\323\344\223\002\037\022\035/v1/modelServerVersions:fetch\022\233\001\n\r" + + "FetchProfiles\0224.google.cloud.gkerecommender.v1.FetchProfiles" + + "Request\0325.google.cloud.gkerecommender.v1" + + ".FetchProfilesResponse\"\035\202\323\344\223\002\027\"\022/v1/profiles:fetch:\001*\022\313\001\n" + + "\031GenerateOptimizedManifest\022@.google.cloud.gkerecommender.v1.Gen" + + "erateOptimizedManifestRequest\032A.google.cloud.gkerecommender.v1.GenerateOptimized" + + "ManifestResponse\")\202\323\344\223\002#\"\036/v1/optimizedManifest:generate:\001*\022\273\001\n" + + "\025FetchBenchmarkingData\022<.google.cloud.gkerecommender.v1.F" + + "etchBenchmarkingDataRequest\032=.google.cloud.gkerecommender.v1.FetchBenchmarkingDa" + + "taResponse\"%\202\323\344\223\002\037\"\032/v1/benchmarkingData" + + ":fetch:\001*\032Q\312A\035gkerecommender.googleapis." + + "com\322A.https://www.googleapis.com/auth/cloud-platformB\355\001\n" + + "\"com.google.cloud.gkerecommender.v1B\023GkeRecommenderProtoP\001ZJclou" + + "d.google.com/go/gkerecommender/apiv1/gke" + + "recommenderpb;gkerecommenderpb\252\002\036Google." + + "Cloud.GkeRecommender.V1\312\002\036Google\\Cloud\\G" + + "keRecommender\\V1\352\002!Google::Cloud::GkeRecommender::V1b\006proto3" + }; + descriptor = + com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( + descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + com.google.api.AnnotationsProto.getDescriptor(), + com.google.api.ClientProto.getDescriptor(), + com.google.api.FieldBehaviorProto.getDescriptor(), + }); + internal_static_google_cloud_gkerecommender_v1_FetchModelsRequest_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_google_cloud_gkerecommender_v1_FetchModelsRequest_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_FetchModelsRequest_descriptor, + new java.lang.String[] { + "PageSize", "PageToken", + }); + internal_static_google_cloud_gkerecommender_v1_FetchModelsResponse_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_google_cloud_gkerecommender_v1_FetchModelsResponse_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_FetchModelsResponse_descriptor, + new java.lang.String[] { + "Models", "NextPageToken", + }); + internal_static_google_cloud_gkerecommender_v1_FetchModelServersRequest_descriptor = + getDescriptor().getMessageTypes().get(2); + internal_static_google_cloud_gkerecommender_v1_FetchModelServersRequest_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_FetchModelServersRequest_descriptor, + new java.lang.String[] { + "Model", "PageSize", "PageToken", + }); + internal_static_google_cloud_gkerecommender_v1_FetchModelServersResponse_descriptor = + getDescriptor().getMessageTypes().get(3); + internal_static_google_cloud_gkerecommender_v1_FetchModelServersResponse_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_FetchModelServersResponse_descriptor, + new java.lang.String[] { + "ModelServers", "NextPageToken", + }); + internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsRequest_descriptor = + getDescriptor().getMessageTypes().get(4); + internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsRequest_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsRequest_descriptor, + new java.lang.String[] { + "Model", "ModelServer", "PageSize", "PageToken", + }); + internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsResponse_descriptor = + getDescriptor().getMessageTypes().get(5); + internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsResponse_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_FetchModelServerVersionsResponse_descriptor, + new java.lang.String[] { + "ModelServerVersions", "NextPageToken", + }); + internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataRequest_descriptor = + getDescriptor().getMessageTypes().get(6); + internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataRequest_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataRequest_descriptor, + new java.lang.String[] { + "ModelServerInfo", "InstanceType", "PricingModel", + }); + internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataResponse_descriptor = + getDescriptor().getMessageTypes().get(7); + internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataResponse_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_FetchBenchmarkingDataResponse_descriptor, + new java.lang.String[] { + "Profile", + }); + internal_static_google_cloud_gkerecommender_v1_FetchProfilesRequest_descriptor = + getDescriptor().getMessageTypes().get(8); + internal_static_google_cloud_gkerecommender_v1_FetchProfilesRequest_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_FetchProfilesRequest_descriptor, + new java.lang.String[] { + "Model", + "ModelServer", + "ModelServerVersion", + "PerformanceRequirements", + "PageSize", + "PageToken", + }); + internal_static_google_cloud_gkerecommender_v1_PerformanceRequirements_descriptor = + getDescriptor().getMessageTypes().get(9); + internal_static_google_cloud_gkerecommender_v1_PerformanceRequirements_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_PerformanceRequirements_descriptor, + new java.lang.String[] { + "TargetNtpotMilliseconds", "TargetTtftMilliseconds", "TargetCost", + }); + internal_static_google_cloud_gkerecommender_v1_Amount_descriptor = + getDescriptor().getMessageTypes().get(10); + internal_static_google_cloud_gkerecommender_v1_Amount_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_Amount_descriptor, + new java.lang.String[] { + "Units", "Nanos", + }); + internal_static_google_cloud_gkerecommender_v1_Cost_descriptor = + getDescriptor().getMessageTypes().get(11); + internal_static_google_cloud_gkerecommender_v1_Cost_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_Cost_descriptor, + new java.lang.String[] { + "CostPerMillionOutputTokens", + "CostPerMillionInputTokens", + "PricingModel", + "OutputInputCostRatio", + }); + internal_static_google_cloud_gkerecommender_v1_TokensPerSecondRange_descriptor = + getDescriptor().getMessageTypes().get(12); + internal_static_google_cloud_gkerecommender_v1_TokensPerSecondRange_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_TokensPerSecondRange_descriptor, + new java.lang.String[] { + "Min", "Max", + }); + internal_static_google_cloud_gkerecommender_v1_MillisecondRange_descriptor = + getDescriptor().getMessageTypes().get(13); + internal_static_google_cloud_gkerecommender_v1_MillisecondRange_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_MillisecondRange_descriptor, + new java.lang.String[] { + "Min", "Max", + }); + internal_static_google_cloud_gkerecommender_v1_PerformanceRange_descriptor = + getDescriptor().getMessageTypes().get(14); + internal_static_google_cloud_gkerecommender_v1_PerformanceRange_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_PerformanceRange_descriptor, + new java.lang.String[] { + "ThroughputOutputRange", "TtftRange", "NtpotRange", + }); + internal_static_google_cloud_gkerecommender_v1_FetchProfilesResponse_descriptor = + getDescriptor().getMessageTypes().get(15); + internal_static_google_cloud_gkerecommender_v1_FetchProfilesResponse_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_FetchProfilesResponse_descriptor, + new java.lang.String[] { + "Profile", "PerformanceRange", "Comments", "NextPageToken", + }); + internal_static_google_cloud_gkerecommender_v1_ModelServerInfo_descriptor = + getDescriptor().getMessageTypes().get(16); + internal_static_google_cloud_gkerecommender_v1_ModelServerInfo_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_ModelServerInfo_descriptor, + new java.lang.String[] { + "Model", "ModelServer", "ModelServerVersion", + }); + internal_static_google_cloud_gkerecommender_v1_ResourcesUsed_descriptor = + getDescriptor().getMessageTypes().get(17); + internal_static_google_cloud_gkerecommender_v1_ResourcesUsed_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_ResourcesUsed_descriptor, + new java.lang.String[] { + "AcceleratorCount", + }); + internal_static_google_cloud_gkerecommender_v1_PerformanceStats_descriptor = + getDescriptor().getMessageTypes().get(18); + internal_static_google_cloud_gkerecommender_v1_PerformanceStats_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_PerformanceStats_descriptor, + new java.lang.String[] { + "QueriesPerSecond", + "OutputTokensPerSecond", + "NtpotMilliseconds", + "TtftMilliseconds", + "Cost", + }); + internal_static_google_cloud_gkerecommender_v1_Profile_descriptor = + getDescriptor().getMessageTypes().get(19); + internal_static_google_cloud_gkerecommender_v1_Profile_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_Profile_descriptor, + new java.lang.String[] { + "ModelServerInfo", + "AcceleratorType", + "TpuTopology", + "InstanceType", + "ResourcesUsed", + "PerformanceStats", + }); + internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestRequest_descriptor = + getDescriptor().getMessageTypes().get(20); + internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestRequest_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestRequest_descriptor, + new java.lang.String[] { + "ModelServerInfo", + "AcceleratorType", + "KubernetesNamespace", + "PerformanceRequirements", + "StorageConfig", + }); + internal_static_google_cloud_gkerecommender_v1_KubernetesManifest_descriptor = + getDescriptor().getMessageTypes().get(21); + internal_static_google_cloud_gkerecommender_v1_KubernetesManifest_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_KubernetesManifest_descriptor, + new java.lang.String[] { + "Kind", "ApiVersion", "Content", + }); + internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestResponse_descriptor = + getDescriptor().getMessageTypes().get(22); + internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestResponse_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_GenerateOptimizedManifestResponse_descriptor, + new java.lang.String[] { + "KubernetesManifests", "Comments", "ManifestVersion", + }); + internal_static_google_cloud_gkerecommender_v1_StorageConfig_descriptor = + getDescriptor().getMessageTypes().get(23); + internal_static_google_cloud_gkerecommender_v1_StorageConfig_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_gkerecommender_v1_StorageConfig_descriptor, + new java.lang.String[] { + "ModelBucketUri", "XlaCacheBucketUri", + }); + com.google.protobuf.ExtensionRegistry registry = + com.google.protobuf.ExtensionRegistry.newInstance(); + registry.add(com.google.api.ClientProto.defaultHost); + registry.add(com.google.api.FieldBehaviorProto.fieldBehavior); + registry.add(com.google.api.AnnotationsProto.http); + registry.add(com.google.api.ClientProto.oauthScopes); + com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor( + descriptor, registry); + com.google.api.AnnotationsProto.getDescriptor(); + com.google.api.ClientProto.getDescriptor(); + com.google.api.FieldBehaviorProto.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/KubernetesManifest.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/KubernetesManifest.java new file mode 100644 index 000000000000..e0699ba4330a --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/KubernetesManifest.java @@ -0,0 +1,1013 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * A Kubernetes manifest.
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.KubernetesManifest} + */ +public final class KubernetesManifest extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.KubernetesManifest) + KubernetesManifestOrBuilder { + private static final long serialVersionUID = 0L; + + // Use KubernetesManifest.newBuilder() to construct. + private KubernetesManifest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private KubernetesManifest() { + kind_ = ""; + apiVersion_ = ""; + content_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new KubernetesManifest(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_KubernetesManifest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_KubernetesManifest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.KubernetesManifest.class, + com.google.cloud.gkerecommender.v1.KubernetesManifest.Builder.class); + } + + public static final int KIND_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object kind_ = ""; + + /** + * + * + *
+   * Output only. Kubernetes resource kind.
+   * 
+ * + * string kind = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The kind. + */ + @java.lang.Override + public java.lang.String getKind() { + java.lang.Object ref = kind_; + 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(); + kind_ = s; + return s; + } + } + + /** + * + * + *
+   * Output only. Kubernetes resource kind.
+   * 
+ * + * string kind = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for kind. + */ + @java.lang.Override + public com.google.protobuf.ByteString getKindBytes() { + java.lang.Object ref = kind_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + kind_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int API_VERSION_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object apiVersion_ = ""; + + /** + * + * + *
+   * Output only. Kubernetes API version.
+   * 
+ * + * string api_version = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The apiVersion. + */ + @java.lang.Override + public java.lang.String getApiVersion() { + java.lang.Object ref = apiVersion_; + 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(); + apiVersion_ = s; + return s; + } + } + + /** + * + * + *
+   * Output only. Kubernetes API version.
+   * 
+ * + * string api_version = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for apiVersion. + */ + @java.lang.Override + public com.google.protobuf.ByteString getApiVersionBytes() { + java.lang.Object ref = apiVersion_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + apiVersion_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CONTENT_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object content_ = ""; + + /** + * + * + *
+   * Output only. YAML content.
+   * 
+ * + * string content = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The content. + */ + @java.lang.Override + public java.lang.String getContent() { + java.lang.Object ref = content_; + 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(); + content_ = s; + return s; + } + } + + /** + * + * + *
+   * Output only. YAML content.
+   * 
+ * + * string content = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for content. + */ + @java.lang.Override + public com.google.protobuf.ByteString getContentBytes() { + java.lang.Object ref = content_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + content_ = 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 { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kind_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, kind_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(apiVersion_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, apiVersion_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, content_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kind_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, kind_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(apiVersion_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, apiVersion_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, content_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.KubernetesManifest)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.KubernetesManifest other = + (com.google.cloud.gkerecommender.v1.KubernetesManifest) obj; + + if (!getKind().equals(other.getKind())) return false; + if (!getApiVersion().equals(other.getApiVersion())) return false; + if (!getContent().equals(other.getContent())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) 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) + getKind().hashCode(); + hash = (37 * hash) + API_VERSION_FIELD_NUMBER; + hash = (53 * hash) + getApiVersion().hashCode(); + hash = (37 * hash) + CONTENT_FIELD_NUMBER; + hash = (53 * hash) + getContent().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.KubernetesManifest parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.KubernetesManifest parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.KubernetesManifest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.KubernetesManifest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.KubernetesManifest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.KubernetesManifest parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.KubernetesManifest parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.KubernetesManifest 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 com.google.cloud.gkerecommender.v1.KubernetesManifest parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.KubernetesManifest 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 com.google.cloud.gkerecommender.v1.KubernetesManifest parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.KubernetesManifest 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( + com.google.cloud.gkerecommender.v1.KubernetesManifest 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; + } + + /** + * + * + *
+   * A Kubernetes manifest.
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.KubernetesManifest} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.KubernetesManifest) + com.google.cloud.gkerecommender.v1.KubernetesManifestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_KubernetesManifest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_KubernetesManifest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.KubernetesManifest.class, + com.google.cloud.gkerecommender.v1.KubernetesManifest.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.KubernetesManifest.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + kind_ = ""; + apiVersion_ = ""; + content_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_KubernetesManifest_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.KubernetesManifest getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.KubernetesManifest.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.KubernetesManifest build() { + com.google.cloud.gkerecommender.v1.KubernetesManifest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.KubernetesManifest buildPartial() { + com.google.cloud.gkerecommender.v1.KubernetesManifest result = + new com.google.cloud.gkerecommender.v1.KubernetesManifest(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.gkerecommender.v1.KubernetesManifest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.kind_ = kind_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.apiVersion_ = apiVersion_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.content_ = content_; + } + } + + @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 com.google.cloud.gkerecommender.v1.KubernetesManifest) { + return mergeFrom((com.google.cloud.gkerecommender.v1.KubernetesManifest) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.gkerecommender.v1.KubernetesManifest other) { + if (other == com.google.cloud.gkerecommender.v1.KubernetesManifest.getDefaultInstance()) + return this; + if (!other.getKind().isEmpty()) { + kind_ = other.kind_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getApiVersion().isEmpty()) { + apiVersion_ = other.apiVersion_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getContent().isEmpty()) { + content_ = other.content_; + bitField0_ |= 0x00000004; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + kind_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + apiVersion_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + content_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.lang.Object kind_ = ""; + + /** + * + * + *
+     * Output only. Kubernetes resource kind.
+     * 
+ * + * string kind = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The kind. + */ + public java.lang.String getKind() { + java.lang.Object ref = kind_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + kind_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Output only. Kubernetes resource kind.
+     * 
+ * + * string kind = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for kind. + */ + public com.google.protobuf.ByteString getKindBytes() { + java.lang.Object ref = kind_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + kind_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Output only. Kubernetes resource kind.
+     * 
+ * + * string kind = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The kind to set. + * @return This builder for chaining. + */ + public Builder setKind(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + kind_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. Kubernetes resource kind.
+     * 
+ * + * string kind = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearKind() { + kind_ = getDefaultInstance().getKind(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. Kubernetes resource kind.
+     * 
+ * + * string kind = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The bytes for kind to set. + * @return This builder for chaining. + */ + public Builder setKindBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + kind_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object apiVersion_ = ""; + + /** + * + * + *
+     * Output only. Kubernetes API version.
+     * 
+ * + * string api_version = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The apiVersion. + */ + public java.lang.String getApiVersion() { + java.lang.Object ref = apiVersion_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + apiVersion_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Output only. Kubernetes API version.
+     * 
+ * + * string api_version = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for apiVersion. + */ + public com.google.protobuf.ByteString getApiVersionBytes() { + java.lang.Object ref = apiVersion_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + apiVersion_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Output only. Kubernetes API version.
+     * 
+ * + * string api_version = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The apiVersion to set. + * @return This builder for chaining. + */ + public Builder setApiVersion(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + apiVersion_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. Kubernetes API version.
+     * 
+ * + * string api_version = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearApiVersion() { + apiVersion_ = getDefaultInstance().getApiVersion(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. Kubernetes API version.
+     * 
+ * + * string api_version = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The bytes for apiVersion to set. + * @return This builder for chaining. + */ + public Builder setApiVersionBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + apiVersion_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object content_ = ""; + + /** + * + * + *
+     * Output only. YAML content.
+     * 
+ * + * string content = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The content. + */ + public java.lang.String getContent() { + java.lang.Object ref = content_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + content_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Output only. YAML content.
+     * 
+ * + * string content = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for content. + */ + public com.google.protobuf.ByteString getContentBytes() { + java.lang.Object ref = content_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + content_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Output only. YAML content.
+     * 
+ * + * string content = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The content to set. + * @return This builder for chaining. + */ + public Builder setContent(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + content_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. YAML content.
+     * 
+ * + * string content = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearContent() { + content_ = getDefaultInstance().getContent(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. YAML content.
+     * 
+ * + * string content = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The bytes for content to set. + * @return This builder for chaining. + */ + public Builder setContentBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + content_ = value; + bitField0_ |= 0x00000004; + 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:google.cloud.gkerecommender.v1.KubernetesManifest) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.KubernetesManifest) + private static final com.google.cloud.gkerecommender.v1.KubernetesManifest DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.KubernetesManifest(); + } + + public static com.google.cloud.gkerecommender.v1.KubernetesManifest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public KubernetesManifest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.KubernetesManifest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/KubernetesManifestOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/KubernetesManifestOrBuilder.java new file mode 100644 index 000000000000..6e9769fdf38e --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/KubernetesManifestOrBuilder.java @@ -0,0 +1,104 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface KubernetesManifestOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.KubernetesManifest) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Output only. Kubernetes resource kind.
+   * 
+ * + * string kind = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The kind. + */ + java.lang.String getKind(); + + /** + * + * + *
+   * Output only. Kubernetes resource kind.
+   * 
+ * + * string kind = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for kind. + */ + com.google.protobuf.ByteString getKindBytes(); + + /** + * + * + *
+   * Output only. Kubernetes API version.
+   * 
+ * + * string api_version = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The apiVersion. + */ + java.lang.String getApiVersion(); + + /** + * + * + *
+   * Output only. Kubernetes API version.
+   * 
+ * + * string api_version = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for apiVersion. + */ + com.google.protobuf.ByteString getApiVersionBytes(); + + /** + * + * + *
+   * Output only. YAML content.
+   * 
+ * + * string content = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The content. + */ + java.lang.String getContent(); + + /** + * + * + *
+   * Output only. YAML content.
+   * 
+ * + * string content = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for content. + */ + com.google.protobuf.ByteString getContentBytes(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/MillisecondRange.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/MillisecondRange.java new file mode 100644 index 000000000000..6dd07e67785f --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/MillisecondRange.java @@ -0,0 +1,638 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Represents a range of latency values in milliseconds.
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.MillisecondRange} + */ +public final class MillisecondRange extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.MillisecondRange) + MillisecondRangeOrBuilder { + private static final long serialVersionUID = 0L; + + // Use MillisecondRange.newBuilder() to construct. + private MillisecondRange(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private MillisecondRange() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new MillisecondRange(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_MillisecondRange_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_MillisecondRange_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.MillisecondRange.class, + com.google.cloud.gkerecommender.v1.MillisecondRange.Builder.class); + } + + public static final int MIN_FIELD_NUMBER = 1; + private int min_ = 0; + + /** + * + * + *
+   * Output only. The minimum value of the range.
+   * 
+ * + * int32 min = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The min. + */ + @java.lang.Override + public int getMin() { + return min_; + } + + public static final int MAX_FIELD_NUMBER = 2; + private int max_ = 0; + + /** + * + * + *
+   * Output only. The maximum value of the range.
+   * 
+ * + * int32 max = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The max. + */ + @java.lang.Override + public int getMax() { + return max_; + } + + 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 (min_ != 0) { + output.writeInt32(1, min_); + } + if (max_ != 0) { + output.writeInt32(2, max_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (min_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, min_); + } + if (max_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, max_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.MillisecondRange)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.MillisecondRange other = + (com.google.cloud.gkerecommender.v1.MillisecondRange) obj; + + if (getMin() != other.getMin()) return false; + if (getMax() != other.getMax()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) 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) + MIN_FIELD_NUMBER; + hash = (53 * hash) + getMin(); + hash = (37 * hash) + MAX_FIELD_NUMBER; + hash = (53 * hash) + getMax(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.MillisecondRange parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.MillisecondRange parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.MillisecondRange parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.MillisecondRange parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.MillisecondRange parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.MillisecondRange parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.MillisecondRange parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.MillisecondRange 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 com.google.cloud.gkerecommender.v1.MillisecondRange parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.MillisecondRange 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 com.google.cloud.gkerecommender.v1.MillisecondRange parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.MillisecondRange 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(com.google.cloud.gkerecommender.v1.MillisecondRange 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; + } + + /** + * + * + *
+   * Represents a range of latency values in milliseconds.
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.MillisecondRange} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.MillisecondRange) + com.google.cloud.gkerecommender.v1.MillisecondRangeOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_MillisecondRange_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_MillisecondRange_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.MillisecondRange.class, + com.google.cloud.gkerecommender.v1.MillisecondRange.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.MillisecondRange.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + min_ = 0; + max_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_MillisecondRange_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.MillisecondRange getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.MillisecondRange.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.MillisecondRange build() { + com.google.cloud.gkerecommender.v1.MillisecondRange result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.MillisecondRange buildPartial() { + com.google.cloud.gkerecommender.v1.MillisecondRange result = + new com.google.cloud.gkerecommender.v1.MillisecondRange(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.gkerecommender.v1.MillisecondRange result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.min_ = min_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.max_ = max_; + } + } + + @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 com.google.cloud.gkerecommender.v1.MillisecondRange) { + return mergeFrom((com.google.cloud.gkerecommender.v1.MillisecondRange) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.gkerecommender.v1.MillisecondRange other) { + if (other == com.google.cloud.gkerecommender.v1.MillisecondRange.getDefaultInstance()) + return this; + if (other.getMin() != 0) { + setMin(other.getMin()); + } + if (other.getMax() != 0) { + setMax(other.getMax()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: + { + min_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: + { + max_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private int min_; + + /** + * + * + *
+     * Output only. The minimum value of the range.
+     * 
+ * + * int32 min = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The min. + */ + @java.lang.Override + public int getMin() { + return min_; + } + + /** + * + * + *
+     * Output only. The minimum value of the range.
+     * 
+ * + * int32 min = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The min to set. + * @return This builder for chaining. + */ + public Builder setMin(int value) { + + min_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The minimum value of the range.
+     * 
+ * + * int32 min = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearMin() { + bitField0_ = (bitField0_ & ~0x00000001); + min_ = 0; + onChanged(); + return this; + } + + private int max_; + + /** + * + * + *
+     * Output only. The maximum value of the range.
+     * 
+ * + * int32 max = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The max. + */ + @java.lang.Override + public int getMax() { + return max_; + } + + /** + * + * + *
+     * Output only. The maximum value of the range.
+     * 
+ * + * int32 max = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The max to set. + * @return This builder for chaining. + */ + public Builder setMax(int value) { + + max_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The maximum value of the range.
+     * 
+ * + * int32 max = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearMax() { + bitField0_ = (bitField0_ & ~0x00000002); + max_ = 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:google.cloud.gkerecommender.v1.MillisecondRange) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.MillisecondRange) + private static final com.google.cloud.gkerecommender.v1.MillisecondRange DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.MillisecondRange(); + } + + public static com.google.cloud.gkerecommender.v1.MillisecondRange getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MillisecondRange parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.MillisecondRange getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/MillisecondRangeOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/MillisecondRangeOrBuilder.java new file mode 100644 index 000000000000..63873121ce07 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/MillisecondRangeOrBuilder.java @@ -0,0 +1,52 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface MillisecondRangeOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.MillisecondRange) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Output only. The minimum value of the range.
+   * 
+ * + * int32 min = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The min. + */ + int getMin(); + + /** + * + * + *
+   * Output only. The maximum value of the range.
+   * 
+ * + * int32 max = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The max. + */ + int getMax(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/ModelServerInfo.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/ModelServerInfo.java new file mode 100644 index 000000000000..bc77a2b8eb6c --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/ModelServerInfo.java @@ -0,0 +1,1079 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Model server information gives. Valid model server info combinations can
+ * be found using
+ * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles].
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.ModelServerInfo} + */ +public final class ModelServerInfo extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.ModelServerInfo) + ModelServerInfoOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ModelServerInfo.newBuilder() to construct. + private ModelServerInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ModelServerInfo() { + model_ = ""; + modelServer_ = ""; + modelServerVersion_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ModelServerInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_ModelServerInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_ModelServerInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.ModelServerInfo.class, + com.google.cloud.gkerecommender.v1.ModelServerInfo.Builder.class); + } + + public static final int MODEL_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object model_ = ""; + + /** + * + * + *
+   * Required. The model. Open-source models follow the Huggingface Hub
+   * `owner/model_name` format. Use
+   * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+   * to find available models.
+   * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The model. + */ + @java.lang.Override + public java.lang.String getModel() { + java.lang.Object ref = model_; + 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(); + model_ = s; + return s; + } + } + + /** + * + * + *
+   * Required. The model. Open-source models follow the Huggingface Hub
+   * `owner/model_name` format. Use
+   * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+   * to find available models.
+   * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for model. + */ + @java.lang.Override + public com.google.protobuf.ByteString getModelBytes() { + java.lang.Object ref = model_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + model_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MODEL_SERVER_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object modelServer_ = ""; + + /** + * + * + *
+   * Required. The model server. Open-source model servers use simplified,
+   * lowercase names (e.g., `vllm`). Use
+   * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+   * to find available servers.
+   * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The modelServer. + */ + @java.lang.Override + public java.lang.String getModelServer() { + java.lang.Object ref = modelServer_; + 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(); + modelServer_ = s; + return s; + } + } + + /** + * + * + *
+   * Required. The model server. Open-source model servers use simplified,
+   * lowercase names (e.g., `vllm`). Use
+   * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+   * to find available servers.
+   * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for modelServer. + */ + @java.lang.Override + public com.google.protobuf.ByteString getModelServerBytes() { + java.lang.Object ref = modelServer_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + modelServer_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MODEL_SERVER_VERSION_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object modelServerVersion_ = ""; + + /** + * + * + *
+   * Optional. The model server version. Use
+   * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]
+   * to find available versions. If not provided, the latest available version
+   * is used.
+   * 
+ * + * string model_server_version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The modelServerVersion. + */ + @java.lang.Override + public java.lang.String getModelServerVersion() { + java.lang.Object ref = modelServerVersion_; + 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(); + modelServerVersion_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. The model server version. Use
+   * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]
+   * to find available versions. If not provided, the latest available version
+   * is used.
+   * 
+ * + * string model_server_version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for modelServerVersion. + */ + @java.lang.Override + public com.google.protobuf.ByteString getModelServerVersionBytes() { + java.lang.Object ref = modelServerVersion_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + modelServerVersion_ = 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 { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, model_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(modelServer_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, modelServer_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(modelServerVersion_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, modelServerVersion_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, model_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(modelServer_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, modelServer_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(modelServerVersion_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, modelServerVersion_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.ModelServerInfo)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.ModelServerInfo other = + (com.google.cloud.gkerecommender.v1.ModelServerInfo) obj; + + if (!getModel().equals(other.getModel())) return false; + if (!getModelServer().equals(other.getModelServer())) return false; + if (!getModelServerVersion().equals(other.getModelServerVersion())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) 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) + MODEL_FIELD_NUMBER; + hash = (53 * hash) + getModel().hashCode(); + hash = (37 * hash) + MODEL_SERVER_FIELD_NUMBER; + hash = (53 * hash) + getModelServer().hashCode(); + hash = (37 * hash) + MODEL_SERVER_VERSION_FIELD_NUMBER; + hash = (53 * hash) + getModelServerVersion().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.ModelServerInfo parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.ModelServerInfo parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.ModelServerInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.ModelServerInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.ModelServerInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.ModelServerInfo parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.ModelServerInfo parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.ModelServerInfo 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 com.google.cloud.gkerecommender.v1.ModelServerInfo parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.ModelServerInfo 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 com.google.cloud.gkerecommender.v1.ModelServerInfo parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.ModelServerInfo 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(com.google.cloud.gkerecommender.v1.ModelServerInfo 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; + } + + /** + * + * + *
+   * Model server information gives. Valid model server info combinations can
+   * be found using
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles].
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.ModelServerInfo} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.ModelServerInfo) + com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_ModelServerInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_ModelServerInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.ModelServerInfo.class, + com.google.cloud.gkerecommender.v1.ModelServerInfo.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.ModelServerInfo.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + model_ = ""; + modelServer_ = ""; + modelServerVersion_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_ModelServerInfo_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.ModelServerInfo getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.ModelServerInfo.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.ModelServerInfo build() { + com.google.cloud.gkerecommender.v1.ModelServerInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.ModelServerInfo buildPartial() { + com.google.cloud.gkerecommender.v1.ModelServerInfo result = + new com.google.cloud.gkerecommender.v1.ModelServerInfo(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.gkerecommender.v1.ModelServerInfo result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.model_ = model_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.modelServer_ = modelServer_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.modelServerVersion_ = modelServerVersion_; + } + } + + @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 com.google.cloud.gkerecommender.v1.ModelServerInfo) { + return mergeFrom((com.google.cloud.gkerecommender.v1.ModelServerInfo) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.gkerecommender.v1.ModelServerInfo other) { + if (other == com.google.cloud.gkerecommender.v1.ModelServerInfo.getDefaultInstance()) + return this; + if (!other.getModel().isEmpty()) { + model_ = other.model_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getModelServer().isEmpty()) { + modelServer_ = other.modelServer_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getModelServerVersion().isEmpty()) { + modelServerVersion_ = other.modelServerVersion_; + bitField0_ |= 0x00000004; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + model_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + modelServer_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + modelServerVersion_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.lang.Object model_ = ""; + + /** + * + * + *
+     * Required. The model. Open-source models follow the Huggingface Hub
+     * `owner/model_name` format. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The model. + */ + public java.lang.String getModel() { + java.lang.Object ref = model_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + model_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Required. The model. Open-source models follow the Huggingface Hub
+     * `owner/model_name` format. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for model. + */ + public com.google.protobuf.ByteString getModelBytes() { + java.lang.Object ref = model_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + model_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Required. The model. Open-source models follow the Huggingface Hub
+     * `owner/model_name` format. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The model to set. + * @return This builder for chaining. + */ + public Builder setModel(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + model_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The model. Open-source models follow the Huggingface Hub
+     * `owner/model_name` format. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearModel() { + model_ = getDefaultInstance().getModel(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The model. Open-source models follow the Huggingface Hub
+     * `owner/model_name` format. Use
+     * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+     * to find available models.
+     * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for model to set. + * @return This builder for chaining. + */ + public Builder setModelBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + model_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object modelServer_ = ""; + + /** + * + * + *
+     * Required. The model server. Open-source model servers use simplified,
+     * lowercase names (e.g., `vllm`). Use
+     * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+     * to find available servers.
+     * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The modelServer. + */ + public java.lang.String getModelServer() { + java.lang.Object ref = modelServer_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + modelServer_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Required. The model server. Open-source model servers use simplified,
+     * lowercase names (e.g., `vllm`). Use
+     * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+     * to find available servers.
+     * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for modelServer. + */ + public com.google.protobuf.ByteString getModelServerBytes() { + java.lang.Object ref = modelServer_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + modelServer_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Required. The model server. Open-source model servers use simplified,
+     * lowercase names (e.g., `vllm`). Use
+     * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+     * to find available servers.
+     * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The modelServer to set. + * @return This builder for chaining. + */ + public Builder setModelServer(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + modelServer_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The model server. Open-source model servers use simplified,
+     * lowercase names (e.g., `vllm`). Use
+     * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+     * to find available servers.
+     * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearModelServer() { + modelServer_ = getDefaultInstance().getModelServer(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The model server. Open-source model servers use simplified,
+     * lowercase names (e.g., `vllm`). Use
+     * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+     * to find available servers.
+     * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for modelServer to set. + * @return This builder for chaining. + */ + public Builder setModelServerBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + modelServer_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object modelServerVersion_ = ""; + + /** + * + * + *
+     * Optional. The model server version. Use
+     * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]
+     * to find available versions. If not provided, the latest available version
+     * is used.
+     * 
+ * + * string model_server_version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The modelServerVersion. + */ + public java.lang.String getModelServerVersion() { + java.lang.Object ref = modelServerVersion_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + modelServerVersion_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. The model server version. Use
+     * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]
+     * to find available versions. If not provided, the latest available version
+     * is used.
+     * 
+ * + * string model_server_version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for modelServerVersion. + */ + public com.google.protobuf.ByteString getModelServerVersionBytes() { + java.lang.Object ref = modelServerVersion_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + modelServerVersion_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. The model server version. Use
+     * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]
+     * to find available versions. If not provided, the latest available version
+     * is used.
+     * 
+ * + * string model_server_version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The modelServerVersion to set. + * @return This builder for chaining. + */ + public Builder setModelServerVersion(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + modelServerVersion_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The model server version. Use
+     * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]
+     * to find available versions. If not provided, the latest available version
+     * is used.
+     * 
+ * + * string model_server_version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearModelServerVersion() { + modelServerVersion_ = getDefaultInstance().getModelServerVersion(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The model server version. Use
+     * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]
+     * to find available versions. If not provided, the latest available version
+     * is used.
+     * 
+ * + * string model_server_version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for modelServerVersion to set. + * @return This builder for chaining. + */ + public Builder setModelServerVersionBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + modelServerVersion_ = value; + bitField0_ |= 0x00000004; + 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:google.cloud.gkerecommender.v1.ModelServerInfo) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.ModelServerInfo) + private static final com.google.cloud.gkerecommender.v1.ModelServerInfo DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.ModelServerInfo(); + } + + public static com.google.cloud.gkerecommender.v1.ModelServerInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ModelServerInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.ModelServerInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/ModelServerInfoOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/ModelServerInfoOrBuilder.java new file mode 100644 index 000000000000..778dbbf2b933 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/ModelServerInfoOrBuilder.java @@ -0,0 +1,122 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface ModelServerInfoOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.ModelServerInfo) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Required. The model. Open-source models follow the Huggingface Hub
+   * `owner/model_name` format. Use
+   * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+   * to find available models.
+   * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The model. + */ + java.lang.String getModel(); + + /** + * + * + *
+   * Required. The model. Open-source models follow the Huggingface Hub
+   * `owner/model_name` format. Use
+   * [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]
+   * to find available models.
+   * 
+ * + * string model = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for model. + */ + com.google.protobuf.ByteString getModelBytes(); + + /** + * + * + *
+   * Required. The model server. Open-source model servers use simplified,
+   * lowercase names (e.g., `vllm`). Use
+   * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+   * to find available servers.
+   * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The modelServer. + */ + java.lang.String getModelServer(); + + /** + * + * + *
+   * Required. The model server. Open-source model servers use simplified,
+   * lowercase names (e.g., `vllm`). Use
+   * [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]
+   * to find available servers.
+   * 
+ * + * string model_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for modelServer. + */ + com.google.protobuf.ByteString getModelServerBytes(); + + /** + * + * + *
+   * Optional. The model server version. Use
+   * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]
+   * to find available versions. If not provided, the latest available version
+   * is used.
+   * 
+ * + * string model_server_version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The modelServerVersion. + */ + java.lang.String getModelServerVersion(); + + /** + * + * + *
+   * Optional. The model server version. Use
+   * [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]
+   * to find available versions. If not provided, the latest available version
+   * is used.
+   * 
+ * + * string model_server_version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for modelServerVersion. + */ + com.google.protobuf.ByteString getModelServerVersionBytes(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/PerformanceRange.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/PerformanceRange.java new file mode 100644 index 000000000000..7d6eff948684 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/PerformanceRange.java @@ -0,0 +1,1443 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Performance range for a model deployment.
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.PerformanceRange} + */ +public final class PerformanceRange extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.PerformanceRange) + PerformanceRangeOrBuilder { + private static final long serialVersionUID = 0L; + + // Use PerformanceRange.newBuilder() to construct. + private PerformanceRange(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private PerformanceRange() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new PerformanceRange(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_PerformanceRange_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_PerformanceRange_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.PerformanceRange.class, + com.google.cloud.gkerecommender.v1.PerformanceRange.Builder.class); + } + + private int bitField0_; + public static final int THROUGHPUT_OUTPUT_RANGE_FIELD_NUMBER = 1; + private com.google.cloud.gkerecommender.v1.TokensPerSecondRange throughputOutputRange_; + + /** + * + * + *
+   * Output only. The range of throughput in output tokens per second. This is
+   * measured as total_output_tokens_generated_by_server /
+   * elapsed_time_in_seconds.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.TokensPerSecondRange throughput_output_range = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the throughputOutputRange field is set. + */ + @java.lang.Override + public boolean hasThroughputOutputRange() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Output only. The range of throughput in output tokens per second. This is
+   * measured as total_output_tokens_generated_by_server /
+   * elapsed_time_in_seconds.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.TokensPerSecondRange throughput_output_range = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The throughputOutputRange. + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.TokensPerSecondRange getThroughputOutputRange() { + return throughputOutputRange_ == null + ? com.google.cloud.gkerecommender.v1.TokensPerSecondRange.getDefaultInstance() + : throughputOutputRange_; + } + + /** + * + * + *
+   * Output only. The range of throughput in output tokens per second. This is
+   * measured as total_output_tokens_generated_by_server /
+   * elapsed_time_in_seconds.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.TokensPerSecondRange throughput_output_range = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.TokensPerSecondRangeOrBuilder + getThroughputOutputRangeOrBuilder() { + return throughputOutputRange_ == null + ? com.google.cloud.gkerecommender.v1.TokensPerSecondRange.getDefaultInstance() + : throughputOutputRange_; + } + + public static final int TTFT_RANGE_FIELD_NUMBER = 2; + private com.google.cloud.gkerecommender.v1.MillisecondRange ttftRange_; + + /** + * + * + *
+   * Output only. The range of TTFT (Time To First Token) in milliseconds. TTFT
+   * is the time it takes to generate the first token for a request.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ttft_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the ttftRange field is set. + */ + @java.lang.Override + public boolean hasTtftRange() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Output only. The range of TTFT (Time To First Token) in milliseconds. TTFT
+   * is the time it takes to generate the first token for a request.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ttft_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The ttftRange. + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.MillisecondRange getTtftRange() { + return ttftRange_ == null + ? com.google.cloud.gkerecommender.v1.MillisecondRange.getDefaultInstance() + : ttftRange_; + } + + /** + * + * + *
+   * Output only. The range of TTFT (Time To First Token) in milliseconds. TTFT
+   * is the time it takes to generate the first token for a request.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ttft_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.MillisecondRangeOrBuilder getTtftRangeOrBuilder() { + return ttftRange_ == null + ? com.google.cloud.gkerecommender.v1.MillisecondRange.getDefaultInstance() + : ttftRange_; + } + + public static final int NTPOT_RANGE_FIELD_NUMBER = 3; + private com.google.cloud.gkerecommender.v1.MillisecondRange ntpotRange_; + + /** + * + * + *
+   * Output only. The range of NTPOT (Normalized Time Per Output Token) in
+   * milliseconds. NTPOT is the request latency normalized by the number of
+   * output tokens, measured as request_latency / total_output_tokens.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ntpot_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the ntpotRange field is set. + */ + @java.lang.Override + public boolean hasNtpotRange() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * Output only. The range of NTPOT (Normalized Time Per Output Token) in
+   * milliseconds. NTPOT is the request latency normalized by the number of
+   * output tokens, measured as request_latency / total_output_tokens.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ntpot_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The ntpotRange. + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.MillisecondRange getNtpotRange() { + return ntpotRange_ == null + ? com.google.cloud.gkerecommender.v1.MillisecondRange.getDefaultInstance() + : ntpotRange_; + } + + /** + * + * + *
+   * Output only. The range of NTPOT (Normalized Time Per Output Token) in
+   * milliseconds. NTPOT is the request latency normalized by the number of
+   * output tokens, measured as request_latency / total_output_tokens.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ntpot_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.MillisecondRangeOrBuilder getNtpotRangeOrBuilder() { + return ntpotRange_ == null + ? com.google.cloud.gkerecommender.v1.MillisecondRange.getDefaultInstance() + : ntpotRange_; + } + + 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 (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getThroughputOutputRange()); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(2, getTtftRange()); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeMessage(3, getNtpotRange()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(1, getThroughputOutputRange()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getTtftRange()); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getNtpotRange()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.PerformanceRange)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.PerformanceRange other = + (com.google.cloud.gkerecommender.v1.PerformanceRange) obj; + + if (hasThroughputOutputRange() != other.hasThroughputOutputRange()) return false; + if (hasThroughputOutputRange()) { + if (!getThroughputOutputRange().equals(other.getThroughputOutputRange())) return false; + } + if (hasTtftRange() != other.hasTtftRange()) return false; + if (hasTtftRange()) { + if (!getTtftRange().equals(other.getTtftRange())) return false; + } + if (hasNtpotRange() != other.hasNtpotRange()) return false; + if (hasNtpotRange()) { + if (!getNtpotRange().equals(other.getNtpotRange())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasThroughputOutputRange()) { + hash = (37 * hash) + THROUGHPUT_OUTPUT_RANGE_FIELD_NUMBER; + hash = (53 * hash) + getThroughputOutputRange().hashCode(); + } + if (hasTtftRange()) { + hash = (37 * hash) + TTFT_RANGE_FIELD_NUMBER; + hash = (53 * hash) + getTtftRange().hashCode(); + } + if (hasNtpotRange()) { + hash = (37 * hash) + NTPOT_RANGE_FIELD_NUMBER; + hash = (53 * hash) + getNtpotRange().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRange parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRange parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRange parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRange parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRange parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRange parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRange parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRange 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 com.google.cloud.gkerecommender.v1.PerformanceRange parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRange 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 com.google.cloud.gkerecommender.v1.PerformanceRange parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRange 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(com.google.cloud.gkerecommender.v1.PerformanceRange 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; + } + + /** + * + * + *
+   * Performance range for a model deployment.
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.PerformanceRange} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.PerformanceRange) + com.google.cloud.gkerecommender.v1.PerformanceRangeOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_PerformanceRange_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_PerformanceRange_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.PerformanceRange.class, + com.google.cloud.gkerecommender.v1.PerformanceRange.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.PerformanceRange.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getThroughputOutputRangeFieldBuilder(); + getTtftRangeFieldBuilder(); + getNtpotRangeFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + throughputOutputRange_ = null; + if (throughputOutputRangeBuilder_ != null) { + throughputOutputRangeBuilder_.dispose(); + throughputOutputRangeBuilder_ = null; + } + ttftRange_ = null; + if (ttftRangeBuilder_ != null) { + ttftRangeBuilder_.dispose(); + ttftRangeBuilder_ = null; + } + ntpotRange_ = null; + if (ntpotRangeBuilder_ != null) { + ntpotRangeBuilder_.dispose(); + ntpotRangeBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_PerformanceRange_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceRange getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.PerformanceRange.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceRange build() { + com.google.cloud.gkerecommender.v1.PerformanceRange result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceRange buildPartial() { + com.google.cloud.gkerecommender.v1.PerformanceRange result = + new com.google.cloud.gkerecommender.v1.PerformanceRange(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.gkerecommender.v1.PerformanceRange result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.throughputOutputRange_ = + throughputOutputRangeBuilder_ == null + ? throughputOutputRange_ + : throughputOutputRangeBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.ttftRange_ = ttftRangeBuilder_ == null ? ttftRange_ : ttftRangeBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.ntpotRange_ = ntpotRangeBuilder_ == null ? ntpotRange_ : ntpotRangeBuilder_.build(); + to_bitField0_ |= 0x00000004; + } + result.bitField0_ |= to_bitField0_; + } + + @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 com.google.cloud.gkerecommender.v1.PerformanceRange) { + return mergeFrom((com.google.cloud.gkerecommender.v1.PerformanceRange) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.gkerecommender.v1.PerformanceRange other) { + if (other == com.google.cloud.gkerecommender.v1.PerformanceRange.getDefaultInstance()) + return this; + if (other.hasThroughputOutputRange()) { + mergeThroughputOutputRange(other.getThroughputOutputRange()); + } + if (other.hasTtftRange()) { + mergeTtftRange(other.getTtftRange()); + } + if (other.hasNtpotRange()) { + mergeNtpotRange(other.getNtpotRange()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage( + getThroughputOutputRangeFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + input.readMessage(getTtftRangeFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + input.readMessage(getNtpotRangeFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000004; + break; + } // case 26 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.cloud.gkerecommender.v1.TokensPerSecondRange throughputOutputRange_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.TokensPerSecondRange, + com.google.cloud.gkerecommender.v1.TokensPerSecondRange.Builder, + com.google.cloud.gkerecommender.v1.TokensPerSecondRangeOrBuilder> + throughputOutputRangeBuilder_; + + /** + * + * + *
+     * Output only. The range of throughput in output tokens per second. This is
+     * measured as total_output_tokens_generated_by_server /
+     * elapsed_time_in_seconds.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.TokensPerSecondRange throughput_output_range = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the throughputOutputRange field is set. + */ + public boolean hasThroughputOutputRange() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Output only. The range of throughput in output tokens per second. This is
+     * measured as total_output_tokens_generated_by_server /
+     * elapsed_time_in_seconds.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.TokensPerSecondRange throughput_output_range = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The throughputOutputRange. + */ + public com.google.cloud.gkerecommender.v1.TokensPerSecondRange getThroughputOutputRange() { + if (throughputOutputRangeBuilder_ == null) { + return throughputOutputRange_ == null + ? com.google.cloud.gkerecommender.v1.TokensPerSecondRange.getDefaultInstance() + : throughputOutputRange_; + } else { + return throughputOutputRangeBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Output only. The range of throughput in output tokens per second. This is
+     * measured as total_output_tokens_generated_by_server /
+     * elapsed_time_in_seconds.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.TokensPerSecondRange throughput_output_range = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setThroughputOutputRange( + com.google.cloud.gkerecommender.v1.TokensPerSecondRange value) { + if (throughputOutputRangeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + throughputOutputRange_ = value; + } else { + throughputOutputRangeBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The range of throughput in output tokens per second. This is
+     * measured as total_output_tokens_generated_by_server /
+     * elapsed_time_in_seconds.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.TokensPerSecondRange throughput_output_range = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setThroughputOutputRange( + com.google.cloud.gkerecommender.v1.TokensPerSecondRange.Builder builderForValue) { + if (throughputOutputRangeBuilder_ == null) { + throughputOutputRange_ = builderForValue.build(); + } else { + throughputOutputRangeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The range of throughput in output tokens per second. This is
+     * measured as total_output_tokens_generated_by_server /
+     * elapsed_time_in_seconds.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.TokensPerSecondRange throughput_output_range = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder mergeThroughputOutputRange( + com.google.cloud.gkerecommender.v1.TokensPerSecondRange value) { + if (throughputOutputRangeBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && throughputOutputRange_ != null + && throughputOutputRange_ + != com.google.cloud.gkerecommender.v1.TokensPerSecondRange.getDefaultInstance()) { + getThroughputOutputRangeBuilder().mergeFrom(value); + } else { + throughputOutputRange_ = value; + } + } else { + throughputOutputRangeBuilder_.mergeFrom(value); + } + if (throughputOutputRange_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Output only. The range of throughput in output tokens per second. This is
+     * measured as total_output_tokens_generated_by_server /
+     * elapsed_time_in_seconds.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.TokensPerSecondRange throughput_output_range = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder clearThroughputOutputRange() { + bitField0_ = (bitField0_ & ~0x00000001); + throughputOutputRange_ = null; + if (throughputOutputRangeBuilder_ != null) { + throughputOutputRangeBuilder_.dispose(); + throughputOutputRangeBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The range of throughput in output tokens per second. This is
+     * measured as total_output_tokens_generated_by_server /
+     * elapsed_time_in_seconds.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.TokensPerSecondRange throughput_output_range = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.TokensPerSecondRange.Builder + getThroughputOutputRangeBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getThroughputOutputRangeFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Output only. The range of throughput in output tokens per second. This is
+     * measured as total_output_tokens_generated_by_server /
+     * elapsed_time_in_seconds.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.TokensPerSecondRange throughput_output_range = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.TokensPerSecondRangeOrBuilder + getThroughputOutputRangeOrBuilder() { + if (throughputOutputRangeBuilder_ != null) { + return throughputOutputRangeBuilder_.getMessageOrBuilder(); + } else { + return throughputOutputRange_ == null + ? com.google.cloud.gkerecommender.v1.TokensPerSecondRange.getDefaultInstance() + : throughputOutputRange_; + } + } + + /** + * + * + *
+     * Output only. The range of throughput in output tokens per second. This is
+     * measured as total_output_tokens_generated_by_server /
+     * elapsed_time_in_seconds.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.TokensPerSecondRange throughput_output_range = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.TokensPerSecondRange, + com.google.cloud.gkerecommender.v1.TokensPerSecondRange.Builder, + com.google.cloud.gkerecommender.v1.TokensPerSecondRangeOrBuilder> + getThroughputOutputRangeFieldBuilder() { + if (throughputOutputRangeBuilder_ == null) { + throughputOutputRangeBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.TokensPerSecondRange, + com.google.cloud.gkerecommender.v1.TokensPerSecondRange.Builder, + com.google.cloud.gkerecommender.v1.TokensPerSecondRangeOrBuilder>( + getThroughputOutputRange(), getParentForChildren(), isClean()); + throughputOutputRange_ = null; + } + return throughputOutputRangeBuilder_; + } + + private com.google.cloud.gkerecommender.v1.MillisecondRange ttftRange_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.MillisecondRange, + com.google.cloud.gkerecommender.v1.MillisecondRange.Builder, + com.google.cloud.gkerecommender.v1.MillisecondRangeOrBuilder> + ttftRangeBuilder_; + + /** + * + * + *
+     * Output only. The range of TTFT (Time To First Token) in milliseconds. TTFT
+     * is the time it takes to generate the first token for a request.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ttft_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the ttftRange field is set. + */ + public boolean hasTtftRange() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Output only. The range of TTFT (Time To First Token) in milliseconds. TTFT
+     * is the time it takes to generate the first token for a request.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ttft_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The ttftRange. + */ + public com.google.cloud.gkerecommender.v1.MillisecondRange getTtftRange() { + if (ttftRangeBuilder_ == null) { + return ttftRange_ == null + ? com.google.cloud.gkerecommender.v1.MillisecondRange.getDefaultInstance() + : ttftRange_; + } else { + return ttftRangeBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Output only. The range of TTFT (Time To First Token) in milliseconds. TTFT
+     * is the time it takes to generate the first token for a request.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ttft_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setTtftRange(com.google.cloud.gkerecommender.v1.MillisecondRange value) { + if (ttftRangeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ttftRange_ = value; + } else { + ttftRangeBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The range of TTFT (Time To First Token) in milliseconds. TTFT
+     * is the time it takes to generate the first token for a request.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ttft_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setTtftRange( + com.google.cloud.gkerecommender.v1.MillisecondRange.Builder builderForValue) { + if (ttftRangeBuilder_ == null) { + ttftRange_ = builderForValue.build(); + } else { + ttftRangeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The range of TTFT (Time To First Token) in milliseconds. TTFT
+     * is the time it takes to generate the first token for a request.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ttft_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder mergeTtftRange(com.google.cloud.gkerecommender.v1.MillisecondRange value) { + if (ttftRangeBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) + && ttftRange_ != null + && ttftRange_ + != com.google.cloud.gkerecommender.v1.MillisecondRange.getDefaultInstance()) { + getTtftRangeBuilder().mergeFrom(value); + } else { + ttftRange_ = value; + } + } else { + ttftRangeBuilder_.mergeFrom(value); + } + if (ttftRange_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Output only. The range of TTFT (Time To First Token) in milliseconds. TTFT
+     * is the time it takes to generate the first token for a request.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ttft_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder clearTtftRange() { + bitField0_ = (bitField0_ & ~0x00000002); + ttftRange_ = null; + if (ttftRangeBuilder_ != null) { + ttftRangeBuilder_.dispose(); + ttftRangeBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The range of TTFT (Time To First Token) in milliseconds. TTFT
+     * is the time it takes to generate the first token for a request.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ttft_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.MillisecondRange.Builder getTtftRangeBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getTtftRangeFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Output only. The range of TTFT (Time To First Token) in milliseconds. TTFT
+     * is the time it takes to generate the first token for a request.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ttft_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.MillisecondRangeOrBuilder getTtftRangeOrBuilder() { + if (ttftRangeBuilder_ != null) { + return ttftRangeBuilder_.getMessageOrBuilder(); + } else { + return ttftRange_ == null + ? com.google.cloud.gkerecommender.v1.MillisecondRange.getDefaultInstance() + : ttftRange_; + } + } + + /** + * + * + *
+     * Output only. The range of TTFT (Time To First Token) in milliseconds. TTFT
+     * is the time it takes to generate the first token for a request.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ttft_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.MillisecondRange, + com.google.cloud.gkerecommender.v1.MillisecondRange.Builder, + com.google.cloud.gkerecommender.v1.MillisecondRangeOrBuilder> + getTtftRangeFieldBuilder() { + if (ttftRangeBuilder_ == null) { + ttftRangeBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.MillisecondRange, + com.google.cloud.gkerecommender.v1.MillisecondRange.Builder, + com.google.cloud.gkerecommender.v1.MillisecondRangeOrBuilder>( + getTtftRange(), getParentForChildren(), isClean()); + ttftRange_ = null; + } + return ttftRangeBuilder_; + } + + private com.google.cloud.gkerecommender.v1.MillisecondRange ntpotRange_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.MillisecondRange, + com.google.cloud.gkerecommender.v1.MillisecondRange.Builder, + com.google.cloud.gkerecommender.v1.MillisecondRangeOrBuilder> + ntpotRangeBuilder_; + + /** + * + * + *
+     * Output only. The range of NTPOT (Normalized Time Per Output Token) in
+     * milliseconds. NTPOT is the request latency normalized by the number of
+     * output tokens, measured as request_latency / total_output_tokens.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ntpot_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the ntpotRange field is set. + */ + public boolean hasNtpotRange() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * Output only. The range of NTPOT (Normalized Time Per Output Token) in
+     * milliseconds. NTPOT is the request latency normalized by the number of
+     * output tokens, measured as request_latency / total_output_tokens.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ntpot_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The ntpotRange. + */ + public com.google.cloud.gkerecommender.v1.MillisecondRange getNtpotRange() { + if (ntpotRangeBuilder_ == null) { + return ntpotRange_ == null + ? com.google.cloud.gkerecommender.v1.MillisecondRange.getDefaultInstance() + : ntpotRange_; + } else { + return ntpotRangeBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Output only. The range of NTPOT (Normalized Time Per Output Token) in
+     * milliseconds. NTPOT is the request latency normalized by the number of
+     * output tokens, measured as request_latency / total_output_tokens.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ntpot_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setNtpotRange(com.google.cloud.gkerecommender.v1.MillisecondRange value) { + if (ntpotRangeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ntpotRange_ = value; + } else { + ntpotRangeBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The range of NTPOT (Normalized Time Per Output Token) in
+     * milliseconds. NTPOT is the request latency normalized by the number of
+     * output tokens, measured as request_latency / total_output_tokens.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ntpot_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setNtpotRange( + com.google.cloud.gkerecommender.v1.MillisecondRange.Builder builderForValue) { + if (ntpotRangeBuilder_ == null) { + ntpotRange_ = builderForValue.build(); + } else { + ntpotRangeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The range of NTPOT (Normalized Time Per Output Token) in
+     * milliseconds. NTPOT is the request latency normalized by the number of
+     * output tokens, measured as request_latency / total_output_tokens.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ntpot_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder mergeNtpotRange(com.google.cloud.gkerecommender.v1.MillisecondRange value) { + if (ntpotRangeBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) + && ntpotRange_ != null + && ntpotRange_ + != com.google.cloud.gkerecommender.v1.MillisecondRange.getDefaultInstance()) { + getNtpotRangeBuilder().mergeFrom(value); + } else { + ntpotRange_ = value; + } + } else { + ntpotRangeBuilder_.mergeFrom(value); + } + if (ntpotRange_ != null) { + bitField0_ |= 0x00000004; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Output only. The range of NTPOT (Normalized Time Per Output Token) in
+     * milliseconds. NTPOT is the request latency normalized by the number of
+     * output tokens, measured as request_latency / total_output_tokens.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ntpot_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder clearNtpotRange() { + bitField0_ = (bitField0_ & ~0x00000004); + ntpotRange_ = null; + if (ntpotRangeBuilder_ != null) { + ntpotRangeBuilder_.dispose(); + ntpotRangeBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The range of NTPOT (Normalized Time Per Output Token) in
+     * milliseconds. NTPOT is the request latency normalized by the number of
+     * output tokens, measured as request_latency / total_output_tokens.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ntpot_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.MillisecondRange.Builder getNtpotRangeBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getNtpotRangeFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Output only. The range of NTPOT (Normalized Time Per Output Token) in
+     * milliseconds. NTPOT is the request latency normalized by the number of
+     * output tokens, measured as request_latency / total_output_tokens.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ntpot_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.MillisecondRangeOrBuilder getNtpotRangeOrBuilder() { + if (ntpotRangeBuilder_ != null) { + return ntpotRangeBuilder_.getMessageOrBuilder(); + } else { + return ntpotRange_ == null + ? com.google.cloud.gkerecommender.v1.MillisecondRange.getDefaultInstance() + : ntpotRange_; + } + } + + /** + * + * + *
+     * Output only. The range of NTPOT (Normalized Time Per Output Token) in
+     * milliseconds. NTPOT is the request latency normalized by the number of
+     * output tokens, measured as request_latency / total_output_tokens.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ntpot_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.MillisecondRange, + com.google.cloud.gkerecommender.v1.MillisecondRange.Builder, + com.google.cloud.gkerecommender.v1.MillisecondRangeOrBuilder> + getNtpotRangeFieldBuilder() { + if (ntpotRangeBuilder_ == null) { + ntpotRangeBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.MillisecondRange, + com.google.cloud.gkerecommender.v1.MillisecondRange.Builder, + com.google.cloud.gkerecommender.v1.MillisecondRangeOrBuilder>( + getNtpotRange(), getParentForChildren(), isClean()); + ntpotRange_ = null; + } + return ntpotRangeBuilder_; + } + + @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:google.cloud.gkerecommender.v1.PerformanceRange) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.PerformanceRange) + private static final com.google.cloud.gkerecommender.v1.PerformanceRange DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.PerformanceRange(); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRange getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PerformanceRange parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceRange getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/PerformanceRangeOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/PerformanceRangeOrBuilder.java new file mode 100644 index 000000000000..12e147842d53 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/PerformanceRangeOrBuilder.java @@ -0,0 +1,171 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface PerformanceRangeOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.PerformanceRange) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Output only. The range of throughput in output tokens per second. This is
+   * measured as total_output_tokens_generated_by_server /
+   * elapsed_time_in_seconds.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.TokensPerSecondRange throughput_output_range = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the throughputOutputRange field is set. + */ + boolean hasThroughputOutputRange(); + + /** + * + * + *
+   * Output only. The range of throughput in output tokens per second. This is
+   * measured as total_output_tokens_generated_by_server /
+   * elapsed_time_in_seconds.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.TokensPerSecondRange throughput_output_range = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The throughputOutputRange. + */ + com.google.cloud.gkerecommender.v1.TokensPerSecondRange getThroughputOutputRange(); + + /** + * + * + *
+   * Output only. The range of throughput in output tokens per second. This is
+   * measured as total_output_tokens_generated_by_server /
+   * elapsed_time_in_seconds.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.TokensPerSecondRange throughput_output_range = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.cloud.gkerecommender.v1.TokensPerSecondRangeOrBuilder + getThroughputOutputRangeOrBuilder(); + + /** + * + * + *
+   * Output only. The range of TTFT (Time To First Token) in milliseconds. TTFT
+   * is the time it takes to generate the first token for a request.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ttft_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the ttftRange field is set. + */ + boolean hasTtftRange(); + + /** + * + * + *
+   * Output only. The range of TTFT (Time To First Token) in milliseconds. TTFT
+   * is the time it takes to generate the first token for a request.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ttft_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The ttftRange. + */ + com.google.cloud.gkerecommender.v1.MillisecondRange getTtftRange(); + + /** + * + * + *
+   * Output only. The range of TTFT (Time To First Token) in milliseconds. TTFT
+   * is the time it takes to generate the first token for a request.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ttft_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.cloud.gkerecommender.v1.MillisecondRangeOrBuilder getTtftRangeOrBuilder(); + + /** + * + * + *
+   * Output only. The range of NTPOT (Normalized Time Per Output Token) in
+   * milliseconds. NTPOT is the request latency normalized by the number of
+   * output tokens, measured as request_latency / total_output_tokens.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ntpot_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the ntpotRange field is set. + */ + boolean hasNtpotRange(); + + /** + * + * + *
+   * Output only. The range of NTPOT (Normalized Time Per Output Token) in
+   * milliseconds. NTPOT is the request latency normalized by the number of
+   * output tokens, measured as request_latency / total_output_tokens.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ntpot_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The ntpotRange. + */ + com.google.cloud.gkerecommender.v1.MillisecondRange getNtpotRange(); + + /** + * + * + *
+   * Output only. The range of NTPOT (Normalized Time Per Output Token) in
+   * milliseconds. NTPOT is the request latency normalized by the number of
+   * output tokens, measured as request_latency / total_output_tokens.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.MillisecondRange ntpot_range = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.cloud.gkerecommender.v1.MillisecondRangeOrBuilder getNtpotRangeOrBuilder(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/PerformanceRequirements.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/PerformanceRequirements.java new file mode 100644 index 000000000000..8370fbe47574 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/PerformanceRequirements.java @@ -0,0 +1,1078 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Performance requirements for a profile and or model deployment.
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.PerformanceRequirements} + */ +public final class PerformanceRequirements extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.PerformanceRequirements) + PerformanceRequirementsOrBuilder { + private static final long serialVersionUID = 0L; + + // Use PerformanceRequirements.newBuilder() to construct. + private PerformanceRequirements(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private PerformanceRequirements() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new PerformanceRequirements(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_PerformanceRequirements_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_PerformanceRequirements_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.PerformanceRequirements.class, + com.google.cloud.gkerecommender.v1.PerformanceRequirements.Builder.class); + } + + private int bitField0_; + public static final int TARGET_NTPOT_MILLISECONDS_FIELD_NUMBER = 1; + private int targetNtpotMilliseconds_ = 0; + + /** + * + * + *
+   * Optional. The target Normalized Time Per Output Token (NTPOT) in
+   * milliseconds. NTPOT is calculated as `request_latency /
+   * total_output_tokens`. If not provided, this target will not be enforced.
+   * 
+ * + * optional int32 target_ntpot_milliseconds = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the targetNtpotMilliseconds field is set. + */ + @java.lang.Override + public boolean hasTargetNtpotMilliseconds() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Optional. The target Normalized Time Per Output Token (NTPOT) in
+   * milliseconds. NTPOT is calculated as `request_latency /
+   * total_output_tokens`. If not provided, this target will not be enforced.
+   * 
+ * + * optional int32 target_ntpot_milliseconds = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The targetNtpotMilliseconds. + */ + @java.lang.Override + public int getTargetNtpotMilliseconds() { + return targetNtpotMilliseconds_; + } + + public static final int TARGET_TTFT_MILLISECONDS_FIELD_NUMBER = 2; + private int targetTtftMilliseconds_ = 0; + + /** + * + * + *
+   * Optional. The target Time To First Token (TTFT) in milliseconds. TTFT is
+   * the time it takes to generate the first token for a request.  If not
+   * provided, this target will not be enforced.
+   * 
+ * + * optional int32 target_ttft_milliseconds = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the targetTtftMilliseconds field is set. + */ + @java.lang.Override + public boolean hasTargetTtftMilliseconds() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Optional. The target Time To First Token (TTFT) in milliseconds. TTFT is
+   * the time it takes to generate the first token for a request.  If not
+   * provided, this target will not be enforced.
+   * 
+ * + * optional int32 target_ttft_milliseconds = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The targetTtftMilliseconds. + */ + @java.lang.Override + public int getTargetTtftMilliseconds() { + return targetTtftMilliseconds_; + } + + public static final int TARGET_COST_FIELD_NUMBER = 3; + private com.google.cloud.gkerecommender.v1.Cost targetCost_; + + /** + * + * + *
+   * Optional. The target cost for running a profile's model server. If not
+   * provided, this requirement will not be enforced.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.Cost target_cost = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the targetCost field is set. + */ + @java.lang.Override + public boolean hasTargetCost() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * Optional. The target cost for running a profile's model server. If not
+   * provided, this requirement will not be enforced.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.Cost target_cost = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The targetCost. + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.Cost getTargetCost() { + return targetCost_ == null + ? com.google.cloud.gkerecommender.v1.Cost.getDefaultInstance() + : targetCost_; + } + + /** + * + * + *
+   * Optional. The target cost for running a profile's model server. If not
+   * provided, this requirement will not be enforced.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.Cost target_cost = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.CostOrBuilder getTargetCostOrBuilder() { + return targetCost_ == null + ? com.google.cloud.gkerecommender.v1.Cost.getDefaultInstance() + : targetCost_; + } + + 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 (((bitField0_ & 0x00000001) != 0)) { + output.writeInt32(1, targetNtpotMilliseconds_); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeInt32(2, targetTtftMilliseconds_); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeMessage(3, getTargetCost()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, targetNtpotMilliseconds_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, targetTtftMilliseconds_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getTargetCost()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.PerformanceRequirements)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.PerformanceRequirements other = + (com.google.cloud.gkerecommender.v1.PerformanceRequirements) obj; + + if (hasTargetNtpotMilliseconds() != other.hasTargetNtpotMilliseconds()) return false; + if (hasTargetNtpotMilliseconds()) { + if (getTargetNtpotMilliseconds() != other.getTargetNtpotMilliseconds()) return false; + } + if (hasTargetTtftMilliseconds() != other.hasTargetTtftMilliseconds()) return false; + if (hasTargetTtftMilliseconds()) { + if (getTargetTtftMilliseconds() != other.getTargetTtftMilliseconds()) return false; + } + if (hasTargetCost() != other.hasTargetCost()) return false; + if (hasTargetCost()) { + if (!getTargetCost().equals(other.getTargetCost())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasTargetNtpotMilliseconds()) { + hash = (37 * hash) + TARGET_NTPOT_MILLISECONDS_FIELD_NUMBER; + hash = (53 * hash) + getTargetNtpotMilliseconds(); + } + if (hasTargetTtftMilliseconds()) { + hash = (37 * hash) + TARGET_TTFT_MILLISECONDS_FIELD_NUMBER; + hash = (53 * hash) + getTargetTtftMilliseconds(); + } + if (hasTargetCost()) { + hash = (37 * hash) + TARGET_COST_FIELD_NUMBER; + hash = (53 * hash) + getTargetCost().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRequirements parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRequirements parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRequirements parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRequirements parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRequirements parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRequirements parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRequirements parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRequirements 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 com.google.cloud.gkerecommender.v1.PerformanceRequirements parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRequirements 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 com.google.cloud.gkerecommender.v1.PerformanceRequirements parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRequirements 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( + com.google.cloud.gkerecommender.v1.PerformanceRequirements 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; + } + + /** + * + * + *
+   * Performance requirements for a profile and or model deployment.
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.PerformanceRequirements} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.PerformanceRequirements) + com.google.cloud.gkerecommender.v1.PerformanceRequirementsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_PerformanceRequirements_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_PerformanceRequirements_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.PerformanceRequirements.class, + com.google.cloud.gkerecommender.v1.PerformanceRequirements.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.PerformanceRequirements.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getTargetCostFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + targetNtpotMilliseconds_ = 0; + targetTtftMilliseconds_ = 0; + targetCost_ = null; + if (targetCostBuilder_ != null) { + targetCostBuilder_.dispose(); + targetCostBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_PerformanceRequirements_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceRequirements getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.PerformanceRequirements.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceRequirements build() { + com.google.cloud.gkerecommender.v1.PerformanceRequirements result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceRequirements buildPartial() { + com.google.cloud.gkerecommender.v1.PerformanceRequirements result = + new com.google.cloud.gkerecommender.v1.PerformanceRequirements(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.gkerecommender.v1.PerformanceRequirements result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.targetNtpotMilliseconds_ = targetNtpotMilliseconds_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.targetTtftMilliseconds_ = targetTtftMilliseconds_; + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.targetCost_ = targetCostBuilder_ == null ? targetCost_ : targetCostBuilder_.build(); + to_bitField0_ |= 0x00000004; + } + result.bitField0_ |= to_bitField0_; + } + + @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 com.google.cloud.gkerecommender.v1.PerformanceRequirements) { + return mergeFrom((com.google.cloud.gkerecommender.v1.PerformanceRequirements) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.gkerecommender.v1.PerformanceRequirements other) { + if (other == com.google.cloud.gkerecommender.v1.PerformanceRequirements.getDefaultInstance()) + return this; + if (other.hasTargetNtpotMilliseconds()) { + setTargetNtpotMilliseconds(other.getTargetNtpotMilliseconds()); + } + if (other.hasTargetTtftMilliseconds()) { + setTargetTtftMilliseconds(other.getTargetTtftMilliseconds()); + } + if (other.hasTargetCost()) { + mergeTargetCost(other.getTargetCost()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: + { + targetNtpotMilliseconds_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: + { + targetTtftMilliseconds_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 26: + { + input.readMessage(getTargetCostFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000004; + break; + } // case 26 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private int targetNtpotMilliseconds_; + + /** + * + * + *
+     * Optional. The target Normalized Time Per Output Token (NTPOT) in
+     * milliseconds. NTPOT is calculated as `request_latency /
+     * total_output_tokens`. If not provided, this target will not be enforced.
+     * 
+ * + * optional int32 target_ntpot_milliseconds = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the targetNtpotMilliseconds field is set. + */ + @java.lang.Override + public boolean hasTargetNtpotMilliseconds() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Optional. The target Normalized Time Per Output Token (NTPOT) in
+     * milliseconds. NTPOT is calculated as `request_latency /
+     * total_output_tokens`. If not provided, this target will not be enforced.
+     * 
+ * + * optional int32 target_ntpot_milliseconds = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The targetNtpotMilliseconds. + */ + @java.lang.Override + public int getTargetNtpotMilliseconds() { + return targetNtpotMilliseconds_; + } + + /** + * + * + *
+     * Optional. The target Normalized Time Per Output Token (NTPOT) in
+     * milliseconds. NTPOT is calculated as `request_latency /
+     * total_output_tokens`. If not provided, this target will not be enforced.
+     * 
+ * + * optional int32 target_ntpot_milliseconds = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @param value The targetNtpotMilliseconds to set. + * @return This builder for chaining. + */ + public Builder setTargetNtpotMilliseconds(int value) { + + targetNtpotMilliseconds_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The target Normalized Time Per Output Token (NTPOT) in
+     * milliseconds. NTPOT is calculated as `request_latency /
+     * total_output_tokens`. If not provided, this target will not be enforced.
+     * 
+ * + * optional int32 target_ntpot_milliseconds = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return This builder for chaining. + */ + public Builder clearTargetNtpotMilliseconds() { + bitField0_ = (bitField0_ & ~0x00000001); + targetNtpotMilliseconds_ = 0; + onChanged(); + return this; + } + + private int targetTtftMilliseconds_; + + /** + * + * + *
+     * Optional. The target Time To First Token (TTFT) in milliseconds. TTFT is
+     * the time it takes to generate the first token for a request.  If not
+     * provided, this target will not be enforced.
+     * 
+ * + * optional int32 target_ttft_milliseconds = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the targetTtftMilliseconds field is set. + */ + @java.lang.Override + public boolean hasTargetTtftMilliseconds() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Optional. The target Time To First Token (TTFT) in milliseconds. TTFT is
+     * the time it takes to generate the first token for a request.  If not
+     * provided, this target will not be enforced.
+     * 
+ * + * optional int32 target_ttft_milliseconds = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The targetTtftMilliseconds. + */ + @java.lang.Override + public int getTargetTtftMilliseconds() { + return targetTtftMilliseconds_; + } + + /** + * + * + *
+     * Optional. The target Time To First Token (TTFT) in milliseconds. TTFT is
+     * the time it takes to generate the first token for a request.  If not
+     * provided, this target will not be enforced.
+     * 
+ * + * optional int32 target_ttft_milliseconds = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @param value The targetTtftMilliseconds to set. + * @return This builder for chaining. + */ + public Builder setTargetTtftMilliseconds(int value) { + + targetTtftMilliseconds_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The target Time To First Token (TTFT) in milliseconds. TTFT is
+     * the time it takes to generate the first token for a request.  If not
+     * provided, this target will not be enforced.
+     * 
+ * + * optional int32 target_ttft_milliseconds = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return This builder for chaining. + */ + public Builder clearTargetTtftMilliseconds() { + bitField0_ = (bitField0_ & ~0x00000002); + targetTtftMilliseconds_ = 0; + onChanged(); + return this; + } + + private com.google.cloud.gkerecommender.v1.Cost targetCost_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.Cost, + com.google.cloud.gkerecommender.v1.Cost.Builder, + com.google.cloud.gkerecommender.v1.CostOrBuilder> + targetCostBuilder_; + + /** + * + * + *
+     * Optional. The target cost for running a profile's model server. If not
+     * provided, this requirement will not be enforced.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Cost target_cost = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the targetCost field is set. + */ + public boolean hasTargetCost() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * Optional. The target cost for running a profile's model server. If not
+     * provided, this requirement will not be enforced.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Cost target_cost = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The targetCost. + */ + public com.google.cloud.gkerecommender.v1.Cost getTargetCost() { + if (targetCostBuilder_ == null) { + return targetCost_ == null + ? com.google.cloud.gkerecommender.v1.Cost.getDefaultInstance() + : targetCost_; + } else { + return targetCostBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Optional. The target cost for running a profile's model server. If not
+     * provided, this requirement will not be enforced.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Cost target_cost = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setTargetCost(com.google.cloud.gkerecommender.v1.Cost value) { + if (targetCostBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + targetCost_ = value; + } else { + targetCostBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The target cost for running a profile's model server. If not
+     * provided, this requirement will not be enforced.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Cost target_cost = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setTargetCost(com.google.cloud.gkerecommender.v1.Cost.Builder builderForValue) { + if (targetCostBuilder_ == null) { + targetCost_ = builderForValue.build(); + } else { + targetCostBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The target cost for running a profile's model server. If not
+     * provided, this requirement will not be enforced.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Cost target_cost = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeTargetCost(com.google.cloud.gkerecommender.v1.Cost value) { + if (targetCostBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) + && targetCost_ != null + && targetCost_ != com.google.cloud.gkerecommender.v1.Cost.getDefaultInstance()) { + getTargetCostBuilder().mergeFrom(value); + } else { + targetCost_ = value; + } + } else { + targetCostBuilder_.mergeFrom(value); + } + if (targetCost_ != null) { + bitField0_ |= 0x00000004; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Optional. The target cost for running a profile's model server. If not
+     * provided, this requirement will not be enforced.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Cost target_cost = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearTargetCost() { + bitField0_ = (bitField0_ & ~0x00000004); + targetCost_ = null; + if (targetCostBuilder_ != null) { + targetCostBuilder_.dispose(); + targetCostBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The target cost for running a profile's model server. If not
+     * provided, this requirement will not be enforced.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Cost target_cost = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.gkerecommender.v1.Cost.Builder getTargetCostBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getTargetCostFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. The target cost for running a profile's model server. If not
+     * provided, this requirement will not be enforced.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Cost target_cost = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.cloud.gkerecommender.v1.CostOrBuilder getTargetCostOrBuilder() { + if (targetCostBuilder_ != null) { + return targetCostBuilder_.getMessageOrBuilder(); + } else { + return targetCost_ == null + ? com.google.cloud.gkerecommender.v1.Cost.getDefaultInstance() + : targetCost_; + } + } + + /** + * + * + *
+     * Optional. The target cost for running a profile's model server. If not
+     * provided, this requirement will not be enforced.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.Cost target_cost = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.Cost, + com.google.cloud.gkerecommender.v1.Cost.Builder, + com.google.cloud.gkerecommender.v1.CostOrBuilder> + getTargetCostFieldBuilder() { + if (targetCostBuilder_ == null) { + targetCostBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.Cost, + com.google.cloud.gkerecommender.v1.Cost.Builder, + com.google.cloud.gkerecommender.v1.CostOrBuilder>( + getTargetCost(), getParentForChildren(), isClean()); + targetCost_ = null; + } + return targetCostBuilder_; + } + + @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:google.cloud.gkerecommender.v1.PerformanceRequirements) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.PerformanceRequirements) + private static final com.google.cloud.gkerecommender.v1.PerformanceRequirements DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.PerformanceRequirements(); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceRequirements getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PerformanceRequirements parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceRequirements getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/PerformanceRequirementsOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/PerformanceRequirementsOrBuilder.java new file mode 100644 index 000000000000..4ace3fa110ea --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/PerformanceRequirementsOrBuilder.java @@ -0,0 +1,136 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface PerformanceRequirementsOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.PerformanceRequirements) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Optional. The target Normalized Time Per Output Token (NTPOT) in
+   * milliseconds. NTPOT is calculated as `request_latency /
+   * total_output_tokens`. If not provided, this target will not be enforced.
+   * 
+ * + * optional int32 target_ntpot_milliseconds = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the targetNtpotMilliseconds field is set. + */ + boolean hasTargetNtpotMilliseconds(); + + /** + * + * + *
+   * Optional. The target Normalized Time Per Output Token (NTPOT) in
+   * milliseconds. NTPOT is calculated as `request_latency /
+   * total_output_tokens`. If not provided, this target will not be enforced.
+   * 
+ * + * optional int32 target_ntpot_milliseconds = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The targetNtpotMilliseconds. + */ + int getTargetNtpotMilliseconds(); + + /** + * + * + *
+   * Optional. The target Time To First Token (TTFT) in milliseconds. TTFT is
+   * the time it takes to generate the first token for a request.  If not
+   * provided, this target will not be enforced.
+   * 
+ * + * optional int32 target_ttft_milliseconds = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the targetTtftMilliseconds field is set. + */ + boolean hasTargetTtftMilliseconds(); + + /** + * + * + *
+   * Optional. The target Time To First Token (TTFT) in milliseconds. TTFT is
+   * the time it takes to generate the first token for a request.  If not
+   * provided, this target will not be enforced.
+   * 
+ * + * optional int32 target_ttft_milliseconds = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The targetTtftMilliseconds. + */ + int getTargetTtftMilliseconds(); + + /** + * + * + *
+   * Optional. The target cost for running a profile's model server. If not
+   * provided, this requirement will not be enforced.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.Cost target_cost = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the targetCost field is set. + */ + boolean hasTargetCost(); + + /** + * + * + *
+   * Optional. The target cost for running a profile's model server. If not
+   * provided, this requirement will not be enforced.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.Cost target_cost = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The targetCost. + */ + com.google.cloud.gkerecommender.v1.Cost getTargetCost(); + + /** + * + * + *
+   * Optional. The target cost for running a profile's model server. If not
+   * provided, this requirement will not be enforced.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.Cost target_cost = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.cloud.gkerecommender.v1.CostOrBuilder getTargetCostOrBuilder(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/PerformanceStats.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/PerformanceStats.java new file mode 100644 index 000000000000..5d30330bae3c --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/PerformanceStats.java @@ -0,0 +1,1422 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Performance statistics for a model deployment.
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.PerformanceStats} + */ +public final class PerformanceStats extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.PerformanceStats) + PerformanceStatsOrBuilder { + private static final long serialVersionUID = 0L; + + // Use PerformanceStats.newBuilder() to construct. + private PerformanceStats(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private PerformanceStats() { + cost_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new PerformanceStats(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_PerformanceStats_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_PerformanceStats_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.PerformanceStats.class, + com.google.cloud.gkerecommender.v1.PerformanceStats.Builder.class); + } + + public static final int QUERIES_PER_SECOND_FIELD_NUMBER = 1; + private float queriesPerSecond_ = 0F; + + /** + * + * + *
+   * Output only. The number of queries per second.
+   * Note: This metric can vary widely based on context length and may not be a
+   * reliable measure of LLM throughput.
+   * 
+ * + * float queries_per_second = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The queriesPerSecond. + */ + @java.lang.Override + public float getQueriesPerSecond() { + return queriesPerSecond_; + } + + public static final int OUTPUT_TOKENS_PER_SECOND_FIELD_NUMBER = 2; + private int outputTokensPerSecond_ = 0; + + /** + * + * + *
+   * Output only. The number of output tokens per second. This is the throughput
+   * measured as total_output_tokens_generated_by_server /
+   * elapsed_time_in_seconds.
+   * 
+ * + * int32 output_tokens_per_second = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The outputTokensPerSecond. + */ + @java.lang.Override + public int getOutputTokensPerSecond() { + return outputTokensPerSecond_; + } + + public static final int NTPOT_MILLISECONDS_FIELD_NUMBER = 3; + private int ntpotMilliseconds_ = 0; + + /** + * + * + *
+   * Output only. The Normalized Time Per Output Token (NTPOT) in milliseconds.
+   * This is the request latency normalized by the number of output tokens,
+   * measured as request_latency / total_output_tokens.
+   * 
+ * + * int32 ntpot_milliseconds = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The ntpotMilliseconds. + */ + @java.lang.Override + public int getNtpotMilliseconds() { + return ntpotMilliseconds_; + } + + public static final int TTFT_MILLISECONDS_FIELD_NUMBER = 4; + private int ttftMilliseconds_ = 0; + + /** + * + * + *
+   * Output only. The Time To First Token (TTFT) in milliseconds. This is the
+   * time it takes to generate the first token for a request.
+   * 
+ * + * int32 ttft_milliseconds = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The ttftMilliseconds. + */ + @java.lang.Override + public int getTtftMilliseconds() { + return ttftMilliseconds_; + } + + public static final int COST_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private java.util.List cost_; + + /** + * + * + *
+   * Output only. The cost of running the model deployment.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public java.util.List getCostList() { + return cost_; + } + + /** + * + * + *
+   * Output only. The cost of running the model deployment.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public java.util.List + getCostOrBuilderList() { + return cost_; + } + + /** + * + * + *
+   * Output only. The cost of running the model deployment.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public int getCostCount() { + return cost_.size(); + } + + /** + * + * + *
+   * Output only. The cost of running the model deployment.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.Cost getCost(int index) { + return cost_.get(index); + } + + /** + * + * + *
+   * Output only. The cost of running the model deployment.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.CostOrBuilder getCostOrBuilder(int index) { + return cost_.get(index); + } + + 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 (java.lang.Float.floatToRawIntBits(queriesPerSecond_) != 0) { + output.writeFloat(1, queriesPerSecond_); + } + if (outputTokensPerSecond_ != 0) { + output.writeInt32(2, outputTokensPerSecond_); + } + if (ntpotMilliseconds_ != 0) { + output.writeInt32(3, ntpotMilliseconds_); + } + if (ttftMilliseconds_ != 0) { + output.writeInt32(4, ttftMilliseconds_); + } + for (int i = 0; i < cost_.size(); i++) { + output.writeMessage(5, cost_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (java.lang.Float.floatToRawIntBits(queriesPerSecond_) != 0) { + size += com.google.protobuf.CodedOutputStream.computeFloatSize(1, queriesPerSecond_); + } + if (outputTokensPerSecond_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, outputTokensPerSecond_); + } + if (ntpotMilliseconds_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(3, ntpotMilliseconds_); + } + if (ttftMilliseconds_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(4, ttftMilliseconds_); + } + for (int i = 0; i < cost_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, cost_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.PerformanceStats)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.PerformanceStats other = + (com.google.cloud.gkerecommender.v1.PerformanceStats) obj; + + if (java.lang.Float.floatToIntBits(getQueriesPerSecond()) + != java.lang.Float.floatToIntBits(other.getQueriesPerSecond())) return false; + if (getOutputTokensPerSecond() != other.getOutputTokensPerSecond()) return false; + if (getNtpotMilliseconds() != other.getNtpotMilliseconds()) return false; + if (getTtftMilliseconds() != other.getTtftMilliseconds()) return false; + if (!getCostList().equals(other.getCostList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) 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) + QUERIES_PER_SECOND_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits(getQueriesPerSecond()); + hash = (37 * hash) + OUTPUT_TOKENS_PER_SECOND_FIELD_NUMBER; + hash = (53 * hash) + getOutputTokensPerSecond(); + hash = (37 * hash) + NTPOT_MILLISECONDS_FIELD_NUMBER; + hash = (53 * hash) + getNtpotMilliseconds(); + hash = (37 * hash) + TTFT_MILLISECONDS_FIELD_NUMBER; + hash = (53 * hash) + getTtftMilliseconds(); + if (getCostCount() > 0) { + hash = (37 * hash) + COST_FIELD_NUMBER; + hash = (53 * hash) + getCostList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.PerformanceStats parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceStats parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceStats parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceStats parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceStats parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceStats parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceStats parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceStats 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 com.google.cloud.gkerecommender.v1.PerformanceStats parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceStats 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 com.google.cloud.gkerecommender.v1.PerformanceStats parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceStats 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(com.google.cloud.gkerecommender.v1.PerformanceStats 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; + } + + /** + * + * + *
+   * Performance statistics for a model deployment.
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.PerformanceStats} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.PerformanceStats) + com.google.cloud.gkerecommender.v1.PerformanceStatsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_PerformanceStats_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_PerformanceStats_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.PerformanceStats.class, + com.google.cloud.gkerecommender.v1.PerformanceStats.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.PerformanceStats.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + queriesPerSecond_ = 0F; + outputTokensPerSecond_ = 0; + ntpotMilliseconds_ = 0; + ttftMilliseconds_ = 0; + if (costBuilder_ == null) { + cost_ = java.util.Collections.emptyList(); + } else { + cost_ = null; + costBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_PerformanceStats_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceStats getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.PerformanceStats.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceStats build() { + com.google.cloud.gkerecommender.v1.PerformanceStats result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceStats buildPartial() { + com.google.cloud.gkerecommender.v1.PerformanceStats result = + new com.google.cloud.gkerecommender.v1.PerformanceStats(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields( + com.google.cloud.gkerecommender.v1.PerformanceStats result) { + if (costBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0)) { + cost_ = java.util.Collections.unmodifiableList(cost_); + bitField0_ = (bitField0_ & ~0x00000010); + } + result.cost_ = cost_; + } else { + result.cost_ = costBuilder_.build(); + } + } + + private void buildPartial0(com.google.cloud.gkerecommender.v1.PerformanceStats result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.queriesPerSecond_ = queriesPerSecond_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.outputTokensPerSecond_ = outputTokensPerSecond_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.ntpotMilliseconds_ = ntpotMilliseconds_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.ttftMilliseconds_ = ttftMilliseconds_; + } + } + + @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 com.google.cloud.gkerecommender.v1.PerformanceStats) { + return mergeFrom((com.google.cloud.gkerecommender.v1.PerformanceStats) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.gkerecommender.v1.PerformanceStats other) { + if (other == com.google.cloud.gkerecommender.v1.PerformanceStats.getDefaultInstance()) + return this; + if (other.getQueriesPerSecond() != 0F) { + setQueriesPerSecond(other.getQueriesPerSecond()); + } + if (other.getOutputTokensPerSecond() != 0) { + setOutputTokensPerSecond(other.getOutputTokensPerSecond()); + } + if (other.getNtpotMilliseconds() != 0) { + setNtpotMilliseconds(other.getNtpotMilliseconds()); + } + if (other.getTtftMilliseconds() != 0) { + setTtftMilliseconds(other.getTtftMilliseconds()); + } + if (costBuilder_ == null) { + if (!other.cost_.isEmpty()) { + if (cost_.isEmpty()) { + cost_ = other.cost_; + bitField0_ = (bitField0_ & ~0x00000010); + } else { + ensureCostIsMutable(); + cost_.addAll(other.cost_); + } + onChanged(); + } + } else { + if (!other.cost_.isEmpty()) { + if (costBuilder_.isEmpty()) { + costBuilder_.dispose(); + costBuilder_ = null; + cost_ = other.cost_; + bitField0_ = (bitField0_ & ~0x00000010); + costBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getCostFieldBuilder() + : null; + } else { + costBuilder_.addAllMessages(other.cost_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 13: + { + queriesPerSecond_ = input.readFloat(); + bitField0_ |= 0x00000001; + break; + } // case 13 + case 16: + { + outputTokensPerSecond_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: + { + ntpotMilliseconds_ = input.readInt32(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: + { + ttftMilliseconds_ = input.readInt32(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 42: + { + com.google.cloud.gkerecommender.v1.Cost m = + input.readMessage( + com.google.cloud.gkerecommender.v1.Cost.parser(), extensionRegistry); + if (costBuilder_ == null) { + ensureCostIsMutable(); + cost_.add(m); + } else { + costBuilder_.addMessage(m); + } + break; + } // case 42 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private float queriesPerSecond_; + + /** + * + * + *
+     * Output only. The number of queries per second.
+     * Note: This metric can vary widely based on context length and may not be a
+     * reliable measure of LLM throughput.
+     * 
+ * + * float queries_per_second = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The queriesPerSecond. + */ + @java.lang.Override + public float getQueriesPerSecond() { + return queriesPerSecond_; + } + + /** + * + * + *
+     * Output only. The number of queries per second.
+     * Note: This metric can vary widely based on context length and may not be a
+     * reliable measure of LLM throughput.
+     * 
+ * + * float queries_per_second = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The queriesPerSecond to set. + * @return This builder for chaining. + */ + public Builder setQueriesPerSecond(float value) { + + queriesPerSecond_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The number of queries per second.
+     * Note: This metric can vary widely based on context length and may not be a
+     * reliable measure of LLM throughput.
+     * 
+ * + * float queries_per_second = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearQueriesPerSecond() { + bitField0_ = (bitField0_ & ~0x00000001); + queriesPerSecond_ = 0F; + onChanged(); + return this; + } + + private int outputTokensPerSecond_; + + /** + * + * + *
+     * Output only. The number of output tokens per second. This is the throughput
+     * measured as total_output_tokens_generated_by_server /
+     * elapsed_time_in_seconds.
+     * 
+ * + * int32 output_tokens_per_second = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The outputTokensPerSecond. + */ + @java.lang.Override + public int getOutputTokensPerSecond() { + return outputTokensPerSecond_; + } + + /** + * + * + *
+     * Output only. The number of output tokens per second. This is the throughput
+     * measured as total_output_tokens_generated_by_server /
+     * elapsed_time_in_seconds.
+     * 
+ * + * int32 output_tokens_per_second = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The outputTokensPerSecond to set. + * @return This builder for chaining. + */ + public Builder setOutputTokensPerSecond(int value) { + + outputTokensPerSecond_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The number of output tokens per second. This is the throughput
+     * measured as total_output_tokens_generated_by_server /
+     * elapsed_time_in_seconds.
+     * 
+ * + * int32 output_tokens_per_second = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearOutputTokensPerSecond() { + bitField0_ = (bitField0_ & ~0x00000002); + outputTokensPerSecond_ = 0; + onChanged(); + return this; + } + + private int ntpotMilliseconds_; + + /** + * + * + *
+     * Output only. The Normalized Time Per Output Token (NTPOT) in milliseconds.
+     * This is the request latency normalized by the number of output tokens,
+     * measured as request_latency / total_output_tokens.
+     * 
+ * + * int32 ntpot_milliseconds = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The ntpotMilliseconds. + */ + @java.lang.Override + public int getNtpotMilliseconds() { + return ntpotMilliseconds_; + } + + /** + * + * + *
+     * Output only. The Normalized Time Per Output Token (NTPOT) in milliseconds.
+     * This is the request latency normalized by the number of output tokens,
+     * measured as request_latency / total_output_tokens.
+     * 
+ * + * int32 ntpot_milliseconds = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The ntpotMilliseconds to set. + * @return This builder for chaining. + */ + public Builder setNtpotMilliseconds(int value) { + + ntpotMilliseconds_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The Normalized Time Per Output Token (NTPOT) in milliseconds.
+     * This is the request latency normalized by the number of output tokens,
+     * measured as request_latency / total_output_tokens.
+     * 
+ * + * int32 ntpot_milliseconds = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearNtpotMilliseconds() { + bitField0_ = (bitField0_ & ~0x00000004); + ntpotMilliseconds_ = 0; + onChanged(); + return this; + } + + private int ttftMilliseconds_; + + /** + * + * + *
+     * Output only. The Time To First Token (TTFT) in milliseconds. This is the
+     * time it takes to generate the first token for a request.
+     * 
+ * + * int32 ttft_milliseconds = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The ttftMilliseconds. + */ + @java.lang.Override + public int getTtftMilliseconds() { + return ttftMilliseconds_; + } + + /** + * + * + *
+     * Output only. The Time To First Token (TTFT) in milliseconds. This is the
+     * time it takes to generate the first token for a request.
+     * 
+ * + * int32 ttft_milliseconds = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The ttftMilliseconds to set. + * @return This builder for chaining. + */ + public Builder setTtftMilliseconds(int value) { + + ttftMilliseconds_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The Time To First Token (TTFT) in milliseconds. This is the
+     * time it takes to generate the first token for a request.
+     * 
+ * + * int32 ttft_milliseconds = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearTtftMilliseconds() { + bitField0_ = (bitField0_ & ~0x00000008); + ttftMilliseconds_ = 0; + onChanged(); + return this; + } + + private java.util.List cost_ = + java.util.Collections.emptyList(); + + private void ensureCostIsMutable() { + if (!((bitField0_ & 0x00000010) != 0)) { + cost_ = new java.util.ArrayList(cost_); + bitField0_ |= 0x00000010; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.gkerecommender.v1.Cost, + com.google.cloud.gkerecommender.v1.Cost.Builder, + com.google.cloud.gkerecommender.v1.CostOrBuilder> + costBuilder_; + + /** + * + * + *
+     * Output only. The cost of running the model deployment.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public java.util.List getCostList() { + if (costBuilder_ == null) { + return java.util.Collections.unmodifiableList(cost_); + } else { + return costBuilder_.getMessageList(); + } + } + + /** + * + * + *
+     * Output only. The cost of running the model deployment.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public int getCostCount() { + if (costBuilder_ == null) { + return cost_.size(); + } else { + return costBuilder_.getCount(); + } + } + + /** + * + * + *
+     * Output only. The cost of running the model deployment.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.Cost getCost(int index) { + if (costBuilder_ == null) { + return cost_.get(index); + } else { + return costBuilder_.getMessage(index); + } + } + + /** + * + * + *
+     * Output only. The cost of running the model deployment.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setCost(int index, com.google.cloud.gkerecommender.v1.Cost value) { + if (costBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureCostIsMutable(); + cost_.set(index, value); + onChanged(); + } else { + costBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Output only. The cost of running the model deployment.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setCost( + int index, com.google.cloud.gkerecommender.v1.Cost.Builder builderForValue) { + if (costBuilder_ == null) { + ensureCostIsMutable(); + cost_.set(index, builderForValue.build()); + onChanged(); + } else { + costBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Output only. The cost of running the model deployment.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addCost(com.google.cloud.gkerecommender.v1.Cost value) { + if (costBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureCostIsMutable(); + cost_.add(value); + onChanged(); + } else { + costBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+     * Output only. The cost of running the model deployment.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addCost(int index, com.google.cloud.gkerecommender.v1.Cost value) { + if (costBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureCostIsMutable(); + cost_.add(index, value); + onChanged(); + } else { + costBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Output only. The cost of running the model deployment.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addCost(com.google.cloud.gkerecommender.v1.Cost.Builder builderForValue) { + if (costBuilder_ == null) { + ensureCostIsMutable(); + cost_.add(builderForValue.build()); + onChanged(); + } else { + costBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Output only. The cost of running the model deployment.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addCost( + int index, com.google.cloud.gkerecommender.v1.Cost.Builder builderForValue) { + if (costBuilder_ == null) { + ensureCostIsMutable(); + cost_.add(index, builderForValue.build()); + onChanged(); + } else { + costBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Output only. The cost of running the model deployment.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addAllCost( + java.lang.Iterable values) { + if (costBuilder_ == null) { + ensureCostIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, cost_); + onChanged(); + } else { + costBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+     * Output only. The cost of running the model deployment.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder clearCost() { + if (costBuilder_ == null) { + cost_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + } else { + costBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Output only. The cost of running the model deployment.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder removeCost(int index) { + if (costBuilder_ == null) { + ensureCostIsMutable(); + cost_.remove(index); + onChanged(); + } else { + costBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+     * Output only. The cost of running the model deployment.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.Cost.Builder getCostBuilder(int index) { + return getCostFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+     * Output only. The cost of running the model deployment.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.CostOrBuilder getCostOrBuilder(int index) { + if (costBuilder_ == null) { + return cost_.get(index); + } else { + return costBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+     * Output only. The cost of running the model deployment.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public java.util.List + getCostOrBuilderList() { + if (costBuilder_ != null) { + return costBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(cost_); + } + } + + /** + * + * + *
+     * Output only. The cost of running the model deployment.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.Cost.Builder addCostBuilder() { + return getCostFieldBuilder() + .addBuilder(com.google.cloud.gkerecommender.v1.Cost.getDefaultInstance()); + } + + /** + * + * + *
+     * Output only. The cost of running the model deployment.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.Cost.Builder addCostBuilder(int index) { + return getCostFieldBuilder() + .addBuilder(index, com.google.cloud.gkerecommender.v1.Cost.getDefaultInstance()); + } + + /** + * + * + *
+     * Output only. The cost of running the model deployment.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public java.util.List getCostBuilderList() { + return getCostFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.gkerecommender.v1.Cost, + com.google.cloud.gkerecommender.v1.Cost.Builder, + com.google.cloud.gkerecommender.v1.CostOrBuilder> + getCostFieldBuilder() { + if (costBuilder_ == null) { + costBuilder_ = + new com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.gkerecommender.v1.Cost, + com.google.cloud.gkerecommender.v1.Cost.Builder, + com.google.cloud.gkerecommender.v1.CostOrBuilder>( + cost_, ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean()); + cost_ = null; + } + return costBuilder_; + } + + @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:google.cloud.gkerecommender.v1.PerformanceStats) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.PerformanceStats) + private static final com.google.cloud.gkerecommender.v1.PerformanceStats DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.PerformanceStats(); + } + + public static com.google.cloud.gkerecommender.v1.PerformanceStats getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PerformanceStats parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceStats getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/PerformanceStatsOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/PerformanceStatsOrBuilder.java new file mode 100644 index 000000000000..8b051a8e44b5 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/PerformanceStatsOrBuilder.java @@ -0,0 +1,150 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface PerformanceStatsOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.PerformanceStats) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Output only. The number of queries per second.
+   * Note: This metric can vary widely based on context length and may not be a
+   * reliable measure of LLM throughput.
+   * 
+ * + * float queries_per_second = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The queriesPerSecond. + */ + float getQueriesPerSecond(); + + /** + * + * + *
+   * Output only. The number of output tokens per second. This is the throughput
+   * measured as total_output_tokens_generated_by_server /
+   * elapsed_time_in_seconds.
+   * 
+ * + * int32 output_tokens_per_second = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The outputTokensPerSecond. + */ + int getOutputTokensPerSecond(); + + /** + * + * + *
+   * Output only. The Normalized Time Per Output Token (NTPOT) in milliseconds.
+   * This is the request latency normalized by the number of output tokens,
+   * measured as request_latency / total_output_tokens.
+   * 
+ * + * int32 ntpot_milliseconds = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The ntpotMilliseconds. + */ + int getNtpotMilliseconds(); + + /** + * + * + *
+   * Output only. The Time To First Token (TTFT) in milliseconds. This is the
+   * time it takes to generate the first token for a request.
+   * 
+ * + * int32 ttft_milliseconds = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The ttftMilliseconds. + */ + int getTtftMilliseconds(); + + /** + * + * + *
+   * Output only. The cost of running the model deployment.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + java.util.List getCostList(); + + /** + * + * + *
+   * Output only. The cost of running the model deployment.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.cloud.gkerecommender.v1.Cost getCost(int index); + + /** + * + * + *
+   * Output only. The cost of running the model deployment.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + int getCostCount(); + + /** + * + * + *
+   * Output only. The cost of running the model deployment.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + java.util.List getCostOrBuilderList(); + + /** + * + * + *
+   * Output only. The cost of running the model deployment.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.Cost cost = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.cloud.gkerecommender.v1.CostOrBuilder getCostOrBuilder(int index); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/Profile.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/Profile.java new file mode 100644 index 000000000000..d12f37d8eba7 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/Profile.java @@ -0,0 +1,2239 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * A profile containing information about a model deployment.
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.Profile} + */ +public final class Profile extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.Profile) + ProfileOrBuilder { + private static final long serialVersionUID = 0L; + + // Use Profile.newBuilder() to construct. + private Profile(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private Profile() { + acceleratorType_ = ""; + tpuTopology_ = ""; + instanceType_ = ""; + performanceStats_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Profile(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_Profile_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_Profile_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.Profile.class, + com.google.cloud.gkerecommender.v1.Profile.Builder.class); + } + + private int bitField0_; + public static final int MODEL_SERVER_INFO_FIELD_NUMBER = 1; + private com.google.cloud.gkerecommender.v1.ModelServerInfo modelServerInfo_; + + /** + * + * + *
+   * Output only. The model server configuration. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid configurations.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the modelServerInfo field is set. + */ + @java.lang.Override + public boolean hasModelServerInfo() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Output only. The model server configuration. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid configurations.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The modelServerInfo. + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.ModelServerInfo getModelServerInfo() { + return modelServerInfo_ == null + ? com.google.cloud.gkerecommender.v1.ModelServerInfo.getDefaultInstance() + : modelServerInfo_; + } + + /** + * + * + *
+   * Output only. The model server configuration. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid configurations.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder getModelServerInfoOrBuilder() { + return modelServerInfo_ == null + ? com.google.cloud.gkerecommender.v1.ModelServerInfo.getDefaultInstance() + : modelServerInfo_; + } + + public static final int ACCELERATOR_TYPE_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object acceleratorType_ = ""; + + /** + * + * + *
+   * Output only. The accelerator type. Expected format: `nvidia-h100-80gb`.
+   * 
+ * + * string accelerator_type = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The acceleratorType. + */ + @java.lang.Override + public java.lang.String getAcceleratorType() { + java.lang.Object ref = acceleratorType_; + 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(); + acceleratorType_ = s; + return s; + } + } + + /** + * + * + *
+   * Output only. The accelerator type. Expected format: `nvidia-h100-80gb`.
+   * 
+ * + * string accelerator_type = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for acceleratorType. + */ + @java.lang.Override + public com.google.protobuf.ByteString getAcceleratorTypeBytes() { + java.lang.Object ref = acceleratorType_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + acceleratorType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TPU_TOPOLOGY_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object tpuTopology_ = ""; + + /** + * + * + *
+   * Output only. The TPU topology (if applicable).
+   * 
+ * + * string tpu_topology = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The tpuTopology. + */ + @java.lang.Override + public java.lang.String getTpuTopology() { + java.lang.Object ref = tpuTopology_; + 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(); + tpuTopology_ = s; + return s; + } + } + + /** + * + * + *
+   * Output only. The TPU topology (if applicable).
+   * 
+ * + * string tpu_topology = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for tpuTopology. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTpuTopologyBytes() { + java.lang.Object ref = tpuTopology_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + tpuTopology_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int INSTANCE_TYPE_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object instanceType_ = ""; + + /** + * + * + *
+   * Output only. The instance type. Expected format: `a2-highgpu-1g`.
+   * 
+ * + * string instance_type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The instanceType. + */ + @java.lang.Override + public java.lang.String getInstanceType() { + java.lang.Object ref = instanceType_; + 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(); + instanceType_ = s; + return s; + } + } + + /** + * + * + *
+   * Output only. The instance type. Expected format: `a2-highgpu-1g`.
+   * 
+ * + * string instance_type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for instanceType. + */ + @java.lang.Override + public com.google.protobuf.ByteString getInstanceTypeBytes() { + java.lang.Object ref = instanceType_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + instanceType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int RESOURCES_USED_FIELD_NUMBER = 5; + private com.google.cloud.gkerecommender.v1.ResourcesUsed resourcesUsed_; + + /** + * + * + *
+   * Output only. The resources used by the model deployment.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ResourcesUsed resources_used = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the resourcesUsed field is set. + */ + @java.lang.Override + public boolean hasResourcesUsed() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Output only. The resources used by the model deployment.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ResourcesUsed resources_used = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The resourcesUsed. + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.ResourcesUsed getResourcesUsed() { + return resourcesUsed_ == null + ? com.google.cloud.gkerecommender.v1.ResourcesUsed.getDefaultInstance() + : resourcesUsed_; + } + + /** + * + * + *
+   * Output only. The resources used by the model deployment.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ResourcesUsed resources_used = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.ResourcesUsedOrBuilder getResourcesUsedOrBuilder() { + return resourcesUsed_ == null + ? com.google.cloud.gkerecommender.v1.ResourcesUsed.getDefaultInstance() + : resourcesUsed_; + } + + public static final int PERFORMANCE_STATS_FIELD_NUMBER = 6; + + @SuppressWarnings("serial") + private java.util.List performanceStats_; + + /** + * + * + *
+   * Output only. The performance statistics for this profile.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public java.util.List + getPerformanceStatsList() { + return performanceStats_; + } + + /** + * + * + *
+   * Output only. The performance statistics for this profile.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public java.util.List + getPerformanceStatsOrBuilderList() { + return performanceStats_; + } + + /** + * + * + *
+   * Output only. The performance statistics for this profile.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public int getPerformanceStatsCount() { + return performanceStats_.size(); + } + + /** + * + * + *
+   * Output only. The performance statistics for this profile.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceStats getPerformanceStats(int index) { + return performanceStats_.get(index); + } + + /** + * + * + *
+   * Output only. The performance statistics for this profile.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.cloud.gkerecommender.v1.PerformanceStatsOrBuilder getPerformanceStatsOrBuilder( + int index) { + return performanceStats_.get(index); + } + + 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 (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getModelServerInfo()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(acceleratorType_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, acceleratorType_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(tpuTopology_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, tpuTopology_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(instanceType_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, instanceType_); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(5, getResourcesUsed()); + } + for (int i = 0; i < performanceStats_.size(); i++) { + output.writeMessage(6, performanceStats_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getModelServerInfo()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(acceleratorType_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, acceleratorType_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(tpuTopology_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, tpuTopology_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(instanceType_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, instanceType_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getResourcesUsed()); + } + for (int i = 0; i < performanceStats_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, performanceStats_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.Profile)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.Profile other = + (com.google.cloud.gkerecommender.v1.Profile) obj; + + if (hasModelServerInfo() != other.hasModelServerInfo()) return false; + if (hasModelServerInfo()) { + if (!getModelServerInfo().equals(other.getModelServerInfo())) return false; + } + if (!getAcceleratorType().equals(other.getAcceleratorType())) return false; + if (!getTpuTopology().equals(other.getTpuTopology())) return false; + if (!getInstanceType().equals(other.getInstanceType())) return false; + if (hasResourcesUsed() != other.hasResourcesUsed()) return false; + if (hasResourcesUsed()) { + if (!getResourcesUsed().equals(other.getResourcesUsed())) return false; + } + if (!getPerformanceStatsList().equals(other.getPerformanceStatsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasModelServerInfo()) { + hash = (37 * hash) + MODEL_SERVER_INFO_FIELD_NUMBER; + hash = (53 * hash) + getModelServerInfo().hashCode(); + } + hash = (37 * hash) + ACCELERATOR_TYPE_FIELD_NUMBER; + hash = (53 * hash) + getAcceleratorType().hashCode(); + hash = (37 * hash) + TPU_TOPOLOGY_FIELD_NUMBER; + hash = (53 * hash) + getTpuTopology().hashCode(); + hash = (37 * hash) + INSTANCE_TYPE_FIELD_NUMBER; + hash = (53 * hash) + getInstanceType().hashCode(); + if (hasResourcesUsed()) { + hash = (37 * hash) + RESOURCES_USED_FIELD_NUMBER; + hash = (53 * hash) + getResourcesUsed().hashCode(); + } + if (getPerformanceStatsCount() > 0) { + hash = (37 * hash) + PERFORMANCE_STATS_FIELD_NUMBER; + hash = (53 * hash) + getPerformanceStatsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.Profile parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.Profile parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.Profile parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.Profile parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.Profile parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.Profile parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.Profile parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.Profile 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 com.google.cloud.gkerecommender.v1.Profile parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.Profile 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 com.google.cloud.gkerecommender.v1.Profile parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.Profile 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(com.google.cloud.gkerecommender.v1.Profile 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; + } + + /** + * + * + *
+   * A profile containing information about a model deployment.
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.Profile} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.Profile) + com.google.cloud.gkerecommender.v1.ProfileOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_Profile_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_Profile_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.Profile.class, + com.google.cloud.gkerecommender.v1.Profile.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.Profile.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getModelServerInfoFieldBuilder(); + getResourcesUsedFieldBuilder(); + getPerformanceStatsFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + modelServerInfo_ = null; + if (modelServerInfoBuilder_ != null) { + modelServerInfoBuilder_.dispose(); + modelServerInfoBuilder_ = null; + } + acceleratorType_ = ""; + tpuTopology_ = ""; + instanceType_ = ""; + resourcesUsed_ = null; + if (resourcesUsedBuilder_ != null) { + resourcesUsedBuilder_.dispose(); + resourcesUsedBuilder_ = null; + } + if (performanceStatsBuilder_ == null) { + performanceStats_ = java.util.Collections.emptyList(); + } else { + performanceStats_ = null; + performanceStatsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000020); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_Profile_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.Profile getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.Profile.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.Profile build() { + com.google.cloud.gkerecommender.v1.Profile result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.Profile buildPartial() { + com.google.cloud.gkerecommender.v1.Profile result = + new com.google.cloud.gkerecommender.v1.Profile(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.google.cloud.gkerecommender.v1.Profile result) { + if (performanceStatsBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0)) { + performanceStats_ = java.util.Collections.unmodifiableList(performanceStats_); + bitField0_ = (bitField0_ & ~0x00000020); + } + result.performanceStats_ = performanceStats_; + } else { + result.performanceStats_ = performanceStatsBuilder_.build(); + } + } + + private void buildPartial0(com.google.cloud.gkerecommender.v1.Profile result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.modelServerInfo_ = + modelServerInfoBuilder_ == null ? modelServerInfo_ : modelServerInfoBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.acceleratorType_ = acceleratorType_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.tpuTopology_ = tpuTopology_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.instanceType_ = instanceType_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.resourcesUsed_ = + resourcesUsedBuilder_ == null ? resourcesUsed_ : resourcesUsedBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + result.bitField0_ |= to_bitField0_; + } + + @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 com.google.cloud.gkerecommender.v1.Profile) { + return mergeFrom((com.google.cloud.gkerecommender.v1.Profile) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.gkerecommender.v1.Profile other) { + if (other == com.google.cloud.gkerecommender.v1.Profile.getDefaultInstance()) return this; + if (other.hasModelServerInfo()) { + mergeModelServerInfo(other.getModelServerInfo()); + } + if (!other.getAcceleratorType().isEmpty()) { + acceleratorType_ = other.acceleratorType_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getTpuTopology().isEmpty()) { + tpuTopology_ = other.tpuTopology_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getInstanceType().isEmpty()) { + instanceType_ = other.instanceType_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (other.hasResourcesUsed()) { + mergeResourcesUsed(other.getResourcesUsed()); + } + if (performanceStatsBuilder_ == null) { + if (!other.performanceStats_.isEmpty()) { + if (performanceStats_.isEmpty()) { + performanceStats_ = other.performanceStats_; + bitField0_ = (bitField0_ & ~0x00000020); + } else { + ensurePerformanceStatsIsMutable(); + performanceStats_.addAll(other.performanceStats_); + } + onChanged(); + } + } else { + if (!other.performanceStats_.isEmpty()) { + if (performanceStatsBuilder_.isEmpty()) { + performanceStatsBuilder_.dispose(); + performanceStatsBuilder_ = null; + performanceStats_ = other.performanceStats_; + bitField0_ = (bitField0_ & ~0x00000020); + performanceStatsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getPerformanceStatsFieldBuilder() + : null; + } else { + performanceStatsBuilder_.addAllMessages(other.performanceStats_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getModelServerInfoFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + acceleratorType_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + tpuTopology_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + instanceType_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: + { + input.readMessage(getResourcesUsedFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 50: + { + com.google.cloud.gkerecommender.v1.PerformanceStats m = + input.readMessage( + com.google.cloud.gkerecommender.v1.PerformanceStats.parser(), + extensionRegistry); + if (performanceStatsBuilder_ == null) { + ensurePerformanceStatsIsMutable(); + performanceStats_.add(m); + } else { + performanceStatsBuilder_.addMessage(m); + } + break; + } // case 50 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.cloud.gkerecommender.v1.ModelServerInfo modelServerInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.ModelServerInfo, + com.google.cloud.gkerecommender.v1.ModelServerInfo.Builder, + com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder> + modelServerInfoBuilder_; + + /** + * + * + *
+     * Output only. The model server configuration. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the modelServerInfo field is set. + */ + public boolean hasModelServerInfo() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Output only. The model server configuration. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The modelServerInfo. + */ + public com.google.cloud.gkerecommender.v1.ModelServerInfo getModelServerInfo() { + if (modelServerInfoBuilder_ == null) { + return modelServerInfo_ == null + ? com.google.cloud.gkerecommender.v1.ModelServerInfo.getDefaultInstance() + : modelServerInfo_; + } else { + return modelServerInfoBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Output only. The model server configuration. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setModelServerInfo(com.google.cloud.gkerecommender.v1.ModelServerInfo value) { + if (modelServerInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + modelServerInfo_ = value; + } else { + modelServerInfoBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The model server configuration. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setModelServerInfo( + com.google.cloud.gkerecommender.v1.ModelServerInfo.Builder builderForValue) { + if (modelServerInfoBuilder_ == null) { + modelServerInfo_ = builderForValue.build(); + } else { + modelServerInfoBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The model server configuration. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder mergeModelServerInfo(com.google.cloud.gkerecommender.v1.ModelServerInfo value) { + if (modelServerInfoBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && modelServerInfo_ != null + && modelServerInfo_ + != com.google.cloud.gkerecommender.v1.ModelServerInfo.getDefaultInstance()) { + getModelServerInfoBuilder().mergeFrom(value); + } else { + modelServerInfo_ = value; + } + } else { + modelServerInfoBuilder_.mergeFrom(value); + } + if (modelServerInfo_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Output only. The model server configuration. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder clearModelServerInfo() { + bitField0_ = (bitField0_ & ~0x00000001); + modelServerInfo_ = null; + if (modelServerInfoBuilder_ != null) { + modelServerInfoBuilder_.dispose(); + modelServerInfoBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The model server configuration. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.ModelServerInfo.Builder getModelServerInfoBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getModelServerInfoFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Output only. The model server configuration. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder + getModelServerInfoOrBuilder() { + if (modelServerInfoBuilder_ != null) { + return modelServerInfoBuilder_.getMessageOrBuilder(); + } else { + return modelServerInfo_ == null + ? com.google.cloud.gkerecommender.v1.ModelServerInfo.getDefaultInstance() + : modelServerInfo_; + } + } + + /** + * + * + *
+     * Output only. The model server configuration. Use
+     * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+     * to find valid configurations.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.ModelServerInfo, + com.google.cloud.gkerecommender.v1.ModelServerInfo.Builder, + com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder> + getModelServerInfoFieldBuilder() { + if (modelServerInfoBuilder_ == null) { + modelServerInfoBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.ModelServerInfo, + com.google.cloud.gkerecommender.v1.ModelServerInfo.Builder, + com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder>( + getModelServerInfo(), getParentForChildren(), isClean()); + modelServerInfo_ = null; + } + return modelServerInfoBuilder_; + } + + private java.lang.Object acceleratorType_ = ""; + + /** + * + * + *
+     * Output only. The accelerator type. Expected format: `nvidia-h100-80gb`.
+     * 
+ * + * string accelerator_type = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The acceleratorType. + */ + public java.lang.String getAcceleratorType() { + java.lang.Object ref = acceleratorType_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + acceleratorType_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Output only. The accelerator type. Expected format: `nvidia-h100-80gb`.
+     * 
+ * + * string accelerator_type = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for acceleratorType. + */ + public com.google.protobuf.ByteString getAcceleratorTypeBytes() { + java.lang.Object ref = acceleratorType_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + acceleratorType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Output only. The accelerator type. Expected format: `nvidia-h100-80gb`.
+     * 
+ * + * string accelerator_type = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The acceleratorType to set. + * @return This builder for chaining. + */ + public Builder setAcceleratorType(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + acceleratorType_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The accelerator type. Expected format: `nvidia-h100-80gb`.
+     * 
+ * + * string accelerator_type = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearAcceleratorType() { + acceleratorType_ = getDefaultInstance().getAcceleratorType(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The accelerator type. Expected format: `nvidia-h100-80gb`.
+     * 
+ * + * string accelerator_type = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The bytes for acceleratorType to set. + * @return This builder for chaining. + */ + public Builder setAcceleratorTypeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + acceleratorType_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object tpuTopology_ = ""; + + /** + * + * + *
+     * Output only. The TPU topology (if applicable).
+     * 
+ * + * string tpu_topology = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The tpuTopology. + */ + public java.lang.String getTpuTopology() { + java.lang.Object ref = tpuTopology_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + tpuTopology_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Output only. The TPU topology (if applicable).
+     * 
+ * + * string tpu_topology = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for tpuTopology. + */ + public com.google.protobuf.ByteString getTpuTopologyBytes() { + java.lang.Object ref = tpuTopology_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + tpuTopology_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Output only. The TPU topology (if applicable).
+     * 
+ * + * string tpu_topology = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The tpuTopology to set. + * @return This builder for chaining. + */ + public Builder setTpuTopology(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + tpuTopology_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The TPU topology (if applicable).
+     * 
+ * + * string tpu_topology = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearTpuTopology() { + tpuTopology_ = getDefaultInstance().getTpuTopology(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The TPU topology (if applicable).
+     * 
+ * + * string tpu_topology = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The bytes for tpuTopology to set. + * @return This builder for chaining. + */ + public Builder setTpuTopologyBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + tpuTopology_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object instanceType_ = ""; + + /** + * + * + *
+     * Output only. The instance type. Expected format: `a2-highgpu-1g`.
+     * 
+ * + * string instance_type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The instanceType. + */ + public java.lang.String getInstanceType() { + java.lang.Object ref = instanceType_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + instanceType_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Output only. The instance type. Expected format: `a2-highgpu-1g`.
+     * 
+ * + * string instance_type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for instanceType. + */ + public com.google.protobuf.ByteString getInstanceTypeBytes() { + java.lang.Object ref = instanceType_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + instanceType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Output only. The instance type. Expected format: `a2-highgpu-1g`.
+     * 
+ * + * string instance_type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The instanceType to set. + * @return This builder for chaining. + */ + public Builder setInstanceType(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + instanceType_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The instance type. Expected format: `a2-highgpu-1g`.
+     * 
+ * + * string instance_type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearInstanceType() { + instanceType_ = getDefaultInstance().getInstanceType(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The instance type. Expected format: `a2-highgpu-1g`.
+     * 
+ * + * string instance_type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The bytes for instanceType to set. + * @return This builder for chaining. + */ + public Builder setInstanceTypeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + instanceType_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private com.google.cloud.gkerecommender.v1.ResourcesUsed resourcesUsed_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.ResourcesUsed, + com.google.cloud.gkerecommender.v1.ResourcesUsed.Builder, + com.google.cloud.gkerecommender.v1.ResourcesUsedOrBuilder> + resourcesUsedBuilder_; + + /** + * + * + *
+     * Output only. The resources used by the model deployment.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ResourcesUsed resources_used = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the resourcesUsed field is set. + */ + public boolean hasResourcesUsed() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * Output only. The resources used by the model deployment.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ResourcesUsed resources_used = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The resourcesUsed. + */ + public com.google.cloud.gkerecommender.v1.ResourcesUsed getResourcesUsed() { + if (resourcesUsedBuilder_ == null) { + return resourcesUsed_ == null + ? com.google.cloud.gkerecommender.v1.ResourcesUsed.getDefaultInstance() + : resourcesUsed_; + } else { + return resourcesUsedBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Output only. The resources used by the model deployment.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ResourcesUsed resources_used = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setResourcesUsed(com.google.cloud.gkerecommender.v1.ResourcesUsed value) { + if (resourcesUsedBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + resourcesUsed_ = value; + } else { + resourcesUsedBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The resources used by the model deployment.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ResourcesUsed resources_used = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setResourcesUsed( + com.google.cloud.gkerecommender.v1.ResourcesUsed.Builder builderForValue) { + if (resourcesUsedBuilder_ == null) { + resourcesUsed_ = builderForValue.build(); + } else { + resourcesUsedBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The resources used by the model deployment.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ResourcesUsed resources_used = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder mergeResourcesUsed(com.google.cloud.gkerecommender.v1.ResourcesUsed value) { + if (resourcesUsedBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) + && resourcesUsed_ != null + && resourcesUsed_ + != com.google.cloud.gkerecommender.v1.ResourcesUsed.getDefaultInstance()) { + getResourcesUsedBuilder().mergeFrom(value); + } else { + resourcesUsed_ = value; + } + } else { + resourcesUsedBuilder_.mergeFrom(value); + } + if (resourcesUsed_ != null) { + bitField0_ |= 0x00000010; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Output only. The resources used by the model deployment.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ResourcesUsed resources_used = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder clearResourcesUsed() { + bitField0_ = (bitField0_ & ~0x00000010); + resourcesUsed_ = null; + if (resourcesUsedBuilder_ != null) { + resourcesUsedBuilder_.dispose(); + resourcesUsedBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The resources used by the model deployment.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ResourcesUsed resources_used = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.ResourcesUsed.Builder getResourcesUsedBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getResourcesUsedFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Output only. The resources used by the model deployment.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ResourcesUsed resources_used = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.ResourcesUsedOrBuilder getResourcesUsedOrBuilder() { + if (resourcesUsedBuilder_ != null) { + return resourcesUsedBuilder_.getMessageOrBuilder(); + } else { + return resourcesUsed_ == null + ? com.google.cloud.gkerecommender.v1.ResourcesUsed.getDefaultInstance() + : resourcesUsed_; + } + } + + /** + * + * + *
+     * Output only. The resources used by the model deployment.
+     * 
+ * + * + * .google.cloud.gkerecommender.v1.ResourcesUsed resources_used = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.ResourcesUsed, + com.google.cloud.gkerecommender.v1.ResourcesUsed.Builder, + com.google.cloud.gkerecommender.v1.ResourcesUsedOrBuilder> + getResourcesUsedFieldBuilder() { + if (resourcesUsedBuilder_ == null) { + resourcesUsedBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.gkerecommender.v1.ResourcesUsed, + com.google.cloud.gkerecommender.v1.ResourcesUsed.Builder, + com.google.cloud.gkerecommender.v1.ResourcesUsedOrBuilder>( + getResourcesUsed(), getParentForChildren(), isClean()); + resourcesUsed_ = null; + } + return resourcesUsedBuilder_; + } + + private java.util.List performanceStats_ = + java.util.Collections.emptyList(); + + private void ensurePerformanceStatsIsMutable() { + if (!((bitField0_ & 0x00000020) != 0)) { + performanceStats_ = + new java.util.ArrayList( + performanceStats_); + bitField0_ |= 0x00000020; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.gkerecommender.v1.PerformanceStats, + com.google.cloud.gkerecommender.v1.PerformanceStats.Builder, + com.google.cloud.gkerecommender.v1.PerformanceStatsOrBuilder> + performanceStatsBuilder_; + + /** + * + * + *
+     * Output only. The performance statistics for this profile.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public java.util.List + getPerformanceStatsList() { + if (performanceStatsBuilder_ == null) { + return java.util.Collections.unmodifiableList(performanceStats_); + } else { + return performanceStatsBuilder_.getMessageList(); + } + } + + /** + * + * + *
+     * Output only. The performance statistics for this profile.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public int getPerformanceStatsCount() { + if (performanceStatsBuilder_ == null) { + return performanceStats_.size(); + } else { + return performanceStatsBuilder_.getCount(); + } + } + + /** + * + * + *
+     * Output only. The performance statistics for this profile.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.PerformanceStats getPerformanceStats(int index) { + if (performanceStatsBuilder_ == null) { + return performanceStats_.get(index); + } else { + return performanceStatsBuilder_.getMessage(index); + } + } + + /** + * + * + *
+     * Output only. The performance statistics for this profile.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setPerformanceStats( + int index, com.google.cloud.gkerecommender.v1.PerformanceStats value) { + if (performanceStatsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensurePerformanceStatsIsMutable(); + performanceStats_.set(index, value); + onChanged(); + } else { + performanceStatsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Output only. The performance statistics for this profile.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setPerformanceStats( + int index, com.google.cloud.gkerecommender.v1.PerformanceStats.Builder builderForValue) { + if (performanceStatsBuilder_ == null) { + ensurePerformanceStatsIsMutable(); + performanceStats_.set(index, builderForValue.build()); + onChanged(); + } else { + performanceStatsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Output only. The performance statistics for this profile.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addPerformanceStats(com.google.cloud.gkerecommender.v1.PerformanceStats value) { + if (performanceStatsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensurePerformanceStatsIsMutable(); + performanceStats_.add(value); + onChanged(); + } else { + performanceStatsBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+     * Output only. The performance statistics for this profile.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addPerformanceStats( + int index, com.google.cloud.gkerecommender.v1.PerformanceStats value) { + if (performanceStatsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensurePerformanceStatsIsMutable(); + performanceStats_.add(index, value); + onChanged(); + } else { + performanceStatsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Output only. The performance statistics for this profile.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addPerformanceStats( + com.google.cloud.gkerecommender.v1.PerformanceStats.Builder builderForValue) { + if (performanceStatsBuilder_ == null) { + ensurePerformanceStatsIsMutable(); + performanceStats_.add(builderForValue.build()); + onChanged(); + } else { + performanceStatsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Output only. The performance statistics for this profile.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addPerformanceStats( + int index, com.google.cloud.gkerecommender.v1.PerformanceStats.Builder builderForValue) { + if (performanceStatsBuilder_ == null) { + ensurePerformanceStatsIsMutable(); + performanceStats_.add(index, builderForValue.build()); + onChanged(); + } else { + performanceStatsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Output only. The performance statistics for this profile.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder addAllPerformanceStats( + java.lang.Iterable values) { + if (performanceStatsBuilder_ == null) { + ensurePerformanceStatsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, performanceStats_); + onChanged(); + } else { + performanceStatsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+     * Output only. The performance statistics for this profile.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder clearPerformanceStats() { + if (performanceStatsBuilder_ == null) { + performanceStats_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + } else { + performanceStatsBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Output only. The performance statistics for this profile.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder removePerformanceStats(int index) { + if (performanceStatsBuilder_ == null) { + ensurePerformanceStatsIsMutable(); + performanceStats_.remove(index); + onChanged(); + } else { + performanceStatsBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+     * Output only. The performance statistics for this profile.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.PerformanceStats.Builder getPerformanceStatsBuilder( + int index) { + return getPerformanceStatsFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+     * Output only. The performance statistics for this profile.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.PerformanceStatsOrBuilder + getPerformanceStatsOrBuilder(int index) { + if (performanceStatsBuilder_ == null) { + return performanceStats_.get(index); + } else { + return performanceStatsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+     * Output only. The performance statistics for this profile.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public java.util.List + getPerformanceStatsOrBuilderList() { + if (performanceStatsBuilder_ != null) { + return performanceStatsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(performanceStats_); + } + } + + /** + * + * + *
+     * Output only. The performance statistics for this profile.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.PerformanceStats.Builder + addPerformanceStatsBuilder() { + return getPerformanceStatsFieldBuilder() + .addBuilder(com.google.cloud.gkerecommender.v1.PerformanceStats.getDefaultInstance()); + } + + /** + * + * + *
+     * Output only. The performance statistics for this profile.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.gkerecommender.v1.PerformanceStats.Builder addPerformanceStatsBuilder( + int index) { + return getPerformanceStatsFieldBuilder() + .addBuilder( + index, com.google.cloud.gkerecommender.v1.PerformanceStats.getDefaultInstance()); + } + + /** + * + * + *
+     * Output only. The performance statistics for this profile.
+     * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public java.util.List + getPerformanceStatsBuilderList() { + return getPerformanceStatsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.gkerecommender.v1.PerformanceStats, + com.google.cloud.gkerecommender.v1.PerformanceStats.Builder, + com.google.cloud.gkerecommender.v1.PerformanceStatsOrBuilder> + getPerformanceStatsFieldBuilder() { + if (performanceStatsBuilder_ == null) { + performanceStatsBuilder_ = + new com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.gkerecommender.v1.PerformanceStats, + com.google.cloud.gkerecommender.v1.PerformanceStats.Builder, + com.google.cloud.gkerecommender.v1.PerformanceStatsOrBuilder>( + performanceStats_, + ((bitField0_ & 0x00000020) != 0), + getParentForChildren(), + isClean()); + performanceStats_ = null; + } + return performanceStatsBuilder_; + } + + @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:google.cloud.gkerecommender.v1.Profile) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.Profile) + private static final com.google.cloud.gkerecommender.v1.Profile DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.Profile(); + } + + public static com.google.cloud.gkerecommender.v1.Profile getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Profile parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.Profile getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/ProfileOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/ProfileOrBuilder.java new file mode 100644 index 000000000000..b83f5d012871 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/ProfileOrBuilder.java @@ -0,0 +1,263 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface ProfileOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.Profile) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Output only. The model server configuration. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid configurations.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the modelServerInfo field is set. + */ + boolean hasModelServerInfo(); + + /** + * + * + *
+   * Output only. The model server configuration. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid configurations.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The modelServerInfo. + */ + com.google.cloud.gkerecommender.v1.ModelServerInfo getModelServerInfo(); + + /** + * + * + *
+   * Output only. The model server configuration. Use
+   * [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]
+   * to find valid configurations.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ModelServerInfo model_server_info = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.cloud.gkerecommender.v1.ModelServerInfoOrBuilder getModelServerInfoOrBuilder(); + + /** + * + * + *
+   * Output only. The accelerator type. Expected format: `nvidia-h100-80gb`.
+   * 
+ * + * string accelerator_type = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The acceleratorType. + */ + java.lang.String getAcceleratorType(); + + /** + * + * + *
+   * Output only. The accelerator type. Expected format: `nvidia-h100-80gb`.
+   * 
+ * + * string accelerator_type = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for acceleratorType. + */ + com.google.protobuf.ByteString getAcceleratorTypeBytes(); + + /** + * + * + *
+   * Output only. The TPU topology (if applicable).
+   * 
+ * + * string tpu_topology = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The tpuTopology. + */ + java.lang.String getTpuTopology(); + + /** + * + * + *
+   * Output only. The TPU topology (if applicable).
+   * 
+ * + * string tpu_topology = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for tpuTopology. + */ + com.google.protobuf.ByteString getTpuTopologyBytes(); + + /** + * + * + *
+   * Output only. The instance type. Expected format: `a2-highgpu-1g`.
+   * 
+ * + * string instance_type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The instanceType. + */ + java.lang.String getInstanceType(); + + /** + * + * + *
+   * Output only. The instance type. Expected format: `a2-highgpu-1g`.
+   * 
+ * + * string instance_type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The bytes for instanceType. + */ + com.google.protobuf.ByteString getInstanceTypeBytes(); + + /** + * + * + *
+   * Output only. The resources used by the model deployment.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ResourcesUsed resources_used = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the resourcesUsed field is set. + */ + boolean hasResourcesUsed(); + + /** + * + * + *
+   * Output only. The resources used by the model deployment.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ResourcesUsed resources_used = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The resourcesUsed. + */ + com.google.cloud.gkerecommender.v1.ResourcesUsed getResourcesUsed(); + + /** + * + * + *
+   * Output only. The resources used by the model deployment.
+   * 
+ * + * + * .google.cloud.gkerecommender.v1.ResourcesUsed resources_used = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.cloud.gkerecommender.v1.ResourcesUsedOrBuilder getResourcesUsedOrBuilder(); + + /** + * + * + *
+   * Output only. The performance statistics for this profile.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + java.util.List getPerformanceStatsList(); + + /** + * + * + *
+   * Output only. The performance statistics for this profile.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.cloud.gkerecommender.v1.PerformanceStats getPerformanceStats(int index); + + /** + * + * + *
+   * Output only. The performance statistics for this profile.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + int getPerformanceStatsCount(); + + /** + * + * + *
+   * Output only. The performance statistics for this profile.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + java.util.List + getPerformanceStatsOrBuilderList(); + + /** + * + * + *
+   * Output only. The performance statistics for this profile.
+   * 
+ * + * + * repeated .google.cloud.gkerecommender.v1.PerformanceStats performance_stats = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.cloud.gkerecommender.v1.PerformanceStatsOrBuilder getPerformanceStatsOrBuilder( + int index); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/ResourcesUsed.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/ResourcesUsed.java new file mode 100644 index 000000000000..06e7d36ccd8b --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/ResourcesUsed.java @@ -0,0 +1,545 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Resources used by a model deployment.
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.ResourcesUsed} + */ +public final class ResourcesUsed extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.ResourcesUsed) + ResourcesUsedOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ResourcesUsed.newBuilder() to construct. + private ResourcesUsed(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ResourcesUsed() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ResourcesUsed(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_ResourcesUsed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_ResourcesUsed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.ResourcesUsed.class, + com.google.cloud.gkerecommender.v1.ResourcesUsed.Builder.class); + } + + public static final int ACCELERATOR_COUNT_FIELD_NUMBER = 1; + private int acceleratorCount_ = 0; + + /** + * + * + *
+   * Output only. The number of accelerators (e.g., GPUs or TPUs) used by the
+   * model deployment on the Kubernetes node.
+   * 
+ * + * int32 accelerator_count = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The acceleratorCount. + */ + @java.lang.Override + public int getAcceleratorCount() { + return acceleratorCount_; + } + + 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 (acceleratorCount_ != 0) { + output.writeInt32(1, acceleratorCount_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (acceleratorCount_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, acceleratorCount_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.ResourcesUsed)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.ResourcesUsed other = + (com.google.cloud.gkerecommender.v1.ResourcesUsed) obj; + + if (getAcceleratorCount() != other.getAcceleratorCount()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) 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) + ACCELERATOR_COUNT_FIELD_NUMBER; + hash = (53 * hash) + getAcceleratorCount(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.ResourcesUsed parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.ResourcesUsed parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.ResourcesUsed parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.ResourcesUsed parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.ResourcesUsed parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.ResourcesUsed parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.ResourcesUsed parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.ResourcesUsed 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 com.google.cloud.gkerecommender.v1.ResourcesUsed parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.ResourcesUsed 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 com.google.cloud.gkerecommender.v1.ResourcesUsed parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.ResourcesUsed 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(com.google.cloud.gkerecommender.v1.ResourcesUsed 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; + } + + /** + * + * + *
+   * Resources used by a model deployment.
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.ResourcesUsed} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.ResourcesUsed) + com.google.cloud.gkerecommender.v1.ResourcesUsedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_ResourcesUsed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_ResourcesUsed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.ResourcesUsed.class, + com.google.cloud.gkerecommender.v1.ResourcesUsed.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.ResourcesUsed.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + acceleratorCount_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_ResourcesUsed_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.ResourcesUsed getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.ResourcesUsed.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.ResourcesUsed build() { + com.google.cloud.gkerecommender.v1.ResourcesUsed result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.ResourcesUsed buildPartial() { + com.google.cloud.gkerecommender.v1.ResourcesUsed result = + new com.google.cloud.gkerecommender.v1.ResourcesUsed(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.gkerecommender.v1.ResourcesUsed result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.acceleratorCount_ = acceleratorCount_; + } + } + + @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 com.google.cloud.gkerecommender.v1.ResourcesUsed) { + return mergeFrom((com.google.cloud.gkerecommender.v1.ResourcesUsed) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.gkerecommender.v1.ResourcesUsed other) { + if (other == com.google.cloud.gkerecommender.v1.ResourcesUsed.getDefaultInstance()) + return this; + if (other.getAcceleratorCount() != 0) { + setAcceleratorCount(other.getAcceleratorCount()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: + { + acceleratorCount_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private int acceleratorCount_; + + /** + * + * + *
+     * Output only. The number of accelerators (e.g., GPUs or TPUs) used by the
+     * model deployment on the Kubernetes node.
+     * 
+ * + * int32 accelerator_count = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The acceleratorCount. + */ + @java.lang.Override + public int getAcceleratorCount() { + return acceleratorCount_; + } + + /** + * + * + *
+     * Output only. The number of accelerators (e.g., GPUs or TPUs) used by the
+     * model deployment on the Kubernetes node.
+     * 
+ * + * int32 accelerator_count = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The acceleratorCount to set. + * @return This builder for chaining. + */ + public Builder setAcceleratorCount(int value) { + + acceleratorCount_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The number of accelerators (e.g., GPUs or TPUs) used by the
+     * model deployment on the Kubernetes node.
+     * 
+ * + * int32 accelerator_count = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearAcceleratorCount() { + bitField0_ = (bitField0_ & ~0x00000001); + acceleratorCount_ = 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:google.cloud.gkerecommender.v1.ResourcesUsed) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.ResourcesUsed) + private static final com.google.cloud.gkerecommender.v1.ResourcesUsed DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.ResourcesUsed(); + } + + public static com.google.cloud.gkerecommender.v1.ResourcesUsed getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResourcesUsed parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.ResourcesUsed getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/ResourcesUsedOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/ResourcesUsedOrBuilder.java new file mode 100644 index 000000000000..102986ea1a8d --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/ResourcesUsedOrBuilder.java @@ -0,0 +1,40 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface ResourcesUsedOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.ResourcesUsed) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Output only. The number of accelerators (e.g., GPUs or TPUs) used by the
+   * model deployment on the Kubernetes node.
+   * 
+ * + * int32 accelerator_count = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The acceleratorCount. + */ + int getAcceleratorCount(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/StorageConfig.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/StorageConfig.java new file mode 100644 index 000000000000..20c914b4dccc --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/StorageConfig.java @@ -0,0 +1,872 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Storage configuration for a model deployment.
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.StorageConfig} + */ +public final class StorageConfig extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.StorageConfig) + StorageConfigOrBuilder { + private static final long serialVersionUID = 0L; + + // Use StorageConfig.newBuilder() to construct. + private StorageConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private StorageConfig() { + modelBucketUri_ = ""; + xlaCacheBucketUri_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new StorageConfig(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_StorageConfig_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_StorageConfig_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.StorageConfig.class, + com.google.cloud.gkerecommender.v1.StorageConfig.Builder.class); + } + + public static final int MODEL_BUCKET_URI_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object modelBucketUri_ = ""; + + /** + * + * + *
+   * Optional. The Google Cloud Storage bucket URI to load the model from. This
+   * URI must point to the directory containing the model's config file
+   * (`config.json`) and model weights. A tuned GCSFuse setup can improve
+   * LLM Pod startup time by more than 7x. Expected format:
+   * `gs://<bucket-name>/<path-to-model>`.
+   * 
+ * + * string model_bucket_uri = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The modelBucketUri. + */ + @java.lang.Override + public java.lang.String getModelBucketUri() { + java.lang.Object ref = modelBucketUri_; + 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(); + modelBucketUri_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. The Google Cloud Storage bucket URI to load the model from. This
+   * URI must point to the directory containing the model's config file
+   * (`config.json`) and model weights. A tuned GCSFuse setup can improve
+   * LLM Pod startup time by more than 7x. Expected format:
+   * `gs://<bucket-name>/<path-to-model>`.
+   * 
+ * + * string model_bucket_uri = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for modelBucketUri. + */ + @java.lang.Override + public com.google.protobuf.ByteString getModelBucketUriBytes() { + java.lang.Object ref = modelBucketUri_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + modelBucketUri_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int XLA_CACHE_BUCKET_URI_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object xlaCacheBucketUri_ = ""; + + /** + * + * + *
+   * Optional. The URI for the GCS bucket containing the XLA compilation cache.
+   * If using TPUs, the XLA cache will be written to the same path as
+   * `model_bucket_uri`. This can speed up vLLM model preparation for repeated
+   * deployments.
+   * 
+ * + * string xla_cache_bucket_uri = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The xlaCacheBucketUri. + */ + @java.lang.Override + public java.lang.String getXlaCacheBucketUri() { + java.lang.Object ref = xlaCacheBucketUri_; + 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(); + xlaCacheBucketUri_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. The URI for the GCS bucket containing the XLA compilation cache.
+   * If using TPUs, the XLA cache will be written to the same path as
+   * `model_bucket_uri`. This can speed up vLLM model preparation for repeated
+   * deployments.
+   * 
+ * + * string xla_cache_bucket_uri = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for xlaCacheBucketUri. + */ + @java.lang.Override + public com.google.protobuf.ByteString getXlaCacheBucketUriBytes() { + java.lang.Object ref = xlaCacheBucketUri_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + xlaCacheBucketUri_ = 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 { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(modelBucketUri_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, modelBucketUri_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(xlaCacheBucketUri_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, xlaCacheBucketUri_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(modelBucketUri_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, modelBucketUri_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(xlaCacheBucketUri_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, xlaCacheBucketUri_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.StorageConfig)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.StorageConfig other = + (com.google.cloud.gkerecommender.v1.StorageConfig) obj; + + if (!getModelBucketUri().equals(other.getModelBucketUri())) return false; + if (!getXlaCacheBucketUri().equals(other.getXlaCacheBucketUri())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) 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) + MODEL_BUCKET_URI_FIELD_NUMBER; + hash = (53 * hash) + getModelBucketUri().hashCode(); + hash = (37 * hash) + XLA_CACHE_BUCKET_URI_FIELD_NUMBER; + hash = (53 * hash) + getXlaCacheBucketUri().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.StorageConfig parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.StorageConfig parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.StorageConfig parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.StorageConfig parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.StorageConfig parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.StorageConfig parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.StorageConfig parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.StorageConfig 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 com.google.cloud.gkerecommender.v1.StorageConfig parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.StorageConfig 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 com.google.cloud.gkerecommender.v1.StorageConfig parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.StorageConfig 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(com.google.cloud.gkerecommender.v1.StorageConfig 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; + } + + /** + * + * + *
+   * Storage configuration for a model deployment.
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.StorageConfig} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.StorageConfig) + com.google.cloud.gkerecommender.v1.StorageConfigOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_StorageConfig_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_StorageConfig_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.StorageConfig.class, + com.google.cloud.gkerecommender.v1.StorageConfig.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.StorageConfig.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + modelBucketUri_ = ""; + xlaCacheBucketUri_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_StorageConfig_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.StorageConfig getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.StorageConfig.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.StorageConfig build() { + com.google.cloud.gkerecommender.v1.StorageConfig result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.StorageConfig buildPartial() { + com.google.cloud.gkerecommender.v1.StorageConfig result = + new com.google.cloud.gkerecommender.v1.StorageConfig(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.gkerecommender.v1.StorageConfig result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.modelBucketUri_ = modelBucketUri_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.xlaCacheBucketUri_ = xlaCacheBucketUri_; + } + } + + @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 com.google.cloud.gkerecommender.v1.StorageConfig) { + return mergeFrom((com.google.cloud.gkerecommender.v1.StorageConfig) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.gkerecommender.v1.StorageConfig other) { + if (other == com.google.cloud.gkerecommender.v1.StorageConfig.getDefaultInstance()) + return this; + if (!other.getModelBucketUri().isEmpty()) { + modelBucketUri_ = other.modelBucketUri_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getXlaCacheBucketUri().isEmpty()) { + xlaCacheBucketUri_ = other.xlaCacheBucketUri_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + modelBucketUri_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + xlaCacheBucketUri_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.lang.Object modelBucketUri_ = ""; + + /** + * + * + *
+     * Optional. The Google Cloud Storage bucket URI to load the model from. This
+     * URI must point to the directory containing the model's config file
+     * (`config.json`) and model weights. A tuned GCSFuse setup can improve
+     * LLM Pod startup time by more than 7x. Expected format:
+     * `gs://<bucket-name>/<path-to-model>`.
+     * 
+ * + * string model_bucket_uri = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The modelBucketUri. + */ + public java.lang.String getModelBucketUri() { + java.lang.Object ref = modelBucketUri_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + modelBucketUri_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. The Google Cloud Storage bucket URI to load the model from. This
+     * URI must point to the directory containing the model's config file
+     * (`config.json`) and model weights. A tuned GCSFuse setup can improve
+     * LLM Pod startup time by more than 7x. Expected format:
+     * `gs://<bucket-name>/<path-to-model>`.
+     * 
+ * + * string model_bucket_uri = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for modelBucketUri. + */ + public com.google.protobuf.ByteString getModelBucketUriBytes() { + java.lang.Object ref = modelBucketUri_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + modelBucketUri_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. The Google Cloud Storage bucket URI to load the model from. This
+     * URI must point to the directory containing the model's config file
+     * (`config.json`) and model weights. A tuned GCSFuse setup can improve
+     * LLM Pod startup time by more than 7x. Expected format:
+     * `gs://<bucket-name>/<path-to-model>`.
+     * 
+ * + * string model_bucket_uri = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The modelBucketUri to set. + * @return This builder for chaining. + */ + public Builder setModelBucketUri(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + modelBucketUri_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The Google Cloud Storage bucket URI to load the model from. This
+     * URI must point to the directory containing the model's config file
+     * (`config.json`) and model weights. A tuned GCSFuse setup can improve
+     * LLM Pod startup time by more than 7x. Expected format:
+     * `gs://<bucket-name>/<path-to-model>`.
+     * 
+ * + * string model_bucket_uri = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearModelBucketUri() { + modelBucketUri_ = getDefaultInstance().getModelBucketUri(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The Google Cloud Storage bucket URI to load the model from. This
+     * URI must point to the directory containing the model's config file
+     * (`config.json`) and model weights. A tuned GCSFuse setup can improve
+     * LLM Pod startup time by more than 7x. Expected format:
+     * `gs://<bucket-name>/<path-to-model>`.
+     * 
+ * + * string model_bucket_uri = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for modelBucketUri to set. + * @return This builder for chaining. + */ + public Builder setModelBucketUriBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + modelBucketUri_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object xlaCacheBucketUri_ = ""; + + /** + * + * + *
+     * Optional. The URI for the GCS bucket containing the XLA compilation cache.
+     * If using TPUs, the XLA cache will be written to the same path as
+     * `model_bucket_uri`. This can speed up vLLM model preparation for repeated
+     * deployments.
+     * 
+ * + * string xla_cache_bucket_uri = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The xlaCacheBucketUri. + */ + public java.lang.String getXlaCacheBucketUri() { + java.lang.Object ref = xlaCacheBucketUri_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + xlaCacheBucketUri_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. The URI for the GCS bucket containing the XLA compilation cache.
+     * If using TPUs, the XLA cache will be written to the same path as
+     * `model_bucket_uri`. This can speed up vLLM model preparation for repeated
+     * deployments.
+     * 
+ * + * string xla_cache_bucket_uri = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for xlaCacheBucketUri. + */ + public com.google.protobuf.ByteString getXlaCacheBucketUriBytes() { + java.lang.Object ref = xlaCacheBucketUri_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + xlaCacheBucketUri_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. The URI for the GCS bucket containing the XLA compilation cache.
+     * If using TPUs, the XLA cache will be written to the same path as
+     * `model_bucket_uri`. This can speed up vLLM model preparation for repeated
+     * deployments.
+     * 
+ * + * string xla_cache_bucket_uri = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The xlaCacheBucketUri to set. + * @return This builder for chaining. + */ + public Builder setXlaCacheBucketUri(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + xlaCacheBucketUri_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The URI for the GCS bucket containing the XLA compilation cache.
+     * If using TPUs, the XLA cache will be written to the same path as
+     * `model_bucket_uri`. This can speed up vLLM model preparation for repeated
+     * deployments.
+     * 
+ * + * string xla_cache_bucket_uri = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearXlaCacheBucketUri() { + xlaCacheBucketUri_ = getDefaultInstance().getXlaCacheBucketUri(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The URI for the GCS bucket containing the XLA compilation cache.
+     * If using TPUs, the XLA cache will be written to the same path as
+     * `model_bucket_uri`. This can speed up vLLM model preparation for repeated
+     * deployments.
+     * 
+ * + * string xla_cache_bucket_uri = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for xlaCacheBucketUri to set. + * @return This builder for chaining. + */ + public Builder setXlaCacheBucketUriBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + xlaCacheBucketUri_ = value; + bitField0_ |= 0x00000002; + 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:google.cloud.gkerecommender.v1.StorageConfig) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.StorageConfig) + private static final com.google.cloud.gkerecommender.v1.StorageConfig DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.StorageConfig(); + } + + public static com.google.cloud.gkerecommender.v1.StorageConfig getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public StorageConfig parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.StorageConfig getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/StorageConfigOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/StorageConfigOrBuilder.java new file mode 100644 index 000000000000..db7fcefaccd2 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/StorageConfigOrBuilder.java @@ -0,0 +1,92 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface StorageConfigOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.StorageConfig) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Optional. The Google Cloud Storage bucket URI to load the model from. This
+   * URI must point to the directory containing the model's config file
+   * (`config.json`) and model weights. A tuned GCSFuse setup can improve
+   * LLM Pod startup time by more than 7x. Expected format:
+   * `gs://<bucket-name>/<path-to-model>`.
+   * 
+ * + * string model_bucket_uri = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The modelBucketUri. + */ + java.lang.String getModelBucketUri(); + + /** + * + * + *
+   * Optional. The Google Cloud Storage bucket URI to load the model from. This
+   * URI must point to the directory containing the model's config file
+   * (`config.json`) and model weights. A tuned GCSFuse setup can improve
+   * LLM Pod startup time by more than 7x. Expected format:
+   * `gs://<bucket-name>/<path-to-model>`.
+   * 
+ * + * string model_bucket_uri = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for modelBucketUri. + */ + com.google.protobuf.ByteString getModelBucketUriBytes(); + + /** + * + * + *
+   * Optional. The URI for the GCS bucket containing the XLA compilation cache.
+   * If using TPUs, the XLA cache will be written to the same path as
+   * `model_bucket_uri`. This can speed up vLLM model preparation for repeated
+   * deployments.
+   * 
+ * + * string xla_cache_bucket_uri = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The xlaCacheBucketUri. + */ + java.lang.String getXlaCacheBucketUri(); + + /** + * + * + *
+   * Optional. The URI for the GCS bucket containing the XLA compilation cache.
+   * If using TPUs, the XLA cache will be written to the same path as
+   * `model_bucket_uri`. This can speed up vLLM model preparation for repeated
+   * deployments.
+   * 
+ * + * string xla_cache_bucket_uri = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for xlaCacheBucketUri. + */ + com.google.protobuf.ByteString getXlaCacheBucketUriBytes(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/TokensPerSecondRange.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/TokensPerSecondRange.java new file mode 100644 index 000000000000..cedb5e9ce3cb --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/TokensPerSecondRange.java @@ -0,0 +1,639 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +/** + * + * + *
+ * Represents a range of throughput values in tokens per second.
+ * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.TokensPerSecondRange} + */ +public final class TokensPerSecondRange extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.gkerecommender.v1.TokensPerSecondRange) + TokensPerSecondRangeOrBuilder { + private static final long serialVersionUID = 0L; + + // Use TokensPerSecondRange.newBuilder() to construct. + private TokensPerSecondRange(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private TokensPerSecondRange() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new TokensPerSecondRange(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_TokensPerSecondRange_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_TokensPerSecondRange_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.TokensPerSecondRange.class, + com.google.cloud.gkerecommender.v1.TokensPerSecondRange.Builder.class); + } + + public static final int MIN_FIELD_NUMBER = 1; + private int min_ = 0; + + /** + * + * + *
+   * Output only. The minimum value of the range.
+   * 
+ * + * int32 min = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The min. + */ + @java.lang.Override + public int getMin() { + return min_; + } + + public static final int MAX_FIELD_NUMBER = 2; + private int max_ = 0; + + /** + * + * + *
+   * Output only. The maximum value of the range.
+   * 
+ * + * int32 max = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The max. + */ + @java.lang.Override + public int getMax() { + return max_; + } + + 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 (min_ != 0) { + output.writeInt32(1, min_); + } + if (max_ != 0) { + output.writeInt32(2, max_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (min_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, min_); + } + if (max_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, max_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.gkerecommender.v1.TokensPerSecondRange)) { + return super.equals(obj); + } + com.google.cloud.gkerecommender.v1.TokensPerSecondRange other = + (com.google.cloud.gkerecommender.v1.TokensPerSecondRange) obj; + + if (getMin() != other.getMin()) return false; + if (getMax() != other.getMax()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) 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) + MIN_FIELD_NUMBER; + hash = (53 * hash) + getMin(); + hash = (37 * hash) + MAX_FIELD_NUMBER; + hash = (53 * hash) + getMax(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.gkerecommender.v1.TokensPerSecondRange parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.TokensPerSecondRange parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.TokensPerSecondRange parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.TokensPerSecondRange parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.TokensPerSecondRange parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.gkerecommender.v1.TokensPerSecondRange parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.gkerecommender.v1.TokensPerSecondRange parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.TokensPerSecondRange 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 com.google.cloud.gkerecommender.v1.TokensPerSecondRange parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.TokensPerSecondRange 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 com.google.cloud.gkerecommender.v1.TokensPerSecondRange parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.gkerecommender.v1.TokensPerSecondRange 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( + com.google.cloud.gkerecommender.v1.TokensPerSecondRange 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; + } + + /** + * + * + *
+   * Represents a range of throughput values in tokens per second.
+   * 
+ * + * Protobuf type {@code google.cloud.gkerecommender.v1.TokensPerSecondRange} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.gkerecommender.v1.TokensPerSecondRange) + com.google.cloud.gkerecommender.v1.TokensPerSecondRangeOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_TokensPerSecondRange_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_TokensPerSecondRange_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.gkerecommender.v1.TokensPerSecondRange.class, + com.google.cloud.gkerecommender.v1.TokensPerSecondRange.Builder.class); + } + + // Construct using com.google.cloud.gkerecommender.v1.TokensPerSecondRange.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + min_ = 0; + max_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.gkerecommender.v1.GkeRecommenderProto + .internal_static_google_cloud_gkerecommender_v1_TokensPerSecondRange_descriptor; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.TokensPerSecondRange getDefaultInstanceForType() { + return com.google.cloud.gkerecommender.v1.TokensPerSecondRange.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.TokensPerSecondRange build() { + com.google.cloud.gkerecommender.v1.TokensPerSecondRange result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.TokensPerSecondRange buildPartial() { + com.google.cloud.gkerecommender.v1.TokensPerSecondRange result = + new com.google.cloud.gkerecommender.v1.TokensPerSecondRange(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.gkerecommender.v1.TokensPerSecondRange result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.min_ = min_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.max_ = max_; + } + } + + @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 com.google.cloud.gkerecommender.v1.TokensPerSecondRange) { + return mergeFrom((com.google.cloud.gkerecommender.v1.TokensPerSecondRange) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.gkerecommender.v1.TokensPerSecondRange other) { + if (other == com.google.cloud.gkerecommender.v1.TokensPerSecondRange.getDefaultInstance()) + return this; + if (other.getMin() != 0) { + setMin(other.getMin()); + } + if (other.getMax() != 0) { + setMax(other.getMax()); + } + this.mergeUnknownFields(other.getUnknownFields()); + 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 { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: + { + min_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: + { + max_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private int min_; + + /** + * + * + *
+     * Output only. The minimum value of the range.
+     * 
+ * + * int32 min = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The min. + */ + @java.lang.Override + public int getMin() { + return min_; + } + + /** + * + * + *
+     * Output only. The minimum value of the range.
+     * 
+ * + * int32 min = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The min to set. + * @return This builder for chaining. + */ + public Builder setMin(int value) { + + min_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The minimum value of the range.
+     * 
+ * + * int32 min = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearMin() { + bitField0_ = (bitField0_ & ~0x00000001); + min_ = 0; + onChanged(); + return this; + } + + private int max_; + + /** + * + * + *
+     * Output only. The maximum value of the range.
+     * 
+ * + * int32 max = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The max. + */ + @java.lang.Override + public int getMax() { + return max_; + } + + /** + * + * + *
+     * Output only. The maximum value of the range.
+     * 
+ * + * int32 max = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The max to set. + * @return This builder for chaining. + */ + public Builder setMax(int value) { + + max_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The maximum value of the range.
+     * 
+ * + * int32 max = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearMax() { + bitField0_ = (bitField0_ & ~0x00000002); + max_ = 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:google.cloud.gkerecommender.v1.TokensPerSecondRange) + } + + // @@protoc_insertion_point(class_scope:google.cloud.gkerecommender.v1.TokensPerSecondRange) + private static final com.google.cloud.gkerecommender.v1.TokensPerSecondRange DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.gkerecommender.v1.TokensPerSecondRange(); + } + + public static com.google.cloud.gkerecommender.v1.TokensPerSecondRange getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TokensPerSecondRange parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.gkerecommender.v1.TokensPerSecondRange getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/TokensPerSecondRangeOrBuilder.java b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/TokensPerSecondRangeOrBuilder.java new file mode 100644 index 000000000000..986ba96f57f9 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/java/com/google/cloud/gkerecommender/v1/TokensPerSecondRangeOrBuilder.java @@ -0,0 +1,52 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/gkerecommender/v1/gkerecommender.proto + +// Protobuf Java Version: 3.25.8 +package com.google.cloud.gkerecommender.v1; + +public interface TokensPerSecondRangeOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.gkerecommender.v1.TokensPerSecondRange) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Output only. The minimum value of the range.
+   * 
+ * + * int32 min = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The min. + */ + int getMin(); + + /** + * + * + *
+   * Output only. The maximum value of the range.
+   * 
+ * + * int32 max = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The max. + */ + int getMax(); +} diff --git a/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/proto/google/cloud/gkerecommender/v1/gkerecommender.proto b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/proto/google/cloud/gkerecommender/v1/gkerecommender.proto new file mode 100644 index 000000000000..af9c31768d86 --- /dev/null +++ b/java-gkerecommender/proto-google-cloud-gkerecommender-v1/src/main/proto/google/cloud/gkerecommender/v1/gkerecommender.proto @@ -0,0 +1,589 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// 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. + +syntax = "proto3"; + +package google.cloud.gkerecommender.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.GkeRecommender.V1"; +option go_package = "cloud.google.com/go/gkerecommender/apiv1/gkerecommenderpb;gkerecommenderpb"; +option java_multiple_files = true; +option java_outer_classname = "GkeRecommenderProto"; +option java_package = "com.google.cloud.gkerecommender.v1"; +option php_namespace = "Google\\Cloud\\GkeRecommender\\V1"; +option ruby_package = "Google::Cloud::GkeRecommender::V1"; + +// GKE Inference Quickstart (GIQ) service provides profiles with performance +// metrics for popular models and model servers across multiple accelerators. +// These profiles help generate optimized best practices for running inference +// on GKE. +service GkeInferenceQuickstart { + option (google.api.default_host) = "gkerecommender.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Fetches available models. Open-source models follow the Huggingface Hub + // `owner/model_name` format. + rpc FetchModels(FetchModelsRequest) returns (FetchModelsResponse) { + option (google.api.http) = { + get: "/v1/models:fetch" + }; + } + + // Fetches available model servers. Open-source model servers use simplified, + // lowercase names (e.g., `vllm`). + rpc FetchModelServers(FetchModelServersRequest) + returns (FetchModelServersResponse) { + option (google.api.http) = { + get: "/v1/modelServers:fetch" + }; + } + + // Fetches available model server versions. Open-source servers use their own + // versioning schemas (e.g., `vllm` uses semver like `v1.0.0`). + // + // Some model servers have different versioning schemas depending on the + // accelerator. For example, `vllm` uses semver on GPUs, but returns nightly + // build tags on TPUs. All available versions will be returned when different + // schemas are present. + rpc FetchModelServerVersions(FetchModelServerVersionsRequest) + returns (FetchModelServerVersionsResponse) { + option (google.api.http) = { + get: "/v1/modelServerVersions:fetch" + }; + } + + // Fetches available profiles. A profile contains performance metrics and + // cost information for a specific model server setup. Profiles can be + // filtered by parameters. If no filters are provided, all profiles are + // returned. + // + // Profiles display a single value per performance metric based on the + // provided performance requirements. If no requirements are given, the + // metrics represent the inflection point. See [Run best practice inference + // with GKE Inference Quickstart + // recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart#how) + // for details. + rpc FetchProfiles(FetchProfilesRequest) returns (FetchProfilesResponse) { + option (google.api.http) = { + post: "/v1/profiles:fetch" + body: "*" + }; + } + + // Generates an optimized deployment manifest for a given model and model + // server, based on the specified accelerator, performance targets, and + // configurations. See [Run best practice inference with GKE Inference + // Quickstart + // recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart) + // for deployment details. + rpc GenerateOptimizedManifest(GenerateOptimizedManifestRequest) + returns (GenerateOptimizedManifestResponse) { + option (google.api.http) = { + post: "/v1/optimizedManifest:generate" + body: "*" + }; + } + + // Fetches all of the benchmarking data available for a profile. Benchmarking + // data returns all of the performance metrics available for a given model + // server setup on a given instance type. + rpc FetchBenchmarkingData(FetchBenchmarkingDataRequest) + returns (FetchBenchmarkingDataResponse) { + option (google.api.http) = { + post: "/v1/benchmarkingData:fetch" + body: "*" + }; + } +} + +// Request message for +// [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]. +message FetchModelsRequest { + // Optional. The target number of results to return in a single response. + // If not specified, a default value will be chosen by the service. + // Note that the response may include a partial list and a caller should + // only rely on the response's + // [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token] + // to determine if there are more instances left to be queried. + optional int32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The value of + // [next_page_token][google.cloud.gkerecommender.v1.FetchModelsResponse.next_page_token] + // received from a previous `FetchModelsRequest` call. + // Provide this to retrieve the subsequent page in a multi-page list of + // results. When paginating, all other parameters provided to + // `FetchModelsRequest` must match the call that provided the page token. + optional string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels]. +message FetchModelsResponse { + // Output only. List of available models. Open-source models follow the + // Huggingface Hub `owner/model_name` format. + repeated string models = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A token which may be sent as + // [page_token][FetchModelsResponse.page_token] in a subsequent + // `FetchModelsResponse` call to retrieve the next page of results. + // If this field is omitted or empty, then there are no more results to + // return. + string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for +// [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]. +message FetchModelServersRequest { + // Required. The model for which to list model servers. Open-source models + // follow the Huggingface Hub `owner/model_name` format. Use + // [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels] + // to find available models. + string model = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The target number of results to return in a single response. + // If not specified, a default value will be chosen by the service. + // Note that the response may include a partial list and a caller should + // only rely on the response's + // [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token] + // to determine if there are more instances left to be queried. + optional int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The value of + // [next_page_token][google.cloud.gkerecommender.v1.FetchModelServersResponse.next_page_token] + // received from a previous `FetchModelServersRequest` call. + // Provide this to retrieve the subsequent page in a multi-page list of + // results. When paginating, all other parameters provided to + // `FetchModelServersRequest` must match the call that provided the page + // token. + optional string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers]. +message FetchModelServersResponse { + // Output only. List of available model servers. Open-source model servers use + // simplified, lowercase names (e.g., `vllm`). + repeated string model_servers = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A token which may be sent as + // [page_token][FetchModelServersResponse.page_token] in a subsequent + // `FetchModelServersResponse` call to retrieve the next page of results. + // If this field is omitted or empty, then there are no more results to + // return. + string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for +// [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]. +message FetchModelServerVersionsRequest { + // Required. The model for which to list model server versions. Open-source + // models follow the Huggingface Hub `owner/model_name` format. Use + // [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels] + // to find available models. + string model = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The model server for which to list versions. Open-source model + // servers use simplified, lowercase names (e.g., `vllm`). Use + // [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers] + // to find available model servers. + string model_server = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The target number of results to return in a single response. + // If not specified, a default value will be chosen by the service. + // Note that the response may include a partial list and a caller should + // only rely on the response's + // [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token] + // to determine if there are more instances left to be queried. + optional int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The value of + // [next_page_token][google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse.next_page_token] + // received from a previous `FetchModelServerVersionsRequest` call. + // Provide this to retrieve the subsequent page in a multi-page list of + // results. When paginating, all other parameters provided to + // `FetchModelServerVersionsRequest` must match the call that provided the + // page token. + optional string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions]. +message FetchModelServerVersionsResponse { + // Output only. A list of available model server versions. + repeated string model_server_versions = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A token which may be sent as + // [page_token][FetchModelServerVersionsResponse.page_token] in a subsequent + // `FetchModelServerVersionsResponse` call to retrieve the next page of + // results. If this field is omitted or empty, then there are no more results + // to return. + string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for +// [GkeInferenceQuickstart.FetchBenchmarkingData][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchBenchmarkingData]. +message FetchBenchmarkingDataRequest { + // Required. The model server configuration to get benchmarking data for. Use + // [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles] + // to find valid configurations. + ModelServerInfo model_server_info = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. The instance type to filter benchmarking data. Instance types are + // in the format `a2-highgpu-1g`. If not provided, all instance types for the + // given profile's `model_server_info` will be returned. Use + // [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles] + // to find available instance types. + string instance_type = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The pricing model to use for the benchmarking data. Defaults to + // `spot`. + string pricing_model = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [GkeInferenceQuickstart.FetchBenchmarkingData][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchBenchmarkingData]. +message FetchBenchmarkingDataResponse { + // Output only. List of profiles containing their respective benchmarking + // data. + repeated Profile profile = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for +// [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]. +message FetchProfilesRequest { + // Optional. The model to filter profiles by. Open-source models follow the + // Huggingface Hub `owner/model_name` format. If not provided, all models are + // returned. Use + // [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels] + // to find available models. + string model = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The model server to filter profiles by. If not provided, all + // model servers are returned. Use + // [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers] + // to find available model servers for a given model. + string model_server = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The model server version to filter profiles by. If not provided, + // all model server versions are returned. Use + // [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions] + // to find available versions for a given model and server. + string model_server_version = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The performance requirements to filter profiles. Profiles that do + // not meet these requirements are filtered out. If not provided, all profiles + // are returned. + PerformanceRequirements performance_requirements = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The target number of results to return in a single response. If + // not specified, a default value will be chosen by the service. Note that the + // response may include a partial list and a caller should only rely on the + // response's + // [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token] + // to determine if there are more instances left to be queried. + optional int32 page_size = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The value of + // [next_page_token][google.cloud.gkerecommender.v1.FetchProfilesResponse.next_page_token] + // received from a previous `FetchProfilesRequest` call. + // Provide this to retrieve the subsequent page in a multi-page list of + // results. When paginating, all other parameters provided to + // `FetchProfilesRequest` must match the call that provided the page + // token. + optional string page_token = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Performance requirements for a profile and or model deployment. +message PerformanceRequirements { + // Optional. The target Normalized Time Per Output Token (NTPOT) in + // milliseconds. NTPOT is calculated as `request_latency / + // total_output_tokens`. If not provided, this target will not be enforced. + optional int32 target_ntpot_milliseconds = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The target Time To First Token (TTFT) in milliseconds. TTFT is + // the time it takes to generate the first token for a request. If not + // provided, this target will not be enforced. + optional int32 target_ttft_milliseconds = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The target cost for running a profile's model server. If not + // provided, this requirement will not be enforced. + Cost target_cost = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents an amount of money in a specific currency. +message Amount { + // Output only. The whole units of the amount. + // For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. + int64 units = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of nano (10^-9) units of the amount. + // The value must be between -999,999,999 and +999,999,999 inclusive. + // If `units` is positive, `nanos` must be positive or zero. + // If `units` is zero, `nanos` can be positive, zero, or negative. + // If `units` is negative, `nanos` must be negative or zero. + // For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. + int32 nanos = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Cost for running a model deployment on a given instance type. Currently, only +// USD currency code is supported. +message Cost { + // Optional. The cost per million output tokens, calculated as: + // $/output token = GPU $/s / (1/output-to-input-cost-ratio * input tokens/s + + // output tokens/s) + Amount cost_per_million_output_tokens = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The cost per million input tokens. $/input token = ($/output + // token) / output-to-input-cost-ratio. + Amount cost_per_million_input_tokens = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The pricing model used to calculate the cost. Can be one of: + // `3-years-cud`, `1-year-cud`, `on-demand`, `spot`. If not provided, `spot` + // will be used. + string pricing_model = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The output-to-input cost ratio. This determines how the total GPU + // cost is split between input and output tokens. If not provided, `4.0` is + // used, assuming a 4:1 output:input cost ratio. + optional float output_input_cost_ratio = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents a range of throughput values in tokens per second. +message TokensPerSecondRange { + // Output only. The minimum value of the range. + int32 min = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The maximum value of the range. + int32 max = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Represents a range of latency values in milliseconds. +message MillisecondRange { + // Output only. The minimum value of the range. + int32 min = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The maximum value of the range. + int32 max = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Performance range for a model deployment. +message PerformanceRange { + // Output only. The range of throughput in output tokens per second. This is + // measured as total_output_tokens_generated_by_server / + // elapsed_time_in_seconds. + TokensPerSecondRange throughput_output_range = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The range of TTFT (Time To First Token) in milliseconds. TTFT + // is the time it takes to generate the first token for a request. + MillisecondRange ttft_range = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The range of NTPOT (Normalized Time Per Output Token) in + // milliseconds. NTPOT is the request latency normalized by the number of + // output tokens, measured as request_latency / total_output_tokens. + MillisecondRange ntpot_range = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Response message for +// [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]. +message FetchProfilesResponse { + // Output only. List of profiles that match the given model server info and + // performance requirements (if provided). + repeated Profile profile = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The combined range of performance values observed across all + // profiles in this response. + PerformanceRange performance_range = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Additional comments related to the response. + string comments = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A token which may be sent as + // [page_token][FetchProfilesResponse.page_token] in a subsequent + // `FetchProfilesResponse` call to retrieve the next page of results. If this + // field is omitted or empty, then there are no more results to return. + string next_page_token = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Model server information gives. Valid model server info combinations can +// be found using +// [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles]. +message ModelServerInfo { + // Required. The model. Open-source models follow the Huggingface Hub + // `owner/model_name` format. Use + // [GkeInferenceQuickstart.FetchModels][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels] + // to find available models. + string model = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The model server. Open-source model servers use simplified, + // lowercase names (e.g., `vllm`). Use + // [GkeInferenceQuickstart.FetchModelServers][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers] + // to find available servers. + string model_server = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The model server version. Use + // [GkeInferenceQuickstart.FetchModelServerVersions][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions] + // to find available versions. If not provided, the latest available version + // is used. + string model_server_version = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Resources used by a model deployment. +message ResourcesUsed { + // Output only. The number of accelerators (e.g., GPUs or TPUs) used by the + // model deployment on the Kubernetes node. + int32 accelerator_count = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Performance statistics for a model deployment. +message PerformanceStats { + // Output only. The number of queries per second. + // Note: This metric can vary widely based on context length and may not be a + // reliable measure of LLM throughput. + float queries_per_second = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of output tokens per second. This is the throughput + // measured as total_output_tokens_generated_by_server / + // elapsed_time_in_seconds. + int32 output_tokens_per_second = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Normalized Time Per Output Token (NTPOT) in milliseconds. + // This is the request latency normalized by the number of output tokens, + // measured as request_latency / total_output_tokens. + int32 ntpot_milliseconds = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Time To First Token (TTFT) in milliseconds. This is the + // time it takes to generate the first token for a request. + int32 ttft_milliseconds = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The cost of running the model deployment. + repeated Cost cost = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A profile containing information about a model deployment. +message Profile { + // Output only. The model server configuration. Use + // [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles] + // to find valid configurations. + ModelServerInfo model_server_info = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The accelerator type. Expected format: `nvidia-h100-80gb`. + string accelerator_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The TPU topology (if applicable). + string tpu_topology = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The instance type. Expected format: `a2-highgpu-1g`. + string instance_type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resources used by the model deployment. + ResourcesUsed resources_used = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The performance statistics for this profile. + repeated PerformanceStats performance_stats = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for +// [GkeInferenceQuickstart.GenerateOptimizedManifest][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.GenerateOptimizedManifest]. +message GenerateOptimizedManifestRequest { + // Required. The model server configuration to generate the manifest for. Use + // [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles] + // to find valid configurations. + ModelServerInfo model_server_info = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The accelerator type. Use + // [GkeInferenceQuickstart.FetchProfiles][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles] + // to find valid accelerators for a given `model_server_info`. + string accelerator_type = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The kubernetes namespace to deploy the manifests in. + string kubernetes_namespace = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The performance requirements to use for generating Horizontal Pod + // Autoscaler (HPA) resources. If provided, the manifest includes HPA + // resources to adjust the model server replica count to maintain the + // specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are + // not currently supported for HPA generation. If the specified targets are + // not achievable, the HPA manifest will not be generated. + PerformanceRequirements performance_requirements = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The storage configuration for the model. If not provided, the + // model is loaded from Huggingface. + StorageConfig storage_config = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// A Kubernetes manifest. +message KubernetesManifest { + // Output only. Kubernetes resource kind. + string kind = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Kubernetes API version. + string api_version = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. YAML content. + string content = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Response message for +// [GkeInferenceQuickstart.GenerateOptimizedManifest][google.cloud.gkerecommender.v1.GkeInferenceQuickstart.GenerateOptimizedManifest]. +message GenerateOptimizedManifestResponse { + // Output only. A list of generated Kubernetes manifests. + repeated KubernetesManifest kubernetes_manifests = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Comments related to deploying the generated manifests. + repeated string comments = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Additional information about the versioned dependencies used + // to generate the manifests. See [Run best practice inference with GKE + // Inference Quickstart + // recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart) + // for details. + string manifest_version = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Storage configuration for a model deployment. +message StorageConfig { + // Optional. The Google Cloud Storage bucket URI to load the model from. This + // URI must point to the directory containing the model's config file + // (`config.json`) and model weights. A tuned GCSFuse setup can improve + // LLM Pod startup time by more than 7x. Expected format: + // `gs:///`. + string model_bucket_uri = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The URI for the GCS bucket containing the XLA compilation cache. + // If using TPUs, the XLA cache will be written to the same path as + // `model_bucket_uri`. This can speed up vLLM model preparation for repeated + // deployments. + string xla_cache_bucket_uri = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/create/SyncCreateSetCredentialsProvider.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/create/SyncCreateSetCredentialsProvider.java new file mode 100644 index 000000000000..97ce18de6ec0 --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/create/SyncCreateSetCredentialsProvider.java @@ -0,0 +1,45 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_Create_SetCredentialsProvider_sync] +import com.google.api.gax.core.FixedCredentialsProvider; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartSettings; +import com.google.cloud.gkerecommender.v1.myCredentials; + +public class SyncCreateSetCredentialsProvider { + + public static void main(String[] args) throws Exception { + syncCreateSetCredentialsProvider(); + } + + public static void syncCreateSetCredentialsProvider() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + GkeInferenceQuickstartSettings gkeInferenceQuickstartSettings = + GkeInferenceQuickstartSettings.newBuilder() + .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials)) + .build(); + GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create(gkeInferenceQuickstartSettings); + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_Create_SetCredentialsProvider_sync] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/create/SyncCreateSetEndpoint.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/create/SyncCreateSetEndpoint.java new file mode 100644 index 000000000000..a9ec887c2bee --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/create/SyncCreateSetEndpoint.java @@ -0,0 +1,42 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_Create_SetEndpoint_sync] +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartSettings; +import com.google.cloud.gkerecommender.v1.myEndpoint; + +public class SyncCreateSetEndpoint { + + public static void main(String[] args) throws Exception { + syncCreateSetEndpoint(); + } + + public static void syncCreateSetEndpoint() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + GkeInferenceQuickstartSettings gkeInferenceQuickstartSettings = + GkeInferenceQuickstartSettings.newBuilder().setEndpoint(myEndpoint).build(); + GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create(gkeInferenceQuickstartSettings); + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_Create_SetEndpoint_sync] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/create/SyncCreateUseHttpJsonTransport.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/create/SyncCreateUseHttpJsonTransport.java new file mode 100644 index 000000000000..580532e273c9 --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/create/SyncCreateUseHttpJsonTransport.java @@ -0,0 +1,41 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_Create_UseHttpJsonTransport_sync] +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartSettings; + +public class SyncCreateUseHttpJsonTransport { + + public static void main(String[] args) throws Exception { + syncCreateUseHttpJsonTransport(); + } + + public static void syncCreateUseHttpJsonTransport() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + GkeInferenceQuickstartSettings gkeInferenceQuickstartSettings = + GkeInferenceQuickstartSettings.newHttpJsonBuilder().build(); + GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create(gkeInferenceQuickstartSettings); + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_Create_UseHttpJsonTransport_sync] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchbenchmarkingdata/AsyncFetchBenchmarkingData.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchbenchmarkingdata/AsyncFetchBenchmarkingData.java new file mode 100644 index 000000000000..ac9a4e1e5f16 --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchbenchmarkingdata/AsyncFetchBenchmarkingData.java @@ -0,0 +1,53 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchBenchmarkingData_async] +import com.google.api.core.ApiFuture; +import com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest; +import com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; +import com.google.cloud.gkerecommender.v1.ModelServerInfo; + +public class AsyncFetchBenchmarkingData { + + public static void main(String[] args) throws Exception { + asyncFetchBenchmarkingData(); + } + + public static void asyncFetchBenchmarkingData() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create()) { + FetchBenchmarkingDataRequest request = + FetchBenchmarkingDataRequest.newBuilder() + .setModelServerInfo(ModelServerInfo.newBuilder().build()) + .setInstanceType("instanceType-737655441") + .setPricingModel("pricingModel1050892035") + .build(); + ApiFuture future = + gkeInferenceQuickstartClient.fetchBenchmarkingDataCallable().futureCall(request); + // Do something. + FetchBenchmarkingDataResponse response = future.get(); + } + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchBenchmarkingData_async] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchbenchmarkingdata/SyncFetchBenchmarkingData.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchbenchmarkingdata/SyncFetchBenchmarkingData.java new file mode 100644 index 000000000000..15536a3b7c2c --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchbenchmarkingdata/SyncFetchBenchmarkingData.java @@ -0,0 +1,50 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchBenchmarkingData_sync] +import com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest; +import com.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; +import com.google.cloud.gkerecommender.v1.ModelServerInfo; + +public class SyncFetchBenchmarkingData { + + public static void main(String[] args) throws Exception { + syncFetchBenchmarkingData(); + } + + public static void syncFetchBenchmarkingData() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create()) { + FetchBenchmarkingDataRequest request = + FetchBenchmarkingDataRequest.newBuilder() + .setModelServerInfo(ModelServerInfo.newBuilder().build()) + .setInstanceType("instanceType-737655441") + .setPricingModel("pricingModel1050892035") + .build(); + FetchBenchmarkingDataResponse response = + gkeInferenceQuickstartClient.fetchBenchmarkingData(request); + } + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchBenchmarkingData_sync] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodels/AsyncFetchModels.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodels/AsyncFetchModels.java new file mode 100644 index 000000000000..4308c4ae3630 --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodels/AsyncFetchModels.java @@ -0,0 +1,52 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModels_async] +import com.google.api.core.ApiFuture; +import com.google.cloud.gkerecommender.v1.FetchModelsRequest; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; + +public class AsyncFetchModels { + + public static void main(String[] args) throws Exception { + asyncFetchModels(); + } + + public static void asyncFetchModels() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create()) { + FetchModelsRequest request = + FetchModelsRequest.newBuilder() + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + ApiFuture future = + gkeInferenceQuickstartClient.fetchModelsPagedCallable().futureCall(request); + // Do something. + for (String element : future.get().iterateAll()) { + // doThingsWith(element); + } + } + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModels_async] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodels/AsyncFetchModelsPaged.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodels/AsyncFetchModelsPaged.java new file mode 100644 index 000000000000..3da0c2f3c0d1 --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodels/AsyncFetchModelsPaged.java @@ -0,0 +1,60 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModels_Paged_async] +import com.google.cloud.gkerecommender.v1.FetchModelsRequest; +import com.google.cloud.gkerecommender.v1.FetchModelsResponse; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; +import com.google.common.base.Strings; + +public class AsyncFetchModelsPaged { + + public static void main(String[] args) throws Exception { + asyncFetchModelsPaged(); + } + + public static void asyncFetchModelsPaged() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create()) { + FetchModelsRequest request = + FetchModelsRequest.newBuilder() + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + while (true) { + FetchModelsResponse response = + gkeInferenceQuickstartClient.fetchModelsCallable().call(request); + for (String element : response.getModelsList()) { + // doThingsWith(element); + } + String nextPageToken = response.getNextPageToken(); + if (!Strings.isNullOrEmpty(nextPageToken)) { + request = request.toBuilder().setPageToken(nextPageToken).build(); + } else { + break; + } + } + } + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModels_Paged_async] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodels/SyncFetchModels.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodels/SyncFetchModels.java new file mode 100644 index 000000000000..d8748209d1b2 --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodels/SyncFetchModels.java @@ -0,0 +1,48 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModels_sync] +import com.google.cloud.gkerecommender.v1.FetchModelsRequest; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; + +public class SyncFetchModels { + + public static void main(String[] args) throws Exception { + syncFetchModels(); + } + + public static void syncFetchModels() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create()) { + FetchModelsRequest request = + FetchModelsRequest.newBuilder() + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + for (String element : gkeInferenceQuickstartClient.fetchModels(request).iterateAll()) { + // doThingsWith(element); + } + } + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModels_sync] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodelservers/AsyncFetchModelServers.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodelservers/AsyncFetchModelServers.java new file mode 100644 index 000000000000..6fc3dff5706d --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodelservers/AsyncFetchModelServers.java @@ -0,0 +1,53 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModelServers_async] +import com.google.api.core.ApiFuture; +import com.google.cloud.gkerecommender.v1.FetchModelServersRequest; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; + +public class AsyncFetchModelServers { + + public static void main(String[] args) throws Exception { + asyncFetchModelServers(); + } + + public static void asyncFetchModelServers() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create()) { + FetchModelServersRequest request = + FetchModelServersRequest.newBuilder() + .setModel("model104069929") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + ApiFuture future = + gkeInferenceQuickstartClient.fetchModelServersPagedCallable().futureCall(request); + // Do something. + for (String element : future.get().iterateAll()) { + // doThingsWith(element); + } + } + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModelServers_async] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodelservers/AsyncFetchModelServersPaged.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodelservers/AsyncFetchModelServersPaged.java new file mode 100644 index 000000000000..42d0813b2b5e --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodelservers/AsyncFetchModelServersPaged.java @@ -0,0 +1,61 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModelServers_Paged_async] +import com.google.cloud.gkerecommender.v1.FetchModelServersRequest; +import com.google.cloud.gkerecommender.v1.FetchModelServersResponse; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; +import com.google.common.base.Strings; + +public class AsyncFetchModelServersPaged { + + public static void main(String[] args) throws Exception { + asyncFetchModelServersPaged(); + } + + public static void asyncFetchModelServersPaged() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create()) { + FetchModelServersRequest request = + FetchModelServersRequest.newBuilder() + .setModel("model104069929") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + while (true) { + FetchModelServersResponse response = + gkeInferenceQuickstartClient.fetchModelServersCallable().call(request); + for (String element : response.getModelServersList()) { + // doThingsWith(element); + } + String nextPageToken = response.getNextPageToken(); + if (!Strings.isNullOrEmpty(nextPageToken)) { + request = request.toBuilder().setPageToken(nextPageToken).build(); + } else { + break; + } + } + } + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModelServers_Paged_async] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodelservers/SyncFetchModelServers.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodelservers/SyncFetchModelServers.java new file mode 100644 index 000000000000..fcc20f2525c1 --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodelservers/SyncFetchModelServers.java @@ -0,0 +1,49 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModelServers_sync] +import com.google.cloud.gkerecommender.v1.FetchModelServersRequest; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; + +public class SyncFetchModelServers { + + public static void main(String[] args) throws Exception { + syncFetchModelServers(); + } + + public static void syncFetchModelServers() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create()) { + FetchModelServersRequest request = + FetchModelServersRequest.newBuilder() + .setModel("model104069929") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + for (String element : gkeInferenceQuickstartClient.fetchModelServers(request).iterateAll()) { + // doThingsWith(element); + } + } + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModelServers_sync] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodelserverversions/AsyncFetchModelServerVersions.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodelserverversions/AsyncFetchModelServerVersions.java new file mode 100644 index 000000000000..43e8423180e0 --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodelserverversions/AsyncFetchModelServerVersions.java @@ -0,0 +1,54 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModelServerVersions_async] +import com.google.api.core.ApiFuture; +import com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; + +public class AsyncFetchModelServerVersions { + + public static void main(String[] args) throws Exception { + asyncFetchModelServerVersions(); + } + + public static void asyncFetchModelServerVersions() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create()) { + FetchModelServerVersionsRequest request = + FetchModelServerVersionsRequest.newBuilder() + .setModel("model104069929") + .setModelServer("modelServer475157452") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + ApiFuture future = + gkeInferenceQuickstartClient.fetchModelServerVersionsPagedCallable().futureCall(request); + // Do something. + for (String element : future.get().iterateAll()) { + // doThingsWith(element); + } + } + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModelServerVersions_async] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodelserverversions/AsyncFetchModelServerVersionsPaged.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodelserverversions/AsyncFetchModelServerVersionsPaged.java new file mode 100644 index 000000000000..8b62620e1d5f --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodelserverversions/AsyncFetchModelServerVersionsPaged.java @@ -0,0 +1,62 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModelServerVersions_Paged_async] +import com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest; +import com.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; +import com.google.common.base.Strings; + +public class AsyncFetchModelServerVersionsPaged { + + public static void main(String[] args) throws Exception { + asyncFetchModelServerVersionsPaged(); + } + + public static void asyncFetchModelServerVersionsPaged() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create()) { + FetchModelServerVersionsRequest request = + FetchModelServerVersionsRequest.newBuilder() + .setModel("model104069929") + .setModelServer("modelServer475157452") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + while (true) { + FetchModelServerVersionsResponse response = + gkeInferenceQuickstartClient.fetchModelServerVersionsCallable().call(request); + for (String element : response.getModelServerVersionsList()) { + // doThingsWith(element); + } + String nextPageToken = response.getNextPageToken(); + if (!Strings.isNullOrEmpty(nextPageToken)) { + request = request.toBuilder().setPageToken(nextPageToken).build(); + } else { + break; + } + } + } + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModelServerVersions_Paged_async] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodelserverversions/SyncFetchModelServerVersions.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodelserverversions/SyncFetchModelServerVersions.java new file mode 100644 index 000000000000..fb2818afd56a --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchmodelserverversions/SyncFetchModelServerVersions.java @@ -0,0 +1,51 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModelServerVersions_sync] +import com.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; + +public class SyncFetchModelServerVersions { + + public static void main(String[] args) throws Exception { + syncFetchModelServerVersions(); + } + + public static void syncFetchModelServerVersions() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create()) { + FetchModelServerVersionsRequest request = + FetchModelServerVersionsRequest.newBuilder() + .setModel("model104069929") + .setModelServer("modelServer475157452") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + for (String element : + gkeInferenceQuickstartClient.fetchModelServerVersions(request).iterateAll()) { + // doThingsWith(element); + } + } + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModelServerVersions_sync] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchprofiles/AsyncFetchProfiles.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchprofiles/AsyncFetchProfiles.java new file mode 100644 index 000000000000..f54913634a1e --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchprofiles/AsyncFetchProfiles.java @@ -0,0 +1,58 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchProfiles_async] +import com.google.api.core.ApiFuture; +import com.google.cloud.gkerecommender.v1.FetchProfilesRequest; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; +import com.google.cloud.gkerecommender.v1.PerformanceRequirements; +import com.google.cloud.gkerecommender.v1.Profile; + +public class AsyncFetchProfiles { + + public static void main(String[] args) throws Exception { + asyncFetchProfiles(); + } + + public static void asyncFetchProfiles() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create()) { + FetchProfilesRequest request = + FetchProfilesRequest.newBuilder() + .setModel("model104069929") + .setModelServer("modelServer475157452") + .setModelServerVersion("modelServerVersion77054828") + .setPerformanceRequirements(PerformanceRequirements.newBuilder().build()) + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + ApiFuture future = + gkeInferenceQuickstartClient.fetchProfilesPagedCallable().futureCall(request); + // Do something. + for (Profile element : future.get().iterateAll()) { + // doThingsWith(element); + } + } + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchProfiles_async] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchprofiles/AsyncFetchProfilesPaged.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchprofiles/AsyncFetchProfilesPaged.java new file mode 100644 index 000000000000..3c4a8bce0d88 --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchprofiles/AsyncFetchProfilesPaged.java @@ -0,0 +1,66 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchProfiles_Paged_async] +import com.google.cloud.gkerecommender.v1.FetchProfilesRequest; +import com.google.cloud.gkerecommender.v1.FetchProfilesResponse; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; +import com.google.cloud.gkerecommender.v1.PerformanceRequirements; +import com.google.cloud.gkerecommender.v1.Profile; +import com.google.common.base.Strings; + +public class AsyncFetchProfilesPaged { + + public static void main(String[] args) throws Exception { + asyncFetchProfilesPaged(); + } + + public static void asyncFetchProfilesPaged() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create()) { + FetchProfilesRequest request = + FetchProfilesRequest.newBuilder() + .setModel("model104069929") + .setModelServer("modelServer475157452") + .setModelServerVersion("modelServerVersion77054828") + .setPerformanceRequirements(PerformanceRequirements.newBuilder().build()) + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + while (true) { + FetchProfilesResponse response = + gkeInferenceQuickstartClient.fetchProfilesCallable().call(request); + for (Profile element : response.getProfileList()) { + // doThingsWith(element); + } + String nextPageToken = response.getNextPageToken(); + if (!Strings.isNullOrEmpty(nextPageToken)) { + request = request.toBuilder().setPageToken(nextPageToken).build(); + } else { + break; + } + } + } + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchProfiles_Paged_async] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchprofiles/SyncFetchProfiles.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchprofiles/SyncFetchProfiles.java new file mode 100644 index 000000000000..c4995cfea2f2 --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/fetchprofiles/SyncFetchProfiles.java @@ -0,0 +1,54 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchProfiles_sync] +import com.google.cloud.gkerecommender.v1.FetchProfilesRequest; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; +import com.google.cloud.gkerecommender.v1.PerformanceRequirements; +import com.google.cloud.gkerecommender.v1.Profile; + +public class SyncFetchProfiles { + + public static void main(String[] args) throws Exception { + syncFetchProfiles(); + } + + public static void syncFetchProfiles() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create()) { + FetchProfilesRequest request = + FetchProfilesRequest.newBuilder() + .setModel("model104069929") + .setModelServer("modelServer475157452") + .setModelServerVersion("modelServerVersion77054828") + .setPerformanceRequirements(PerformanceRequirements.newBuilder().build()) + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + for (Profile element : gkeInferenceQuickstartClient.fetchProfiles(request).iterateAll()) { + // doThingsWith(element); + } + } + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchProfiles_sync] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/generateoptimizedmanifest/AsyncGenerateOptimizedManifest.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/generateoptimizedmanifest/AsyncGenerateOptimizedManifest.java new file mode 100644 index 000000000000..e5bb3d3c4a52 --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/generateoptimizedmanifest/AsyncGenerateOptimizedManifest.java @@ -0,0 +1,57 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_GenerateOptimizedManifest_async] +import com.google.api.core.ApiFuture; +import com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest; +import com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; +import com.google.cloud.gkerecommender.v1.ModelServerInfo; +import com.google.cloud.gkerecommender.v1.PerformanceRequirements; +import com.google.cloud.gkerecommender.v1.StorageConfig; + +public class AsyncGenerateOptimizedManifest { + + public static void main(String[] args) throws Exception { + asyncGenerateOptimizedManifest(); + } + + public static void asyncGenerateOptimizedManifest() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create()) { + GenerateOptimizedManifestRequest request = + GenerateOptimizedManifestRequest.newBuilder() + .setModelServerInfo(ModelServerInfo.newBuilder().build()) + .setAcceleratorType("acceleratorType-82462651") + .setKubernetesNamespace("kubernetesNamespace-1862862667") + .setPerformanceRequirements(PerformanceRequirements.newBuilder().build()) + .setStorageConfig(StorageConfig.newBuilder().build()) + .build(); + ApiFuture future = + gkeInferenceQuickstartClient.generateOptimizedManifestCallable().futureCall(request); + // Do something. + GenerateOptimizedManifestResponse response = future.get(); + } + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_GenerateOptimizedManifest_async] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/generateoptimizedmanifest/SyncGenerateOptimizedManifest.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/generateoptimizedmanifest/SyncGenerateOptimizedManifest.java new file mode 100644 index 000000000000..da59a4ff8193 --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstart/generateoptimizedmanifest/SyncGenerateOptimizedManifest.java @@ -0,0 +1,54 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstart_GenerateOptimizedManifest_sync] +import com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest; +import com.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse; +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartClient; +import com.google.cloud.gkerecommender.v1.ModelServerInfo; +import com.google.cloud.gkerecommender.v1.PerformanceRequirements; +import com.google.cloud.gkerecommender.v1.StorageConfig; + +public class SyncGenerateOptimizedManifest { + + public static void main(String[] args) throws Exception { + syncGenerateOptimizedManifest(); + } + + public static void syncGenerateOptimizedManifest() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + try (GkeInferenceQuickstartClient gkeInferenceQuickstartClient = + GkeInferenceQuickstartClient.create()) { + GenerateOptimizedManifestRequest request = + GenerateOptimizedManifestRequest.newBuilder() + .setModelServerInfo(ModelServerInfo.newBuilder().build()) + .setAcceleratorType("acceleratorType-82462651") + .setKubernetesNamespace("kubernetesNamespace-1862862667") + .setPerformanceRequirements(PerformanceRequirements.newBuilder().build()) + .setStorageConfig(StorageConfig.newBuilder().build()) + .build(); + GenerateOptimizedManifestResponse response = + gkeInferenceQuickstartClient.generateOptimizedManifest(request); + } + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstart_GenerateOptimizedManifest_sync] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstartsettings/generateoptimizedmanifest/SyncGenerateOptimizedManifest.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstartsettings/generateoptimizedmanifest/SyncGenerateOptimizedManifest.java new file mode 100644 index 000000000000..734ec4d75b25 --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/gkeinferencequickstartsettings/generateoptimizedmanifest/SyncGenerateOptimizedManifest.java @@ -0,0 +1,57 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstartSettings_GenerateOptimizedManifest_sync] +import com.google.cloud.gkerecommender.v1.GkeInferenceQuickstartSettings; +import java.time.Duration; + +public class SyncGenerateOptimizedManifest { + + public static void main(String[] args) throws Exception { + syncGenerateOptimizedManifest(); + } + + public static void syncGenerateOptimizedManifest() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + GkeInferenceQuickstartSettings.Builder gkeInferenceQuickstartSettingsBuilder = + GkeInferenceQuickstartSettings.newBuilder(); + gkeInferenceQuickstartSettingsBuilder + .generateOptimizedManifestSettings() + .setRetrySettings( + gkeInferenceQuickstartSettingsBuilder + .generateOptimizedManifestSettings() + .getRetrySettings() + .toBuilder() + .setInitialRetryDelayDuration(Duration.ofSeconds(1)) + .setInitialRpcTimeoutDuration(Duration.ofSeconds(5)) + .setMaxAttempts(5) + .setMaxRetryDelayDuration(Duration.ofSeconds(30)) + .setMaxRpcTimeoutDuration(Duration.ofSeconds(60)) + .setRetryDelayMultiplier(1.3) + .setRpcTimeoutMultiplier(1.5) + .setTotalTimeoutDuration(Duration.ofSeconds(300)) + .build()); + GkeInferenceQuickstartSettings gkeInferenceQuickstartSettings = + gkeInferenceQuickstartSettingsBuilder.build(); + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstartSettings_GenerateOptimizedManifest_sync] diff --git a/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/stub/gkeinferencequickstartstubsettings/generateoptimizedmanifest/SyncGenerateOptimizedManifest.java b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/stub/gkeinferencequickstartstubsettings/generateoptimizedmanifest/SyncGenerateOptimizedManifest.java new file mode 100644 index 000000000000..dc8617483a41 --- /dev/null +++ b/java-gkerecommender/samples/snippets/generated/com/google/cloud/gkerecommender/v1/stub/gkeinferencequickstartstubsettings/generateoptimizedmanifest/SyncGenerateOptimizedManifest.java @@ -0,0 +1,57 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.gkerecommender.v1.stub.samples; + +// [START gkerecommender_v1_generated_GkeInferenceQuickstartStubSettings_GenerateOptimizedManifest_sync] +import com.google.cloud.gkerecommender.v1.stub.GkeInferenceQuickstartStubSettings; +import java.time.Duration; + +public class SyncGenerateOptimizedManifest { + + public static void main(String[] args) throws Exception { + syncGenerateOptimizedManifest(); + } + + public static void syncGenerateOptimizedManifest() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + GkeInferenceQuickstartStubSettings.Builder gkeInferenceQuickstartSettingsBuilder = + GkeInferenceQuickstartStubSettings.newBuilder(); + gkeInferenceQuickstartSettingsBuilder + .generateOptimizedManifestSettings() + .setRetrySettings( + gkeInferenceQuickstartSettingsBuilder + .generateOptimizedManifestSettings() + .getRetrySettings() + .toBuilder() + .setInitialRetryDelayDuration(Duration.ofSeconds(1)) + .setInitialRpcTimeoutDuration(Duration.ofSeconds(5)) + .setMaxAttempts(5) + .setMaxRetryDelayDuration(Duration.ofSeconds(30)) + .setMaxRpcTimeoutDuration(Duration.ofSeconds(60)) + .setRetryDelayMultiplier(1.3) + .setRpcTimeoutMultiplier(1.5) + .setTotalTimeoutDuration(Duration.ofSeconds(300)) + .build()); + GkeInferenceQuickstartStubSettings gkeInferenceQuickstartSettings = + gkeInferenceQuickstartSettingsBuilder.build(); + } +} +// [END gkerecommender_v1_generated_GkeInferenceQuickstartStubSettings_GenerateOptimizedManifest_sync] diff --git a/pom.xml b/pom.xml index 38dff1fa751c..d61b4c18e4c6 100644 --- a/pom.xml +++ b/pom.xml @@ -112,6 +112,7 @@ java-gke-connect-gateway java-gke-multi-cloud java-gkehub + java-gkerecommender java-grafeas java-gsuite-addons java-hypercomputecluster diff --git a/versions.txt b/versions.txt index e61db5a293cf..6e808fd45f7d 100644 --- a/versions.txt +++ b/versions.txt @@ -929,3 +929,6 @@ grpc-google-cloud-databasecenter-v1beta:0.1.0:0.2.0-SNAPSHOT google-cloud-hypercomputecluster:0.0.0:0.0.1-SNAPSHOT proto-google-cloud-hypercomputecluster-v1beta:0.0.0:0.0.1-SNAPSHOT grpc-google-cloud-hypercomputecluster-v1beta:0.0.0:0.0.1-SNAPSHOT +google-cloud-gkerecommender:0.0.0:0.0.1-SNAPSHOT +proto-google-cloud-gkerecommender-v1:0.0.0:0.0.1-SNAPSHOT +grpc-google-cloud-gkerecommender-v1:0.0.0:0.0.1-SNAPSHOT