diff --git a/.cloudbuild/samples_build.yaml b/.cloudbuild/samples_build.yaml new file mode 100644 index 000000000..2d4a498e3 --- /dev/null +++ b/.cloudbuild/samples_build.yaml @@ -0,0 +1,31 @@ +steps: +- name: gcr.io/cloud-devrel-public-resources/java8 + entrypoint: ls + args: [ + '-alt', + ] +- name: gcr.io/cloud-devrel-public-resources/java8 + entrypoint: curl + args: [ + '--header', + 'Metadata-Flavor: Google', + 'http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/email' + ] +- name: gcr.io/cloud-devrel-public-resources/java8 + entrypoint: pwd +- name: gcr.io/cloud-devrel-public-resources/java8 + entrypoint: bash + args: [ + '.kokoro/build.sh' + ] + env: + - 'JOB_TYPE=samples' + - 'GOOGLE_CLOUD_PROJECT=cloud-java-ci-sample' +- name: gcr.io/cloud-devrel-public-resources/java8 + entrypoint: echo + args: [ + 'Sample job succeeded', + ] +timeout: 3600s +options: + defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET diff --git a/.github/.OwlBot.yaml b/.github/.OwlBot-hermetic.yaml similarity index 87% rename from .github/.OwlBot.yaml rename to .github/.OwlBot-hermetic.yaml index d9ed293ca..d426d10ea 100644 --- a/.github/.OwlBot.yaml +++ b/.github/.OwlBot-hermetic.yaml @@ -11,16 +11,15 @@ # 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. - -docker: - image: "gcr.io/cloud-devrel-public-resources/owlbot-java:latest" - deep-remove-regex: - "/grpc-google-.*/src" - "/proto-google-.*/src" - "/google-.*/src" +#Args=--initialize-at-build-time=org.junit.runners.model.FrameworkField deep-preserve-regex: +- "/google-cloud-pubsub/src/test/resources/META-INF/native-image/.*" +- "/google-cloud-pubsub/src/main/java/com/google/cloud/.*/v.*/it/IT.*Test.java" - "/google-.*/src/test/java/com/google/cloud/.*/v.*/it/IT.*Test.java" - "/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeletedTopic.java" - "/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ProjectSnapshotName.java" @@ -37,10 +36,12 @@ deep-preserve-regex: - "/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MessageDataMatcher.java" - "/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MessageDispatcherTest.java" - "/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/OpenCensusUtilTest.java" +- "/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/OpenTelemetryTest.java" - "/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/PublisherImplTest.java" - "/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SequentialExecutorServiceTest.java" - "/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/StatusUtilTest.java" - "/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/StreamingSubscriberConnectionTest.java" +- "/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SubscriberShutdownSettingsTest.java" - "/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SubscriberTest.java" - "/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/TopicAdminSmokeTest.java" - "/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/WaiterTest.java" @@ -55,13 +56,16 @@ deep-preserve-regex: - "/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/MessageReceiverWithAckResponse.java" - "/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/ModackRequestData.java" - "/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/OpenCensusUtil.java" +- "/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/OpenTelemetryPubsubTracer.java" - "/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Publisher.java" - "/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/PublisherInterface.java" +- "/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/PubsubMessageWrapper.java" - "/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SequentialExecutorService.java" - "/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/StatusUtil.java" - "/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/StreamingSubscriberConnection.java" - "/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Subscriber.java" - "/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SubscriberInterface.java" +- "/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SubscriberShutdownSettings.java" - "/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SubscriberStats.java" - "/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Waiter.java" diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml deleted file mode 100644 index f56920557..000000000 --- a/.github/.OwlBot.lock.yaml +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 2023 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. -docker: - image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:81f75d962cd28b7ad10740a643b8069b8fa0357cb495b782eef8560bb7a8fd65 -# created: 2023-12-05T19:16:19.735195992Z diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 125a152c8..1e8bea4c7 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -10,6 +10,17 @@ # for handwritten libraries, keep codeowner_team in .repo-metadata.json as owner **/*.java @googleapis/api-pubsub +# For generated Java code +proto-*/ @googleapis/yoshi-java @googleapis/api-pubsub +grpc-*/ @googleapis/yoshi-java @googleapis/api-pubsub +# Generated code pattern in google-cloud-pubsub +**/*Client.java @googleapis/yoshi-java @googleapis/api-pubsub +**/*Settings.java @googleapis/yoshi-java @googleapis/api-pubsub +**/*ClientHttpJsonTest.java @googleapis/yoshi-java @googleapis/api-pubsub +**/*ClientTest.java @googleapis/yoshi-java @googleapis/api-pubsub +google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/** @googleapis/yoshi-java @googleapis/api-pubsub +google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/package-info.java @googleapis/yoshi-java @googleapis/api-pubsub +google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/Mock* @googleapis/yoshi-java @googleapis/api-pubsub # The java-samples-reviewers team is the default owner for samples changes samples/**/*.java @googleapis/java-samples-reviewers diff --git a/.github/blunderbuss.yml b/.github/blunderbuss.yml index 44ab091e1..97998e463 100644 --- a/.github/blunderbuss.yml +++ b/.github/blunderbuss.yml @@ -1,9 +1,9 @@ # Configuration for the Blunderbuss GitHub app. For more info see # https://github.com/googleapis/repo-automation-bots/tree/main/packages/blunderbuss assign_issues: - - maitrimangal + - michaelpri10 assign_prs: - - maitrimangal + - michaelpri10 assign_prs_by: - labels: - samples diff --git a/.github/generated-files-bot.yml b/.github/generated-files-bot.yml index c644a24e1..e58cdcbad 100644 --- a/.github/generated-files-bot.yml +++ b/.github/generated-files-bot.yml @@ -6,6 +6,7 @@ externalManifests: file: '.github/readme/synth.metadata/synth.metadata' jsonpath: '$.generatedFiles[*]' ignoreAuthors: +- 'cloud-java-bot' - 'renovate-bot' - 'yoshi-automation' - 'release-please[bot]' diff --git a/.github/release-please.yml b/.github/release-please.yml index c6976da6a..f4a05d1b9 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -34,3 +34,23 @@ branches: handleGHRelease: true releaseType: java-backport branch: 1.123.x + - bumpMinorPreMajor: true + handleGHRelease: true + releaseType: java-backport + branch: 1.125.x + - bumpMinorPreMajor: true + handleGHRelease: true + releaseType: java-backport + branch: 1.129.x + - bumpMinorPreMajor: true + handleGHRelease: true + releaseType: java-backport + branch: 1.137.x + - bumpMinorPreMajor: true + handleGHRelease: true + releaseType: java-backport + branch: 1.140.x + - handleGHRelease: true + releaseType: java-yoshi + branch: protobuf-4.x-rc + manifest: true diff --git a/.github/scripts/update_generation_config.sh b/.github/scripts/update_generation_config.sh new file mode 100644 index 000000000..92efcf881 --- /dev/null +++ b/.github/scripts/update_generation_config.sh @@ -0,0 +1,177 @@ +#!/bin/bash +set -ex +# This script should be run at the root of the repository. +# This script is used to update googleapis_commitish, gapic_generator_version, +# and libraries_bom_version in generation configuration at the time of running +# and create a pull request. + +# The following commands need to be installed before running the script: +# 1. git +# 2. gh +# 3. jq + +# Utility functions +# Get the latest released version of a Maven artifact. +function get_latest_released_version() { + local group_id=$1 + local artifact_id=$2 + group_id_url_path="$(sed 's|\.|/|g' <<< "${group_id}")" + url="https://repo1.maven.org/maven2/${group_id_url_path}/${artifact_id}/maven-metadata.xml" + xml_content=$(curl -s --fail "${url}") + latest=$(xmllint --xpath 'metadata/versioning/latest/text()' - <<< "${xml_content}") + if [[ -z "${latest}" ]]; then + echo "The latest version of ${group_id}:${artifact_id} is empty." + echo "The returned json from maven.org is invalid: ${json_content}" + exit 1 + else + echo "${latest}" + fi +} + +# Update a key to a new value in the generation config. +function update_config() { + local key_word=$1 + local new_value=$2 + local file=$3 + echo "Update ${key_word} to ${new_value} in ${file}" + sed -i -e "s/^${key_word}.*$/${key_word}: ${new_value}/" "${file}" +} + +# Update an action to a new version in GitHub action. +function update_action() { + local key_word=$1 + local new_value=$2 + local file=$3 + echo "Update ${key_word} to ${new_value} in ${file}" + # use a different delimiter because the key_word contains "/". + sed -i -e "s|${key_word}@v.*$|${key_word}@v${new_value}|" "${file}" +} + +# The parameters of this script is: +# 1. base_branch, the base branch of the result pull request. +# 2. repo, organization/repo-name, e.g., googleapis/google-cloud-java +# 3. [optional] generation_config, the path to the generation configuration, +# the default value is generation_config.yaml in the repository root. +# 4. [optional] workflow, the library generation workflow file, +# the default value is .github/workflows/hermetic_library_generation.yaml. +while [[ $# -gt 0 ]]; do +key="$1" +case "${key}" in + --base_branch) + base_branch="$2" + shift + ;; + --repo) + repo="$2" + shift + ;; + --generation_config) + generation_config="$2" + shift + ;; + --workflow) + workflow="$2" + shift + ;; + *) + echo "Invalid option: [$1]" + exit 1 + ;; +esac +shift +done + +if [ -z "${base_branch}" ]; then + echo "missing required argument --base_branch" + exit 1 +fi + +if [ -z "${repo}" ]; then + echo "missing required argument --repo" + exit 1 +fi + +if [ -z "${generation_config}" ]; then + generation_config="generation_config.yaml" + echo "Use default generation config: ${generation_config}" +fi + +if [ -z "${workflow}" ]; then + workflow=".github/workflows/hermetic_library_generation.yaml" + echo "Use default library generation workflow file: ${workflow}" +fi + +current_branch="generate-libraries-${base_branch}" +title="chore: Update generation configuration at $(date)" + +git checkout "${base_branch}" +# Try to find a open pull request associated with the branch +pr_num=$(gh pr list -s open -H "${current_branch}" -q . --json number | jq ".[] | .number") +# Create a branch if there's no open pull request associated with the +# branch; otherwise checkout the pull request. +if [ -z "${pr_num}" ]; then + git checkout -b "${current_branch}" + # Push the current branch to remote so that we can + # compare the commits later. + git push -u origin "${current_branch}" +else + gh pr checkout "${pr_num}" +fi + +# Only allow fast-forward merging; exit with non-zero result if there's merging +# conflict. +git merge -m "chore: merge ${base_branch} into ${current_branch}" "${base_branch}" + +mkdir tmp-googleapis +# Use partial clone because only commit history is needed. +git clone --filter=blob:none https://github.com/googleapis/googleapis.git tmp-googleapis +pushd tmp-googleapis +git pull +latest_commit=$(git rev-parse HEAD) +popd +rm -rf tmp-googleapis +update_config "googleapis_commitish" "${latest_commit}" "${generation_config}" + +# Update gapic-generator-java version to the latest +latest_version=$(get_latest_released_version "com.google.api" "gapic-generator-java") +update_config "gapic_generator_version" "${latest_version}" "${generation_config}" + +# Update composite action version to latest gapic-generator-java version +update_action "googleapis/sdk-platform-java/.github/scripts" \ + "${latest_version}" \ + "${workflow}" + +# Update libraries-bom version to the latest +latest_version=$(get_latest_released_version "com.google.cloud" "libraries-bom") +update_config "libraries_bom_version" "${latest_version}" "${generation_config}" + +git add "${generation_config}" "${workflow}" +changed_files=$(git diff --cached --name-only) +if [[ "${changed_files}" == "" ]]; then + echo "The latest generation config is not changed." + echo "Skip committing to the pull request." +else + git commit -m "${title}" +fi + +# There are potentially at most two commits: merge commit and change commit. +# We want to exit the script if no commit happens (otherwise this will be an +# infinite loop). +# `git cherry` is a way to find whether the local branch has commits that are +# not in the remote branch. +# If we find any such commit, push them to remote branch. +unpushed_commit=$(git cherry -v "origin/${current_branch}" | wc -l) +if [[ "${unpushed_commit}" -eq 0 ]]; then + echo "No unpushed commits, exit" + exit 0 +fi + +if [ -z "${pr_num}" ]; then + git remote add remote_repo https://cloud-java-bot:"${GH_TOKEN}@github.com/${repo}.git" + git fetch -q remote_repo + git push -f remote_repo "${current_branch}" + gh pr create --title "${title}" --head "${current_branch}" --body "${title}" --base "${base_branch}" +else + git push + gh pr edit "${pr_num}" --title "${title}" --body "${title}" +fi diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index 46e11116d..3e4d39bcd 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -14,12 +14,13 @@ branchProtectionRules: - units (8) - units (11) - 'Kokoro - Test: Integration' - - Kokoro - Against Pub/Sub Lite samples - cla/google - - OwlBot Post Processor - - 'Kokoro - Test: Java GraalVM Native Image' - - 'Kokoro - Test: Java 17 GraalVM Native Image' + - 'Kokoro - Test: Java GraalVM Native Image A' + - 'Kokoro - Test: Java GraalVM Native Image B' + - 'Kokoro - Test: Java GraalVM Native Image C' - javadoc + - library_generation + - unmanaged_dependency_check - pattern: 1.111.0-sp isAdminEnforced: true requiredApprovingReviewCount: 1 @@ -35,7 +36,6 @@ branchProtectionRules: - 'Kokoro - Test: Integration' - Kokoro - Against Pub/Sub Lite samples - cla/google - - OwlBot Post Processor - pattern: java7 isAdminEnforced: true requiredApprovingReviewCount: 1 @@ -51,7 +51,6 @@ branchProtectionRules: - 'Kokoro - Test: Integration' - Kokoro - Against Pub/Sub Lite samples - cla/google - - OwlBot Post Processor - pattern: 1.114.x isAdminEnforced: true requiredApprovingReviewCount: 1 @@ -67,7 +66,6 @@ branchProtectionRules: - 'Kokoro - Test: Integration' - Kokoro - Against Pub/Sub Lite samples - cla/google - - OwlBot Post Processor - pattern: 1.116.x isAdminEnforced: true requiredApprovingReviewCount: 1 @@ -83,7 +81,6 @@ branchProtectionRules: - 'Kokoro - Test: Integration' - Kokoro - Against Pub/Sub Lite samples - cla/google - - OwlBot Post Processor - pattern: 1.117.x isAdminEnforced: true requiredApprovingReviewCount: 1 @@ -99,7 +96,6 @@ branchProtectionRules: - 'Kokoro - Test: Integration' - Kokoro - Against Pub/Sub Lite samples - cla/google - - OwlBot Post Processor - pattern: 1.120.x isAdminEnforced: true requiredApprovingReviewCount: 1 @@ -115,7 +111,6 @@ branchProtectionRules: - 'Kokoro - Test: Integration' - Kokoro - Against Pub/Sub Lite samples - cla/google - - OwlBot Post Processor - 'Kokoro - Test: Java GraalVM Native Image' - 'Kokoro - Test: Java 17 GraalVM Native Image' - pattern: 1.121.x @@ -133,7 +128,6 @@ branchProtectionRules: - 'Kokoro - Test: Integration' - Kokoro - Against Pub/Sub Lite samples - cla/google - - OwlBot Post Processor - 'Kokoro - Test: Java GraalVM Native Image' - 'Kokoro - Test: Java 17 GraalVM Native Image' - pattern: 1.123.x @@ -150,9 +144,77 @@ branchProtectionRules: - 'Kokoro - Test: Integration' - Kokoro - Against Pub/Sub Lite samples - cla/google - - OwlBot Post Processor - 'Kokoro - Test: Java GraalVM Native Image' - 'Kokoro - Test: Java 17 GraalVM Native Image' + - pattern: 1.125.x + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - dependencies (17) + - lint + - clirr + - units (8) + - units (11) + - 'Kokoro - Test: Integration' + - cla/google + - 'Kokoro - Test: Java GraalVM Native Image' + - 'Kokoro - Test: Java 17 GraalVM Native Image' + - javadoc + - pattern: 1.129.x + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - dependencies (17) + - lint + - clirr + - units (8) + - units (11) + - 'Kokoro - Test: Integration' + - cla/google + - 'Kokoro - Test: Java GraalVM Native Image' + - 'Kokoro - Test: Java 17 GraalVM Native Image' + - javadoc + - pattern: 1.137.x + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - dependencies (17) + - lint + - clirr + - units (8) + - units (11) + - 'Kokoro - Test: Integration' + - cla/google + - 'Kokoro - Test: Java GraalVM Native Image' + - 'Kokoro - Test: Java 17 GraalVM Native Image' + - javadoc + - library_generation + - unmanaged_dependency_check + - pattern: 1.140.x + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - dependencies (17) + - lint + - clirr + - units (8) + - units (11) + - 'Kokoro - Test: Integration' + - cla/google + - 'Kokoro - Test: Java GraalVM Native Image A' + - 'Kokoro - Test: Java GraalVM Native Image B' + - 'Kokoro - Test: Java GraalVM Native Image C' + - javadoc + - library_generation + - unmanaged_dependency_check permissionRules: - team: yoshi-admins permission: admin diff --git a/.github/trusted-contribution.yml b/.github/trusted-contribution.yml index a0ba1f7d9..88d3ac9bf 100644 --- a/.github/trusted-contribution.yml +++ b/.github/trusted-contribution.yml @@ -1,3 +1,9 @@ trustedContributors: - renovate-bot - gcf-owl-bot[bot] + +annotations: +- type: comment + text: "/gcbrun" +- type: label + text: "kokoro:force-run" diff --git a/.github/workflows/approve-readme.yaml b/.github/workflows/approve-readme.yaml index f5fc7d516..59f00b8eb 100644 --- a/.github/workflows/approve-readme.yaml +++ b/.github/workflows/approve-readme.yaml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest if: github.repository_owner == 'googleapis' && github.head_ref == 'autosynth-readme' steps: - - uses: actions/github-script@v6 + - uses: actions/github-script@v7 with: github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} script: | diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml index 7a106d007..0cda6b04f 100644 --- a/.github/workflows/auto-release.yaml +++ b/.github/workflows/auto-release.yaml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest if: contains(github.head_ref, 'release-please') steps: - - uses: actions/github-script@v6 + - uses: actions/github-script@v8 with: github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} debug: true diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index ae66b1973..b9b8be0c3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -25,10 +25,10 @@ jobs: strategy: fail-fast: false matrix: - java: [11, 17, 21] + java: [11, 17, 21, 25] steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: distribution: temurin java-version: ${{matrix.java}} @@ -41,8 +41,8 @@ jobs: name: "units (8)" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: java-version: 8 distribution: temurin @@ -51,7 +51,7 @@ jobs: # https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#jvm run: echo "SUREFIRE_JVM_OPT=-Djvm=${JAVA_HOME}/bin/java" >> $GITHUB_ENV shell: bash - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: java-version: 17 distribution: temurin @@ -63,8 +63,8 @@ jobs: steps: - name: Support longpaths run: git config --system core.longpaths true - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: distribution: temurin java-version: 8 @@ -78,8 +78,8 @@ jobs: matrix: java: [17] steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: distribution: temurin java-version: ${{matrix.java}} @@ -88,8 +88,8 @@ jobs: javadoc: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: distribution: temurin java-version: 17 @@ -100,11 +100,11 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: distribution: temurin - java-version: 11 + java-version: 17 - run: java -version - run: .kokoro/build.sh env: @@ -112,8 +112,8 @@ jobs: clirr: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: distribution: temurin java-version: 8 diff --git a/.github/workflows/hermetic_library_generation.yaml b/.github/workflows/hermetic_library_generation.yaml new file mode 100644 index 000000000..cda7bb36c --- /dev/null +++ b/.github/workflows/hermetic_library_generation.yaml @@ -0,0 +1,45 @@ +# 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. +# GitHub action job to test core java library features on +# downstream client libraries before they are released. +name: Hermetic library generation upon generation config change through pull requests +on: + pull_request: + +env: + REPO_FULL_NAME: ${{ github.event.pull_request.head.repo.full_name }} + GITHUB_REPOSITORY: ${{ github.repository }} +jobs: + library_generation: + runs-on: ubuntu-latest + steps: + - name: Determine whether the pull request comes from a fork + run: | + if [[ "${GITHUB_REPOSITORY}" != "${REPO_FULL_NAME}" ]]; then + echo "This PR comes from a fork. Skip library generation." + echo "SHOULD_RUN=false" >> $GITHUB_ENV + else + echo "SHOULD_RUN=true" >> $GITHUB_ENV + fi + - uses: actions/checkout@v6 + if: env.SHOULD_RUN == 'true' + with: + fetch-depth: 0 + token: ${{ secrets.CLOUD_JAVA_BOT_TOKEN }} + - uses: googleapis/sdk-platform-java/.github/scripts@v2.64.2 + if: env.SHOULD_RUN == 'true' + with: + base_ref: ${{ github.base_ref }} + head_ref: ${{ github.head_ref }} + token: ${{ secrets.CLOUD_JAVA_BOT_TOKEN }} diff --git a/.github/workflows/renovate_config_check.yaml b/.github/workflows/renovate_config_check.yaml new file mode 100644 index 000000000..47b9e87c9 --- /dev/null +++ b/.github/workflows/renovate_config_check.yaml @@ -0,0 +1,25 @@ +name: Renovate Bot Config Validation + +on: + pull_request: + paths: + - 'renovate.json' + +jobs: + renovate_bot_config_validation: + runs-on: ubuntu-24.04 + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '22' + + - name: Install Renovate and Config Validator + run: | + npm install -g npm@latest + npm install --global renovate + renovate-config-validator diff --git a/.github/workflows/samples.yaml b/.github/workflows/samples.yaml index f1a27f81c..3c00d025e 100644 --- a/.github/workflows/samples.yaml +++ b/.github/workflows/samples.yaml @@ -8,7 +8,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-java@v1 with: - java-version: 8 + java-version: 11 - name: Run checkstyle run: mvn -P lint --quiet --batch-mode checkstyle:check working-directory: samples diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml new file mode 100644 index 000000000..24c84d214 --- /dev/null +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -0,0 +1,22 @@ +on: + pull_request: +name: Unmanaged dependency check +jobs: + unmanaged_dependency_check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: 11 + - name: Install modules + shell: bash + run: | + # No argument to build.sh installs the modules in local Maven + # repository + .kokoro/build.sh + - name: Unmanaged dependency check + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.54.2 + with: + bom-path: google-cloud-pubsub-bom/pom.xml diff --git a/.github/workflows/update_generation_config.yaml b/.github/workflows/update_generation_config.yaml new file mode 100644 index 000000000..a7e14bb48 --- /dev/null +++ b/.github/workflows/update_generation_config.yaml @@ -0,0 +1,47 @@ +# 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. +# GitHub action job to test core java library features on +# downstream client libraries before they are released. +name: Update generation configuration +on: + schedule: + - cron: '0 2 * * *' + workflow_dispatch: + +jobs: + update-generation-config: + runs-on: ubuntu-24.04 + env: + # the branch into which the pull request is merged + base_branch: main + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.CLOUD_JAVA_BOT_TOKEN }} + - name: Install Dependencies + shell: bash + run: sudo apt-get update && sudo apt-get install -y libxml2-utils + - name: Update params in generation config to latest + shell: bash + run: | + set -x + [ -z "$(git config user.email)" ] && git config --global user.email "cloud-java-bot@google.com" + [ -z "$(git config user.name)" ] && git config --global user.name "cloud-java-bot" + bash .github/scripts/update_generation_config.sh \ + --base_branch "${base_branch}" \ + --repo ${{ github.repository }} + env: + GH_TOKEN: ${{ secrets.CLOUD_JAVA_BOT_TOKEN }} + diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 351d0d40c..41903cda1 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -52,7 +52,7 @@ test) RETURN_CODE=$? ;; lint) - mvn com.coveo:fmt-maven-plugin:check + mvn com.spotify.fmt:fmt-maven-plugin:check RETURN_CODE=$? ;; javadoc) diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native-a.cfg similarity index 69% rename from .kokoro/presubmit/graalvm-native.cfg rename to .kokoro/presubmit/graalvm-native-a.cfg index 59efee340..406018c48 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/graalvm:22.3.3" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.54.2" # {x-version-update:google-cloud-shared-dependencies:current} } env_vars: { @@ -31,3 +31,8 @@ env_vars: { key: "SECRET_MANAGER_KEYS" value: "java-it-service-account" } + +env_vars: { + key: "IT_SERVICE_ACCOUNT_EMAIL" + value: "it-service-account@gcloud-devel.iam.gserviceaccount.com" +} \ No newline at end of file diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-b.cfg similarity index 67% rename from .kokoro/presubmit/graalvm-native-17.cfg rename to .kokoro/presubmit/graalvm-native-b.cfg index fb5bb678f..60c82d4bf 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,12 +3,12 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17:22.3.3" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.54.2" # {x-version-update:google-cloud-shared-dependencies:current} } env_vars: { key: "JOB_TYPE" - value: "graalvm17" + value: "graalvm" } # TODO: remove this after we've migrated all tests and scripts @@ -30,4 +30,9 @@ env_vars: { env_vars: { key: "SECRET_MANAGER_KEYS" value: "java-it-service-account" +} + +env_vars: { + key: "IT_SERVICE_ACCOUNT_EMAIL" + value: "it-service-account@gcloud-devel.iam.gserviceaccount.com" } \ No newline at end of file diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg new file mode 100644 index 000000000..60982adf5 --- /dev/null +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -0,0 +1,38 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.54.2" # {x-version-update:google-cloud-shared-dependencies:current} +} + +env_vars: { + key: "JOB_TYPE" + value: "graalvm" +} + +# TODO: remove this after we've migrated all tests and scripts +env_vars: { + key: "GCLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_CLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "secret_manager/java-it-service-account" +} + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "java-it-service-account" +} + +env_vars: { + key: "IT_SERVICE_ACCOUNT_EMAIL" + value: "it-service-account@gcloud-devel.iam.gserviceaccount.com" +} \ No newline at end of file diff --git a/.kokoro/release/bump_snapshot.cfg b/.kokoro/release/bump_snapshot.cfg deleted file mode 100644 index a2a5982a8..000000000 --- a/.kokoro/release/bump_snapshot.cfg +++ /dev/null @@ -1,53 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "java-pubsub/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" -} - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-pubsub/.kokoro/release/bump_snapshot.sh" -} - -# tokens used by release-please to keep an up-to-date release PR. -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "github-magic-proxy-key-release-please" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "github-magic-proxy-token-release-please" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "github-magic-proxy-url-release-please" - } - } -} diff --git a/.kokoro/release/bump_snapshot.sh b/.kokoro/release/bump_snapshot.sh deleted file mode 100755 index bf54b4900..000000000 --- a/.kokoro/release/bump_snapshot.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash - -# Copyright 2019 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. - -set -eo pipefail - -export NPM_CONFIG_PREFIX=/home/node/.npm-global - -if [ -f ${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-url-release-please ]; then - # Groom the snapshot release PR immediately after publishing a release - npx release-please release-pr --token=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-token-release-please \ - --repo-url=googleapis/java-pubsub \ - --package-name="pubsub" \ - --api-url=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-url-release-please \ - --proxy-key=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-key-release-please \ - --snapshot \ - --release-type=java-auth-yoshi -fi diff --git a/.kokoro/release/common.cfg b/.kokoro/release/common.cfg deleted file mode 100644 index 7eeae74d5..000000000 --- a/.kokoro/release/common.cfg +++ /dev/null @@ -1,49 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "java-pubsub/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 70247 - keyname: "maven-gpg-keyring" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 70247 - keyname: "maven-gpg-passphrase" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 70247 - keyname: "maven-gpg-pubkeyring" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 70247 - keyname: "sonatype-credentials" - } - } -} diff --git a/.kokoro/release/common.sh b/.kokoro/release/common.sh deleted file mode 100755 index 7f78ee414..000000000 --- a/.kokoro/release/common.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -# Copyright 2018 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. - -set -eo pipefail - -# Get secrets from keystore and set and environment variables -setup_environment_secrets() { - export GPG_PASSPHRASE=$(cat ${KOKORO_KEYSTORE_DIR}/70247_maven-gpg-passphrase) - export GPG_TTY=$(tty) - export GPG_HOMEDIR=/gpg - mkdir $GPG_HOMEDIR - mv ${KOKORO_KEYSTORE_DIR}/70247_maven-gpg-pubkeyring $GPG_HOMEDIR/pubring.gpg - mv ${KOKORO_KEYSTORE_DIR}/70247_maven-gpg-keyring $GPG_HOMEDIR/secring.gpg - export SONATYPE_USERNAME=$(cat ${KOKORO_KEYSTORE_DIR}/70247_sonatype-credentials | cut -f1 -d'|') - export SONATYPE_PASSWORD=$(cat ${KOKORO_KEYSTORE_DIR}/70247_sonatype-credentials | cut -f2 -d'|') -} - -create_settings_xml_file() { - echo " - - - ossrh - ${SONATYPE_USERNAME} - ${SONATYPE_PASSWORD} - - - sonatype-nexus-staging - ${SONATYPE_USERNAME} - ${SONATYPE_PASSWORD} - - - sonatype-nexus-snapshots - ${SONATYPE_USERNAME} - ${SONATYPE_PASSWORD} - - -" > $1 -} \ No newline at end of file diff --git a/.kokoro/release/drop.cfg b/.kokoro/release/drop.cfg deleted file mode 100644 index fa56231bd..000000000 --- a/.kokoro/release/drop.cfg +++ /dev/null @@ -1,6 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-pubsub/.kokoro/release/drop.sh" -} diff --git a/.kokoro/release/drop.sh b/.kokoro/release/drop.sh deleted file mode 100755 index 742ec1a88..000000000 --- a/.kokoro/release/drop.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -# Copyright 2018 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. - -set -eo pipefail - -# STAGING_REPOSITORY_ID must be set -if [ -z "${STAGING_REPOSITORY_ID}" ]; then - echo "Missing STAGING_REPOSITORY_ID environment variable" - exit 1 -fi - -source $(dirname "$0")/common.sh -pushd $(dirname "$0")/../../ - -setup_environment_secrets -create_settings_xml_file "settings.xml" - -mvn nexus-staging:drop -B \ - --settings=settings.xml \ - -DstagingRepositoryId=${STAGING_REPOSITORY_ID} diff --git a/.kokoro/release/promote.cfg b/.kokoro/release/promote.cfg deleted file mode 100644 index 08d54e6ab..000000000 --- a/.kokoro/release/promote.cfg +++ /dev/null @@ -1,6 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-pubsub/.kokoro/release/promote.sh" -} diff --git a/.kokoro/release/promote.sh b/.kokoro/release/promote.sh deleted file mode 100755 index 3cac3d8a9..000000000 --- a/.kokoro/release/promote.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -# Copyright 2018 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. - -set -eo pipefail - -# STAGING_REPOSITORY_ID must be set -if [ -z "${STAGING_REPOSITORY_ID}" ]; then - echo "Missing STAGING_REPOSITORY_ID environment variable" - exit 1 -fi - -source $(dirname "$0")/common.sh - -pushd $(dirname "$0")/../../ - -setup_environment_secrets -create_settings_xml_file "settings.xml" - -mvn nexus-staging:release -B \ - -DperformRelease=true \ - --settings=settings.xml \ - -DstagingRepositoryId=${STAGING_REPOSITORY_ID} diff --git a/.kokoro/release/publish_javadoc.cfg b/.kokoro/release/publish_javadoc.cfg deleted file mode 100644 index 9e3e80619..000000000 --- a/.kokoro/release/publish_javadoc.cfg +++ /dev/null @@ -1,23 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/doc-templates/" - -env_vars: { - key: "STAGING_BUCKET" - value: "docs-staging" -} - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-pubsub/.kokoro/release/publish_javadoc.sh" -} - - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "docuploader_service_account" - } - } -} diff --git a/.kokoro/release/publish_javadoc.sh b/.kokoro/release/publish_javadoc.sh deleted file mode 100755 index 2cf98c0c5..000000000 --- a/.kokoro/release/publish_javadoc.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash -# Copyright 2019 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. - -set -eo pipefail - -if [[ -z "${CREDENTIALS}" ]]; then - CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account -fi - -if [[ -z "${STAGING_BUCKET}" ]]; then - echo "Need to set STAGING_BUCKET environment variable" - exit 1 -fi - -# work from the git root directory -pushd $(dirname "$0")/../../ - -# install docuploader package -python3 -m pip install --require-hashes -r .kokoro/requirements.txt - -# compile all packages -mvn clean install -B -q -DskipTests=true - -export NAME=google-cloud-pubsub -export VERSION=$(grep ${NAME}: versions.txt | cut -d: -f3) - -# build the docs -mvn site -B -q - -pushd target/site/apidocs - -# create metadata -python3 -m docuploader create-metadata \ - --name ${NAME} \ - --version ${VERSION} \ - --language java - -# upload docs -python3 -m docuploader upload . \ - --credentials ${CREDENTIALS} \ - --staging-bucket ${STAGING_BUCKET} diff --git a/.kokoro/release/publish_javadoc11.cfg b/.kokoro/release/publish_javadoc11.cfg deleted file mode 100644 index f56e0021b..000000000 --- a/.kokoro/release/publish_javadoc11.cfg +++ /dev/null @@ -1,30 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# cloud-rad production -env_vars: { - key: "STAGING_BUCKET_V2" - value: "docs-staging-v2" -} - -# Configure the docker image for kokoro-trampoline -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java11" -} - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-pubsub/.kokoro/release/publish_javadoc11.sh" -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "docuploader_service_account" - } - } -} - -# Downloads docfx doclet resource. This will be in ${KOKORO_GFILE_DIR}/ -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/docfx" diff --git a/.kokoro/release/publish_javadoc11.sh b/.kokoro/release/publish_javadoc11.sh deleted file mode 100755 index 680a215f3..000000000 --- a/.kokoro/release/publish_javadoc11.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash -# Copyright 2021 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. - -set -eo pipefail - -if [[ -z "${CREDENTIALS}" ]]; then - CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account -fi - -if [[ -z "${STAGING_BUCKET_V2}" ]]; then - echo "Need to set STAGING_BUCKET_V2 environment variable" - exit 1 -fi - -# work from the git root directory -pushd $(dirname "$0")/../../ - -# install docuploader package -python3 -m pip install --require-hashes -r .kokoro/requirements.txt - -# compile all packages -mvn clean install -B -q -DskipTests=true - -export NAME=google-cloud-pubsub -export VERSION=$(grep ${NAME}: versions.txt | cut -d: -f3) - -# cloud RAD generation -mvn clean javadoc:aggregate -B -q -P docFX -# include CHANGELOG -cp CHANGELOG.md target/docfx-yml/history.md - -pushd target/docfx-yml - -# create metadata -python3 -m docuploader create-metadata \ - --name ${NAME} \ - --version ${VERSION} \ - --xrefs devsite://java/gax \ - --xrefs devsite://java/google-cloud-core \ - --xrefs devsite://java/api-common \ - --xrefs devsite://java/proto-google-common-protos \ - --xrefs devsite://java/google-api-client \ - --xrefs devsite://java/google-http-client \ - --xrefs devsite://java/protobuf \ - --language java - -# upload yml to production bucket -python3 -m docuploader upload . \ - --credentials ${CREDENTIALS} \ - --staging-bucket ${STAGING_BUCKET_V2} \ - --destination-prefix docfx diff --git a/.kokoro/release/snapshot.cfg b/.kokoro/release/snapshot.cfg deleted file mode 100644 index 3c445f2dc..000000000 --- a/.kokoro/release/snapshot.cfg +++ /dev/null @@ -1,6 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-pubsub/.kokoro/release/snapshot.sh" -} \ No newline at end of file diff --git a/.kokoro/release/snapshot.sh b/.kokoro/release/snapshot.sh deleted file mode 100755 index 1f55b7702..000000000 --- a/.kokoro/release/snapshot.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash -# Copyright 2019 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. - -set -eo pipefail - -source $(dirname "$0")/common.sh -MAVEN_SETTINGS_FILE=$(realpath $(dirname "$0")/../../)/settings.xml -pushd $(dirname "$0")/../../ - -# ensure we're trying to push a snapshot (no-result returns non-zero exit code) -grep SNAPSHOT versions.txt - -setup_environment_secrets -create_settings_xml_file "settings.xml" - -mvn clean deploy -B \ - --settings ${MAVEN_SETTINGS_FILE} \ - -DperformRelease=true \ - -Dgpg.executable=gpg \ - -Dgpg.passphrase=${GPG_PASSPHRASE} \ - -Dgpg.homedir=${GPG_HOMEDIR} diff --git a/.kokoro/release/stage.cfg b/.kokoro/release/stage.cfg deleted file mode 100644 index 587130b55..000000000 --- a/.kokoro/release/stage.cfg +++ /dev/null @@ -1,19 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-pubsub/.kokoro/release/stage.sh" -} - -# Need to save the properties file -action { - define_artifacts { - regex: "github/java-pubsub/target/nexus-staging/staging/*.properties" - strip_prefix: "github/java-pubsub" - } -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem" -} diff --git a/.kokoro/release/stage.sh b/.kokoro/release/stage.sh deleted file mode 100755 index 61e714d6b..000000000 --- a/.kokoro/release/stage.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -# Copyright 2018 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. - -set -eo pipefail - -# Start the releasetool reporter -requirementsFile=$(realpath $(dirname "${BASH_SOURCE[0]}")/../requirements.txt) -python3 -m pip install --require-hashes -r $requirementsFile -python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script - -source $(dirname "$0")/common.sh -source $(dirname "$0")/../common.sh -MAVEN_SETTINGS_FILE=$(realpath $(dirname "$0")/../../)/settings.xml -pushd $(dirname "$0")/../../ - -setup_environment_secrets -create_settings_xml_file "settings.xml" - -# attempt to stage 3 times with exponential backoff (starting with 10 seconds) -retry_with_backoff 3 10 \ - mvn clean deploy -B \ - --settings ${MAVEN_SETTINGS_FILE} \ - -DskipTests=true \ - -Dclirr.skip=true \ - -DperformRelease=true \ - -Dgpg.executable=gpg \ - -Dgpg.passphrase=${GPG_PASSPHRASE} \ - -Dgpg.homedir=${GPG_HOMEDIR} - -if [[ -n "${AUTORELEASE_PR}" ]] -then - mvn nexus-staging:release -B \ - -DperformRelease=true \ - --settings=settings.xml -fi diff --git a/.kokoro/requirements.in b/.kokoro/requirements.in deleted file mode 100644 index 2092cc741..000000000 --- a/.kokoro/requirements.in +++ /dev/null @@ -1,6 +0,0 @@ -gcp-docuploader -gcp-releasetool>=1.10.5 # required for compatibility with cryptography>=39.x -wheel -setuptools -typing-extensions -click<8.1.0 \ No newline at end of file diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt deleted file mode 100644 index 445c5c1f0..000000000 --- a/.kokoro/requirements.txt +++ /dev/null @@ -1,491 +0,0 @@ -# -# This file is autogenerated by pip-compile with Python 3.9 -# by the following command: -# -# pip-compile requirements.in --generate-hashes --upgrade -# -attrs==23.1.0 \ - --hash=sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04 \ - --hash=sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015 - # via gcp-releasetool -cachetools==5.3.1 \ - --hash=sha256:95ef631eeaea14ba2e36f06437f36463aac3a096799e876ee55e5cdccb102590 \ - --hash=sha256:dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b - # via google-auth -certifi==2023.7.22 \ - --hash=sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082 \ - --hash=sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9 - # via requests -cffi==1.15.1 \ - --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ - --hash=sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef \ - --hash=sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104 \ - --hash=sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426 \ - --hash=sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405 \ - --hash=sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375 \ - --hash=sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a \ - --hash=sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e \ - --hash=sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc \ - --hash=sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf \ - --hash=sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185 \ - --hash=sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497 \ - --hash=sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3 \ - --hash=sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35 \ - --hash=sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c \ - --hash=sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83 \ - --hash=sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21 \ - --hash=sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca \ - --hash=sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984 \ - --hash=sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac \ - --hash=sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd \ - --hash=sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee \ - --hash=sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a \ - --hash=sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2 \ - --hash=sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192 \ - --hash=sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7 \ - --hash=sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585 \ - --hash=sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f \ - --hash=sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e \ - --hash=sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27 \ - --hash=sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b \ - --hash=sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e \ - --hash=sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e \ - --hash=sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d \ - --hash=sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c \ - --hash=sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415 \ - --hash=sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82 \ - --hash=sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02 \ - --hash=sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314 \ - --hash=sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325 \ - --hash=sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c \ - --hash=sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3 \ - --hash=sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914 \ - --hash=sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045 \ - --hash=sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d \ - --hash=sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9 \ - --hash=sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5 \ - --hash=sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2 \ - --hash=sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c \ - --hash=sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3 \ - --hash=sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2 \ - --hash=sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8 \ - --hash=sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d \ - --hash=sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d \ - --hash=sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9 \ - --hash=sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162 \ - --hash=sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76 \ - --hash=sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4 \ - --hash=sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e \ - --hash=sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9 \ - --hash=sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6 \ - --hash=sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b \ - --hash=sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01 \ - --hash=sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0 - # via cryptography -charset-normalizer==3.2.0 \ - --hash=sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96 \ - --hash=sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c \ - --hash=sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710 \ - --hash=sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706 \ - --hash=sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020 \ - --hash=sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252 \ - --hash=sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad \ - --hash=sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329 \ - --hash=sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a \ - --hash=sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f \ - --hash=sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6 \ - --hash=sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4 \ - --hash=sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a \ - --hash=sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46 \ - --hash=sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2 \ - --hash=sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23 \ - --hash=sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace \ - --hash=sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd \ - --hash=sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982 \ - --hash=sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10 \ - --hash=sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2 \ - --hash=sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea \ - --hash=sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09 \ - --hash=sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5 \ - --hash=sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149 \ - --hash=sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489 \ - --hash=sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9 \ - --hash=sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80 \ - --hash=sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592 \ - --hash=sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3 \ - --hash=sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6 \ - --hash=sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed \ - --hash=sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c \ - --hash=sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200 \ - --hash=sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a \ - --hash=sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e \ - --hash=sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d \ - --hash=sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6 \ - --hash=sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623 \ - --hash=sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669 \ - --hash=sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3 \ - --hash=sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa \ - --hash=sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9 \ - --hash=sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2 \ - --hash=sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f \ - --hash=sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1 \ - --hash=sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4 \ - --hash=sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a \ - --hash=sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8 \ - --hash=sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3 \ - --hash=sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029 \ - --hash=sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f \ - --hash=sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959 \ - --hash=sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22 \ - --hash=sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7 \ - --hash=sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952 \ - --hash=sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346 \ - --hash=sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e \ - --hash=sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d \ - --hash=sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299 \ - --hash=sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd \ - --hash=sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a \ - --hash=sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3 \ - --hash=sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037 \ - --hash=sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94 \ - --hash=sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c \ - --hash=sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858 \ - --hash=sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a \ - --hash=sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449 \ - --hash=sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c \ - --hash=sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918 \ - --hash=sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1 \ - --hash=sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c \ - --hash=sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac \ - --hash=sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa - # via requests -click==8.0.4 \ - --hash=sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1 \ - --hash=sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb - # via - # -r requirements.in - # gcp-docuploader - # gcp-releasetool -colorlog==6.7.0 \ - --hash=sha256:0d33ca236784a1ba3ff9c532d4964126d8a2c44f1f0cb1d2b0728196f512f662 \ - --hash=sha256:bd94bd21c1e13fac7bd3153f4bc3a7dc0eb0974b8bc2fdf1a989e474f6e582e5 - # via gcp-docuploader -cryptography==41.0.6 \ - --hash=sha256:068bc551698c234742c40049e46840843f3d98ad7ce265fd2bd4ec0d11306596 \ - --hash=sha256:0f27acb55a4e77b9be8d550d762b0513ef3fc658cd3eb15110ebbcbd626db12c \ - --hash=sha256:2132d5865eea673fe6712c2ed5fb4fa49dba10768bb4cc798345748380ee3660 \ - --hash=sha256:3288acccef021e3c3c10d58933f44e8602cf04dba96d9796d70d537bb2f4bbc4 \ - --hash=sha256:35f3f288e83c3f6f10752467c48919a7a94b7d88cc00b0668372a0d2ad4f8ead \ - --hash=sha256:398ae1fc711b5eb78e977daa3cbf47cec20f2c08c5da129b7a296055fbb22aed \ - --hash=sha256:422e3e31d63743855e43e5a6fcc8b4acab860f560f9321b0ee6269cc7ed70cc3 \ - --hash=sha256:48783b7e2bef51224020efb61b42704207dde583d7e371ef8fc2a5fb6c0aabc7 \ - --hash=sha256:4d03186af98b1c01a4eda396b137f29e4e3fb0173e30f885e27acec8823c1b09 \ - --hash=sha256:5daeb18e7886a358064a68dbcaf441c036cbdb7da52ae744e7b9207b04d3908c \ - --hash=sha256:60e746b11b937911dc70d164060d28d273e31853bb359e2b2033c9e93e6f3c43 \ - --hash=sha256:742ae5e9a2310e9dade7932f9576606836ed174da3c7d26bc3d3ab4bd49b9f65 \ - --hash=sha256:7e00fb556bda398b99b0da289ce7053639d33b572847181d6483ad89835115f6 \ - --hash=sha256:85abd057699b98fce40b41737afb234fef05c67e116f6f3650782c10862c43da \ - --hash=sha256:8efb2af8d4ba9dbc9c9dd8f04d19a7abb5b49eab1f3694e7b5a16a5fc2856f5c \ - --hash=sha256:ae236bb8760c1e55b7a39b6d4d32d2279bc6c7c8500b7d5a13b6fb9fc97be35b \ - --hash=sha256:afda76d84b053923c27ede5edc1ed7d53e3c9f475ebaf63c68e69f1403c405a8 \ - --hash=sha256:b27a7fd4229abef715e064269d98a7e2909ebf92eb6912a9603c7e14c181928c \ - --hash=sha256:b648fe2a45e426aaee684ddca2632f62ec4613ef362f4d681a9a6283d10e079d \ - --hash=sha256:c5a550dc7a3b50b116323e3d376241829fd326ac47bc195e04eb33a8170902a9 \ - --hash=sha256:da46e2b5df770070412c46f87bac0849b8d685c5f2679771de277a422c7d0b86 \ - --hash=sha256:f39812f70fc5c71a15aa3c97b2bbe213c3f2a460b79bd21c40d033bb34a9bf36 \ - --hash=sha256:ff369dd19e8fe0528b02e8df9f2aeb2479f89b1270d90f96a63500afe9af5cae - # via - # gcp-releasetool - # secretstorage -gcp-docuploader==0.6.5 \ - --hash=sha256:30221d4ac3e5a2b9c69aa52fdbef68cc3f27d0e6d0d90e220fc024584b8d2318 \ - --hash=sha256:b7458ef93f605b9d46a4bf3a8dc1755dad1f31d030c8679edf304e343b347eea - # via -r requirements.in -gcp-releasetool==1.16.0 \ - --hash=sha256:27bf19d2e87aaa884096ff941aa3c592c482be3d6a2bfe6f06afafa6af2353e3 \ - --hash=sha256:a316b197a543fd036209d0caba7a8eb4d236d8e65381c80cbc6d7efaa7606d63 - # via -r requirements.in -google-api-core==2.11.1 \ - --hash=sha256:25d29e05a0058ed5f19c61c0a78b1b53adea4d9364b464d014fbda941f6d1c9a \ - --hash=sha256:d92a5a92dc36dd4f4b9ee4e55528a90e432b059f93aee6ad857f9de8cc7ae94a - # via - # google-cloud-core - # google-cloud-storage -google-auth==2.22.0 \ - --hash=sha256:164cba9af4e6e4e40c3a4f90a1a6c12ee56f14c0b4868d1ca91b32826ab334ce \ - --hash=sha256:d61d1b40897407b574da67da1a833bdc10d5a11642566e506565d1b1a46ba873 - # via - # gcp-releasetool - # google-api-core - # google-cloud-core - # google-cloud-storage -google-cloud-core==2.3.3 \ - --hash=sha256:37b80273c8d7eee1ae816b3a20ae43585ea50506cb0e60f3cf5be5f87f1373cb \ - --hash=sha256:fbd11cad3e98a7e5b0343dc07cb1039a5ffd7a5bb96e1f1e27cee4bda4a90863 - # via google-cloud-storage -google-cloud-storage==2.10.0 \ - --hash=sha256:934b31ead5f3994e5360f9ff5750982c5b6b11604dc072bc452c25965e076dc7 \ - --hash=sha256:9433cf28801671de1c80434238fb1e7e4a1ba3087470e90f70c928ea77c2b9d7 - # via gcp-docuploader -google-crc32c==1.5.0 \ - --hash=sha256:024894d9d3cfbc5943f8f230e23950cd4906b2fe004c72e29b209420a1e6b05a \ - --hash=sha256:02c65b9817512edc6a4ae7c7e987fea799d2e0ee40c53ec573a692bee24de876 \ - --hash=sha256:02ebb8bf46c13e36998aeaad1de9b48f4caf545e91d14041270d9dca767b780c \ - --hash=sha256:07eb3c611ce363c51a933bf6bd7f8e3878a51d124acfc89452a75120bc436289 \ - --hash=sha256:1034d91442ead5a95b5aaef90dbfaca8633b0247d1e41621d1e9f9db88c36298 \ - --hash=sha256:116a7c3c616dd14a3de8c64a965828b197e5f2d121fedd2f8c5585c547e87b02 \ - --hash=sha256:19e0a019d2c4dcc5e598cd4a4bc7b008546b0358bd322537c74ad47a5386884f \ - --hash=sha256:1c7abdac90433b09bad6c43a43af253e688c9cfc1c86d332aed13f9a7c7f65e2 \ - --hash=sha256:1e986b206dae4476f41bcec1faa057851f3889503a70e1bdb2378d406223994a \ - --hash=sha256:272d3892a1e1a2dbc39cc5cde96834c236d5327e2122d3aaa19f6614531bb6eb \ - --hash=sha256:278d2ed7c16cfc075c91378c4f47924c0625f5fc84b2d50d921b18b7975bd210 \ - --hash=sha256:2ad40e31093a4af319dadf503b2467ccdc8f67c72e4bcba97f8c10cb078207b5 \ - --hash=sha256:2e920d506ec85eb4ba50cd4228c2bec05642894d4c73c59b3a2fe20346bd00ee \ - --hash=sha256:3359fc442a743e870f4588fcf5dcbc1bf929df1fad8fb9905cd94e5edb02e84c \ - --hash=sha256:37933ec6e693e51a5b07505bd05de57eee12f3e8c32b07da7e73669398e6630a \ - --hash=sha256:398af5e3ba9cf768787eef45c803ff9614cc3e22a5b2f7d7ae116df8b11e3314 \ - --hash=sha256:3b747a674c20a67343cb61d43fdd9207ce5da6a99f629c6e2541aa0e89215bcd \ - --hash=sha256:461665ff58895f508e2866824a47bdee72497b091c730071f2b7575d5762ab65 \ - --hash=sha256:4c6fdd4fccbec90cc8a01fc00773fcd5fa28db683c116ee3cb35cd5da9ef6c37 \ - --hash=sha256:5829b792bf5822fd0a6f6eb34c5f81dd074f01d570ed7f36aa101d6fc7a0a6e4 \ - --hash=sha256:596d1f98fc70232fcb6590c439f43b350cb762fb5d61ce7b0e9db4539654cc13 \ - --hash=sha256:5ae44e10a8e3407dbe138984f21e536583f2bba1be9491239f942c2464ac0894 \ - --hash=sha256:635f5d4dd18758a1fbd1049a8e8d2fee4ffed124462d837d1a02a0e009c3ab31 \ - --hash=sha256:64e52e2b3970bd891309c113b54cf0e4384762c934d5ae56e283f9a0afcd953e \ - --hash=sha256:66741ef4ee08ea0b2cc3c86916ab66b6aef03768525627fd6a1b34968b4e3709 \ - --hash=sha256:67b741654b851abafb7bc625b6d1cdd520a379074e64b6a128e3b688c3c04740 \ - --hash=sha256:6ac08d24c1f16bd2bf5eca8eaf8304812f44af5cfe5062006ec676e7e1d50afc \ - --hash=sha256:6f998db4e71b645350b9ac28a2167e6632c239963ca9da411523bb439c5c514d \ - --hash=sha256:72218785ce41b9cfd2fc1d6a017dc1ff7acfc4c17d01053265c41a2c0cc39b8c \ - --hash=sha256:74dea7751d98034887dbd821b7aae3e1d36eda111d6ca36c206c44478035709c \ - --hash=sha256:759ce4851a4bb15ecabae28f4d2e18983c244eddd767f560165563bf9aefbc8d \ - --hash=sha256:77e2fd3057c9d78e225fa0a2160f96b64a824de17840351b26825b0848022906 \ - --hash=sha256:7c074fece789b5034b9b1404a1f8208fc2d4c6ce9decdd16e8220c5a793e6f61 \ - --hash=sha256:7c42c70cd1d362284289c6273adda4c6af8039a8ae12dc451dcd61cdabb8ab57 \ - --hash=sha256:7f57f14606cd1dd0f0de396e1e53824c371e9544a822648cd76c034d209b559c \ - --hash=sha256:83c681c526a3439b5cf94f7420471705bbf96262f49a6fe546a6db5f687a3d4a \ - --hash=sha256:8485b340a6a9e76c62a7dce3c98e5f102c9219f4cfbf896a00cf48caf078d438 \ - --hash=sha256:84e6e8cd997930fc66d5bb4fde61e2b62ba19d62b7abd7a69920406f9ecca946 \ - --hash=sha256:89284716bc6a5a415d4eaa11b1726d2d60a0cd12aadf5439828353662ede9dd7 \ - --hash=sha256:8b87e1a59c38f275c0e3676fc2ab6d59eccecfd460be267ac360cc31f7bcde96 \ - --hash=sha256:8f24ed114432de109aa9fd317278518a5af2d31ac2ea6b952b2f7782b43da091 \ - --hash=sha256:98cb4d057f285bd80d8778ebc4fde6b4d509ac3f331758fb1528b733215443ae \ - --hash=sha256:998679bf62b7fb599d2878aa3ed06b9ce688b8974893e7223c60db155f26bd8d \ - --hash=sha256:9ba053c5f50430a3fcfd36f75aff9caeba0440b2d076afdb79a318d6ca245f88 \ - --hash=sha256:9c99616c853bb585301df6de07ca2cadad344fd1ada6d62bb30aec05219c45d2 \ - --hash=sha256:a1fd716e7a01f8e717490fbe2e431d2905ab8aa598b9b12f8d10abebb36b04dd \ - --hash=sha256:a2355cba1f4ad8b6988a4ca3feed5bff33f6af2d7f134852cf279c2aebfde541 \ - --hash=sha256:b1f8133c9a275df5613a451e73f36c2aea4fe13c5c8997e22cf355ebd7bd0728 \ - --hash=sha256:b8667b48e7a7ef66afba2c81e1094ef526388d35b873966d8a9a447974ed9178 \ - --hash=sha256:ba1eb1843304b1e5537e1fca632fa894d6f6deca8d6389636ee5b4797affb968 \ - --hash=sha256:be82c3c8cfb15b30f36768797a640e800513793d6ae1724aaaafe5bf86f8f346 \ - --hash=sha256:c02ec1c5856179f171e032a31d6f8bf84e5a75c45c33b2e20a3de353b266ebd8 \ - --hash=sha256:c672d99a345849301784604bfeaeba4db0c7aae50b95be04dd651fd2a7310b93 \ - --hash=sha256:c6c777a480337ac14f38564ac88ae82d4cd238bf293f0a22295b66eb89ffced7 \ - --hash=sha256:cae0274952c079886567f3f4f685bcaf5708f0a23a5f5216fdab71f81a6c0273 \ - --hash=sha256:cd67cf24a553339d5062eff51013780a00d6f97a39ca062781d06b3a73b15462 \ - --hash=sha256:d3515f198eaa2f0ed49f8819d5732d70698c3fa37384146079b3799b97667a94 \ - --hash=sha256:d5280312b9af0976231f9e317c20e4a61cd2f9629b7bfea6a693d1878a264ebd \ - --hash=sha256:de06adc872bcd8c2a4e0dc51250e9e65ef2ca91be023b9d13ebd67c2ba552e1e \ - --hash=sha256:e1674e4307fa3024fc897ca774e9c7562c957af85df55efe2988ed9056dc4e57 \ - --hash=sha256:e2096eddb4e7c7bdae4bd69ad364e55e07b8316653234a56552d9c988bd2d61b \ - --hash=sha256:e560628513ed34759456a416bf86b54b2476c59144a9138165c9a1575801d0d9 \ - --hash=sha256:edfedb64740750e1a3b16152620220f51d58ff1b4abceb339ca92e934775c27a \ - --hash=sha256:f13cae8cc389a440def0c8c52057f37359014ccbc9dc1f0827936bcd367c6100 \ - --hash=sha256:f314013e7dcd5cf45ab1945d92e713eec788166262ae8deb2cfacd53def27325 \ - --hash=sha256:f583edb943cf2e09c60441b910d6a20b4d9d626c75a36c8fcac01a6c96c01183 \ - --hash=sha256:fd8536e902db7e365f49e7d9029283403974ccf29b13fc7028b97e2295b33556 \ - --hash=sha256:fe70e325aa68fa4b5edf7d1a4b6f691eb04bbccac0ace68e34820d283b5f80d4 - # via google-resumable-media -google-resumable-media==2.5.0 \ - --hash=sha256:218931e8e2b2a73a58eb354a288e03a0fd5fb1c4583261ac6e4c078666468c93 \ - --hash=sha256:da1bd943e2e114a56d85d6848497ebf9be6a14d3db23e9fc57581e7c3e8170ec - # via google-cloud-storage -googleapis-common-protos==1.59.1 \ - --hash=sha256:0cbedb6fb68f1c07e18eb4c48256320777707e7d0c55063ae56c15db3224a61e \ - --hash=sha256:b35d530fe825fb4227857bc47ad84c33c809ac96f312e13182bdeaa2abe1178a - # via google-api-core -idna==3.4 \ - --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \ - --hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2 - # via requests -importlib-metadata==6.8.0 \ - --hash=sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb \ - --hash=sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743 - # via keyring -jaraco-classes==3.3.0 \ - --hash=sha256:10afa92b6743f25c0cf5f37c6bb6e18e2c5bb84a16527ccfc0040ea377e7aaeb \ - --hash=sha256:c063dd08e89217cee02c8d5e5ec560f2c8ce6cdc2fcdc2e68f7b2e5547ed3621 - # via keyring -jeepney==0.8.0 \ - --hash=sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806 \ - --hash=sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755 - # via - # keyring - # secretstorage -jinja2==3.1.2 \ - --hash=sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852 \ - --hash=sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61 - # via gcp-releasetool -keyring==24.2.0 \ - --hash=sha256:4901caaf597bfd3bbd78c9a0c7c4c29fcd8310dab2cffefe749e916b6527acd6 \ - --hash=sha256:ca0746a19ec421219f4d713f848fa297a661a8a8c1504867e55bfb5e09091509 - # via gcp-releasetool -markupsafe==2.1.3 \ - --hash=sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e \ - --hash=sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e \ - --hash=sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431 \ - --hash=sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686 \ - --hash=sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559 \ - --hash=sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc \ - --hash=sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c \ - --hash=sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0 \ - --hash=sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4 \ - --hash=sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9 \ - --hash=sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575 \ - --hash=sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba \ - --hash=sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d \ - --hash=sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3 \ - --hash=sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00 \ - --hash=sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155 \ - --hash=sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac \ - --hash=sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52 \ - --hash=sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f \ - --hash=sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8 \ - --hash=sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b \ - --hash=sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24 \ - --hash=sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea \ - --hash=sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198 \ - --hash=sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0 \ - --hash=sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee \ - --hash=sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be \ - --hash=sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2 \ - --hash=sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707 \ - --hash=sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6 \ - --hash=sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58 \ - --hash=sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779 \ - --hash=sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636 \ - --hash=sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c \ - --hash=sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad \ - --hash=sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee \ - --hash=sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc \ - --hash=sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2 \ - --hash=sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48 \ - --hash=sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7 \ - --hash=sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e \ - --hash=sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b \ - --hash=sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa \ - --hash=sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5 \ - --hash=sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e \ - --hash=sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb \ - --hash=sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9 \ - --hash=sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57 \ - --hash=sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc \ - --hash=sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2 - # via jinja2 -more-itertools==9.1.0 \ - --hash=sha256:cabaa341ad0389ea83c17a94566a53ae4c9d07349861ecb14dc6d0345cf9ac5d \ - --hash=sha256:d2bc7f02446e86a68911e58ded76d6561eea00cddfb2a91e7019bbb586c799f3 - # via jaraco-classes -packaging==23.1 \ - --hash=sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61 \ - --hash=sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f - # via gcp-releasetool -protobuf==3.20.3 \ - --hash=sha256:03038ac1cfbc41aa21f6afcbcd357281d7521b4157926f30ebecc8d4ea59dcb7 \ - --hash=sha256:28545383d61f55b57cf4df63eebd9827754fd2dc25f80c5253f9184235db242c \ - --hash=sha256:2e3427429c9cffebf259491be0af70189607f365c2f41c7c3764af6f337105f2 \ - --hash=sha256:398a9e0c3eaceb34ec1aee71894ca3299605fa8e761544934378bbc6c97de23b \ - --hash=sha256:44246bab5dd4b7fbd3c0c80b6f16686808fab0e4aca819ade6e8d294a29c7050 \ - --hash=sha256:447d43819997825d4e71bf5769d869b968ce96848b6479397e29fc24c4a5dfe9 \ - --hash=sha256:67a3598f0a2dcbc58d02dd1928544e7d88f764b47d4a286202913f0b2801c2e7 \ - --hash=sha256:74480f79a023f90dc6e18febbf7b8bac7508420f2006fabd512013c0c238f454 \ - --hash=sha256:819559cafa1a373b7096a482b504ae8a857c89593cf3a25af743ac9ecbd23480 \ - --hash=sha256:899dc660cd599d7352d6f10d83c95df430a38b410c1b66b407a6b29265d66469 \ - --hash=sha256:8c0c984a1b8fef4086329ff8dd19ac77576b384079247c770f29cc8ce3afa06c \ - --hash=sha256:9aae4406ea63d825636cc11ffb34ad3379335803216ee3a856787bcf5ccc751e \ - --hash=sha256:a7ca6d488aa8ff7f329d4c545b2dbad8ac31464f1d8b1c87ad1346717731e4db \ - --hash=sha256:b6cc7ba72a8850621bfec987cb72623e703b7fe2b9127a161ce61e61558ad905 \ - --hash=sha256:bf01b5720be110540be4286e791db73f84a2b721072a3711efff6c324cdf074b \ - --hash=sha256:c02ce36ec760252242a33967d51c289fd0e1c0e6e5cc9397e2279177716add86 \ - --hash=sha256:d9e4432ff660d67d775c66ac42a67cf2453c27cb4d738fc22cb53b5d84c135d4 \ - --hash=sha256:daa564862dd0d39c00f8086f88700fdbe8bc717e993a21e90711acfed02f2402 \ - --hash=sha256:de78575669dddf6099a8a0f46a27e82a1783c557ccc38ee620ed8cc96d3be7d7 \ - --hash=sha256:e64857f395505ebf3d2569935506ae0dfc4a15cb80dc25261176c784662cdcc4 \ - --hash=sha256:f4bd856d702e5b0d96a00ec6b307b0f51c1982c2bf9c0052cf9019e9a544ba99 \ - --hash=sha256:f4c42102bc82a51108e449cbb32b19b180022941c727bac0cfd50170341f16ee - # via - # gcp-docuploader - # gcp-releasetool - # google-api-core - # googleapis-common-protos -pyasn1==0.5.0 \ - --hash=sha256:87a2121042a1ac9358cabcaf1d07680ff97ee6404333bacca15f76aa8ad01a57 \ - --hash=sha256:97b7290ca68e62a832558ec3976f15cbf911bf5d7c7039d8b861c2a0ece69fde - # via - # pyasn1-modules - # rsa -pyasn1-modules==0.3.0 \ - --hash=sha256:5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c \ - --hash=sha256:d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d - # via google-auth -pycparser==2.21 \ - --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ - --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 - # via cffi -pyjwt==2.7.0 \ - --hash=sha256:ba2b425b15ad5ef12f200dc67dd56af4e26de2331f965c5439994dad075876e1 \ - --hash=sha256:bd6ca4a3c4285c1a2d4349e5a035fdf8fb94e04ccd0fcbe6ba289dae9cc3e074 - # via gcp-releasetool -pyperclip==1.8.2 \ - --hash=sha256:105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57 - # via gcp-releasetool -python-dateutil==2.8.2 \ - --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ - --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - # via gcp-releasetool -requests==2.31.0 \ - --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ - --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 - # via - # gcp-releasetool - # google-api-core - # google-cloud-storage -rsa==4.9 \ - --hash=sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 \ - --hash=sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21 - # via google-auth -secretstorage==3.3.3 \ - --hash=sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77 \ - --hash=sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99 - # via keyring -six==1.16.0 \ - --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ - --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 - # via - # gcp-docuploader - # google-auth - # python-dateutil -typing-extensions==4.7.1 \ - --hash=sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36 \ - --hash=sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2 - # via -r requirements.in -urllib3==1.26.18 \ - --hash=sha256:34b97092d7e0a3a8cf7cd10e386f401b3737364026c45e622aa02903dffe0f07 \ - --hash=sha256:f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0 - # via - # google-auth - # requests -wheel==0.40.0 \ - --hash=sha256:cd1196f3faee2b31968d626e1731c94f99cbdb67cf5a46e4f5656cbee7738873 \ - --hash=sha256:d236b20e7cb522daf2390fa84c55eea81c5c30190f90f29ae2ca1ad8355bf247 - # via -r requirements.in -zipp==3.16.1 \ - --hash=sha256:0b37c326d826d5ca35f2b9685cd750292740774ef16190008b00a0227c256fe0 \ - --hash=sha256:857b158da2cbf427b376da1c24fd11faecbac5a4ac7523c3607f8a01f94c2ec0 - # via importlib-metadata - -# WARNING: The following packages were not pinned, but pip requires them to be -# pinned when the requirements file includes hashes and the requirement is not -# satisfied by a package already installed. Consider using the --allow-unsafe flag. -# setuptools diff --git a/.repo-metadata.json b/.repo-metadata.json index 6cb07ab00..0c8364b05 100644 --- a/.repo-metadata.json +++ b/.repo-metadata.json @@ -1,18 +1,20 @@ { "api_shortname": "pubsub", "name_pretty": "Cloud Pub/Sub", - "api_reference": "https://cloud.google.com/pubsub/", "product_documentation": "https://cloud.google.com/pubsub/docs/", - "client_documentation": "https://cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/history", "api_description": "is designed to provide reliable, many-to-many, asynchronous messaging between applications. Publisher applications can send messages to a topic and other applications can subscribe to that topic to receive the messages. By decoupling senders and receivers, Google Cloud Pub/Sub allows developers to communicate between independently written applications.", - "issue_tracker": "https://issuetracker.google.com/savedsearches/559741", + "client_documentation": "https://cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/history", "release_level": "stable", + "transport": "both", "language": "java", "repo": "googleapis/java-pubsub", "repo_short": "java-pubsub", "distribution_name": "com.google.cloud:google-cloud-pubsub", - "codeowner_team": "@googleapis/api-pubsub", "api_id": "pubsub.googleapis.com", "library_type": "GAPIC_COMBO", - "requires_billing": true + "requires_billing": true, + "api_reference": "https://cloud.google.com/pubsub/", + "codeowner_team": "@googleapis/api-pubsub", + "issue_tracker": "https://issuetracker.google.com/savedsearches/559741", + "recommended_package": "com.google.cloud.pubsub.v1" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 091a7109b..7019ced0f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,891 @@ # Changelog +## [1.144.1](https://github.com/googleapis/java-pubsub/compare/v1.144.0...v1.144.1) (2025-12-22) + + +### Bug Fixes + +* Lower the Subscriber protocol version to disable the streaming pull keepalive feature ([#2652](https://github.com/googleapis/java-pubsub/issues/2652)) ([ca99c2a](https://github.com/googleapis/java-pubsub/commit/ca99c2a2cea8201ea6f71e7383bd6123ec32ebdc)) + +## [1.144.0](https://github.com/googleapis/java-pubsub/compare/v1.143.1...v1.144.0) (2025-12-11) + + +### Features + +* Add keepalive feature to tear down streams in their absence ([#2605](https://github.com/googleapis/java-pubsub/issues/2605)) ([99aca4f](https://github.com/googleapis/java-pubsub/commit/99aca4f3fd1792b02da78320bed39e53dc8af23c)) +* Make v1 the default protocolVersion ([#2623](https://github.com/googleapis/java-pubsub/issues/2623)) ([12f014d](https://github.com/googleapis/java-pubsub/commit/12f014d9030b2472e508fa75a71f43e671a64583)) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.64.2 ([b4b7f83](https://github.com/googleapis/java-pubsub/commit/b4b7f839b2be1ce003667018a10d9c460e4b63b1)) + + +### Dependencies + +* Update actions/checkout action to v5 ([#2613](https://github.com/googleapis/java-pubsub/issues/2613)) ([a69ffdd](https://github.com/googleapis/java-pubsub/commit/a69ffdd9ecb5dae557a847ae7ec5c1a06431bef7)) +* Update actions/checkout action to v6 ([#2619](https://github.com/googleapis/java-pubsub/issues/2619)) ([6cd2bb6](https://github.com/googleapis/java-pubsub/commit/6cd2bb6e9c927dd192833efc7c3549dfa9c84f57)) +* Update dependency com.google.cloud:google-cloud-bigquery to v2.56.0 ([#2617](https://github.com/googleapis/java-pubsub/issues/2617)) ([13d5e3d](https://github.com/googleapis/java-pubsub/commit/13d5e3d8e4069a0e94db3cf825eb821d06cc9345)) +* Update dependency com.google.cloud:google-cloud-core to v2.62.1 ([#2608](https://github.com/googleapis/java-pubsub/issues/2608)) ([fee0500](https://github.com/googleapis/java-pubsub/commit/fee0500bf6a0e309ca5f162810e22a2ca4c5b7eb)) +* Update dependency com.google.cloud:google-cloud-core to v2.62.2 ([#2632](https://github.com/googleapis/java-pubsub/issues/2632)) ([2d567d1](https://github.com/googleapis/java-pubsub/commit/2d567d16f7f546586156e2e2ee17c433fbec5fc2)) +* Update dependency com.google.cloud:google-cloud-storage to v2.60.0 ([#2610](https://github.com/googleapis/java-pubsub/issues/2610)) ([1cae247](https://github.com/googleapis/java-pubsub/commit/1cae247322fff1b6588a4b523e601e41a4284c64)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.54.2 ([#2633](https://github.com/googleapis/java-pubsub/issues/2633)) ([5081aac](https://github.com/googleapis/java-pubsub/commit/5081aac1fc26fcaca004c730982d0e56ed36e32f)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.33.1 ([#2612](https://github.com/googleapis/java-pubsub/issues/2612)) ([e92debc](https://github.com/googleapis/java-pubsub/commit/e92debccf9e87971c2d9fee34baffb4b534f24a3)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.33.2 ([#2625](https://github.com/googleapis/java-pubsub/issues/2625)) ([900783f](https://github.com/googleapis/java-pubsub/commit/900783ff8b135b42088c37b48cdc1a7ee44d4e08)) + + +### Documentation + +* Add the IDENTIFIER field behavior annotation to fields of Cloud Pub/Sub methods that represent a specific identity and need to be sourced with additional care ([b4b7f83](https://github.com/googleapis/java-pubsub/commit/b4b7f839b2be1ce003667018a10d9c460e4b63b1)) + +## [1.143.1](https://github.com/googleapis/java-pubsub/compare/v1.143.0...v1.143.1) (2025-11-13) + + +### Bug Fixes + +* Deflake WaiterTest ([#2600](https://github.com/googleapis/java-pubsub/issues/2600)) ([298c8db](https://github.com/googleapis/java-pubsub/commit/298c8db04616341da040935636b1a04ce5f022a0)) +* **deps:** Update the Java code generator (gapic-generator-java) to 2.64.1 ([b210251](https://github.com/googleapis/java-pubsub/commit/b2102516bf833c2704c85cb348b67bb7cbfdb3a6)) + + +### Dependencies + +* Remove OpenTelemetry semconv dependency ([#2611](https://github.com/googleapis/java-pubsub/issues/2611)) ([240fc37](https://github.com/googleapis/java-pubsub/commit/240fc3784db3860eb2668946fbf861beed2647d7)) +* Update actions/checkout action to v5 ([#2592](https://github.com/googleapis/java-pubsub/issues/2592)) ([6ca466d](https://github.com/googleapis/java-pubsub/commit/6ca466d382ddde9780ae1c8627092d731e314f90)) +* Update dependency com.google.cloud:google-cloud-bigquery to v2.55.3 ([#2602](https://github.com/googleapis/java-pubsub/issues/2602)) ([d14106c](https://github.com/googleapis/java-pubsub/commit/d14106cc278c98d3f954f959e2dd3764ebd20fc2)) +* Update dependency com.google.cloud:google-cloud-core to v2.61.0 ([#2588](https://github.com/googleapis/java-pubsub/issues/2588)) ([244cf75](https://github.com/googleapis/java-pubsub/commit/244cf758bf46f8431a17b1d8e76d1d90c494fc76)) +* Update dependency com.google.cloud:google-cloud-storage to v2.59.0 ([#2603](https://github.com/googleapis/java-pubsub/issues/2603)) ([d9d05bf](https://github.com/googleapis/java-pubsub/commit/d9d05bfa18580cdacdfa9378d30b56ce0ae0d4d2)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.54.1 ([#2609](https://github.com/googleapis/java-pubsub/issues/2609)) ([c99373f](https://github.com/googleapis/java-pubsub/commit/c99373f2d25c6b9f1bcb6aace3c6625375310a16)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.33.0 ([#2587](https://github.com/googleapis/java-pubsub/issues/2587)) ([33724ce](https://github.com/googleapis/java-pubsub/commit/33724cef79e3f7e798c5ef222ee7dff3565555f8)) + +## [1.143.0](https://github.com/googleapis/java-pubsub/compare/v1.142.0...v1.143.0) (2025-10-20) + + +### Features + +* Annotate some resource fields with their corresponding API types ([ab60afa](https://github.com/googleapis/java-pubsub/commit/ab60afa012bd3fc81977ba24c416205ce9280943)) +* Implement SubscriberShutdownSettings ([#2569](https://github.com/googleapis/java-pubsub/issues/2569)) ([8195f6f](https://github.com/googleapis/java-pubsub/commit/8195f6fd3bbd33a178535994a94a79822ae2d4d6)) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.63.0 ([ab60afa](https://github.com/googleapis/java-pubsub/commit/ab60afa012bd3fc81977ba24c416205ce9280943)) +* Update .OwlBot-hermetic.yaml to preserve SubscriberShutdownSettings files ([#2583](https://github.com/googleapis/java-pubsub/issues/2583)) ([f3cf5e7](https://github.com/googleapis/java-pubsub/commit/f3cf5e725c12173ade0275fd0526885309dc553a)) + + +### Dependencies + +* Update actions/checkout action to v5 ([#2576](https://github.com/googleapis/java-pubsub/issues/2576)) ([1375f6d](https://github.com/googleapis/java-pubsub/commit/1375f6d9a71c78d973a71f1df449640a95bc0bc7)) +* Update actions/checkout action to v5 ([#2584](https://github.com/googleapis/java-pubsub/issues/2584)) ([25059ce](https://github.com/googleapis/java-pubsub/commit/25059ce001e3273fcec9d1c40e3b09c89ddf487e)) +* Update dependency com.google.cloud:google-cloud-bigquery to v2.55.2 ([#2582](https://github.com/googleapis/java-pubsub/issues/2582)) ([d0f9673](https://github.com/googleapis/java-pubsub/commit/d0f96737a74453c3db54ee59e98d4b6636cd55d4)) +* Update dependency com.google.cloud:google-cloud-storage to v2.58.1 ([#2580](https://github.com/googleapis/java-pubsub/issues/2580)) ([d156cdb](https://github.com/googleapis/java-pubsub/commit/d156cdb27a8d68b6fa8c97f558df7088e6634320)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.53.0 ([#2589](https://github.com/googleapis/java-pubsub/issues/2589)) ([ce7cb09](https://github.com/googleapis/java-pubsub/commit/ce7cb09ac5e86953815e2ead9ae9202e9b034ba6)) + +## [1.142.0](https://github.com/googleapis/java-pubsub/compare/v1.141.5...v1.142.0) (2025-10-07) + + +### Features + +* Support the protocol version in StreamingPullRequest ([af40810](https://github.com/googleapis/java-pubsub/commit/af40810ea0668ce4e8c4d69bdbb4b281073976d0)) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.62.3 ([af40810](https://github.com/googleapis/java-pubsub/commit/af40810ea0668ce4e8c4d69bdbb4b281073976d0)) + + +### Dependencies + +* Update actions/checkout action to v5 ([#2562](https://github.com/googleapis/java-pubsub/issues/2562)) ([b7fa499](https://github.com/googleapis/java-pubsub/commit/b7fa49968e85dfeba8a84ea29f8ddf9d33ef22c5)) +* Update actions/checkout action to v5 ([#2573](https://github.com/googleapis/java-pubsub/issues/2573)) ([4153dba](https://github.com/googleapis/java-pubsub/commit/4153dbacb386b130780c8d1e5596e3502af8e32b)) +* Update dependency com.google.cloud:google-cloud-bigquery to v2.55.1 ([#2566](https://github.com/googleapis/java-pubsub/issues/2566)) ([66c9ec4](https://github.com/googleapis/java-pubsub/commit/66c9ec4a26b76ca384dce71a8ab6bce8cd34b8a3)) +* Update dependency com.google.cloud:google-cloud-core to v2.60.2 ([#2557](https://github.com/googleapis/java-pubsub/issues/2557)) ([460bcd9](https://github.com/googleapis/java-pubsub/commit/460bcd9158e7058f710f43200b7b7737eb47839c)) +* Update dependency com.google.cloud:google-cloud-core to v2.60.3 ([#2571](https://github.com/googleapis/java-pubsub/issues/2571)) ([ac2c85a](https://github.com/googleapis/java-pubsub/commit/ac2c85ad62525aee236af54f6b5c9b1eacf4d22a)) +* Update dependency com.google.cloud:google-cloud-storage to v2.58.0 ([#2561](https://github.com/googleapis/java-pubsub/issues/2561)) ([0189388](https://github.com/googleapis/java-pubsub/commit/0189388edb4d618d65f33718922ca1b11f71cb15)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.52.3 ([#2572](https://github.com/googleapis/java-pubsub/issues/2572)) ([0785ee4](https://github.com/googleapis/java-pubsub/commit/0785ee490e858c104c420046e0098d81154ae273)) +* Update dependency org.assertj:assertj-core to v3.27.6 ([#2560](https://github.com/googleapis/java-pubsub/issues/2560)) ([c82766a](https://github.com/googleapis/java-pubsub/commit/c82766a9efb2bb4df01fb7fdcb35259db39e05c7)) + +## [1.141.5](https://github.com/googleapis/java-pubsub/compare/v1.141.4...v1.141.5) (2025-09-24) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.62.2 ([c02d304](https://github.com/googleapis/java-pubsub/commit/c02d304f5213410eda5f26fe98c96a5c1d4bf9d8)) + + +### Dependencies + +* Update actions/checkout action to v5 ([#2539](https://github.com/googleapis/java-pubsub/issues/2539)) ([83144e6](https://github.com/googleapis/java-pubsub/commit/83144e6d4110fbe15f4357270a292cfcbcc35dd6)) +* Update actions/github-script action to v8 ([#2542](https://github.com/googleapis/java-pubsub/issues/2542)) ([0e6f0da](https://github.com/googleapis/java-pubsub/commit/0e6f0daccfdca248b3b80ef7dfb0bd7a4baa607c)) +* Update dependency com.google.cloud:google-cloud-bigquery to v2.55.0 ([#2553](https://github.com/googleapis/java-pubsub/issues/2553)) ([15b9e66](https://github.com/googleapis/java-pubsub/commit/15b9e66f27cd6e57b808b96f3e15f08b1f0d7727)) +* Update dependency com.google.cloud:google-cloud-core to v2.60.1 ([#2543](https://github.com/googleapis/java-pubsub/issues/2543)) ([fbb45ce](https://github.com/googleapis/java-pubsub/commit/fbb45cee9e3740f8ac94b5fbaa65b97b8db09b1e)) +* Update dependency com.google.cloud:google-cloud-storage to v2.57.0 ([#2547](https://github.com/googleapis/java-pubsub/issues/2547)) ([133f8c7](https://github.com/googleapis/java-pubsub/commit/133f8c7995880c2d1e75b69d61c50254d4f9fede)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.52.2 ([#2558](https://github.com/googleapis/java-pubsub/issues/2558)) ([0623ac5](https://github.com/googleapis/java-pubsub/commit/0623ac54f735b076ccee165fc59a4a088309766a)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.32.1 ([#2551](https://github.com/googleapis/java-pubsub/issues/2551)) ([49722cb](https://github.com/googleapis/java-pubsub/commit/49722cb65e3b7cad01cf4389e1cf716a6ac1eb03)) +* Update googleapis/sdk-platform-java action to v2.62.2 ([#2559](https://github.com/googleapis/java-pubsub/issues/2559)) ([3f1d901](https://github.com/googleapis/java-pubsub/commit/3f1d90186899efe035179363408979a372e85a56)) + +## [1.141.4](https://github.com/googleapis/java-pubsub/compare/v1.141.3...v1.141.4) (2025-09-11) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.62.1 ([ac08d5f](https://github.com/googleapis/java-pubsub/commit/ac08d5f6ead8071ab0e068e32fd5ae0ae2731c34)) + + +### Dependencies + +* Update actions/checkout action to v5 ([#2531](https://github.com/googleapis/java-pubsub/issues/2531)) ([f687f11](https://github.com/googleapis/java-pubsub/commit/f687f117fc435ee8b1f15b8802ecc989f1e2747e)) +* Update actions/setup-java action to v5 ([#2535](https://github.com/googleapis/java-pubsub/issues/2535)) ([2ed87d2](https://github.com/googleapis/java-pubsub/commit/2ed87d2b7e28af99cfda00b4b69fb5cb2f448584)) +* Update dependency com.google.cloud:google-cloud-bigquery to v2.54.2 ([#2538](https://github.com/googleapis/java-pubsub/issues/2538)) ([10a8283](https://github.com/googleapis/java-pubsub/commit/10a8283292e58b0c73b9c57ff36ddd71b8b83467)) +* Update dependency com.google.cloud:google-cloud-storage to v2.56.0 ([#2536](https://github.com/googleapis/java-pubsub/issues/2536)) ([80d9ca1](https://github.com/googleapis/java-pubsub/commit/80d9ca10d3a2656852422858f032bb6629102cfb)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.52.1 ([#2544](https://github.com/googleapis/java-pubsub/issues/2544)) ([9fe7550](https://github.com/googleapis/java-pubsub/commit/9fe75506eedf42f31b95ddf2699cf332334caf0d)) +* Update googleapis/sdk-platform-java action to v2.62.1 ([#2545](https://github.com/googleapis/java-pubsub/issues/2545)) ([17f28ef](https://github.com/googleapis/java-pubsub/commit/17f28ef853a21303346a305e4d8e9b63a916edc7)) + +## [1.141.3](https://github.com/googleapis/java-pubsub/compare/v1.141.2...v1.141.3) (2025-08-19) + + +### Bug Fixes + +* Use the system executor instead of a separate thread pool for EOD ack/modack callbacks ([#2526](https://github.com/googleapis/java-pubsub/issues/2526)) ([ffeb017](https://github.com/googleapis/java-pubsub/commit/ffeb017a58ca486688105738f180d70df33a74de)) + + +### Dependencies + +* Update actions/checkout action to v5 ([#2520](https://github.com/googleapis/java-pubsub/issues/2520)) ([409398a](https://github.com/googleapis/java-pubsub/commit/409398a40f71866d5a84b4542d582777ee240a08)) +* Update dependency com.google.cloud:google-cloud-bigquery to v2.54.1 ([#2523](https://github.com/googleapis/java-pubsub/issues/2523)) ([0678a74](https://github.com/googleapis/java-pubsub/commit/0678a74dc22f73cd8ec8c4893c1a8dd60449b128)) +* Update dependency com.google.cloud:google-cloud-core to v2.60.0 ([#2527](https://github.com/googleapis/java-pubsub/issues/2527)) ([0166e21](https://github.com/googleapis/java-pubsub/commit/0166e21012f0bc2ccb2e832d6f27e60ad3382456)) +* Update dependency com.google.cloud:google-cloud-storage to v2.55.0 ([#2517](https://github.com/googleapis/java-pubsub/issues/2517)) ([b67acf1](https://github.com/googleapis/java-pubsub/commit/b67acf1294249be308568f49f287897ae55ced08)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.52.0 ([#2528](https://github.com/googleapis/java-pubsub/issues/2528)) ([e424d11](https://github.com/googleapis/java-pubsub/commit/e424d11ffe0fbe242c59dec44ac1af2f9bd80173)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.32.0 ([#2524](https://github.com/googleapis/java-pubsub/issues/2524)) ([44ff087](https://github.com/googleapis/java-pubsub/commit/44ff0873171f8fe2e7cd79b4550f8ec94ea2c99a)) +* Update dependency org.assertj:assertj-core to v3.27.4 ([#2518](https://github.com/googleapis/java-pubsub/issues/2518)) ([67695bc](https://github.com/googleapis/java-pubsub/commit/67695bc50eafc475866eb6c300b3359083ecfe00)) + +## [1.141.2](https://github.com/googleapis/java-pubsub/compare/v1.141.1...v1.141.2) (2025-08-05) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.61.0 ([42eb599](https://github.com/googleapis/java-pubsub/commit/42eb5992557457a5ae4512334267113266c220ac)) +* Use a separate cached thread pool for handling ack and modack response callback for EOD-enabled subscriptions ([#2505](https://github.com/googleapis/java-pubsub/issues/2505)) ([224c269](https://github.com/googleapis/java-pubsub/commit/224c269e3bd0ae4cfc4b24ac85495911b8e2b90c)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.54.0 ([#2506](https://github.com/googleapis/java-pubsub/issues/2506)) ([6bf8e62](https://github.com/googleapis/java-pubsub/commit/6bf8e62b1144568292e832dc8031a70a2c5b9ad7)) +* Update dependency com.google.cloud:google-cloud-core to v2.59.0 ([#2507](https://github.com/googleapis/java-pubsub/issues/2507)) ([070cf07](https://github.com/googleapis/java-pubsub/commit/070cf07b1d529c34d4f633b37ce1d35d14768325)) +* Update dependency com.google.cloud:google-cloud-storage to v2.54.0 ([#2510](https://github.com/googleapis/java-pubsub/issues/2510)) ([0fd589e](https://github.com/googleapis/java-pubsub/commit/0fd589e2ee80730b442f569b770fe16208feb4ba)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.51.0 ([#2508](https://github.com/googleapis/java-pubsub/issues/2508)) ([a7be2a7](https://github.com/googleapis/java-pubsub/commit/a7be2a74327499b1acb2fe159e6f7465d6c8f798)) +* Update googleapis/sdk-platform-java action to v2.61.0 ([#2509](https://github.com/googleapis/java-pubsub/issues/2509)) ([32df6b6](https://github.com/googleapis/java-pubsub/commit/32df6b694f9aee2cf7132c2d817f9736d69060f3)) + +## [1.141.1](https://github.com/googleapis/java-pubsub/compare/v1.141.0...v1.141.1) (2025-07-28) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.60.2 ([7afae21](https://github.com/googleapis/java-pubsub/commit/7afae21e5e3df16742646363ca199ec14c42bc21)) +* Remove element_count_limit and request_byte_limit from pubsub_gapic.yaml ([7afae21](https://github.com/googleapis/java-pubsub/commit/7afae21e5e3df16742646363ca199ec14c42bc21)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.53.0 ([#2489](https://github.com/googleapis/java-pubsub/issues/2489)) ([5a454b9](https://github.com/googleapis/java-pubsub/commit/5a454b9c36419dcfaf79edb1ec1d066b20836f87)) +* Update dependency com.google.cloud:google-cloud-core to v2.58.2 ([#2493](https://github.com/googleapis/java-pubsub/issues/2493)) ([9a1c17e](https://github.com/googleapis/java-pubsub/commit/9a1c17e50e5fc9a807532d289a7f6e8b5d412f59)) +* Update dependency com.google.cloud:google-cloud-storage to v2.53.3 ([#2486](https://github.com/googleapis/java-pubsub/issues/2486)) ([9416cc9](https://github.com/googleapis/java-pubsub/commit/9416cc99f826b80412b0e5eba0068a35b82390c6)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.50.2 ([#2494](https://github.com/googleapis/java-pubsub/issues/2494)) ([9f73ef0](https://github.com/googleapis/java-pubsub/commit/9f73ef0dcaabb4a536741336eb6cfc6601b75f65)) +* Update dependency org.xerial.snappy:snappy-java to v1.1.10.8 ([#2492](https://github.com/googleapis/java-pubsub/issues/2492)) ([a55e214](https://github.com/googleapis/java-pubsub/commit/a55e214ffad8371eb82a1d49b8b1eadcacf15392)) + +## [1.141.0](https://github.com/googleapis/java-pubsub/compare/v1.140.2...v1.141.0) (2025-07-11) + + +### Features + +* Add MessageTransformationFailureReason to IngestionFailureEvent ([8271399](https://github.com/googleapis/java-pubsub/commit/8271399cc6348f69ba034b676cce2aa7592122a4)) +* Next release from main branch is 1.141.0 ([#2481](https://github.com/googleapis/java-pubsub/issues/2481)) ([bd9f385](https://github.com/googleapis/java-pubsub/commit/bd9f3850efa77ce759b4f281aecd9645666cb0f7)) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.60.1 ([c9ef2cd](https://github.com/googleapis/java-pubsub/commit/c9ef2cda2c6ad20d5e57fe3ccf69f845f7ef36b7)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.52.0 ([#2467](https://github.com/googleapis/java-pubsub/issues/2467)) ([fe08a6f](https://github.com/googleapis/java-pubsub/commit/fe08a6f1f6ee18e97c752f82786016999f6ab12c)) +* Update dependency com.google.cloud:google-cloud-core to v2.58.1 ([#2476](https://github.com/googleapis/java-pubsub/issues/2476)) ([96a2354](https://github.com/googleapis/java-pubsub/commit/96a23544fce609c7b19a00638a767926c304d3f8)) +* Update dependency com.google.cloud:google-cloud-storage to v2.53.2 ([#2469](https://github.com/googleapis/java-pubsub/issues/2469)) ([fa51a01](https://github.com/googleapis/java-pubsub/commit/fa51a01ed39393b7cad25fb39a1c87099def830a)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.50.1 ([#2477](https://github.com/googleapis/java-pubsub/issues/2477)) ([e1657cb](https://github.com/googleapis/java-pubsub/commit/e1657cbeae5f2c3c9680ef6b5ff2b1ea5549f4ba)) +* Update googleapis/sdk-platform-java action to v2.60.0 ([#2471](https://github.com/googleapis/java-pubsub/issues/2471)) ([2b0e8e0](https://github.com/googleapis/java-pubsub/commit/2b0e8e0b58432f0975c15d0d01f185dc81de6caf)) +* Update googleapis/sdk-platform-java action to v2.60.1 ([#2475](https://github.com/googleapis/java-pubsub/issues/2475)) ([e7c0b5d](https://github.com/googleapis/java-pubsub/commit/e7c0b5d44f0ad53adfac6ec26572baad54d04dee)) + +## [1.140.2](https://github.com/googleapis/java-pubsub/compare/v1.140.1...v1.140.2) (2025-06-25) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.51.0 ([#2457](https://github.com/googleapis/java-pubsub/issues/2457)) ([d74215a](https://github.com/googleapis/java-pubsub/commit/d74215a6f1e641ba75997e2e43bef348fb9c4a3c)) +* Update dependency com.google.cloud:google-cloud-core to v2.58.0 ([#2443](https://github.com/googleapis/java-pubsub/issues/2443)) ([d4599d9](https://github.com/googleapis/java-pubsub/commit/d4599d93b780b6ef20ad44582aeb8c1cd35f99d4)) +* Update dependency com.google.cloud:google-cloud-storage to v2.53.1 ([#2452](https://github.com/googleapis/java-pubsub/issues/2452)) ([b4af237](https://github.com/googleapis/java-pubsub/commit/b4af2370bb875ee8d0047f67a72e8c6d62547a12)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.50.0 ([#2461](https://github.com/googleapis/java-pubsub/issues/2461)) ([715916a](https://github.com/googleapis/java-pubsub/commit/715916aeedbe696b9c4b922e4fb2bbf76f8b201a)) +* Update dependency com.google.cloud.opentelemetry:exporter-trace to v0.36.0 ([#2440](https://github.com/googleapis/java-pubsub/issues/2440)) ([50a3eb9](https://github.com/googleapis/java-pubsub/commit/50a3eb9276b4711b8161a021d055238abc0e20de)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.31.1 ([#2442](https://github.com/googleapis/java-pubsub/issues/2442)) ([a0be1bb](https://github.com/googleapis/java-pubsub/commit/a0be1bbe601575f05fb00f6d616b51de8f23238d)) +* Update dependency org.easymock:easymock to v5.6.0 ([#2069](https://github.com/googleapis/java-pubsub/issues/2069)) ([5f144a4](https://github.com/googleapis/java-pubsub/commit/5f144a461c6749ec7e2cf900399f386094451244)) +* Update googleapis/sdk-platform-java action to v2.60.0 ([#2462](https://github.com/googleapis/java-pubsub/issues/2462)) ([ee8e5c7](https://github.com/googleapis/java-pubsub/commit/ee8e5c7166f2ac4eb706241e42f4ce84afcc2668)) +* Update googleapis/sdk-platform-java action to v2.60.0 ([#2464](https://github.com/googleapis/java-pubsub/issues/2464)) ([7a0af37](https://github.com/googleapis/java-pubsub/commit/7a0af37c01e747d8f40145b7b4438eaadab9e01a)) + +## [1.140.1](https://github.com/googleapis/java-pubsub/compare/v1.140.0...v1.140.1) (2025-06-05) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.59.0 ([0eece50](https://github.com/googleapis/java-pubsub/commit/0eece5012fbaf887a5c062beba433dbb30edbf43)) + + +### Dependencies + +* Update dependency com.google.cloud:sdk-platform-java-config to v3.49.0 ([#2448](https://github.com/googleapis/java-pubsub/issues/2448)) ([d89a14d](https://github.com/googleapis/java-pubsub/commit/d89a14d6569fc914d877cc24d66c42684a812eba)) + +## [1.140.0](https://github.com/googleapis/java-pubsub/compare/v1.139.4...v1.140.0) (2025-06-03) + + +### Features + +* Add SchemaViolationReason to IngestionFailureEvent ([21cc376](https://github.com/googleapis/java-pubsub/commit/21cc3764aaa6fc05eb4a5078a72dae30694fba91)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.50.1 ([#2435](https://github.com/googleapis/java-pubsub/issues/2435)) ([b37c557](https://github.com/googleapis/java-pubsub/commit/b37c5573e1d0d7eada4ce4ec6a052521ea11cff1)) +* Update dependency com.google.cloud:google-cloud-storage to v2.52.3 ([#2436](https://github.com/googleapis/java-pubsub/issues/2436)) ([4f309d1](https://github.com/googleapis/java-pubsub/commit/4f309d151d4bd584a33a0bb8882d0614a1b9d533)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.49.0 ([#2444](https://github.com/googleapis/java-pubsub/issues/2444)) ([a59135c](https://github.com/googleapis/java-pubsub/commit/a59135c6859d0aa5c247a6a1f60872c959123cc7)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.49.0 ([#2446](https://github.com/googleapis/java-pubsub/issues/2446)) ([6434be1](https://github.com/googleapis/java-pubsub/commit/6434be16560fdc8797b7c930b06df38c0972c96c)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.31.0 ([#2430](https://github.com/googleapis/java-pubsub/issues/2430)) ([232fac1](https://github.com/googleapis/java-pubsub/commit/232fac1c47e0d3680dcc8d56b69d65ed0d379dde)) +* Update googleapis/sdk-platform-java action to v2.59.0 ([#2445](https://github.com/googleapis/java-pubsub/issues/2445)) ([12d4cfb](https://github.com/googleapis/java-pubsub/commit/12d4cfb7d67dbb163b3a545ea2ebae450e88283d)) + + +### Documentation + +* **sample:** Update the subscribe with error listener and subscribe with exactly-once samples ([#2437](https://github.com/googleapis/java-pubsub/issues/2437)) ([17c142b](https://github.com/googleapis/java-pubsub/commit/17c142b20efb79f9c71fc6306cb3ee4e15c5e06f)) + +## [1.139.4](https://github.com/googleapis/java-pubsub/compare/v1.139.3...v1.139.4) (2025-05-15) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.57.0 ([017eb0f](https://github.com/googleapis/java-pubsub/commit/017eb0f78423fde3edd42a07677df49512085633)) +* **deps:** Update the Java code generator (gapic-generator-java) to 2.58.0 ([3713edb](https://github.com/googleapis/java-pubsub/commit/3713edb9420f792b7c7ad4e430ca05b5942656ff)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.50.0 ([#2422](https://github.com/googleapis/java-pubsub/issues/2422)) ([993b2d0](https://github.com/googleapis/java-pubsub/commit/993b2d06ce6b45bb72faa9d6959cddc14a9cf60e)) +* Update dependency com.google.cloud:google-cloud-core to v2.55.0 ([#2413](https://github.com/googleapis/java-pubsub/issues/2413)) ([3e181e7](https://github.com/googleapis/java-pubsub/commit/3e181e7c4469eadcf6f148ee0a30aae1cfa825f3)) +* Update dependency com.google.cloud:google-cloud-core to v2.56.0 ([#2427](https://github.com/googleapis/java-pubsub/issues/2427)) ([b2a3e35](https://github.com/googleapis/java-pubsub/commit/b2a3e35ced2d1715c37207f98740889635326dc1)) +* Update dependency com.google.cloud:google-cloud-storage to v2.52.2 ([#2421](https://github.com/googleapis/java-pubsub/issues/2421)) ([1224ee5](https://github.com/googleapis/java-pubsub/commit/1224ee51da27e447560076b0d51ba90515566bd9)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.47.0 ([#2418](https://github.com/googleapis/java-pubsub/issues/2418)) ([5f87661](https://github.com/googleapis/java-pubsub/commit/5f876612eb4a54faec3af2c9043aec0adf51e2ec)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.48.0 ([#2428](https://github.com/googleapis/java-pubsub/issues/2428)) ([cfa91fa](https://github.com/googleapis/java-pubsub/commit/cfa91fa0e85f3f1e517627da3e5befcd46f0803a)) +* Update dependency com.google.cloud.opentelemetry:exporter-trace to v0.34.0 ([#2376](https://github.com/googleapis/java-pubsub/issues/2376)) ([06768cd](https://github.com/googleapis/java-pubsub/commit/06768cd1ac86ae7ae7b91b020cc174b4423e1b9a)) + + +### Documentation + +* **sample:** Add samples for topic and subscription SMTs ([#2388](https://github.com/googleapis/java-pubsub/issues/2388)) ([f35de28](https://github.com/googleapis/java-pubsub/commit/f35de28396fda595e6ea68c1755a4253d6b097d6)) + +## [1.139.3](https://github.com/googleapis/java-pubsub/compare/v1.139.2...v1.139.3) (2025-05-06) + + +### Dependencies + +* Update dependency com.google.cloud:sdk-platform-java-config to v3.47.0 ([#2414](https://github.com/googleapis/java-pubsub/issues/2414)) ([d78823f](https://github.com/googleapis/java-pubsub/commit/d78823ffc93307c14f44e992cf13e926880fbe94)) +* Update googleapis/sdk-platform-java action to v2.57.0 ([#2415](https://github.com/googleapis/java-pubsub/issues/2415)) ([1ddf9b8](https://github.com/googleapis/java-pubsub/commit/1ddf9b81e432aeb9af9e6b8bb2d2e9786159faba)) + +## [1.139.2](https://github.com/googleapis/java-pubsub/compare/v1.139.1...v1.139.2) (2025-05-05) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.56.3 ([2b928a8](https://github.com/googleapis/java-pubsub/commit/2b928a8a946ebf84470bd2e2bb064b52c4f11ea2)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.49.2 ([#2399](https://github.com/googleapis/java-pubsub/issues/2399)) ([ff48708](https://github.com/googleapis/java-pubsub/commit/ff4870815864a6216a1ce4b606fcec3df7f58fd4)) +* Update dependency com.google.cloud:google-cloud-core to v2.54.3 ([#2393](https://github.com/googleapis/java-pubsub/issues/2393)) ([0ffa26a](https://github.com/googleapis/java-pubsub/commit/0ffa26ac3abceabcfba5d57cdb36f27f5a164ce3)) +* Update dependency com.google.cloud:google-cloud-storage to v2.52.1 ([#2396](https://github.com/googleapis/java-pubsub/issues/2396)) ([283a6e1](https://github.com/googleapis/java-pubsub/commit/283a6e14f61764c210ed23f4ada23ad21bbdb306)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.46.3 ([#2406](https://github.com/googleapis/java-pubsub/issues/2406)) ([8963ed0](https://github.com/googleapis/java-pubsub/commit/8963ed0acbe8bf3a110a05ced27979f102cd3035)) + +## [1.139.1](https://github.com/googleapis/java-pubsub/compare/v1.139.0...v1.139.1) (2025-04-25) + + +### Dependencies + +* Update dependency com.google.cloud:sdk-platform-java-config to v3.46.2 ([#2394](https://github.com/googleapis/java-pubsub/issues/2394)) ([17f7fd7](https://github.com/googleapis/java-pubsub/commit/17f7fd77553a7ccd55029edb74829f1fe86a680c)) + +## [1.139.0](https://github.com/googleapis/java-pubsub/compare/v1.138.0...v1.139.0) (2025-04-25) + + +### Features + +* Generate renamed go pubsub admin clients ([4472d7b](https://github.com/googleapis/java-pubsub/commit/4472d7baff4894a7c5cf0efc7eadd83ec8801d7a)) + + +### Bug Fixes + +* Add retries for ack and modack operations that don't return with a metadata map ([#2385](https://github.com/googleapis/java-pubsub/issues/2385)) ([00070b7](https://github.com/googleapis/java-pubsub/commit/00070b74e54fcb62b91a4d72a88d3b20b2425a94)) +* **deps:** Update the Java code generator (gapic-generator-java) to 2.56.2 ([4472d7b](https://github.com/googleapis/java-pubsub/commit/4472d7baff4894a7c5cf0efc7eadd83ec8801d7a)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.49.0 ([#2380](https://github.com/googleapis/java-pubsub/issues/2380)) ([405e485](https://github.com/googleapis/java-pubsub/commit/405e485bbe503357a0616ec72de8fea00cb91c9c)) +* Update dependency com.google.cloud:google-cloud-core to v2.53.1 ([#2365](https://github.com/googleapis/java-pubsub/issues/2365)) ([748058f](https://github.com/googleapis/java-pubsub/commit/748058fc018e3a36dedd576404037bf8c016c794)) +* Update dependency com.google.cloud:google-cloud-storage to v2.50.0 ([#2372](https://github.com/googleapis/java-pubsub/issues/2372)) ([b81164a](https://github.com/googleapis/java-pubsub/commit/b81164aa5682c8046ebfa44e1e47579e4c3fcd28)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.30.1 ([#2364](https://github.com/googleapis/java-pubsub/issues/2364)) ([05eb9c0](https://github.com/googleapis/java-pubsub/commit/05eb9c0ce5179ff9e8656544258adc02a59336e5)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.30.2 ([#2383](https://github.com/googleapis/java-pubsub/issues/2383)) ([4119cc0](https://github.com/googleapis/java-pubsub/commit/4119cc03895873f94ddef10850753fb59384a8fc)) + + +### Documentation + +* Update documentation for JavaScriptUDF to indicate that the `message_id` metadata field is optional instead of required ([f904786](https://github.com/googleapis/java-pubsub/commit/f904786f87e80cdc09bba947cd53e42dffb7132e)) + +## [1.138.0](https://github.com/googleapis/java-pubsub/compare/v1.137.1...v1.138.0) (2025-03-14) + + +### Features + +* Deprecate `enabled` field for message transforms and add `disabled` field ([76b2a3d](https://github.com/googleapis/java-pubsub/commit/76b2a3dc1f001dfeb3f8974a4cc4de843b7383bc)) +* Next release from main branch is 1.138.0 ([#2361](https://github.com/googleapis/java-pubsub/issues/2361)) ([b6ba56c](https://github.com/googleapis/java-pubsub/commit/b6ba56c04619660d2660a660eaacbda7de9f8608)) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.55.1 ([76b2a3d](https://github.com/googleapis/java-pubsub/commit/76b2a3dc1f001dfeb3f8974a4cc4de843b7383bc)) +* Prevent excessive string parsing when publishing and receiving messages to improve performance ([#2317](https://github.com/googleapis/java-pubsub/issues/2317)) ([07b1350](https://github.com/googleapis/java-pubsub/commit/07b135001b4726c9bafafe90c80d369f25f04956)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.48.1 ([#2356](https://github.com/googleapis/java-pubsub/issues/2356)) ([7d3d2e4](https://github.com/googleapis/java-pubsub/commit/7d3d2e4690539ebbe7ab521c2c345b06cba766ea)) +* Update dependency com.google.cloud:google-cloud-storage to v2.49.0 ([#2358](https://github.com/googleapis/java-pubsub/issues/2358)) ([81d3435](https://github.com/googleapis/java-pubsub/commit/81d34352d332ee9c4935e7908b6b9a2383d3a8ba)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.45.1 ([#2366](https://github.com/googleapis/java-pubsub/issues/2366)) ([15899d1](https://github.com/googleapis/java-pubsub/commit/15899d127131747c51c71c94d66ff581f70278f3)) +* Update googleapis/sdk-platform-java action to v2.55.1 ([#2367](https://github.com/googleapis/java-pubsub/issues/2367)) ([de6f84a](https://github.com/googleapis/java-pubsub/commit/de6f84a43a27e954c0dc635158c43c5db4d07dfa)) + +## [1.137.1](https://github.com/googleapis/java-pubsub/compare/v1.137.0...v1.137.1) (2025-02-26) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.54.0 ([ccf670f](https://github.com/googleapis/java-pubsub/commit/ccf670f9dc755770d40b9d1bf2c870c0452aa39e)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.48.0 ([#2343](https://github.com/googleapis/java-pubsub/issues/2343)) ([3bbd7e1](https://github.com/googleapis/java-pubsub/commit/3bbd7e1e812a7a00cfff36a0c1d8a5212d4e134a)) +* Update dependency com.google.cloud:google-cloud-core to v2.52.0 ([#2348](https://github.com/googleapis/java-pubsub/issues/2348)) ([f0977b4](https://github.com/googleapis/java-pubsub/commit/f0977b40479823ce5b7e90f864261f11115610ca)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.44.0 ([#2349](https://github.com/googleapis/java-pubsub/issues/2349)) ([90ed10b](https://github.com/googleapis/java-pubsub/commit/90ed10b474f7a59286365d8a6ad676d9a4f4113b)) +* Update googleapis/sdk-platform-java action to v2.54.0 ([#2347](https://github.com/googleapis/java-pubsub/issues/2347)) ([ac8db2d](https://github.com/googleapis/java-pubsub/commit/ac8db2dda6cd5f0bdf689052bb37cb2eaab08c46)) + +## [1.137.0](https://github.com/googleapis/java-pubsub/compare/v1.136.1...v1.137.0) (2025-02-12) + + +### Features + +* Add support for message transforms to Topic and Subscription ([3889a05](https://github.com/googleapis/java-pubsub/commit/3889a05a5c5d7479d3cc6b6dc0b0c425d41efd5d)) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.53.0 ([b952e58](https://github.com/googleapis/java-pubsub/commit/b952e5826748bc680936a79b14d75f5873e6db06)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.47.0 ([#2331](https://github.com/googleapis/java-pubsub/issues/2331)) ([216feef](https://github.com/googleapis/java-pubsub/commit/216feef976595cd03e282f8d8effa2ac8430c419)) +* Update dependency com.google.cloud:google-cloud-core to v2.51.0 ([#2338](https://github.com/googleapis/java-pubsub/issues/2338)) ([ac2403e](https://github.com/googleapis/java-pubsub/commit/ac2403ecd21aad0d44c5b06fce2853f9a433adbd)) +* Update dependency com.google.cloud:google-cloud-storage to v2.48.1 ([#2332](https://github.com/googleapis/java-pubsub/issues/2332)) ([23fd7a8](https://github.com/googleapis/java-pubsub/commit/23fd7a8f4ab2438b72f3a6da5613f5deb0ac307e)) +* Update dependency com.google.cloud:google-cloud-storage to v2.48.2 ([#2341](https://github.com/googleapis/java-pubsub/issues/2341)) ([eeb99a9](https://github.com/googleapis/java-pubsub/commit/eeb99a997fa2e7154dcc228b964ff47867738122)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.43.0 ([#2336](https://github.com/googleapis/java-pubsub/issues/2336)) ([996f4eb](https://github.com/googleapis/java-pubsub/commit/996f4ebdfa6b5cb38dbe37d4be981ca7d941bc0d)) + + +### Documentation + +* A comment for field `code` in message `.google.pubsub.v1.JavaScriptUDF` is changed ([3889a05](https://github.com/googleapis/java-pubsub/commit/3889a05a5c5d7479d3cc6b6dc0b0c425d41efd5d)) + +## [1.136.1](https://github.com/googleapis/java-pubsub/compare/v1.136.0...v1.136.1) (2025-01-28) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.52.0 ([0d8c8bf](https://github.com/googleapis/java-pubsub/commit/0d8c8bffc85804d5a64ec0d35893ad9e0062807e)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.46.0 ([#2309](https://github.com/googleapis/java-pubsub/issues/2309)) ([97bd44e](https://github.com/googleapis/java-pubsub/commit/97bd44e04c440320e45c2b4336677d8d266a39a2)) +* Update dependency com.google.cloud:google-cloud-core to v2.49.1 ([#2300](https://github.com/googleapis/java-pubsub/issues/2300)) ([cf2822b](https://github.com/googleapis/java-pubsub/commit/cf2822b7363e13e4730753cbb5ca3510c77f5f55)) +* Update dependency com.google.cloud:google-cloud-core to v2.50.0 ([#2321](https://github.com/googleapis/java-pubsub/issues/2321)) ([5c40bcd](https://github.com/googleapis/java-pubsub/commit/5c40bcd4d401d919b990e6a7d3151660ead76eb0)) +* Update dependency com.google.cloud:google-cloud-storage to v2.47.0 ([#2303](https://github.com/googleapis/java-pubsub/issues/2303)) ([707f842](https://github.com/googleapis/java-pubsub/commit/707f84271559dfe96fa11edffb307df145ceea47)) +* Update dependency com.google.cloud:google-cloud-storage to v2.48.0 ([#2322](https://github.com/googleapis/java-pubsub/issues/2322)) ([93b9419](https://github.com/googleapis/java-pubsub/commit/93b9419d210cedeab03f408dab4c74c9fcf18b59)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.42.0 ([#2324](https://github.com/googleapis/java-pubsub/issues/2324)) ([84e8562](https://github.com/googleapis/java-pubsub/commit/84e856250867b2441cceed2315c312bd661c353c)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.29.3 ([#2302](https://github.com/googleapis/java-pubsub/issues/2302)) ([9e90e2c](https://github.com/googleapis/java-pubsub/commit/9e90e2ca26b2aea48563859358dde84640eb40d0)) +* Update dependency org.assertj:assertj-core to v3.27.3 ([#2313](https://github.com/googleapis/java-pubsub/issues/2313)) ([5e80b57](https://github.com/googleapis/java-pubsub/commit/5e80b57d2ffd58e6a0bb9f5e0e78bb46d6fe2530)) +* Update googleapis/sdk-platform-java action to v2.52.0 ([#2320](https://github.com/googleapis/java-pubsub/issues/2320)) ([01dd3de](https://github.com/googleapis/java-pubsub/commit/01dd3deaef392aa51c60d28c1f3cbb81bff2a5cb)) + + +### Documentation + +* Add samples and tests for ingestion from Kafka sources ([#2315](https://github.com/googleapis/java-pubsub/issues/2315)) ([eea603b](https://github.com/googleapis/java-pubsub/commit/eea603ba3f05be85d58a69cd5c3469e2088a7446)) + +## [1.136.0](https://github.com/googleapis/java-pubsub/compare/v1.135.0...v1.136.0) (2025-01-10) + + +### Features + +* Add Kafka-based sources to IngestionDataSourceSettings proto and IngestionFailureEvent proto ([2947169](https://github.com/googleapis/java-pubsub/commit/2947169c009fa553202bc1e44276cf5a7954cd96)) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.51.1 ([9c166f7](https://github.com/googleapis/java-pubsub/commit/9c166f76db78b0c6b2e0218460d5c0336102717a)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.45.0 ([#2292](https://github.com/googleapis/java-pubsub/issues/2292)) ([79a8982](https://github.com/googleapis/java-pubsub/commit/79a89823c6cbcc9a718f44856040b1525863cab6)) +* Update dependency com.google.cloud:google-cloud-storage to v2.46.0 ([#2291](https://github.com/googleapis/java-pubsub/issues/2291)) ([7b60884](https://github.com/googleapis/java-pubsub/commit/7b60884cc4e17df616155f7530a056c4c5e3af29)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.41.1 ([#2301](https://github.com/googleapis/java-pubsub/issues/2301)) ([53c1a8a](https://github.com/googleapis/java-pubsub/commit/53c1a8abdd3114e0f432b3b6618133fb93e44636)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.29.2 ([#2294](https://github.com/googleapis/java-pubsub/issues/2294)) ([48d4ac1](https://github.com/googleapis/java-pubsub/commit/48d4ac1ab2f0b9f9005292977c288f55322dd16a)) +* Update dependency org.assertj:assertj-core to v3.27.2 ([#2296](https://github.com/googleapis/java-pubsub/issues/2296)) ([e5b68a5](https://github.com/googleapis/java-pubsub/commit/e5b68a563aa6ebb2bd69665624fc7fc6aef50b64)) +* Update googleapis/sdk-platform-java action to v2.51.1 ([#2298](https://github.com/googleapis/java-pubsub/issues/2298)) ([16e0144](https://github.com/googleapis/java-pubsub/commit/16e0144d83c149b60e7b8fca6c4e61546d93462f)) + +## [1.135.0](https://github.com/googleapis/java-pubsub/compare/v1.134.2...v1.135.0) (2024-12-12) + + +### Features + +* Introduce `java.time` variables and methods ([#2271](https://github.com/googleapis/java-pubsub/issues/2271)) ([7edfd9c](https://github.com/googleapis/java-pubsub/commit/7edfd9c315405c7703509fb9b7bc4f0d2686d870)) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.51.0 ([0b0d52c](https://github.com/googleapis/java-pubsub/commit/0b0d52c8fca179a913a8b04d76b44748f1886f45)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.44.0 ([#2270](https://github.com/googleapis/java-pubsub/issues/2270)) ([a5f70a9](https://github.com/googleapis/java-pubsub/commit/a5f70a9c2397a2c8f4642729922b742a3df01ed6)) +* Update dependency com.google.cloud:google-cloud-core to v2.48.0 ([#2263](https://github.com/googleapis/java-pubsub/issues/2263)) ([d7e5588](https://github.com/googleapis/java-pubsub/commit/d7e55886b62826f54f0bb12a6bfa4ef67dee6521)) +* Update dependency com.google.cloud:google-cloud-core to v2.49.0 ([#2285](https://github.com/googleapis/java-pubsub/issues/2285)) ([cd94a19](https://github.com/googleapis/java-pubsub/commit/cd94a1987271eea4d7744286a7daeb071bb9456a)) +* Update dependency com.google.cloud:google-cloud-storage to v2.45.0 ([#2268](https://github.com/googleapis/java-pubsub/issues/2268)) ([80a09e6](https://github.com/googleapis/java-pubsub/commit/80a09e69111229080c413eff8426bd0b3d50458d)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.41.0 ([#2286](https://github.com/googleapis/java-pubsub/issues/2286)) ([0c0a1b9](https://github.com/googleapis/java-pubsub/commit/0c0a1b9231953e5c9878e0dfcf5a55d01794f6c4)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.29.0 ([#2276](https://github.com/googleapis/java-pubsub/issues/2276)) ([54ef88d](https://github.com/googleapis/java-pubsub/commit/54ef88d7f822d8130717e3be9bcf7fe9901d6cb0)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.29.1 ([#2279](https://github.com/googleapis/java-pubsub/issues/2279)) ([de3c9e1](https://github.com/googleapis/java-pubsub/commit/de3c9e1c7f2fe6413d0ae7a18955f16611df95c6)) +* Update googleapis/sdk-platform-java action to v2.51.0 ([#2284](https://github.com/googleapis/java-pubsub/issues/2284)) ([0be820e](https://github.com/googleapis/java-pubsub/commit/0be820e2044253bf484d88d703ce2dfade7aa137)) + + +### Documentation + +* Fix repository URL in samples README ([#2280](https://github.com/googleapis/java-pubsub/issues/2280)) ([8aeff1a](https://github.com/googleapis/java-pubsub/commit/8aeff1a375f3aa989d2c4bde0ed3dd2f329601fc)) + +## [1.134.2](https://github.com/googleapis/java-pubsub/compare/v1.134.1...v1.134.2) (2024-11-18) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.49.0 ([77546e0](https://github.com/googleapis/java-pubsub/commit/77546e0548e72e331523fb4f30edd1577b5fe6ea)) +* **deps:** Update the Java code generator (gapic-generator-java) to 2.50.0 ([3f21af3](https://github.com/googleapis/java-pubsub/commit/3f21af3e3fbc6ef49ecbe80712350d8712133c59)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.43.3 ([#2256](https://github.com/googleapis/java-pubsub/issues/2256)) ([f7fbc6c](https://github.com/googleapis/java-pubsub/commit/f7fbc6c7e4f7d8a8b31d4778d2cd8c55efcb9be1)) +* Update dependency com.google.cloud:google-cloud-core to v2.47.0 ([#2249](https://github.com/googleapis/java-pubsub/issues/2249)) ([3df5729](https://github.com/googleapis/java-pubsub/commit/3df572918523738e8f2f28299efa811aa23e297b)) +* Update dependency com.google.cloud:google-cloud-storage to v2.44.1 ([#2240](https://github.com/googleapis/java-pubsub/issues/2240)) ([f8dae4d](https://github.com/googleapis/java-pubsub/commit/f8dae4d68c1835930d4e39522a354cdfcc4cdd84)) +* Update googleapis/sdk-platform-java action to v2.50.0 ([#2261](https://github.com/googleapis/java-pubsub/issues/2261)) ([d0aab7d](https://github.com/googleapis/java-pubsub/commit/d0aab7d157c628ff5b8787b8c75dfaedc7a7305f)) +* Update sdk platform java dependencies ([#2262](https://github.com/googleapis/java-pubsub/issues/2262)) ([b689fe2](https://github.com/googleapis/java-pubsub/commit/b689fe262b3a4c90264669ec87408bfeb6dc7659)) + +## [1.134.1](https://github.com/googleapis/java-pubsub/compare/v1.134.0...v1.134.1) (2024-10-26) + + +### Dependencies + +* Update dependency com.google.cloud:sdk-platform-java-config to v3.39.0 ([#2251](https://github.com/googleapis/java-pubsub/issues/2251)) ([083cc7c](https://github.com/googleapis/java-pubsub/commit/083cc7c930fa2728d2322c1343b0fc025f9e255d)) +* Update googleapis/sdk-platform-java action to v2.49.0 ([#2250](https://github.com/googleapis/java-pubsub/issues/2250)) ([af0f194](https://github.com/googleapis/java-pubsub/commit/af0f194369d4a9f16dd14378aa90280adc194d98)) + +## [1.134.0](https://github.com/googleapis/java-pubsub/compare/v1.133.1...v1.134.0) (2024-10-23) + + +### Features + +* Add IngestionFailureEvent to the external proto ([6c67798](https://github.com/googleapis/java-pubsub/commit/6c67798c6b7442d77eb30fbba874344f32a926b4)) +* Track batch size using serialized size of PublishRequest ([#2113](https://github.com/googleapis/java-pubsub/issues/2113)) ([be78e64](https://github.com/googleapis/java-pubsub/commit/be78e64f9fdfc9ddf0790189311fac673754e219)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.43.1 ([#2202](https://github.com/googleapis/java-pubsub/issues/2202)) ([acaf5f2](https://github.com/googleapis/java-pubsub/commit/acaf5f2e3686a939d4b972c73a4d039142f753df)) +* Update dependency com.google.cloud:google-cloud-core to v2.46.0 ([#2238](https://github.com/googleapis/java-pubsub/issues/2238)) ([dc06d54](https://github.com/googleapis/java-pubsub/commit/dc06d5456ab6fe8d94b7b845ca9159391949517f)) +* Update dependency com.google.cloud:google-cloud-storage to v2.43.2 ([#2226](https://github.com/googleapis/java-pubsub/issues/2226)) ([eb87c04](https://github.com/googleapis/java-pubsub/commit/eb87c04619f7bdaf59ce2b562a96b8c25d3c8196)) +* Update dependency com.google.cloud.opentelemetry:exporter-trace to v0.33.0 ([#2225](https://github.com/googleapis/java-pubsub/issues/2225)) ([cc1b072](https://github.com/googleapis/java-pubsub/commit/cc1b0726009524ddee3c2ce7f1446608dd3bc752)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.28.3 ([#2237](https://github.com/googleapis/java-pubsub/issues/2237)) ([75abe83](https://github.com/googleapis/java-pubsub/commit/75abe83a9b14c2e5cc3f136ff97b5340bfa904db)) +* Update dependency org.apache.avro:avro to v1.11.4 [security] ([#2223](https://github.com/googleapis/java-pubsub/issues/2223)) ([31f276b](https://github.com/googleapis/java-pubsub/commit/31f276b10a96c53ecbd828972a9e3457c0c7c700)) +* Update sdk platform java dependencies ([#2239](https://github.com/googleapis/java-pubsub/issues/2239)) ([8f4f855](https://github.com/googleapis/java-pubsub/commit/8f4f8556414aaef731a7226dcbffe59d91819775)) + + +### Documentation + +* Add OpenTelemetry samples ([#2208](https://github.com/googleapis/java-pubsub/issues/2208)) ([c447fe5](https://github.com/googleapis/java-pubsub/commit/c447fe500ba48ba4fde27d97f10ef7664d09363b)) + +## [1.133.1](https://github.com/googleapis/java-pubsub/compare/v1.133.0...v1.133.1) (2024-10-07) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.47.0 ([ccd23af](https://github.com/googleapis/java-pubsub/commit/ccd23afd99e7cb5a28747b06d0a97d1cb8163391)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-core to v2.45.0 ([#2213](https://github.com/googleapis/java-pubsub/issues/2213)) ([5ee969b](https://github.com/googleapis/java-pubsub/commit/5ee969bb9ed873073895881062ec72f419bbc837)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.37.0 ([#2214](https://github.com/googleapis/java-pubsub/issues/2214)) ([d938709](https://github.com/googleapis/java-pubsub/commit/d93870934f610cffb705837ed8391eb276a18c05)) +* Update googleapis/sdk-platform-java action to v2.47.0 ([#2212](https://github.com/googleapis/java-pubsub/issues/2212)) ([6a9723d](https://github.com/googleapis/java-pubsub/commit/6a9723d2872c82bbb525119cac7471d1a2f3b7cd)) + + +### Documentation + +* Add ingestion from GCS sample ([#2211](https://github.com/googleapis/java-pubsub/issues/2211)) ([ddb7391](https://github.com/googleapis/java-pubsub/commit/ddb739113b38d4e2f4617a105cd0ab071f21d4de)) +* Update emulator sample to create a topic and publish to it ([#2039](https://github.com/googleapis/java-pubsub/issues/2039)) ([21d5cfc](https://github.com/googleapis/java-pubsub/commit/21d5cfc3b9484ffc2c1a0084b8bc2f6f76b6bf62)) + +## [1.133.0](https://github.com/googleapis/java-pubsub/compare/v1.132.4...v1.133.0) (2024-10-01) + + +### Features + +* Add OpenTelemetry tracing to the Publisher and Subscriber ([#2086](https://github.com/googleapis/java-pubsub/issues/2086)) ([db522b6](https://github.com/googleapis/java-pubsub/commit/db522b60f1bbec9cc1bfa0c37477044fd2f807c7)) + + +### Dependencies + +* Update dependency com.google.cloud.opentelemetry:exporter-trace to v0.32.0 ([#2205](https://github.com/googleapis/java-pubsub/issues/2205)) ([76f17e4](https://github.com/googleapis/java-pubsub/commit/76f17e4149bf369f2be12fe9d316a23a7f49f137)) +* Update dependency org.assertj:assertj-core to v3.26.3 ([#2204](https://github.com/googleapis/java-pubsub/issues/2204)) ([71c2e76](https://github.com/googleapis/java-pubsub/commit/71c2e762e94895c465c4e737ed8bf7bc583a9c14)) + +## [1.132.4](https://github.com/googleapis/java-pubsub/compare/v1.132.3...v1.132.4) (2024-09-30) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-storage to v2.43.1 ([#2194](https://github.com/googleapis/java-pubsub/issues/2194)) ([979e420](https://github.com/googleapis/java-pubsub/commit/979e420377327cf3843ac23151d8b44a7e5188c5)) +* Update dependency ubuntu to v24 ([#2193](https://github.com/googleapis/java-pubsub/issues/2193)) ([f295b01](https://github.com/googleapis/java-pubsub/commit/f295b01cb93fe26612c79c3d2ba0bb68f0404d7e)) + +## [1.132.3](https://github.com/googleapis/java-pubsub/compare/v1.132.2...v1.132.3) (2024-09-26) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.42.3 ([#2173](https://github.com/googleapis/java-pubsub/issues/2173)) ([294d039](https://github.com/googleapis/java-pubsub/commit/294d03974ab236c2ee5d0e420e8913eb6fc65fc9)) +* Update dependency com.google.cloud:google-cloud-core to v2.44.0 ([#2184](https://github.com/googleapis/java-pubsub/issues/2184)) ([faecb3b](https://github.com/googleapis/java-pubsub/commit/faecb3b90cb259ae376b8481ec30511ce19279bf)) +* Update dependency com.google.cloud:google-cloud-core to v2.44.1 ([#2190](https://github.com/googleapis/java-pubsub/issues/2190)) ([9ea45dc](https://github.com/googleapis/java-pubsub/commit/9ea45dc13f11076890cfff35e7acf2eafc2af70a)) +* Update dependency com.google.cloud:google-cloud-storage to v2.43.0 ([#2174](https://github.com/googleapis/java-pubsub/issues/2174)) ([ae800d7](https://github.com/googleapis/java-pubsub/commit/ae800d7b3ffd19302b416f03fad8b20e93afce8f)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.36.0 ([#2185](https://github.com/googleapis/java-pubsub/issues/2185)) ([5ca2c7c](https://github.com/googleapis/java-pubsub/commit/5ca2c7c52497514af30e4522f0ae245d0f8d73ce)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.36.1 ([#2191](https://github.com/googleapis/java-pubsub/issues/2191)) ([555216e](https://github.com/googleapis/java-pubsub/commit/555216ee5bf9cfbba6664f133fc7cde1101f5f0b)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.28.2 ([#2179](https://github.com/googleapis/java-pubsub/issues/2179)) ([c9bbd2c](https://github.com/googleapis/java-pubsub/commit/c9bbd2cf3525e3ebdf9ce3af7fe50a16a87c9837)) + +## [1.132.2](https://github.com/googleapis/java-pubsub/compare/v1.132.1...v1.132.2) (2024-09-11) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.42.1 ([#2152](https://github.com/googleapis/java-pubsub/issues/2152)) ([1457489](https://github.com/googleapis/java-pubsub/commit/1457489cb51c12bc7ad8ab8ddcf2252a2f513a79)) +* Update dependency com.google.cloud:google-cloud-bigquery to v2.42.2 ([#2157](https://github.com/googleapis/java-pubsub/issues/2157)) ([d671347](https://github.com/googleapis/java-pubsub/commit/d671347004a68c53cdf3fdfb9d1a7ed992ee162f)) +* Update dependency com.google.cloud:google-cloud-core to v2.43.0 ([#2161](https://github.com/googleapis/java-pubsub/issues/2161)) ([05a37b7](https://github.com/googleapis/java-pubsub/commit/05a37b786686c24f87eec5e9919c16b2b67465be)) +* Update dependency com.google.cloud:google-cloud-storage to v2.42.0 ([#2145](https://github.com/googleapis/java-pubsub/issues/2145)) ([77c3e78](https://github.com/googleapis/java-pubsub/commit/77c3e78d34e894c05653371027cd2b1d12cea9d0)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.35.0 ([#2162](https://github.com/googleapis/java-pubsub/issues/2162)) ([27eaffd](https://github.com/googleapis/java-pubsub/commit/27eaffd5fa55789b456eaeba98f6800343f3685e)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.27.4 ([#2153](https://github.com/googleapis/java-pubsub/issues/2153)) ([32c78b3](https://github.com/googleapis/java-pubsub/commit/32c78b31e7a904fb6b6a2b55f81e7e3ab7525add)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.28.0 ([#2155](https://github.com/googleapis/java-pubsub/issues/2155)) ([5f61fe1](https://github.com/googleapis/java-pubsub/commit/5f61fe13f6fea1d30ab0e85be0221e70056369f6)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.28.1 ([#2167](https://github.com/googleapis/java-pubsub/issues/2167)) ([bb8ea71](https://github.com/googleapis/java-pubsub/commit/bb8ea717ed0234fdbb582f2915a016fd37657448)) +* Update dependency org.xerial.snappy:snappy-java to v1.1.10.7 ([#2165](https://github.com/googleapis/java-pubsub/issues/2165)) ([e7fb60e](https://github.com/googleapis/java-pubsub/commit/e7fb60ecccb8bb9fbc6147210491a52ee0f5a817)) + +## [1.132.1](https://github.com/googleapis/java-pubsub/compare/v1.132.0...v1.132.1) (2024-08-20) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-core to v2.42.0 ([#2140](https://github.com/googleapis/java-pubsub/issues/2140)) ([80dca35](https://github.com/googleapis/java-pubsub/commit/80dca35cebb1061f3d2a852ff9929519e69283cc)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.34.0 ([#2141](https://github.com/googleapis/java-pubsub/issues/2141)) ([273fbf3](https://github.com/googleapis/java-pubsub/commit/273fbf3f752444a397b0e743c5c6de1a539291ea)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.27.3 ([#2127](https://github.com/googleapis/java-pubsub/issues/2127)) ([8523b4f](https://github.com/googleapis/java-pubsub/commit/8523b4f67f45ac219671c0d588bac7e9dc450dcb)) +* Update dependency org.xerial.snappy:snappy-java to v1.1.10.6 ([#2135](https://github.com/googleapis/java-pubsub/issues/2135)) ([102ff84](https://github.com/googleapis/java-pubsub/commit/102ff844594687b3bbaca1ff92e650fe9e8d3f1e)) + +## [1.132.0](https://github.com/googleapis/java-pubsub/compare/v1.131.0...v1.132.0) (2024-08-01) + + +### Features + +* Enable hermetic library generation ([#2048](https://github.com/googleapis/java-pubsub/issues/2048)) ([283a5e8](https://github.com/googleapis/java-pubsub/commit/283a5e89837071678f8dd94b8b8adfad91a6766c)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.41.0 ([#2093](https://github.com/googleapis/java-pubsub/issues/2093)) ([217b8a3](https://github.com/googleapis/java-pubsub/commit/217b8a3f5419f80402d349b8873d7302eeb35e3f)) +* Update dependency com.google.cloud:google-cloud-bigquery to v2.42.0 ([#2124](https://github.com/googleapis/java-pubsub/issues/2124)) ([24ebe24](https://github.com/googleapis/java-pubsub/commit/24ebe2402fe6278348d87b5a4259c365a819877f)) +* Update dependency com.google.cloud:google-cloud-core to v2.41.0 ([#2120](https://github.com/googleapis/java-pubsub/issues/2120)) ([1f6428a](https://github.com/googleapis/java-pubsub/commit/1f6428a8b79369a239664b9ea7cd38e024db9724)) +* Update dependency com.google.cloud:google-cloud-storage to v2.40.1 ([#2095](https://github.com/googleapis/java-pubsub/issues/2095)) ([0d64d6c](https://github.com/googleapis/java-pubsub/commit/0d64d6cf7799a176297ceaa1475b7cb29a64bebc)) +* Update dependency com.google.cloud:google-cloud-storage to v2.41.0 ([#2129](https://github.com/googleapis/java-pubsub/issues/2129)) ([2348d20](https://github.com/googleapis/java-pubsub/commit/2348d2022bc400b7f187d3db7f43aff94d8884a8)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.33.0 ([#2121](https://github.com/googleapis/java-pubsub/issues/2121)) ([7fbea6d](https://github.com/googleapis/java-pubsub/commit/7fbea6d0c922dd3485f19eafccc42869efd0e5ed)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.27.2 ([#2091](https://github.com/googleapis/java-pubsub/issues/2091)) ([9859f11](https://github.com/googleapis/java-pubsub/commit/9859f1181a12bc683eaf4a6345bf2528a5463c59)) +* Update dependency org.junit.vintage:junit-vintage-engine to v5.10.3 ([#2096](https://github.com/googleapis/java-pubsub/issues/2096)) ([42f12ed](https://github.com/googleapis/java-pubsub/commit/42f12ed3270e66beae316deb729b445c94dcb1a8)) + + +### Documentation + +* **samples:** Optimistic subscribe sample ([#2063](https://github.com/googleapis/java-pubsub/issues/2063)) ([53a4844](https://github.com/googleapis/java-pubsub/commit/53a4844f09eace777142b8cdcd06bc07cef0b432)) + +## [1.131.0](https://github.com/googleapis/java-pubsub/compare/v1.130.1...v1.131.0) (2024-06-25) + + +### Features + +* Add use_topic_schema for Cloud Storage Subscriptions ([#2082](https://github.com/googleapis/java-pubsub/issues/2082)) ([11d67d4](https://github.com/googleapis/java-pubsub/commit/11d67d44152ccca008dda071683d9932c59af41d)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-core to v2.40.0 ([#2087](https://github.com/googleapis/java-pubsub/issues/2087)) ([26b01c9](https://github.com/googleapis/java-pubsub/commit/26b01c921f2700947a1653702be0234cf84cccef)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.32.0 ([#2088](https://github.com/googleapis/java-pubsub/issues/2088)) ([aebc3ed](https://github.com/googleapis/java-pubsub/commit/aebc3ed779e0847077742dedc7c2c0a9d8a1ab10)) + +## [1.130.1](https://github.com/googleapis/java-pubsub/compare/v1.130.0...v1.130.1) (2024-06-13) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.40.3 ([#2071](https://github.com/googleapis/java-pubsub/issues/2071)) ([0844bfb](https://github.com/googleapis/java-pubsub/commit/0844bfb0a500ae0b4a0f63fcb45ffffeaf609e3d)) +* Update dependency com.google.cloud:google-cloud-storage to v2.40.0 ([#2066](https://github.com/googleapis/java-pubsub/issues/2066)) ([dfcaeb5](https://github.com/googleapis/java-pubsub/commit/dfcaeb5b59466d86ac5b5bf74655ce359e7d5713)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.27.1 ([#2065](https://github.com/googleapis/java-pubsub/issues/2065)) ([6baf69a](https://github.com/googleapis/java-pubsub/commit/6baf69a99adb75fba49c2289bca3ffd08720f8f4)) + +## [1.130.0](https://github.com/googleapis/java-pubsub/compare/v1.129.7...v1.130.0) (2024-06-03) + + +### Features + +* [java] allow passing libraries_bom_version from env ([#1967](https://github.com/googleapis/java-pubsub/issues/1967)) ([#2033](https://github.com/googleapis/java-pubsub/issues/2033)) ([825c5f8](https://github.com/googleapis/java-pubsub/commit/825c5f83e0fd2fd6b1f4856b9c555d71110a03e1)) +* Add service_account_email for export subscriptions ([#2054](https://github.com/googleapis/java-pubsub/issues/2054)) ([670db3e](https://github.com/googleapis/java-pubsub/commit/670db3e1b665e6f5aec3cd7bf3639e9242f20151)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-core to v2.39.0 ([#2057](https://github.com/googleapis/java-pubsub/issues/2057)) ([43446d2](https://github.com/googleapis/java-pubsub/commit/43446d22ad2140f1b18fd1dde5dab03a901580bc)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.31.0 ([#2058](https://github.com/googleapis/java-pubsub/issues/2058)) ([a998ef5](https://github.com/googleapis/java-pubsub/commit/a998ef5359942486ea47bfd50f154314ae37be33)) + +## [1.129.7](https://github.com/googleapis/java-pubsub/compare/v1.129.6...v1.129.7) (2024-05-29) + + +### Dependencies + +* Change scope of grpc-inprocess dependency from runtime to test ([#2038](https://github.com/googleapis/java-pubsub/issues/2038)) ([1ab45c9](https://github.com/googleapis/java-pubsub/commit/1ab45c9eaee35d4bfeb332244c74f1253b77c166)) +* Update dependency com.google.cloud:google-cloud-bigquery to v2.40.2 ([#2046](https://github.com/googleapis/java-pubsub/issues/2046)) ([f81c5e1](https://github.com/googleapis/java-pubsub/commit/f81c5e1b977e6da19aac6a40c1389ddcc4643e3c)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.27.0 ([#2044](https://github.com/googleapis/java-pubsub/issues/2044)) ([37e94ce](https://github.com/googleapis/java-pubsub/commit/37e94ce13a2998b5e3f69e9ad3d4ab68af108d64)) + +## [1.129.6](https://github.com/googleapis/java-pubsub/compare/v1.129.5...v1.129.6) (2024-05-23) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-storage to v2.39.0 ([#2040](https://github.com/googleapis/java-pubsub/issues/2040)) ([eb6bd9c](https://github.com/googleapis/java-pubsub/commit/eb6bd9c559073429d8338b9d8fa83e0e3f61b8e9)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.2 ([#2035](https://github.com/googleapis/java-pubsub/issues/2035)) ([40fdd7a](https://github.com/googleapis/java-pubsub/commit/40fdd7a71aa07d6c64ac6f96d7c6642af3563280)) + +## [1.129.5](https://github.com/googleapis/java-pubsub/compare/v1.129.4...v1.129.5) (2024-05-16) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-core to v2.38.1 ([#2027](https://github.com/googleapis/java-pubsub/issues/2027)) ([535edf6](https://github.com/googleapis/java-pubsub/commit/535edf6496700bc5c5fb0b5cfa1cac6be5d62875)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.30.1 ([#2028](https://github.com/googleapis/java-pubsub/issues/2028)) ([aedcffd](https://github.com/googleapis/java-pubsub/commit/aedcffdaedbaa30627c96f96bfa5430bd4666cf0)) + +## [1.129.4](https://github.com/googleapis/java-pubsub/compare/v1.129.3...v1.129.4) (2024-05-10) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.40.0 ([#2016](https://github.com/googleapis/java-pubsub/issues/2016)) ([beee523](https://github.com/googleapis/java-pubsub/commit/beee523ffc501a33b99a4ee82ccdb04b83391403)) +* Update dependency com.google.cloud:google-cloud-bigquery to v2.40.1 ([#2021](https://github.com/googleapis/java-pubsub/issues/2021)) ([0873594](https://github.com/googleapis/java-pubsub/commit/0873594c000f470c6193ebe8b4d091701670ef06)) +* Update dependency com.google.cloud:google-cloud-storage to v2.38.0 ([#2019](https://github.com/googleapis/java-pubsub/issues/2019)) ([ba3dffc](https://github.com/googleapis/java-pubsub/commit/ba3dffc3ac8cf173362307c24bc46e815c64db40)) + +## [1.129.3](https://github.com/googleapis/java-pubsub/compare/v1.129.2...v1.129.3) (2024-05-06) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-core to v2.38.0 ([#2011](https://github.com/googleapis/java-pubsub/issues/2011)) ([4a547d0](https://github.com/googleapis/java-pubsub/commit/4a547d08d02f3abaf23bfb8e5ed65e40c131bb94)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.30.0 ([#2012](https://github.com/googleapis/java-pubsub/issues/2012)) ([811d0e6](https://github.com/googleapis/java-pubsub/commit/811d0e609b5eb6eaf9c921828255407d9db68293)) + +## [1.129.2](https://github.com/googleapis/java-pubsub/compare/v1.129.1...v1.129.2) (2024-04-30) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.39.1 ([#2006](https://github.com/googleapis/java-pubsub/issues/2006)) ([a7f4afb](https://github.com/googleapis/java-pubsub/commit/a7f4afbc870536a7964594bc1d5b9a2eb5076cce)) + +## [1.129.1](https://github.com/googleapis/java-pubsub/compare/v1.129.0...v1.129.1) (2024-04-25) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.39.0 ([#2000](https://github.com/googleapis/java-pubsub/issues/2000)) ([09ee49a](https://github.com/googleapis/java-pubsub/commit/09ee49a8304089f4388cfbde58127d46fe07a5a1)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.39.0 ([#2002](https://github.com/googleapis/java-pubsub/issues/2002)) ([88517fe](https://github.com/googleapis/java-pubsub/commit/88517fe69a7a9577aa79b693957bf56a56d0980c)) +* Update dependency com.google.cloud:google-cloud-core to v2.37.0 ([#1997](https://github.com/googleapis/java-pubsub/issues/1997)) ([b4573ae](https://github.com/googleapis/java-pubsub/commit/b4573ae6c93ca47bc802616ae3715fc10163bf2e)) +* Update dependency com.google.cloud:google-cloud-storage to v2.37.0 ([#1999](https://github.com/googleapis/java-pubsub/issues/1999)) ([cff6d6a](https://github.com/googleapis/java-pubsub/commit/cff6d6a5fc297eb5254a409d495bda458dfebcd6)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.29.0 ([#1998](https://github.com/googleapis/java-pubsub/issues/1998)) ([bb80924](https://github.com/googleapis/java-pubsub/commit/bb80924e55bc97db82650d4ae2bdebf406c68f98)) + +## [1.129.0](https://github.com/googleapis/java-pubsub/compare/v1.128.1...v1.129.0) (2024-04-17) + + +### Features + +* Add `libraries_bom_version` in metadata ([#1956](https://github.com/googleapis/java-pubsub/issues/1956)) ([#1990](https://github.com/googleapis/java-pubsub/issues/1990)) ([18cfa73](https://github.com/googleapis/java-pubsub/commit/18cfa73208bdf9b6a1a597bac740056abfcb03ef)) + + +### Dependencies + +* Update actions/setup-java action to v4 ([#1978](https://github.com/googleapis/java-pubsub/issues/1978)) ([64a0df3](https://github.com/googleapis/java-pubsub/commit/64a0df337c91f965e4d8960801e10f90f78c46cd)) + +## [1.128.1](https://github.com/googleapis/java-pubsub/compare/v1.128.0...v1.128.1) (2024-04-10) + + +### Dependencies + +* Update actions/checkout action to v4 ([#1975](https://github.com/googleapis/java-pubsub/issues/1975)) ([618abdd](https://github.com/googleapis/java-pubsub/commit/618abdd44dd9670a5d6a1ca3c923e3d0621c6248)) +* Update actions/github-script action to v7 ([#1976](https://github.com/googleapis/java-pubsub/issues/1976)) ([c836172](https://github.com/googleapis/java-pubsub/commit/c8361722544ec4170b94651e77b02634938c7883)) + +## [1.128.0](https://github.com/googleapis/java-pubsub/compare/v1.127.3...v1.128.0) (2024-04-03) + + +### Features + +* Add custom datetime format for Cloud Storage subscriptions ([#1970](https://github.com/googleapis/java-pubsub/issues/1970)) ([7113f06](https://github.com/googleapis/java-pubsub/commit/7113f065973bb8b56ab811e0589ffb7975873679)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.38.2 ([#1965](https://github.com/googleapis/java-pubsub/issues/1965)) ([ec3b386](https://github.com/googleapis/java-pubsub/commit/ec3b38665ddc6336f975d597d27c4aa25732c474)) +* Update dependency com.google.cloud:google-cloud-storage to v2.36.1 ([#1968](https://github.com/googleapis/java-pubsub/issues/1968)) ([524109c](https://github.com/googleapis/java-pubsub/commit/524109c1afc5118c79fd97769e194a1325322107)) +* Update dependency com.google.protobuf:protobuf-java-util to v4.26.1 ([#1972](https://github.com/googleapis/java-pubsub/issues/1972)) ([53c1120](https://github.com/googleapis/java-pubsub/commit/53c112033dc721cf91aceddfc1eeb3c6daddb45e)) + + +### Documentation + +* Add Kinesis ingestion samples ([#1947](https://github.com/googleapis/java-pubsub/issues/1947)) ([5b5c14b](https://github.com/googleapis/java-pubsub/commit/5b5c14ba31636c037c2b8d6a166bd48670e23688)) + +## [1.127.3](https://github.com/googleapis/java-pubsub/compare/v1.127.2...v1.127.3) (2024-03-20) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-core to v2.36.0 ([#1955](https://github.com/googleapis/java-pubsub/issues/1955)) ([d25d14a](https://github.com/googleapis/java-pubsub/commit/d25d14ad4694c5a914f9d07018cb0f6b9af4f9aa)) +* Update dependency com.google.cloud:google-cloud-core to v2.36.1 ([#1962](https://github.com/googleapis/java-pubsub/issues/1962)) ([96c1c97](https://github.com/googleapis/java-pubsub/commit/96c1c971fa4dced85cb2ed4e9db3e3fb47eb82c6)) +* Update dependency com.google.cloud:google-cloud-storage to v2.36.0 ([#1957](https://github.com/googleapis/java-pubsub/issues/1957)) ([0d8c182](https://github.com/googleapis/java-pubsub/commit/0d8c182653ea1ffd429465e91075760c1501eb34)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.28.0 ([#1956](https://github.com/googleapis/java-pubsub/issues/1956)) ([183df2c](https://github.com/googleapis/java-pubsub/commit/183df2caeed8e0df53ef9668232e4949ec4719a9)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.28.1 ([#1960](https://github.com/googleapis/java-pubsub/issues/1960)) ([faa45a4](https://github.com/googleapis/java-pubsub/commit/faa45a4efeaee5b45f9a4cc89dc2917f56a66797)) +* Update dependency com.google.protobuf:protobuf-java-util to v4 ([#1951](https://github.com/googleapis/java-pubsub/issues/1951)) ([243ec9a](https://github.com/googleapis/java-pubsub/commit/243ec9ab47212bbe701b16882c92a9b3d5d4aeaa)) + +## [1.127.2](https://github.com/googleapis/java-pubsub/compare/v1.127.1...v1.127.2) (2024-03-10) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.37.0 ([#1938](https://github.com/googleapis/java-pubsub/issues/1938)) ([1435c4e](https://github.com/googleapis/java-pubsub/commit/1435c4e4d25d789fadbfc2c54c2f90b138693b40)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.38.1 ([#1944](https://github.com/googleapis/java-pubsub/issues/1944)) ([76317e1](https://github.com/googleapis/java-pubsub/commit/76317e1fe60467b4bbe9b4867d0a29e983ce687f)) +* Update dependency com.google.cloud:google-cloud-storage to v2.35.0 ([#1942](https://github.com/googleapis/java-pubsub/issues/1942)) ([989f7ba](https://github.com/googleapis/java-pubsub/commit/989f7bac5bada7ac5d6e68c742af0290cb757e4b)) +* Update dependency com.google.cloud:google-cloud-storage to v2.35.0 ([#1946](https://github.com/googleapis/java-pubsub/issues/1946)) ([b94989d](https://github.com/googleapis/java-pubsub/commit/b94989df6c5ae6f62e648016cef2e008a3b9ed05)) + +## [1.127.1](https://github.com/googleapis/java-pubsub/compare/v1.127.0...v1.127.1) (2024-03-04) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.38.0 ([#1931](https://github.com/googleapis/java-pubsub/issues/1931)) ([357c901](https://github.com/googleapis/java-pubsub/commit/357c901029a8bc5fb9800a7fae6f3d93080c0a0d)) +* Update dependency com.google.cloud:google-cloud-core to v2.35.0 ([#1936](https://github.com/googleapis/java-pubsub/issues/1936)) ([785e6d1](https://github.com/googleapis/java-pubsub/commit/785e6d1e4f2234d2c49183fc06d3f73de537171b)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.27.0 ([#1937](https://github.com/googleapis/java-pubsub/issues/1937)) ([75e7e5e](https://github.com/googleapis/java-pubsub/commit/75e7e5e9eede53e87a6bc8ccda957990ea9b0673)) + +## [1.127.0](https://github.com/googleapis/java-pubsub/compare/v1.126.6...v1.127.0) (2024-02-28) + + +### Features + +* Add an API method for reordering firewall policies ([#1868](https://github.com/googleapis/java-pubsub/issues/1868)) ([2039f7e](https://github.com/googleapis/java-pubsub/commit/2039f7e9bee9db1991fae1118e4a6b8ad88ea30c)) +* Add universe domain support for Java ([#1904](https://github.com/googleapis/java-pubsub/issues/1904)) ([1e316d3](https://github.com/googleapis/java-pubsub/commit/1e316d33d2b7c87f6b76580cd9f905fe90a664c7)) +* Next release from main branch is 1.126.0 ([#1933](https://github.com/googleapis/java-pubsub/issues/1933)) ([255d8bc](https://github.com/googleapis/java-pubsub/commit/255d8bca3509e9a9dc2d82c95fabb32590423565)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.37.2 ([#1918](https://github.com/googleapis/java-pubsub/issues/1918)) ([b8846f9](https://github.com/googleapis/java-pubsub/commit/b8846f9dbf71854af1379c40669e017dd4e005d1)) +* Update dependency com.google.cloud:google-cloud-storage to v2.34.0 ([#1917](https://github.com/googleapis/java-pubsub/issues/1917)) ([4a7d6b9](https://github.com/googleapis/java-pubsub/commit/4a7d6b971f0d16d867c56679d1e7bfbba4e4a67a)) +* Update dependency com.google.protobuf:protobuf-java-util to v3.25.3 ([#1919](https://github.com/googleapis/java-pubsub/issues/1919)) ([4bf13bb](https://github.com/googleapis/java-pubsub/commit/4bf13bb5f346a53ecf8e1e73e5f3b6d1c99ddf93)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.1 ([#1923](https://github.com/googleapis/java-pubsub/issues/1923)) ([cd704bd](https://github.com/googleapis/java-pubsub/commit/cd704bd57b2596d82f2f791476a109a771995b4d)) + +## [1.126.6](https://github.com/googleapis/java-pubsub/compare/v1.126.5...v1.126.6) (2024-02-14) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-core to v2.33.0 ([#1912](https://github.com/googleapis/java-pubsub/issues/1912)) ([9691c6f](https://github.com/googleapis/java-pubsub/commit/9691c6fabd82eb07fcb5135019be8d6fb260ce6f)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.25.0 ([#1913](https://github.com/googleapis/java-pubsub/issues/1913)) ([9636c55](https://github.com/googleapis/java-pubsub/commit/9636c5526e5cf4507bed69349321b686ddf7ab27)) + +## [1.126.5](https://github.com/googleapis/java-pubsub/compare/v1.126.4...v1.126.5) (2024-02-12) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.37.1 ([#1898](https://github.com/googleapis/java-pubsub/issues/1898)) ([fc0dc96](https://github.com/googleapis/java-pubsub/commit/fc0dc962bcb7467fe4008263a80d1ed1e29167a0)) +* Update dependency com.google.cloud:google-cloud-storage to v2.33.0 ([#1900](https://github.com/googleapis/java-pubsub/issues/1900)) ([0efceb4](https://github.com/googleapis/java-pubsub/commit/0efceb4f4068c70565676dc2ddcf629ec4f0489f)) +* Update dependency org.graalvm.buildtools:junit-platform-native to v0.10.0 ([#1887](https://github.com/googleapis/java-pubsub/issues/1887)) ([2bfa5cc](https://github.com/googleapis/java-pubsub/commit/2bfa5cc894e5a14b1d890bdcad348eeb14520f95)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.0 ([#1888](https://github.com/googleapis/java-pubsub/issues/1888)) ([5017789](https://github.com/googleapis/java-pubsub/commit/5017789c996246ece0c5428c68c9c6681b760bca)) +* Update dependency org.junit.vintage:junit-vintage-engine to v5.10.2 ([#1891](https://github.com/googleapis/java-pubsub/issues/1891)) ([231ba51](https://github.com/googleapis/java-pubsub/commit/231ba51c8bd2e6a8f3e0171626d35761bd07ae19)) + +## [1.126.4](https://github.com/googleapis/java-pubsub/compare/v1.126.3...v1.126.4) (2024-02-09) + + +### Bug Fixes + +* Message ordering fix for [#1889](https://github.com/googleapis/java-pubsub/issues/1889) ([#1903](https://github.com/googleapis/java-pubsub/issues/1903)) ([22a87c6](https://github.com/googleapis/java-pubsub/commit/22a87c67f07b55266e277f83f5ceb17d9f32f67e)) + +## [1.126.3](https://github.com/googleapis/java-pubsub/compare/v1.126.2...v1.126.3) (2024-02-08) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-core to v2.32.0 ([#1885](https://github.com/googleapis/java-pubsub/issues/1885)) ([a2063cf](https://github.com/googleapis/java-pubsub/commit/a2063cf8f1f792f5ad1994bff00f367b399c0ff2)) + +## [1.126.2](https://github.com/googleapis/java-pubsub/compare/v1.126.1...v1.126.2) (2024-01-26) + + +### Bug Fixes + +* **deps:** Update the Java code generator (gapic-generator-java) to 2.32.0 ([#1875](https://github.com/googleapis/java-pubsub/issues/1875)) ([0aac3e4](https://github.com/googleapis/java-pubsub/commit/0aac3e4c9c5671ce8f3b98056cc3710cd5ca9d07)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.37.0 ([#1878](https://github.com/googleapis/java-pubsub/issues/1878)) ([16dee8b](https://github.com/googleapis/java-pubsub/commit/16dee8bce115f59d8518ca1ae0e39dd87d81f802)) + +## [1.126.1](https://github.com/googleapis/java-pubsub/compare/v1.126.0...v1.126.1) (2024-01-25) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquery to v2.36.0 ([#1840](https://github.com/googleapis/java-pubsub/issues/1840)) ([8c5117d](https://github.com/googleapis/java-pubsub/commit/8c5117d02511acd5469d863ea483f6e765e29292)) +* Update dependency com.google.cloud:google-cloud-core to v2.30.0 ([#1853](https://github.com/googleapis/java-pubsub/issues/1853)) ([db36def](https://github.com/googleapis/java-pubsub/commit/db36deff6a4187cb98ddd68259efd6034762060e)) +* Update dependency com.google.cloud:google-cloud-core to v2.31.0 ([#1872](https://github.com/googleapis/java-pubsub/issues/1872)) ([06db9a0](https://github.com/googleapis/java-pubsub/commit/06db9a05a80b2d7f38aefff2d5e0b33e3fa1a2c9)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.22.0 ([#1865](https://github.com/googleapis/java-pubsub/issues/1865)) ([f4c6f51](https://github.com/googleapis/java-pubsub/commit/f4c6f5112e8285264a497b3a141c31f77fea6ee2)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.23.0 ([#1873](https://github.com/googleapis/java-pubsub/issues/1873)) ([0d445f1](https://github.com/googleapis/java-pubsub/commit/0d445f173574433aed2770d9cc949672221b839e)) +* Update dependency com.google.cloud:google-cloud-storage to v2.32.0 ([#1857](https://github.com/googleapis/java-pubsub/issues/1857)) ([d673e55](https://github.com/googleapis/java-pubsub/commit/d673e55e69f60f5a6f6bae10e2f62d7fd0dfa89f)) +* Update dependency com.google.cloud:google-cloud-storage to v2.32.1 ([#1874](https://github.com/googleapis/java-pubsub/issues/1874)) ([adae8a4](https://github.com/googleapis/java-pubsub/commit/adae8a4aadb08532076fd02710d0e41336ec096c)) +* Update dependency com.google.protobuf:protobuf-java-util to v3.25.2 ([#1858](https://github.com/googleapis/java-pubsub/issues/1858)) ([8fa6354](https://github.com/googleapis/java-pubsub/commit/8fa635427927e1859332896b8373abccd5881949)) + ## [1.126.0](https://github.com/googleapis/java-pubsub/compare/v1.125.13...v1.126.0) (2024-01-13) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b65dd279c..ff092b68e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -84,7 +84,7 @@ Code in this repo is formatted with [google-java-format](https://github.com/google/google-java-format). To run formatting on your project, you can run: ``` -mvn com.coveo:fmt-maven-plugin:format +mvn com.spotify.fmt:fmt-maven-plugin:format ``` [1]: https://cloud.google.com/docs/authentication/getting-started#creating_a_service_account diff --git a/README.md b/README.md index e8765d4ad..5a62af019 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file: com.google.cloud libraries-bom - 26.29.0 + 26.72.0 pom import @@ -38,13 +38,12 @@ If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file: If you are using Maven without the BOM, add this to your dependencies: - ```xml com.google.cloud google-cloud-pubsub - 1.125.13 + 1.143.1 ``` @@ -52,22 +51,21 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.29.0') +implementation platform('com.google.cloud:libraries-bom:26.72.0') implementation 'com.google.cloud:google-cloud-pubsub' ``` If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-pubsub:1.125.13' +implementation 'com.google.cloud:google-cloud-pubsub:1.144.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-pubsub" % "1.125.13" +libraryDependencies += "com.google.cloud" % "google-cloud-pubsub" % "1.144.1" ``` - ## Authentication @@ -242,8 +240,6 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-pubsub/tree/m | Sample | Source Code | Try it | | --------------------------- | --------------------------------- | ------ | -| Native Image Pub Sub Sample | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/native-image-sample/src/main/java/pubsub/NativeImagePubSubSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/native-image-sample/src/main/java/pubsub/NativeImagePubSubSample.java) | -| Publish Operations | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/native-image-sample/src/main/java/utilities/PublishOperations.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/native-image-sample/src/main/java/utilities/PublishOperations.java) | | Commit Avro Schema Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CommitAvroSchemaExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CommitAvroSchemaExample.java) | | Commit Proto Schema Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CommitProtoSchemaExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CommitProtoSchemaExample.java) | | Create Avro Schema Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateAvroSchemaExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateAvroSchemaExample.java) | @@ -256,9 +252,16 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-pubsub/tree/m | Create Subscription With Exactly Once Delivery | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateSubscriptionWithExactlyOnceDelivery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateSubscriptionWithExactlyOnceDelivery.java) | | Create Subscription With Filtering | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateSubscriptionWithFiltering.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateSubscriptionWithFiltering.java) | | Create Subscription With Ordering | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateSubscriptionWithOrdering.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateSubscriptionWithOrdering.java) | +| Create Subscription With Smt Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateSubscriptionWithSmtExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateSubscriptionWithSmtExample.java) | | Create Topic Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateTopicExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateTopicExample.java) | +| Create Topic With Aws Msk Ingestion Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateTopicWithAwsMskIngestionExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateTopicWithAwsMskIngestionExample.java) | +| Create Topic With Azure Event Hubs Ingestion Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateTopicWithAzureEventHubsIngestionExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateTopicWithAzureEventHubsIngestionExample.java) | +| Create Topic With Cloud Storage Ingestion Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateTopicWithCloudStorageIngestionExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateTopicWithCloudStorageIngestionExample.java) | +| Create Topic With Confluent Cloud Ingestion Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateTopicWithConfluentCloudIngestionExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateTopicWithConfluentCloudIngestionExample.java) | +| Create Topic With Kinesis Ingestion Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateTopicWithKinesisIngestionExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateTopicWithKinesisIngestionExample.java) | | Create Topic With Schema Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateTopicWithSchemaExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateTopicWithSchemaExample.java) | | Create Topic With Schema Revisions Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateTopicWithSchemaRevisionsExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateTopicWithSchemaRevisionsExample.java) | +| Create Topic With Smt Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateTopicWithSmtExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateTopicWithSmtExample.java) | | Create Unwrapped Push Subscription Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/CreateUnwrappedPushSubscriptionExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/CreateUnwrappedPushSubscriptionExample.java) | | Delete Schema Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/DeleteSchemaExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/DeleteSchemaExample.java) | | Delete Schema Revision Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/DeleteSchemaRevisionExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/DeleteSchemaRevisionExample.java) | @@ -274,6 +277,9 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-pubsub/tree/m | List Subscriptions In Project Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/ListSubscriptionsInProjectExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/ListSubscriptionsInProjectExample.java) | | List Subscriptions In Topic Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/ListSubscriptionsInTopicExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/ListSubscriptionsInTopicExample.java) | | List Topics Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/ListTopicsExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/ListTopicsExample.java) | +| Open Telemetry Publisher Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/OpenTelemetryPublisherExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/OpenTelemetryPublisherExample.java) | +| Open Telemetry Subscriber Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/OpenTelemetrySubscriberExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/OpenTelemetrySubscriberExample.java) | +| Optimistic Subscribe Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/OptimisticSubscribeExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/OptimisticSubscribeExample.java) | | Publish Avro Records Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/PublishAvroRecordsExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/PublishAvroRecordsExample.java) | | Publish Protobuf Messages Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/PublishProtobufMessagesExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/PublishProtobufMessagesExample.java) | | Publish With Batch Settings Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/PublishWithBatchSettingsExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/PublishWithBatchSettingsExample.java) | @@ -307,6 +313,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-pubsub/tree/m | Update Dead Letter Policy Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/UpdateDeadLetterPolicyExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/UpdateDeadLetterPolicyExample.java) | | Update Push Configuration Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/UpdatePushConfigurationExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/UpdatePushConfigurationExample.java) | | Update Topic Schema Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/UpdateTopicSchemaExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/UpdateTopicSchemaExample.java) | +| Update Topic Type Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/UpdateTopicTypeExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/UpdateTopicTypeExample.java) | | Use Pub Sub Emulator Example | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/pubsub/UsePubSubEmulatorExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/pubsub/UsePubSubEmulatorExample.java) | | State | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/utilities/State.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/utilities/State.java) | | State Proto | [source code](https://github.com/googleapis/java-pubsub/blob/main/samples/snippets/src/main/java/utilities/StateProto.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-pubsub&page=editor&open_in_editor=samples/snippets/src/main/java/utilities/StateProto.java) | @@ -317,6 +324,10 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-pubsub/tree/m To get help, follow the instructions in the [shared Troubleshooting document][troubleshooting]. +## Transport + +Cloud Pub/Sub uses both gRPC and HTTP/JSON for the transport layer. + ## Supported Java Versions Java 8 or above is required for using this client. @@ -409,7 +420,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-pubsub/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-pubsub.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-pubsub/1.125.13 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-pubsub/1.144.1 [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 diff --git a/generation_config.yaml b/generation_config.yaml new file mode 100644 index 000000000..9e1744dd2 --- /dev/null +++ b/generation_config.yaml @@ -0,0 +1,23 @@ +gapic_generator_version: 2.64.2 +googleapis_commitish: b32495a713a68dd0dff90cf0b24021debfca048a +libraries_bom_version: 26.72.0 +libraries: + - api_shortname: pubsub + name_pretty: Cloud Pub/Sub + api_reference: https://cloud.google.com/pubsub/ + product_documentation: https://cloud.google.com/pubsub/docs/ + client_documentation: https://cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/history + api_description: is designed to provide reliable, many-to-many, asynchronous messaging between applications. Publisher applications can send messages to a topic and other applications can subscribe to that topic to receive the messages. By decoupling senders and receivers, Google Cloud Pub/Sub allows developers to communicate between independently written applications. + issue_tracker: https://issuetracker.google.com/savedsearches/559741 + release_level: stable + language: java + repo: googleapis/java-pubsub + repo_short: java-pubsub + distribution_name: com.google.cloud:google-cloud-pubsub + codeowner_team: '@googleapis/api-pubsub' + api_id: pubsub.googleapis.com + library_type: GAPIC_COMBO + requires_billing: true + recommended_package: com.google.cloud.pubsub.v1 + GAPICs: + - proto_path: google/pubsub/v1 diff --git a/google-cloud-pubsub-bom/pom.xml b/google-cloud-pubsub-bom/pom.xml index 04408abfe..bcb0818c0 100644 --- a/google-cloud-pubsub-bom/pom.xml +++ b/google-cloud-pubsub-bom/pom.xml @@ -3,12 +3,12 @@ 4.0.0 com.google.cloud google-cloud-pubsub-bom - 1.126.1-SNAPSHOT + 1.144.1 pom com.google.cloud - google-cloud-shared-config - 1.7.1 + sdk-platform-java-config + 3.54.2 Google Cloud pubsub BOM @@ -52,17 +52,17 @@ com.google.cloud google-cloud-pubsub - 1.126.1-SNAPSHOT + 1.144.1 com.google.api.grpc grpc-google-cloud-pubsub-v1 - 1.108.1-SNAPSHOT + 1.126.1 com.google.api.grpc proto-google-cloud-pubsub-v1 - 1.108.1-SNAPSHOT + 1.126.1 diff --git a/google-cloud-pubsub/clirr-ignored-differences.xml b/google-cloud-pubsub/clirr-ignored-differences.xml index fc73daacd..e4629e32e 100644 --- a/google-cloud-pubsub/clirr-ignored-differences.xml +++ b/google-cloud-pubsub/clirr-ignored-differences.xml @@ -1,4 +1,24 @@ + + 7005 + + com/google/cloud/pubsub/v1/MessageDispatcher$Builder + *(org.threeten.bp.Duration) + *(java.time.Duration) + + + 7005 + + com/google/cloud/pubsub/v1/StreamingSubscriberConnection$Builder + *(org.threeten.bp.Duration) + *(java.time.Duration) + + + 7002 + + com/google/cloud/pubsub/v1/StreamingSubscriberConnection$Builder + * setEodAckCallbackExecutor(*) + diff --git a/google-cloud-pubsub/pom.xml b/google-cloud-pubsub/pom.xml index 8c9a7687c..37c48b77b 100644 --- a/google-cloud-pubsub/pom.xml +++ b/google-cloud-pubsub/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-pubsub - 1.126.1-SNAPSHOT + 1.144.1 jar Google Cloud Pub/Sub https://github.com/googleapis/java-pubsub @@ -11,7 +11,7 @@ com.google.cloud google-cloud-pubsub-parent - 1.126.1-SNAPSHOT + 1.144.1 google-cloud-pubsub @@ -85,7 +85,7 @@ io.grpc grpc-inprocess - runtime + test com.google.errorprone @@ -100,13 +100,16 @@ google-http-client runtime - - - org.mockito - mockito-core - test + io.opentelemetry + opentelemetry-api + + io.opentelemetry + opentelemetry-context + + + junit junit @@ -121,6 +124,13 @@ org.easymock easymock test + + + + org.mockito + mockito-core + test com.google.cloud @@ -142,6 +152,21 @@ opencensus-impl test + + io.opentelemetry + opentelemetry-sdk-trace + test + + + io.opentelemetry + opentelemetry-sdk-testing + test + + + org.assertj + assertj-core + test + com.google.api @@ -174,6 +199,7 @@ com.google.auth:google-auth-library-oauth2-http:jar io.opencensus:opencensus-impl javax.annotation:javax.annotation-api + org.assertj:assertj-core diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/AckReplyConsumerWithResponse.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/AckReplyConsumerWithResponse.java index 59ea25ae7..445ba7287 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/AckReplyConsumerWithResponse.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/AckReplyConsumerWithResponse.java @@ -34,7 +34,8 @@ * processing code is idempotent, as you may receive any given message more than once. */ @BetaApi( - "This is a preview feature. For more details, see https://cloud.google.com/pubsub/docs/exactly-once-delivery.") + "This is a preview feature. For more details, see" + + " https://cloud.google.com/pubsub/docs/exactly-once-delivery.") public interface AckReplyConsumerWithResponse { /** * Acknowledges that the message has been successfully processed. The service will not send the diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/AckRequestData.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/AckRequestData.java index 3b67ce219..5cab83f49 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/AckRequestData.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/AckRequestData.java @@ -22,10 +22,12 @@ public class AckRequestData { private final String ackId; private final Optional> messageFuture; + private PubsubMessageWrapper messageWrapper; protected AckRequestData(Builder builder) { this.ackId = builder.ackId; this.messageFuture = builder.messageFuture; + this.messageWrapper = builder.messageWrapper; } public String getAckId() { @@ -36,6 +38,17 @@ public SettableApiFuture getMessageFutureIfExists() { return this.messageFuture.orElse(null); } + /** + * Returns an empty PubsubMessageWrapper with OpenTelemetry tracing disabled. This allows methods + * that use this method to be unit tested. + */ + public PubsubMessageWrapper getMessageWrapper() { + if (this.messageWrapper == null) { + return PubsubMessageWrapper.newBuilder(null, null).build(); + } + return messageWrapper; + } + public AckRequestData setResponse(AckResponse ackResponse, boolean setResponseOnSuccess) { if (this.messageFuture.isPresent() && !this.messageFuture.get().isDone()) { switch (ackResponse) { @@ -68,6 +81,7 @@ public static Builder newBuilder(String ackId) { protected static final class Builder { private final String ackId; private Optional> messageFuture = Optional.empty(); + private PubsubMessageWrapper messageWrapper; protected Builder(String ackId) { this.ackId = ackId; @@ -78,6 +92,11 @@ public Builder setMessageFuture(SettableApiFuture messageFuture) { return this; } + public Builder setMessageWrapper(PubsubMessageWrapper messageWrapper) { + this.messageWrapper = messageWrapper; + return this; + } + public AckRequestData build() { return new AckRequestData(this); } diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/MessageDispatcher.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/MessageDispatcher.java index 635bc92d5..5ed36b9cd 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/MessageDispatcher.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/MessageDispatcher.java @@ -28,9 +28,14 @@ import com.google.common.util.concurrent.MoreExecutors; import com.google.pubsub.v1.PubsubMessage; import com.google.pubsub.v1.ReceivedMessage; +import com.google.pubsub.v1.SubscriptionName; +import java.time.Duration; +import java.time.Instant; +import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -47,9 +52,6 @@ import java.util.concurrent.locks.ReentrantLock; import java.util.logging.Level; import java.util.logging.Logger; -import org.threeten.bp.Duration; -import org.threeten.bp.Instant; -import org.threeten.bp.temporal.ChronoUnit; /** * Dispatches messages to a message receiver while handling the messages acking and lease @@ -60,6 +62,7 @@ class MessageDispatcher { @InternalApi static final double PERCENTILE_FOR_ACK_DEADLINE_UPDATES = 99.9; @InternalApi static final Duration PENDING_ACKS_SEND_DELAY = Duration.ofMillis(100); + @InternalApi static final long FINAL_NACK_TIMEOUT = Duration.ofSeconds(1).toMillis(); private final Executor executor; private final SequentialExecutorService.AutoExecutor sequentialExecutor; @@ -92,8 +95,8 @@ class MessageDispatcher { private final LinkedBlockingQueue pendingAcks = new LinkedBlockingQueue<>(); private final LinkedBlockingQueue pendingNacks = new LinkedBlockingQueue<>(); private final LinkedBlockingQueue pendingReceipts = new LinkedBlockingQueue<>(); - private final ConcurrentMap outstandingReceipts = - new ConcurrentHashMap(); + private final LinkedHashMap outstandingReceipts = + new LinkedHashMap(); private final AtomicInteger messageDeadlineSeconds = new AtomicInteger(); private final AtomicBoolean extendDeadline = new AtomicBoolean(true); private final Lock jobLock; @@ -103,6 +106,12 @@ class MessageDispatcher { // To keep track of number of seconds the receiver takes to process messages. private final Distribution ackLatencyDistribution; + private final SubscriptionName subscriptionNameObject; + private final boolean enableOpenTelemetryTracing; + private OpenTelemetryPubsubTracer tracer = new OpenTelemetryPubsubTracer(null, false); + private final SubscriberShutdownSettings subscriberShutdownSettings; + private final AtomicBoolean nackImmediatelyShutdownInProgress = new AtomicBoolean(false); + /** Internal representation of a reply to a Pubsub message, to be sent back to the service. */ public enum AckReply { ACK, @@ -156,6 +165,7 @@ public void onFailure(Throwable t) { t); this.ackRequestData.setResponse(AckResponse.OTHER, false); pendingNacks.add(this.ackRequestData); + tracer.endSubscribeProcessSpan(this.ackRequestData.getMessageWrapper(), "nack"); forget(); } @@ -163,14 +173,22 @@ public void onFailure(Throwable t) { public void onSuccess(AckReply reply) { switch (reply) { case ACK: - pendingAcks.add(this.ackRequestData); - // Record the latency rounded to the next closest integer. - ackLatencyDistribution.record( - Ints.saturatedCast( - (long) Math.ceil((clock.millisTime() - receivedTimeMillis) / 1000D))); + if (nackImmediatelyShutdownInProgress.get() && exactlyOnceDeliveryEnabled.get()) { + this.ackRequestData.setResponse(AckResponse.OTHER, true); + tracer.endSubscribeProcessSpan( + this.ackRequestData.getMessageWrapper(), "ack failed_with_nack_immediately"); + } else { + pendingAcks.add(this.ackRequestData); + // Record the latency rounded to the next closest integer. + ackLatencyDistribution.record( + Ints.saturatedCast( + (long) Math.ceil((clock.millisTime() - receivedTimeMillis) / 1000D))); + tracer.endSubscribeProcessSpan(this.ackRequestData.getMessageWrapper(), "ack"); + } break; case NACK: pendingNacks.add(this.ackRequestData); + tracer.endSubscribeProcessSpan(this.ackRequestData.getMessageWrapper(), "nack"); break; default: throw new IllegalArgumentException(String.format("AckReply: %s not supported", reply)); @@ -216,6 +234,13 @@ private MessageDispatcher(Builder builder) { jobLock = new ReentrantLock(); messagesWaiter = new Waiter(); sequentialExecutor = new SequentialExecutorService.AutoExecutor(builder.executor); + + subscriptionNameObject = SubscriptionName.parse(builder.subscriptionName); + enableOpenTelemetryTracing = builder.enableOpenTelemetryTracing; + if (builder.tracer != null) { + tracer = builder.tracer; + } + this.subscriberShutdownSettings = builder.subscriberShutdownSettings; } private boolean shouldSetMessageFuture() { @@ -279,8 +304,62 @@ public void run() { } } + private void nackAllOutstandingMessages() { + nackImmediatelyShutdownInProgress.set(true); + List handlersToNack = new ArrayList<>(pendingMessages.values()); + for (AckHandler ackHandler : handlersToNack) { + pendingNacks.add(ackHandler.getAckRequestData()); + ackHandler.forget(); // This removes from pendingMessages, releases flow control, etc. + } + } + void stop() { - messagesWaiter.waitComplete(); + switch (subscriberShutdownSettings.getMode()) { + case WAIT_FOR_PROCESSING: + logger.log( + Level.FINE, + "WAIT_FOR_PROCESSING shutdown mode: Waiting for outstanding messages to complete" + + " processing."); + java.time.Duration timeout = subscriberShutdownSettings.getTimeout(); + if (timeout.isNegative()) { + // Indefinite wait use existing blocking wait + messagesWaiter.waitComplete(); + } else { + // Wait for (timeout - 1 second) for messages to complete + long gracePeriodMillis = Math.max(0, timeout.toMillis() - FINAL_NACK_TIMEOUT); + boolean completedWait = messagesWaiter.tryWait(gracePeriodMillis, clock); + if (!completedWait) { + logger.log( + Level.WARNING, + "Grace period expired for WAIT_FOR_PROCESSING shutdown. Nacking remaining" + + " messages."); + // Switch to NACK_IMMEDIATELY behavior for remaining messages + nackAllOutstandingMessages(); + } + } + cancelBackgroundJob(); + processOutstandingOperations(); // Send any remaining acks/nacks. + break; + + case NACK_IMMEDIATELY: + logger.log(Level.FINE, "NACK_IMMEDIATELY shutdown mode: Nacking all outstanding messages."); + // Stop extending deadlines immediately. + cancelBackgroundJob(); + nackAllOutstandingMessages(); + processOutstandingOperations(); // Send all pending nacks. + break; + + default: + logger.log(Level.WARNING, "Unknown shutdown mode: " + subscriberShutdownSettings.getMode()); + // Default to WAIT_FOR_PROCESSING behavior + messagesWaiter.waitComplete(); + cancelBackgroundJob(); + processOutstandingOperations(); + break; + } + } + + private void cancelBackgroundJob() { jobLock.lock(); try { if (backgroundJob != null) { @@ -294,7 +373,6 @@ void stop() { } finally { jobLock.unlock(); } - processOutstandingOperations(); } @InternalApi @@ -349,14 +427,21 @@ void setMessageOrderingEnabled(boolean messageOrderingEnabled) { this.messageOrderingEnabled.set(messageOrderingEnabled); } + @InternalApi + boolean getNackImmediatelyShutdownInProgress() { + return nackImmediatelyShutdownInProgress.get(); + } + private static class OutstandingMessage { - private final ReceivedMessage receivedMessage; private final AckHandler ackHandler; - private OutstandingMessage(ReceivedMessage receivedMessage, AckHandler ackHandler) { - this.receivedMessage = receivedMessage; + private OutstandingMessage(AckHandler ackHandler) { this.ackHandler = ackHandler; } + + public PubsubMessageWrapper messageWrapper() { + return this.ackHandler.ackRequestData.getMessageWrapper(); + } } private static class ReceiptCompleteData { @@ -389,15 +474,27 @@ void processReceivedMessages(List messages) { if (shouldSetMessageFuture()) { builder.setMessageFuture(SettableApiFuture.create()); } + PubsubMessageWrapper messageWrapper = + PubsubMessageWrapper.newBuilder( + message.getMessage(), + subscriptionNameObject, + message.getAckId(), + message.getDeliveryAttempt()) + .build(); + builder.setMessageWrapper(messageWrapper); + tracer.startSubscriberSpan(messageWrapper, this.exactlyOnceDeliveryEnabled.get()); + AckRequestData ackRequestData = builder.build(); AckHandler ackHandler = new AckHandler(ackRequestData, message.getMessage().getSerializedSize(), totalExpiration); - OutstandingMessage outstandingMessage = new OutstandingMessage(message, ackHandler); + OutstandingMessage outstandingMessage = new OutstandingMessage(ackHandler); if (this.exactlyOnceDeliveryEnabled.get()) { // For exactly once deliveries we don't add to outstanding batch because we first // process the receipt modack. If that is successful then we process the message. - outstandingReceipts.put(message.getAckId(), new ReceiptCompleteData(outstandingMessage)); + synchronized (outstandingReceipts) { + outstandingReceipts.put(message.getAckId(), new ReceiptCompleteData(outstandingMessage)); + } } else if (pendingMessages.putIfAbsent(message.getAckId(), ackHandler) != null) { // putIfAbsent puts ackHandler if ackID isn't previously mapped, then return the // previously-mapped element. @@ -417,33 +514,51 @@ void processReceivedMessages(List messages) { } void notifyAckSuccess(AckRequestData ackRequestData) { - - if (outstandingReceipts.containsKey(ackRequestData.getAckId())) { - outstandingReceipts.get(ackRequestData.getAckId()).notifyReceiptComplete(); - List outstandingBatch = new ArrayList<>(); - - for (Iterator> it = - outstandingReceipts.entrySet().iterator(); - it.hasNext(); ) { - Map.Entry receipt = it.next(); - // If receipt is complete then add to outstandingBatch to process the batch - if (receipt.getValue().isReceiptComplete()) { - it.remove(); - if (pendingMessages.putIfAbsent( - receipt.getKey(), receipt.getValue().getOutstandingMessage().ackHandler) - == null) { - outstandingBatch.add(receipt.getValue().getOutstandingMessage()); + synchronized (outstandingReceipts) { + if (outstandingReceipts.containsKey(ackRequestData.getAckId())) { + outstandingReceipts.get(ackRequestData.getAckId()).notifyReceiptComplete(); + List outstandingBatch = new ArrayList<>(); + + for (Iterator> it = + outstandingReceipts.entrySet().iterator(); + it.hasNext(); ) { + Map.Entry receipt = it.next(); + // If receipt is complete then add to outstandingBatch to process the batch + if (receipt.getValue().isReceiptComplete()) { + it.remove(); + if (pendingMessages.putIfAbsent( + receipt.getKey(), receipt.getValue().getOutstandingMessage().ackHandler) + == null) { + outstandingBatch.add(receipt.getValue().getOutstandingMessage()); + } + } else { + break; } - } else { - break; } + processBatch(outstandingBatch); } - processBatch(outstandingBatch); } } void notifyAckFailed(AckRequestData ackRequestData) { - outstandingReceipts.remove(ackRequestData.getAckId()); + synchronized (outstandingReceipts) { + outstandingReceipts.remove(ackRequestData.getAckId()); + } + + // When notifying that an ack/modack has failed, due to a non-retryable error, + // we attempt to remove the message from the pending messages and release it from the flow + // controller so that we no longer attempt to extend the message's ack deadline. + if (pendingMessages.remove(ackRequestData.getAckId()) == null) { + /* + * We're forgetting the message for the second time. This may occur on modacks because the message passed + * its total expiration and was forgotten and then the user finishes working on the message + * which forgets the message again. Additionally, when a failed ack occurs, we will have already forgotten + * the message, so we don't need to here. Turns the second forget into a no-op so we don't free twice. + */ + return; + } + flowController.release(1, ackRequestData.getMessageWrapper().getSerializedSize()); + messagesWaiter.incrementPendingCount(-1); } private void processBatch(List batch) { @@ -451,30 +566,40 @@ private void processBatch(List batch) { for (OutstandingMessage message : batch) { // This is a blocking flow controller. We have already incremented messagesWaiter, so // shutdown will block on processing of all these messages anyway. + tracer.startSubscribeConcurrencyControlSpan(message.messageWrapper()); try { - flowController.reserve(1, message.receivedMessage.getMessage().getSerializedSize()); + flowController.reserve(1, message.messageWrapper().getPubsubMessage().getSerializedSize()); + tracer.endSubscribeConcurrencyControlSpan(message.messageWrapper()); } catch (FlowControlException unexpectedException) { // This should be a blocking flow controller and never throw an exception. + tracer.setSubscribeConcurrencyControlSpanException( + message.messageWrapper(), unexpectedException); throw new IllegalStateException("Flow control unexpected exception", unexpectedException); } - processOutstandingMessage(addDeliveryInfoCount(message.receivedMessage), message.ackHandler); + addDeliveryInfoCount(message.messageWrapper()); + processOutstandingMessage(message.ackHandler); } } - private PubsubMessage addDeliveryInfoCount(ReceivedMessage receivedMessage) { - PubsubMessage originalMessage = receivedMessage.getMessage(); - int deliveryAttempt = receivedMessage.getDeliveryAttempt(); + private void addDeliveryInfoCount(PubsubMessageWrapper messageWrapper) { + PubsubMessage originalMessage = messageWrapper.getPubsubMessage(); + int deliveryAttempt = messageWrapper.getDeliveryAttempt(); // Delivery Attempt will be set to 0 if DeadLetterPolicy is not set on the subscription. In // this case, do not populate the PubsubMessage with the delivery attempt attribute. if (deliveryAttempt > 0) { - return PubsubMessage.newBuilder(originalMessage) - .putAttributes("googclient_deliveryattempt", Integer.toString(deliveryAttempt)) - .build(); + messageWrapper.setPubsubMessage( + PubsubMessage.newBuilder(originalMessage) + .putAttributes("googclient_deliveryattempt", Integer.toString(deliveryAttempt)) + .build()); } - return originalMessage; } - private void processOutstandingMessage(final PubsubMessage message, final AckHandler ackHandler) { + private void processOutstandingMessage(final AckHandler ackHandler) { + // Get the PubsubMessageWrapper and the PubsubMessage it wraps that are stored withing the + // AckHandler object. + PubsubMessageWrapper messageWrapper = ackHandler.ackRequestData.getMessageWrapper(); + PubsubMessage message = messageWrapper.getPubsubMessage(); + // This future is for internal bookkeeping to be sent to the StreamingSubscriberConnection // use below in the consumers SettableApiFuture ackReplySettableApiFuture = SettableApiFuture.create(); @@ -493,8 +618,10 @@ public void run() { // so it was probably sent to someone else. Don't work on it. // Don't nack it either, because we'd be nacking someone else's message. ackHandler.forget(); + tracer.setSubscriberSpanExpirationResult(messageWrapper); return; } + tracer.startSubscribeProcessSpan(messageWrapper); if (shouldSetMessageFuture()) { // This is the message future that is propagated to the user SettableApiFuture messageFuture = @@ -515,7 +642,9 @@ public void run() { if (!messageOrderingEnabled.get() || message.getOrderingKey().isEmpty()) { executor.execute(deliverMessageTask); } else { + tracer.startSubscribeSchedulerSpan(messageWrapper); sequentialExecutor.submit(message.getOrderingKey(), deliverMessageTask); + tracer.endSubscribeSchedulerSpan(messageWrapper); } } @@ -600,9 +729,11 @@ void processOutstandingOperations() { List ackRequestDataReceipts = new ArrayList(); pendingReceipts.drainTo(ackRequestDataReceipts); - if (!ackRequestDataReceipts.isEmpty()) { - modackRequestData.add( - new ModackRequestData(this.getMessageDeadlineSeconds(), ackRequestDataReceipts)); + if (!ackRequestDataReceipts.isEmpty() && !getNackImmediatelyShutdownInProgress()) { + ModackRequestData receiptModack = + new ModackRequestData(this.getMessageDeadlineSeconds(), ackRequestDataReceipts); + receiptModack.setIsReceiptModack(true); + modackRequestData.add(receiptModack); } logger.log(Level.FINER, "Sending {0} receipts", ackRequestDataReceipts.size()); @@ -639,6 +770,11 @@ public static final class Builder { private ScheduledExecutorService systemExecutor; private ApiClock clock; + private String subscriptionName; + private boolean enableOpenTelemetryTracing; + private OpenTelemetryPubsubTracer tracer; + private SubscriberShutdownSettings subscriberShutdownSettings; + protected Builder(MessageReceiver receiver) { this.receiver = receiver; } @@ -709,6 +845,27 @@ public Builder setApiClock(ApiClock clock) { return this; } + public Builder setSubscriptionName(String subscriptionName) { + this.subscriptionName = subscriptionName; + return this; + } + + public Builder setEnableOpenTelemetryTracing(boolean enableOpenTelemetryTracing) { + this.enableOpenTelemetryTracing = enableOpenTelemetryTracing; + return this; + } + + public Builder setTracer(OpenTelemetryPubsubTracer tracer) { + this.tracer = tracer; + return this; + } + + public Builder setSubscriberShutdownSettings( + SubscriberShutdownSettings subscriberShutdownSettings) { + this.subscriberShutdownSettings = subscriberShutdownSettings; + return this; + } + public MessageDispatcher build() { return new MessageDispatcher(this); } diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/ModackRequestData.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/ModackRequestData.java index b4d2dae0f..54c7436af 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/ModackRequestData.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/ModackRequestData.java @@ -21,6 +21,7 @@ class ModackRequestData { private final int deadlineExtensionSeconds; private List ackRequestData; + private boolean isReceiptModack; ModackRequestData(int deadlineExtensionSeconds) { this.deadlineExtensionSeconds = deadlineExtensionSeconds; @@ -45,8 +46,17 @@ public List getAckRequestData() { return ackRequestData; } + public boolean getIsReceiptModack() { + return isReceiptModack; + } + public ModackRequestData addAckRequestData(AckRequestData ackRequestData) { this.ackRequestData.add(ackRequestData); return this; } + + public ModackRequestData setIsReceiptModack(boolean isReceiptModack) { + this.isReceiptModack = isReceiptModack; + return this; + } } diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/OpenTelemetryPubsubTracer.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/OpenTelemetryPubsubTracer.java new file mode 100644 index 000000000..3de448458 --- /dev/null +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/OpenTelemetryPubsubTracer.java @@ -0,0 +1,463 @@ +/* + * 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. + */ + +package com.google.cloud.pubsub.v1; + +import com.google.pubsub.v1.PubsubMessage; +import com.google.pubsub.v1.SubscriptionName; +import com.google.pubsub.v1.TopicName; +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.common.AttributesBuilder; +import io.opentelemetry.api.trace.Span; +import io.opentelemetry.api.trace.SpanBuilder; +import io.opentelemetry.api.trace.SpanKind; +import io.opentelemetry.api.trace.StatusCode; +import io.opentelemetry.api.trace.Tracer; +import io.opentelemetry.context.Context; +import java.util.List; + +public class OpenTelemetryPubsubTracer { + private final Tracer tracer; + private boolean enabled = false; + + private static final String PUBLISH_FLOW_CONTROL_SPAN_NAME = "publisher flow control"; + private static final String PUBLISH_BATCHING_SPAN_NAME = "publisher batching"; + private static final String SUBSCRIBE_CONCURRENCY_CONTROL_SPAN_NAME = + "subscriber concurrency control"; + private static final String SUBSCRIBE_SCHEDULER_SPAN_NAME = "subscriber scheduler"; + + private static final String MESSAGING_SYSTEM_ATTR_KEY = "messaging.system"; + private static final String MESSAGING_DESTINATION_NAME_ATTR_KEY = "messaging.destination.name"; + private static final String CODE_FUNCTION_ATTR_KEY = "code.function"; + private static final String MESSAGING_OPERATION_ATTR_KEY = "messaging.operation"; + private static final String MESSAGING_BATCH_MESSAGE_COUNT_ATTR_KEY = + "messaging.batch.message_count"; + private static final String MESSAGING_MESSAGE_ID_ATTR_KEY = "messaging.message.id"; + private static final String MESSAGE_SIZE_ATTR_KEY = "messaging.message.body.size"; + private static final String ORDERING_KEY_ATTR_KEY = "messaging.gcp_pubsub.message.ordering_key"; + private static final String MESSAGE_ACK_ID_ATTR_KEY = "messaging.gcp_pubsub.message.ack_id"; + private static final String MESSAGE_EXACTLY_ONCE_ATTR_KEY = + "messaging.gcp_pubsub.message.exactly_once_delivery"; + private static final String MESSAGE_DELIVERY_ATTEMPT_ATTR_KEY = + "messaging.gcp_pubsub.message.delivery_attempt"; + private static final String ACK_DEADLINE_ATTR_KEY = "messaging.gcp_pubsub.message.ack_deadline"; + private static final String RECEIPT_MODACK_ATTR_KEY = "messaging.gcp_pubsub.is_receipt_modack"; + private static final String PROJECT_ATTR_KEY = "gcp.project_id"; + private static final String PUBLISH_RPC_SPAN_SUFFIX = " publish"; + + private static final String MESSAGING_SYSTEM_VALUE = "gcp_pubsub"; + + OpenTelemetryPubsubTracer(Tracer tracer, boolean enableOpenTelemetry) { + this.tracer = tracer; + if (this.tracer != null && enableOpenTelemetry) { + this.enabled = true; + } + } + + /** Populates attributes that are common the publisher parent span and publish RPC span. */ + private static final AttributesBuilder createCommonSpanAttributesBuilder( + String destinationName, String projectName, String codeFunction, String operation) { + AttributesBuilder attributesBuilder = + Attributes.builder() + .put(MESSAGING_SYSTEM_ATTR_KEY, MESSAGING_SYSTEM_VALUE) + .put(MESSAGING_DESTINATION_NAME_ATTR_KEY, destinationName) + .put(PROJECT_ATTR_KEY, projectName) + .put(CODE_FUNCTION_ATTR_KEY, codeFunction); + if (operation != null) { + attributesBuilder.put(MESSAGING_OPERATION_ATTR_KEY, operation); + } + + return attributesBuilder; + } + + private Span startChildSpan(String name, Span parent) { + return tracer.spanBuilder(name).setParent(Context.current().with(parent)).startSpan(); + } + + /** + * Creates and starts the parent span with the appropriate span attributes and injects the span + * context into the {@link PubsubMessage} attributes. + */ + void startPublisherSpan(PubsubMessageWrapper message) { + if (!enabled) { + return; + } + AttributesBuilder attributesBuilder = + createCommonSpanAttributesBuilder( + message.getTopicName(), message.getTopicProject(), "publish", "create"); + + attributesBuilder.put(MESSAGE_SIZE_ATTR_KEY, message.getDataSize()); + if (!message.getOrderingKey().isEmpty()) { + attributesBuilder.put(ORDERING_KEY_ATTR_KEY, message.getOrderingKey()); + } + + Span publisherSpan = + tracer + .spanBuilder(message.getTopicName() + " create") + .setSpanKind(SpanKind.PRODUCER) + .setAllAttributes(attributesBuilder.build()) + .startSpan(); + + message.setPublisherSpan(publisherSpan); + if (publisherSpan.getSpanContext().isValid()) { + message.injectSpanContext(); + } + } + + void endPublisherSpan(PubsubMessageWrapper message) { + if (!enabled) { + return; + } + message.endPublisherSpan(); + } + + void setPublisherMessageIdSpanAttribute(PubsubMessageWrapper message, String messageId) { + if (!enabled) { + return; + } + message.setPublisherMessageIdSpanAttribute(messageId); + } + + /** Creates a span for publish-side flow control as a child of the parent publisher span. */ + void startPublishFlowControlSpan(PubsubMessageWrapper message) { + if (!enabled) { + return; + } + Span publisherSpan = message.getPublisherSpan(); + if (publisherSpan != null) + message.setPublishFlowControlSpan( + startChildSpan(PUBLISH_FLOW_CONTROL_SPAN_NAME, publisherSpan)); + } + + void endPublishFlowControlSpan(PubsubMessageWrapper message) { + if (!enabled) { + return; + } + message.endPublishFlowControlSpan(); + } + + void setPublishFlowControlSpanException(PubsubMessageWrapper message, Throwable t) { + if (!enabled) { + return; + } + message.setPublishFlowControlSpanException(t); + } + + /** Creates a span for publish message batching as a child of the parent publisher span. */ + void startPublishBatchingSpan(PubsubMessageWrapper message) { + if (!enabled) { + return; + } + Span publisherSpan = message.getPublisherSpan(); + if (publisherSpan != null) { + message.setPublishBatchingSpan(startChildSpan(PUBLISH_BATCHING_SPAN_NAME, publisherSpan)); + } + } + + void endPublishBatchingSpan(PubsubMessageWrapper message) { + if (!enabled) { + return; + } + message.endPublishBatchingSpan(); + } + + /** + * Creates, starts, and returns a publish RPC span for the given message batch. Bi-directional + * links with the publisher parent span are created for sampled messages in the batch. + */ + Span startPublishRpcSpan(TopicName topicName, List messages) { + if (!enabled) { + return null; + } + Attributes attributes = + createCommonSpanAttributesBuilder( + topicName.getTopic(), topicName.getProject(), "publishCall", "publish") + .put(MESSAGING_BATCH_MESSAGE_COUNT_ATTR_KEY, messages.size()) + .build(); + SpanBuilder publishRpcSpanBuilder = + tracer + .spanBuilder(topicName.getTopic() + PUBLISH_RPC_SPAN_SUFFIX) + .setSpanKind(SpanKind.CLIENT) + .setAllAttributes(attributes); + Attributes linkAttributes = + Attributes.builder().put(MESSAGING_OPERATION_ATTR_KEY, "publish").build(); + for (PubsubMessageWrapper message : messages) { + if (message.getPublisherSpan().getSpanContext().isSampled()) + publishRpcSpanBuilder.addLink(message.getPublisherSpan().getSpanContext(), linkAttributes); + } + Span publishRpcSpan = publishRpcSpanBuilder.startSpan(); + + for (PubsubMessageWrapper message : messages) { + if (publishRpcSpan.getSpanContext().isSampled()) { + message.getPublisherSpan().addLink(publishRpcSpan.getSpanContext(), linkAttributes); + message.addPublishStartEvent(); + } + } + return publishRpcSpan; + } + + /** Ends the given publish RPC span if it exists. */ + void endPublishRpcSpan(Span publishRpcSpan) { + if (!enabled) { + return; + } + if (publishRpcSpan != null) { + publishRpcSpan.end(); + } + } + + /** + * Sets an error status and records an exception when an exception is thrown when publishing the + * message batch. + */ + void setPublishRpcSpanException(Span publishRpcSpan, Throwable t) { + if (!enabled) { + return; + } + if (publishRpcSpan != null) { + publishRpcSpan.setStatus(StatusCode.ERROR, "Exception thrown on publish RPC."); + publishRpcSpan.recordException(t); + publishRpcSpan.end(); + } + } + + void startSubscriberSpan(PubsubMessageWrapper message, boolean exactlyOnceDeliveryEnabled) { + if (!enabled) { + return; + } + AttributesBuilder attributesBuilder = + createCommonSpanAttributesBuilder( + message.getSubscriptionName(), message.getSubscriptionProject(), "onResponse", null); + + attributesBuilder + .put(MESSAGING_MESSAGE_ID_ATTR_KEY, message.getMessageId()) + .put(MESSAGE_SIZE_ATTR_KEY, message.getDataSize()) + .put(MESSAGE_ACK_ID_ATTR_KEY, message.getAckId()) + .put(MESSAGE_EXACTLY_ONCE_ATTR_KEY, exactlyOnceDeliveryEnabled); + if (!message.getOrderingKey().isEmpty()) { + attributesBuilder.put(ORDERING_KEY_ATTR_KEY, message.getOrderingKey()); + } + if (message.getDeliveryAttempt() > 0) { + attributesBuilder.put(MESSAGE_DELIVERY_ATTEMPT_ATTR_KEY, message.getDeliveryAttempt()); + } + Attributes attributes = attributesBuilder.build(); + Context publisherSpanContext = message.extractSpanContext(attributes); + message.setPublisherSpan(Span.fromContextOrNull(publisherSpanContext)); + message.setSubscriberSpan( + tracer + .spanBuilder(message.getSubscriptionName() + " subscribe") + .setSpanKind(SpanKind.CONSUMER) + .setParent(publisherSpanContext) + .setAllAttributes(attributes) + .startSpan()); + } + + void endSubscriberSpan(PubsubMessageWrapper message) { + if (!enabled) { + return; + } + message.endSubscriberSpan(); + } + + void setSubscriberSpanExpirationResult(PubsubMessageWrapper message) { + if (!enabled) { + return; + } + message.setSubscriberSpanExpirationResult(); + } + + void setSubscriberSpanException(PubsubMessageWrapper message, Throwable t, String exception) { + if (!enabled) { + return; + } + message.setSubscriberSpanException(t, exception); + } + + /** Creates a span for subscribe concurrency control as a child of the parent subscriber span. */ + void startSubscribeConcurrencyControlSpan(PubsubMessageWrapper message) { + if (!enabled) { + return; + } + Span subscriberSpan = message.getSubscriberSpan(); + if (subscriberSpan != null) { + message.setSubscribeConcurrencyControlSpan( + startChildSpan(SUBSCRIBE_CONCURRENCY_CONTROL_SPAN_NAME, subscriberSpan)); + } + } + + void endSubscribeConcurrencyControlSpan(PubsubMessageWrapper message) { + if (!enabled) { + return; + } + message.endSubscribeConcurrencyControlSpan(); + } + + void setSubscribeConcurrencyControlSpanException(PubsubMessageWrapper message, Throwable t) { + if (!enabled) { + return; + } + message.setSubscribeConcurrencyControlSpanException(t); + } + + /** + * Creates a span for subscribe ordering key scheduling as a child of the parent subscriber span. + */ + void startSubscribeSchedulerSpan(PubsubMessageWrapper message) { + if (!enabled) { + return; + } + Span subscriberSpan = message.getSubscriberSpan(); + if (subscriberSpan != null) { + message.setSubscribeSchedulerSpan( + startChildSpan(SUBSCRIBE_SCHEDULER_SPAN_NAME, subscriberSpan)); + } + } + + void endSubscribeSchedulerSpan(PubsubMessageWrapper message) { + if (!enabled) { + return; + } + message.endSubscribeSchedulerSpan(); + } + + /** Creates a span for subscribe message processing as a child of the parent subscriber span. */ + void startSubscribeProcessSpan(PubsubMessageWrapper message) { + if (!enabled) { + return; + } + Span subscriberSpan = message.getSubscriberSpan(); + if (subscriberSpan != null) { + Span subscribeProcessSpan = + startChildSpan(message.getSubscriptionName() + " process", subscriberSpan); + subscribeProcessSpan.setAttribute(MESSAGING_SYSTEM_ATTR_KEY, MESSAGING_SYSTEM_VALUE); + Span publisherSpan = message.getPublisherSpan(); + if (publisherSpan != null) { + subscribeProcessSpan.addLink(publisherSpan.getSpanContext()); + } + message.setSubscribeProcessSpan(subscribeProcessSpan); + } + } + + void endSubscribeProcessSpan(PubsubMessageWrapper message, String action) { + if (!enabled) { + return; + } + message.endSubscribeProcessSpan(action); + } + + /** + * Creates, starts, and returns spans for ModAck, Nack, and Ack RPC requests. Bi-directional links + * to parent subscribe span for sampled messages are added. + */ + Span startSubscribeRpcSpan( + SubscriptionName subscriptionName, + String rpcOperation, + List messages, + int ackDeadline, + boolean isReceiptModack) { + if (!enabled) { + return null; + } + String codeFunction = rpcOperation == "ack" ? "sendAckOperations" : "sendModAckOperations"; + AttributesBuilder attributesBuilder = + createCommonSpanAttributesBuilder( + subscriptionName.getSubscription(), + subscriptionName.getProject(), + codeFunction, + rpcOperation) + .put(MESSAGING_BATCH_MESSAGE_COUNT_ATTR_KEY, messages.size()); + + // Ack deadline and receipt modack are specific to the modack operation + if (rpcOperation == "modack") { + attributesBuilder + .put(ACK_DEADLINE_ATTR_KEY, ackDeadline) + .put(RECEIPT_MODACK_ATTR_KEY, isReceiptModack); + } + + SpanBuilder rpcSpanBuilder = + tracer + .spanBuilder(subscriptionName.getSubscription() + " " + rpcOperation) + .setSpanKind(SpanKind.CLIENT) + .setAllAttributes(attributesBuilder.build()); + Attributes linkAttributes = + Attributes.builder().put(MESSAGING_OPERATION_ATTR_KEY, rpcOperation).build(); + for (PubsubMessageWrapper message : messages) { + if (message.getSubscriberSpan().getSpanContext().isSampled()) { + rpcSpanBuilder.addLink(message.getSubscriberSpan().getSpanContext(), linkAttributes); + } + } + Span rpcSpan = rpcSpanBuilder.startSpan(); + + for (PubsubMessageWrapper message : messages) { + if (rpcSpan.getSpanContext().isSampled()) { + message.getSubscriberSpan().addLink(rpcSpan.getSpanContext(), linkAttributes); + switch (rpcOperation) { + case "ack": + message.addAckStartEvent(); + break; + case "modack": + message.addModAckStartEvent(); + break; + case "nack": + message.addNackStartEvent(); + break; + } + } + } + return rpcSpan; + } + + /** Ends the given subscribe RPC span if it exists. */ + void endSubscribeRpcSpan(Span rpcSpan) { + if (!enabled) { + return; + } + if (rpcSpan != null) { + rpcSpan.end(); + } + } + + /** + * Sets an error status and records an exception when an exception is thrown when handling a + * subscribe-side RPC. + */ + void setSubscribeRpcSpanException(Span rpcSpan, boolean isModack, int ackDeadline, Throwable t) { + if (!enabled) { + return; + } + if (rpcSpan != null) { + String operation = !isModack ? "ack" : (ackDeadline == 0 ? "nack" : "modack"); + rpcSpan.setStatus(StatusCode.ERROR, "Exception thrown on " + operation + " RPC."); + rpcSpan.recordException(t); + rpcSpan.end(); + } + } + + /** Adds the appropriate subscribe-side RPC end event. */ + void addEndRpcEvent( + PubsubMessageWrapper message, boolean rpcSampled, boolean isModack, int ackDeadline) { + if (!enabled || !rpcSampled) { + return; + } + if (!isModack) { + message.addAckEndEvent(); + } else if (ackDeadline == 0) { + message.addNackEndEvent(); + } else { + message.addModAckEndEvent(); + } + } +} diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Publisher.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Publisher.java index d0437cb58..113cbf932 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Publisher.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Publisher.java @@ -46,13 +46,18 @@ import com.google.cloud.pubsub.v1.stub.PublisherStub; import com.google.cloud.pubsub.v1.stub.PublisherStubSettings; import com.google.common.base.Preconditions; +import com.google.protobuf.CodedOutputStream; import com.google.pubsub.v1.PublishRequest; import com.google.pubsub.v1.PublishResponse; import com.google.pubsub.v1.PubsubMessage; import com.google.pubsub.v1.TopicName; import com.google.pubsub.v1.TopicNames; import io.grpc.CallOptions; +import io.opentelemetry.api.OpenTelemetry; +import io.opentelemetry.api.trace.Span; +import io.opentelemetry.api.trace.Tracer; import java.io.IOException; +import java.time.Duration; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; @@ -69,7 +74,6 @@ import java.util.concurrent.locks.ReentrantLock; import java.util.logging.Level; import java.util.logging.Logger; -import org.threeten.bp.Duration; /** * A Cloud Pub/Sub publisher, that is @@ -93,7 +97,11 @@ public class Publisher implements PublisherInterface { private static final String GZIP_COMPRESSION = "gzip"; + private static final String OPEN_TELEMETRY_TRACER_NAME = "com.google.cloud.pubsub.v1"; + private final String topicName; + private final int topicNameSize; + private final TopicName topicNameObject; private final BatchingSettings batchingSettings; private final boolean enableMessageOrdering; @@ -124,6 +132,10 @@ public class Publisher implements PublisherInterface { private final GrpcCallContext publishContext; private final GrpcCallContext publishContextWithCompression; + private final boolean enableOpenTelemetryTracing; + private final OpenTelemetry openTelemetry; + private OpenTelemetryPubsubTracer tracer = new OpenTelemetryPubsubTracer(null, false); + /** The maximum number of messages in one request. Defined by the API. */ public static long getApiMaxRequestElementCount() { return 1000L; @@ -136,6 +148,9 @@ public static long getApiMaxRequestBytes() { private Publisher(Builder builder) throws IOException { topicName = builder.topicName; + topicNameSize = + CodedOutputStream.computeStringSize(PublishRequest.TOPIC_FIELD_NUMBER, this.topicName); + topicNameObject = TopicName.parse(this.topicName); this.batchingSettings = builder.batchingSettings; FlowControlSettings flowControl = this.batchingSettings.getFlowControlSettings(); @@ -152,6 +167,15 @@ private Publisher(Builder builder) throws IOException { this.messageTransform = builder.messageTransform; this.enableCompression = builder.enableCompression; this.compressionBytesThreshold = builder.compressionBytesThreshold; + this.enableOpenTelemetryTracing = builder.enableOpenTelemetryTracing; + this.openTelemetry = builder.openTelemetry; + if (this.openTelemetry != null && this.enableOpenTelemetryTracing) { + Tracer openTelemetryTracer = builder.openTelemetry.getTracer(OPEN_TELEMETRY_TRACER_NAME); + if (openTelemetryTracer != null) { + this.tracer = + new OpenTelemetryPubsubTracer(openTelemetryTracer, this.enableOpenTelemetryTracing); + } + } messagesBatches = new HashMap<>(); messagesBatchLock = new ReentrantLock(); @@ -176,7 +200,7 @@ private Publisher(Builder builder) throws IOException { // key? retrySettingsBuilder .setMaxAttempts(Integer.MAX_VALUE) - .setTotalTimeout(Duration.ofNanos(Long.MAX_VALUE)); + .setTotalTimeoutDuration(Duration.ofNanos(Long.MAX_VALUE)); } PublisherStubSettings.Builder stubSettings = @@ -185,6 +209,7 @@ private Publisher(Builder builder) throws IOException { .setExecutorProvider(FixedExecutorProvider.create(executor)) .setTransportChannelProvider(builder.channelProvider) .setEndpoint(builder.endpoint) + .setUniverseDomain(builder.universeDomain) .setHeaderProvider(builder.headerProvider); stubSettings .publishSettings() @@ -258,17 +283,23 @@ public ApiFuture publish(PubsubMessage message) { + "Publisher client. Please create a Publisher client with " + "setEnableMessageOrdering(true) in the builder."); - final OutstandingPublish outstandingPublish = - new OutstandingPublish(messageTransform.apply(message)); + PubsubMessageWrapper messageWrapper = + PubsubMessageWrapper.newBuilder(messageTransform.apply(message), topicNameObject).build(); + tracer.startPublisherSpan(messageWrapper); + + final OutstandingPublish outstandingPublish = new OutstandingPublish(messageWrapper); if (flowController != null) { + tracer.startPublishFlowControlSpan(messageWrapper); try { flowController.acquire(outstandingPublish.messageSize); + tracer.endPublishFlowControlSpan(messageWrapper); } catch (FlowController.FlowControlException e) { if (!orderingKey.isEmpty()) { sequentialExecutor.stopPublish(orderingKey); } outstandingPublish.publishResult.setException(e); + tracer.setPublishFlowControlSpanException(messageWrapper, e); return outstandingPublish.publishResult; } } @@ -276,6 +307,7 @@ public ApiFuture publish(PubsubMessage message) { List batchesToSend; messagesBatchLock.lock(); try { + tracer.startPublishBatchingSpan(messageWrapper); if (!orderingKey.isEmpty() && sequentialExecutor.keyHasError(orderingKey)) { outstandingPublish.publishResult.setException( SequentialExecutorService.CallbackExecutor.CANCELLATION_EXCEPTION); @@ -283,7 +315,7 @@ public ApiFuture publish(PubsubMessage message) { } MessagesBatch messagesBatch = messagesBatches.get(orderingKey); if (messagesBatch == null) { - messagesBatch = new MessagesBatch(batchingSettings, orderingKey); + messagesBatch = new MessagesBatch(batchingSettings, topicNameSize, orderingKey); messagesBatches.put(orderingKey, messagesBatch); } @@ -451,12 +483,23 @@ private ApiFuture publishCall(OutstandingBatch outstandingBatch if (enableCompression && outstandingBatch.batchSizeBytes >= compressionBytesThreshold) { context = publishContextWithCompression; } + + int numMessagesInBatch = outstandingBatch.size(); + List pubsubMessagesList = new ArrayList(numMessagesInBatch); + List messageWrappers = outstandingBatch.getMessageWrappers(); + for (PubsubMessageWrapper messageWrapper : messageWrappers) { + tracer.endPublishBatchingSpan(messageWrapper); + pubsubMessagesList.add(messageWrapper.getPubsubMessage()); + } + + outstandingBatch.publishRpcSpan = tracer.startPublishRpcSpan(topicNameObject, messageWrappers); + return publisherStub .publishCallable() .futureCall( PublishRequest.newBuilder() .setTopic(topicName) - .addAllMessages(outstandingBatch.getMessages()) + .addAllMessages(pubsubMessagesList) .build(), context); } @@ -540,6 +583,7 @@ private final class OutstandingBatch { int attempt; int batchSizeBytes; final String orderingKey; + Span publishRpcSpan; OutstandingBatch( List outstandingPublishes, int batchSizeBytes, String orderingKey) { @@ -554,24 +598,29 @@ int size() { return outstandingPublishes.size(); } - private List getMessages() { - List results = new ArrayList<>(outstandingPublishes.size()); + private List getMessageWrappers() { + List results = new ArrayList<>(outstandingPublishes.size()); for (OutstandingPublish outstandingPublish : outstandingPublishes) { - results.add(outstandingPublish.message); + results.add(outstandingPublish.messageWrapper); } return results; } private void onFailure(Throwable t) { + tracer.setPublishRpcSpanException(publishRpcSpan, t); + for (OutstandingPublish outstandingPublish : outstandingPublishes) { if (flowController != null) { flowController.release(outstandingPublish.messageSize); } outstandingPublish.publishResult.setException(t); + tracer.endPublisherSpan(outstandingPublish.messageWrapper); } } private void onSuccess(Iterable results) { + tracer.endPublishRpcSpan(publishRpcSpan); + Iterator messagesResultsIt = outstandingPublishes.iterator(); for (String messageId : results) { OutstandingPublish nextPublish = messagesResultsIt.next(); @@ -579,19 +628,23 @@ private void onSuccess(Iterable results) { flowController.release(nextPublish.messageSize); } nextPublish.publishResult.set(messageId); + tracer.setPublisherMessageIdSpanAttribute(nextPublish.messageWrapper, messageId); + tracer.endPublisherSpan(nextPublish.messageWrapper); } } } private static final class OutstandingPublish { final SettableApiFuture publishResult; - final PubsubMessage message; + final PubsubMessageWrapper messageWrapper; final int messageSize; - OutstandingPublish(PubsubMessage message) { + OutstandingPublish(PubsubMessageWrapper messageWrapper) { this.publishResult = SettableApiFuture.create(); - this.message = message; - this.messageSize = message.getSerializedSize(); + this.messageWrapper = messageWrapper; + this.messageSize = + CodedOutputStream.computeMessageSize( + PublishRequest.MESSAGES_FIELD_NUMBER, messageWrapper.getPubsubMessage()); } } @@ -689,7 +742,7 @@ public static final class Builder { private static final double DEFAULT_MULTIPLIER = 4; static final BatchingSettings DEFAULT_BATCHING_SETTINGS = BatchingSettings.newBuilder() - .setDelayThreshold(DEFAULT_DELAY_THRESHOLD) + .setDelayThresholdDuration(DEFAULT_DELAY_THRESHOLD) .setRequestByteThreshold(DEFAULT_REQUEST_BYTES_THRESHOLD) .setElementCountThreshold(DEFAULT_ELEMENT_COUNT_THRESHOLD) .setFlowControlSettings( @@ -699,13 +752,13 @@ public static final class Builder { .build(); static final RetrySettings DEFAULT_RETRY_SETTINGS = RetrySettings.newBuilder() - .setTotalTimeout(DEFAULT_TOTAL_TIMEOUT) - .setInitialRetryDelay(DEFAULT_INITIAL_RETRY_DELAY) + .setTotalTimeoutDuration(DEFAULT_TOTAL_TIMEOUT) + .setInitialRetryDelayDuration(DEFAULT_INITIAL_RETRY_DELAY) .setRetryDelayMultiplier(DEFAULT_MULTIPLIER) - .setMaxRetryDelay(DEFAULT_MAX_RETRY_DELAY) - .setInitialRpcTimeout(DEFAULT_INITIAL_RPC_TIMEOUT) + .setMaxRetryDelayDuration(DEFAULT_MAX_RETRY_DELAY) + .setInitialRpcTimeoutDuration(DEFAULT_INITIAL_RPC_TIMEOUT) .setRpcTimeoutMultiplier(DEFAULT_MULTIPLIER) - .setMaxRpcTimeout(DEFAULT_MAX_RPC_TIMEOUT) + .setMaxRpcTimeoutDuration(DEFAULT_MAX_RPC_TIMEOUT) .build(); static final boolean DEFAULT_ENABLE_MESSAGE_ORDERING = false; private static final int THREADS_PER_CPU = 5; @@ -717,7 +770,8 @@ public static final class Builder { static final long DEFAULT_COMPRESSION_BYTES_THRESHOLD = 240L; String topicName; - private String endpoint = PublisherStubSettings.getDefaultEndpoint(); + private String endpoint = null; + private String universeDomain = null; // Batching options BatchingSettings batchingSettings = DEFAULT_BATCHING_SETTINGS; @@ -747,6 +801,9 @@ public PubsubMessage apply(PubsubMessage input) { private boolean enableCompression = DEFAULT_ENABLE_COMPRESSION; private long compressionBytesThreshold = DEFAULT_COMPRESSION_BYTES_THRESHOLD; + private boolean enableOpenTelemetryTracing = false; + private OpenTelemetry openTelemetry = null; + private Builder(String topic) { this.topicName = Preconditions.checkNotNull(topic); } @@ -821,9 +878,9 @@ public Builder setBatchingSettings(BatchingSettings batchingSettings) { /** Configures the Publisher's retry parameters. */ public Builder setRetrySettings(RetrySettings retrySettings) { Preconditions.checkArgument( - retrySettings.getTotalTimeout().compareTo(MIN_TOTAL_TIMEOUT) >= 0); + retrySettings.getTotalTimeoutDuration().compareTo(MIN_TOTAL_TIMEOUT) >= 0); Preconditions.checkArgument( - retrySettings.getInitialRpcTimeout().compareTo(MIN_RPC_TIMEOUT) >= 0); + retrySettings.getInitialRpcTimeoutDuration().compareTo(MIN_RPC_TIMEOUT) >= 0); this.retrySettings = retrySettings; return this; } @@ -857,6 +914,12 @@ public Builder setEndpoint(String endpoint) { return this; } + /** Gives the ability to override the universe domain. */ + public Builder setUniverseDomain(String universeDomain) { + this.universeDomain = universeDomain; + return this; + } + /** Gives the ability to enable transport compression. */ public Builder setEnableCompression(boolean enableCompression) { this.enableCompression = enableCompression; @@ -872,6 +935,26 @@ public Builder setCompressionBytesThreshold(long compressionBytesThreshold) { return this; } + /** + * OpenTelemetry will be enabled if setEnableOpenTelemetry is true and and instance of + * OpenTelemetry has been provied. Warning: traces are subject to change. The name and + * attributes of a span might change without notice. Only use run traces interactively. Don't + * use in automation. Running non-interactive traces can cause problems if the underlying trace + * architecture changes without notice. + */ + + /** Gives the ability to enable Open Telemetry Tracing */ + public Builder setEnableOpenTelemetryTracing(boolean enableOpenTelemetryTracing) { + this.enableOpenTelemetryTracing = enableOpenTelemetryTracing; + return this; + } + + /** Sets the instance of OpenTelemetry for the Publisher class. */ + public Builder setOpenTelemetry(OpenTelemetry openTelemetry) { + this.openTelemetry = openTelemetry; + return this; + } + /** Returns the default BatchingSettings used by the client if settings are not provided. */ public static BatchingSettings getDefaultBatchingSettings() { return DEFAULT_BATCHING_SETTINGS; @@ -1018,12 +1101,15 @@ void release(long messageSize) { private class MessagesBatch { private List messages; + private int initialBatchedBytes; private int batchedBytes; private String orderingKey; private final BatchingSettings batchingSettings; - private MessagesBatch(BatchingSettings batchingSettings, String orderingKey) { + private MessagesBatch( + BatchingSettings batchingSettings, int initialBatchedBytes, String orderingKey) { this.batchingSettings = batchingSettings; + this.initialBatchedBytes = initialBatchedBytes; this.orderingKey = orderingKey; reset(); } @@ -1036,7 +1122,7 @@ private OutstandingBatch popOutstandingBatch() { private void reset() { messages = new LinkedList<>(); - batchedBytes = 0; + batchedBytes = initialBatchedBytes; } private boolean isEmpty() { @@ -1075,7 +1161,9 @@ && getBatchedBytes() + outstandingPublish.messageSize >= getMaxBatchBytes()) { // immediately. // Alternatively if after adding the message we have reached the batch max messages then we // have a batch to send. - if ((hasBatchingBytes() && outstandingPublish.messageSize >= getMaxBatchBytes()) + // Note that exceeding {@link Publisher#getApiMaxRequestBytes()} will result in failed + // publishes without compression and may yet fail if a request is not sufficiently compressed. + if ((hasBatchingBytes() && getBatchedBytes() >= getMaxBatchBytes()) || getMessagesCount() == batchingSettings.getElementCountThreshold()) { batchesToSend.add(popOutstandingBatch()); } diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/PubsubMessageWrapper.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/PubsubMessageWrapper.java new file mode 100644 index 000000000..19864a26f --- /dev/null +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/PubsubMessageWrapper.java @@ -0,0 +1,422 @@ +/* + * 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. + */ + +package com.google.cloud.pubsub.v1; + +import com.google.pubsub.v1.PubsubMessage; +import com.google.pubsub.v1.SubscriptionName; +import com.google.pubsub.v1.TopicName; +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.trace.Span; +import io.opentelemetry.api.trace.StatusCode; +import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator; +import io.opentelemetry.context.Context; +import io.opentelemetry.context.propagation.TextMapGetter; +import io.opentelemetry.context.propagation.TextMapSetter; + +/** + * A wrapper class for a {@link PubsubMessage} object that handles creation and tracking of + * OpenTelemetry {@link Span} objects for different operations that occur during publishing. + */ +public class PubsubMessageWrapper { + private PubsubMessage message; + + private final TopicName topicName; + private final SubscriptionName subscriptionName; + + // Attributes set only for messages received from a streaming pull response. + private final String ackId; + private final int deliveryAttempt; + + private static final String PUBLISH_START_EVENT = "publish start"; + private static final String PUBLISH_END_EVENT = "publish end"; + + private static final String MODACK_START_EVENT = "modack start"; + private static final String MODACK_END_EVENT = "modack end"; + private static final String NACK_START_EVENT = "nack start"; + private static final String NACK_END_EVENT = "nack end"; + private static final String ACK_START_EVENT = "ack start"; + private static final String ACK_END_EVENT = "ack end"; + + private static final String GOOGCLIENT_PREFIX = "googclient_"; + + private static final String MESSAGING_MESSAGE_ID_ATTR_KEY = "messaging.message.id"; + private static final String MESSAGE_RESULT_ATTR_KEY = "messaging.gcp_pubsub.result"; + + private Span publisherSpan; + private Span publishFlowControlSpan; + private Span publishBatchingSpan; + + private Span subscriberSpan; + private Span subscribeConcurrencyControlSpan; + private Span subscribeSchedulerSpan; + private Span subscribeProcessSpan; + + private PubsubMessageWrapper(Builder builder) { + this.message = builder.message; + this.topicName = builder.topicName; + this.subscriptionName = builder.subscriptionName; + this.ackId = builder.ackId; + this.deliveryAttempt = builder.deliveryAttempt; + } + + static Builder newBuilder(PubsubMessage message, TopicName topicName) { + return new Builder(message, topicName); + } + + static Builder newBuilder( + PubsubMessage message, SubscriptionName subscriptionName, String ackId, int deliveryAttempt) { + return new Builder(message, subscriptionName, ackId, deliveryAttempt); + } + + /** Returns the PubsubMessage associated with this wrapper. */ + PubsubMessage getPubsubMessage() { + return message; + } + + void setPubsubMessage(PubsubMessage message) { + this.message = message; + } + + /** Returns the TopicName for this wrapper as a string. */ + String getTopicName() { + if (topicName != null) { + return topicName.getTopic(); + } + return ""; + } + + String getTopicProject() { + if (topicName != null) { + return topicName.getProject(); + } + return ""; + } + + /** Returns the SubscriptionName for this wrapper as a string. */ + String getSubscriptionName() { + if (subscriptionName != null) { + return subscriptionName.getSubscription(); + } + return ""; + } + + String getSubscriptionProject() { + if (subscriptionName != null) { + return subscriptionName.getProject(); + } + return ""; + } + + String getMessageId() { + return message.getMessageId(); + } + + String getAckId() { + return ackId; + } + + int getDataSize() { + return message.getData().size(); + } + + int getSerializedSize() { + return message.getSerializedSize(); + } + + String getOrderingKey() { + return message.getOrderingKey(); + } + + int getDeliveryAttempt() { + return deliveryAttempt; + } + + Span getPublisherSpan() { + return publisherSpan; + } + + void setPublisherSpan(Span span) { + this.publisherSpan = span; + } + + void setPublishFlowControlSpan(Span span) { + this.publishFlowControlSpan = span; + } + + void setPublishBatchingSpan(Span span) { + this.publishBatchingSpan = span; + } + + Span getSubscriberSpan() { + return subscriberSpan; + } + + void setSubscriberSpan(Span span) { + this.subscriberSpan = span; + } + + void setSubscribeConcurrencyControlSpan(Span span) { + this.subscribeConcurrencyControlSpan = span; + } + + void setSubscribeSchedulerSpan(Span span) { + this.subscribeSchedulerSpan = span; + } + + void setSubscribeProcessSpan(Span span) { + this.subscribeProcessSpan = span; + } + + /** Creates a publish start event that is tied to the publish RPC span time. */ + void addPublishStartEvent() { + if (publisherSpan != null) { + publisherSpan.addEvent(PUBLISH_START_EVENT); + } + } + + /** + * Sets the message ID attribute in the publisher parent span. This is called after the publish + * RPC returns with a message ID. + */ + void setPublisherMessageIdSpanAttribute(String messageId) { + if (publisherSpan != null) { + publisherSpan.setAttribute(MESSAGING_MESSAGE_ID_ATTR_KEY, messageId); + } + } + + /** Ends the publisher parent span if it exists. */ + void endPublisherSpan() { + if (publisherSpan != null) { + publisherSpan.addEvent(PUBLISH_END_EVENT); + publisherSpan.end(); + } + } + + /** Ends the publish flow control span if it exists. */ + void endPublishFlowControlSpan() { + if (publishFlowControlSpan != null) { + publishFlowControlSpan.end(); + } + } + + /** Ends the publish batching span if it exists. */ + void endPublishBatchingSpan() { + if (publishBatchingSpan != null) { + publishBatchingSpan.end(); + } + } + + /** + * Sets an error status and records an exception when an exception is thrown during flow control. + */ + void setPublishFlowControlSpanException(Throwable t) { + if (publishFlowControlSpan != null) { + publishFlowControlSpan.setStatus( + StatusCode.ERROR, "Exception thrown during publish flow control."); + publishFlowControlSpan.recordException(t); + endAllPublishSpans(); + } + } + + /** + * Creates start and end events for ModAcks, Nacks, and Acks that are tied to the corresponding + * RPC span start and end times. + */ + void addModAckStartEvent() { + if (subscriberSpan != null) { + subscriberSpan.addEvent(MODACK_START_EVENT); + } + } + + void addModAckEndEvent() { + if (subscriberSpan != null) { + subscriberSpan.addEvent(MODACK_END_EVENT); + } + } + + void addNackStartEvent() { + if (subscriberSpan != null) { + subscriberSpan.addEvent(NACK_START_EVENT); + } + } + + void addNackEndEvent() { + if (subscriberSpan != null) { + subscriberSpan.addEvent(NACK_END_EVENT); + } + } + + void addAckStartEvent() { + if (subscriberSpan != null) { + subscriberSpan.addEvent(ACK_START_EVENT); + } + } + + void addAckEndEvent() { + if (subscriberSpan != null) { + subscriberSpan.addEvent(ACK_END_EVENT); + } + } + + /** Ends the subscriber parent span if exists. */ + void endSubscriberSpan() { + if (subscriberSpan != null) { + subscriberSpan.end(); + } + } + + /** Ends the subscribe concurreny control span if exists. */ + void endSubscribeConcurrencyControlSpan() { + if (subscribeConcurrencyControlSpan != null) { + subscribeConcurrencyControlSpan.end(); + } + } + + /** Ends the subscribe scheduler span if exists. */ + void endSubscribeSchedulerSpan() { + if (subscribeSchedulerSpan != null) { + subscribeSchedulerSpan.end(); + } + } + + /** + * Ends the subscribe process span if it exists, creates an event with the appropriate result, and + * sets the result on the parent subscriber span. + */ + void endSubscribeProcessSpan(String action) { + if (subscribeProcessSpan != null) { + subscribeProcessSpan.addEvent(action + " called"); + subscribeProcessSpan.end(); + subscriberSpan.setAttribute(MESSAGE_RESULT_ATTR_KEY, action); + } + } + + /** Sets an exception on the subscriber span during Ack/ModAck/Nack failures */ + void setSubscriberSpanException(Throwable t, String exception) { + if (subscriberSpan != null) { + subscriberSpan.setStatus(StatusCode.ERROR, exception); + subscriberSpan.recordException(t); + endAllSubscribeSpans(); + } + } + + /** Sets result of the parent subscriber span to expired and ends its. */ + void setSubscriberSpanExpirationResult() { + if (subscriberSpan != null) { + subscriberSpan.setAttribute(MESSAGE_RESULT_ATTR_KEY, "expired"); + endSubscriberSpan(); + } + } + + /** + * Sets an error status and records an exception when an exception is thrown subscriber + * concurrency control. + */ + void setSubscribeConcurrencyControlSpanException(Throwable t) { + if (subscribeConcurrencyControlSpan != null) { + subscribeConcurrencyControlSpan.setStatus( + StatusCode.ERROR, "Exception thrown during subscribe concurrency control."); + subscribeConcurrencyControlSpan.recordException(t); + endAllSubscribeSpans(); + } + } + + /** Ends all publisher-side spans associated with this message wrapper. */ + private void endAllPublishSpans() { + endPublishFlowControlSpan(); + endPublishBatchingSpan(); + endPublisherSpan(); + } + + /** Ends all subscriber-side spans associated with this message wrapper. */ + private void endAllSubscribeSpans() { + endSubscribeConcurrencyControlSpan(); + endSubscribeSchedulerSpan(); + endSubscriberSpan(); + } + + /** + * Injects the span context into the attributes of a Pub/Sub message for propagation to the + * subscriber client. + */ + void injectSpanContext() { + TextMapSetter injectMessageAttributes = + new TextMapSetter() { + @Override + public void set(PubsubMessageWrapper carrier, String key, String value) { + PubsubMessage newMessage = + PubsubMessage.newBuilder(carrier.message) + .putAttributes(GOOGCLIENT_PREFIX + key, value) + .build(); + carrier.message = newMessage; + } + }; + W3CTraceContextPropagator.getInstance() + .inject(Context.current().with(publisherSpan), this, injectMessageAttributes); + } + + /** + * Extracts the span context from the attributes of a Pub/Sub message and creates the parent + * subscriber span using that context. + */ + Context extractSpanContext(Attributes attributes) { + TextMapGetter extractMessageAttributes = + new TextMapGetter() { + @Override + public String get(PubsubMessageWrapper carrier, String key) { + return carrier.message.getAttributesOrDefault(GOOGCLIENT_PREFIX + key, ""); + } + + public Iterable keys(PubsubMessageWrapper carrier) { + return carrier.message.getAttributesMap().keySet(); + } + }; + Context context = + W3CTraceContextPropagator.getInstance() + .extract(Context.current(), this, extractMessageAttributes); + return context; + } + + /** Builder of {@link PubsubMessageWrapper PubsubMessageWrapper}. */ + static final class Builder { + private PubsubMessage message = null; + private TopicName topicName = null; + private SubscriptionName subscriptionName = null; + private String ackId = null; + private int deliveryAttempt = 0; + + public Builder(PubsubMessage message, TopicName topicName) { + this.message = message; + this.topicName = topicName; + } + + public Builder( + PubsubMessage message, + SubscriptionName subscriptionName, + String ackId, + int deliveryAttempt) { + this.message = message; + this.subscriptionName = subscriptionName; + this.ackId = ackId; + this.deliveryAttempt = deliveryAttempt; + } + + public PubsubMessageWrapper build() { + return new PubsubMessageWrapper(this); + } + } +} diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SchemaServiceClient.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SchemaServiceClient.java index ddc98a2f0..6c0fc95fe 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SchemaServiceClient.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SchemaServiceClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -80,240 +80,240 @@ * as threads. In the example above, try-with-resources is used, which automatically calls close(). * * - * + * * * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * @@ -449,7 +449,7 @@ public SchemaServiceStub getStub() { * will have a `name` made using the given `parent` and `schema_id`. * @param schemaId The ID to use for the schema, which will become the final component of the * schema's resource name. - *

See https://cloud.google.com/pubsub/docs/admin#resource_names for resource name + *

See https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names for resource name * constraints. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ @@ -490,7 +490,7 @@ public final Schema createSchema(ProjectName parent, Schema schema, String schem * will have a `name` made using the given `parent` and `schema_id`. * @param schemaId The ID to use for the schema, which will become the final component of the * schema's resource name. - *

See https://cloud.google.com/pubsub/docs/admin#resource_names for resource name + *

See https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names for resource name * constraints. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SchemaServiceSettings.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SchemaServiceSettings.java index 67d08bb63..5482df576 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SchemaServiceSettings.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SchemaServiceSettings.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -72,7 +72,9 @@ *

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 total timeout of createSchema to 30 seconds: + *

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

{@code
  * // This snippet has been automatically generated and should be regarded as a code template only.
@@ -88,10 +90,21 @@
  *             .createSchemaSettings()
  *             .getRetrySettings()
  *             .toBuilder()
- *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .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());
  * SchemaServiceSettings schemaServiceSettings = schemaServiceSettingsBuilder.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 SchemaServiceSettings extends ClientSettings { @@ -207,7 +220,6 @@ public static TransportChannelProvider defaultTransportChannelProvider() { return SchemaServiceStubSettings.defaultTransportChannelProvider(); } - @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { return SchemaServiceStubSettings.defaultApiClientHeaderProviderBuilder(); } @@ -218,7 +230,6 @@ public static Builder newBuilder() { } /** Returns a new REST builder for this class. */ - @BetaApi public static Builder newHttpJsonBuilder() { return Builder.createHttpJsonDefault(); } @@ -260,7 +271,6 @@ private static Builder createDefault() { return new Builder(SchemaServiceStubSettings.newBuilder()); } - @BetaApi private static Builder createHttpJsonDefault() { return new Builder(SchemaServiceStubSettings.newHttpJsonBuilder()); } diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/StatusUtil.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/StatusUtil.java index a7b8e1faa..56c19306d 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/StatusUtil.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/StatusUtil.java @@ -25,6 +25,26 @@ private StatusUtil() { // Static class, not instantiable. } + static AckResponse getFailedAckResponse(Throwable t) { + if (!(t instanceof ApiException)) { + return AckResponse.OTHER; + } + + ApiException apiException = (ApiException) t; + AckResponse failedAckResponse; + switch (apiException.getStatusCode().getCode()) { + case FAILED_PRECONDITION: + failedAckResponse = AckResponse.FAILED_PRECONDITION; + break; + case PERMISSION_DENIED: + failedAckResponse = AckResponse.PERMISSION_DENIED; + break; + default: + failedAckResponse = AckResponse.OTHER; + } + return failedAckResponse; + } + static boolean isRetryable(Throwable error) { if (!(error instanceof ApiException)) { return true; diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/StreamingSubscriberConnection.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/StreamingSubscriberConnection.java index 7849bdb74..2ee077597 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/StreamingSubscriberConnection.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/StreamingSubscriberConnection.java @@ -47,9 +47,12 @@ import com.google.pubsub.v1.ModifyAckDeadlineRequest; import com.google.pubsub.v1.StreamingPullRequest; import com.google.pubsub.v1.StreamingPullResponse; +import com.google.pubsub.v1.SubscriptionName; import com.google.rpc.ErrorInfo; import io.grpc.Status; import io.grpc.protobuf.StatusProto; +import io.opentelemetry.api.trace.Span; +import java.time.Duration; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -58,7 +61,9 @@ import java.util.Set; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.Executor; import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; @@ -67,7 +72,6 @@ import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.Nullable; -import org.threeten.bp.Duration; /** Implementation of {@link AckProcessor} based on Cloud Pub/Sub streaming pull. */ final class StreamingSubscriberConnection extends AbstractApiService implements AckProcessor { @@ -92,8 +96,11 @@ final class StreamingSubscriberConnection extends AbstractApiService implements private final SubscriberStub subscriberStub; private final int channelAffinity; + private final long protocolVersion; private final String subscription; + private final SubscriptionName subscriptionNameObject; private final ScheduledExecutorService systemExecutor; + private final ApiClock clock; private final MessageDispatcher messageDispatcher; private final FlowControlSettings flowControlSettings; @@ -118,9 +125,26 @@ final class StreamingSubscriberConnection extends AbstractApiService implements */ private final String clientId = UUID.randomUUID().toString(); + private final boolean enableOpenTelemetryTracing; + private OpenTelemetryPubsubTracer tracer = new OpenTelemetryPubsubTracer(null, false); + private final SubscriberShutdownSettings subscriberShutdownSettings; + + private final boolean enableKeepalive; + private static final long KEEP_ALIVE_SUPPORT_VERSION = 1; + private static final Duration CLIENT_PING_INTERVAL = Duration.ofSeconds(30); + private ScheduledFuture pingSchedulerHandle; + + private static final Duration SERVER_MONITOR_INTERVAL = Duration.ofSeconds(10); + private static final Duration SERVER_PING_TIMEOUT_DURATION = Duration.ofSeconds(15); + private final AtomicLong lastServerResponseTime; + private final AtomicLong lastClientPingTime; + private ScheduledFuture serverMonitorHandle; + private StreamingSubscriberConnection(Builder builder) { subscription = builder.subscription; + subscriptionNameObject = SubscriptionName.parse(builder.subscription); systemExecutor = builder.systemExecutor; + clock = builder.clock; // We need to set the default stream ack deadline on the initial request, this will be // updated by modack requests in the message dispatcher @@ -143,6 +167,7 @@ private StreamingSubscriberConnection(Builder builder) { subscriberStub = builder.subscriberStub; channelAffinity = builder.channelAffinity; + protocolVersion = builder.protocolVersion; MessageDispatcher.Builder messageDispatcherBuilder; if (builder.receiver != null) { @@ -151,6 +176,12 @@ private StreamingSubscriberConnection(Builder builder) { messageDispatcherBuilder = MessageDispatcher.newBuilder(builder.receiverWithAckResponse); } + enableOpenTelemetryTracing = builder.enableOpenTelemetryTracing; + if (builder.tracer != null) { + tracer = builder.tracer; + } + this.subscriberShutdownSettings = builder.subscriberShutdownSettings; + messageDispatcher = messageDispatcherBuilder .setAckProcessor(this) @@ -165,10 +196,17 @@ private StreamingSubscriberConnection(Builder builder) { .setExecutor(builder.executor) .setSystemExecutor(builder.systemExecutor) .setApiClock(builder.clock) + .setSubscriptionName(subscription) + .setEnableOpenTelemetryTracing(enableOpenTelemetryTracing) + .setTracer(tracer) + .setSubscriberShutdownSettings(subscriberShutdownSettings) .build(); flowControlSettings = builder.flowControlSettings; useLegacyFlowControl = builder.useLegacyFlowControl; + enableKeepalive = protocolVersion >= KEEP_ALIVE_SUPPORT_VERSION; + lastServerResponseTime = new AtomicLong(clock.nanoTime()); + lastClientPingTime = new AtomicLong(-1L); } public StreamingSubscriberConnection setExactlyOnceDeliveryEnabled( @@ -197,13 +235,32 @@ protected void doStop() { } finally { lock.unlock(); } + + if (enableKeepalive) { + stopClientPinger(); + stopServerMonitor(); + } + runShutdown(); notifyStopped(); } private void runShutdown() { + java.time.Duration timeout = subscriberShutdownSettings.getTimeout(); + if (timeout.isZero()) { + return; + } + messageDispatcher.stop(); - ackOperationsWaiter.waitComplete(); + if (timeout.isNegative()) { + ackOperationsWaiter.waitComplete(); + } else { + boolean completedWait = ackOperationsWaiter.tryWait(timeout.toMillis(), clock); + if (!completedWait) { + logger.log( + Level.WARNING, "Timeout exceeded while waiting for ACK/NACK operations to complete."); + } + } } private class StreamingPullResponseObserver implements ResponseObserver { @@ -232,6 +289,10 @@ public void onStart(StreamController controller) { @Override public void onResponse(StreamingPullResponse response) { + if (enableKeepalive) { + lastServerResponseTime.set(clock.nanoTime()); + } + channelReconnectBackoffMillis.set(INITIAL_CHANNEL_RECONNECT_BACKOFF.toMillis()); boolean exactlyOnceDeliveryEnabledResponse = @@ -261,11 +322,19 @@ public void onResponse(StreamingPullResponse response) { @Override public void onError(Throwable t) { + if (enableKeepalive) { + stopClientPinger(); + stopServerMonitor(); + } errorFuture.setException(t); } @Override public void onComplete() { + if (enableKeepalive) { + stopClientPinger(); + stopServerMonitor(); + } logger.fine("Streaming pull terminated successfully!"); errorFuture.set(null); } @@ -302,6 +371,7 @@ private void initialize() { this.useLegacyFlowControl ? 0 : valueOrZero(flowControlSettings.getMaxOutstandingRequestBytes())) + .setProtocolVersion(protocolVersion) .build()); /** @@ -316,6 +386,13 @@ private void initialize() { lock.unlock(); } + if (enableKeepalive) { + lastServerResponseTime.set(clock.nanoTime()); + lastClientPingTime.set(-1L); + startClientPinger(); + startServerMonitor(); + } + ApiFutures.addCallback( errorFuture, new ApiFutureCallback() { @@ -332,6 +409,10 @@ public void onSuccess(@Nullable Void result) { @Override public void onFailure(Throwable cause) { + if (enableKeepalive) { + stopClientPinger(); + stopServerMonitor(); + } if (!isAlive()) { // we don't care about subscription failures when we're no longer running. logger.log(Level.FINE, "pull failure after service no longer running", cause); @@ -376,6 +457,100 @@ private boolean isAlive() { return state == State.RUNNING || state == State.STARTING; } + private void startClientPinger() { + if (pingSchedulerHandle != null) { + pingSchedulerHandle.cancel(false); + } + + pingSchedulerHandle = + systemExecutor.scheduleAtFixedRate( + () -> { + try { + lock.lock(); + try { + if (clientStream != null && isAlive()) { + clientStream.send(StreamingPullRequest.newBuilder().build()); + lastClientPingTime.set(clock.nanoTime()); + logger.log(Level.FINEST, "Sent client keepalive ping"); + } + } finally { + lock.unlock(); + } + } catch (Exception e) { + logger.log(Level.FINE, "Error sending client keepalive ping", e); + } + }, + 0, + CLIENT_PING_INTERVAL.getSeconds(), + TimeUnit.SECONDS); + } + + private void stopClientPinger() { + if (pingSchedulerHandle != null) { + pingSchedulerHandle.cancel(false); + pingSchedulerHandle = null; + } + } + + private void startServerMonitor() { + if (serverMonitorHandle != null) { + serverMonitorHandle.cancel(false); + } + + serverMonitorHandle = + systemExecutor.scheduleAtFixedRate( + () -> { + try { + if (!isAlive()) { + return; + } + + long now = clock.nanoTime(); + long lastResponse = lastServerResponseTime.get(); + long lastPing = lastClientPingTime.get(); + + if (lastPing <= lastResponse) { + return; + } + + Duration elapsedSincePing = Duration.ofNanos(now - lastPing); + if (elapsedSincePing.compareTo(SERVER_PING_TIMEOUT_DURATION) < 0) { + return; + } + + logger.log( + Level.INFO, + "No response from server for {0} seconds since last ping. Closing stream.", + elapsedSincePing.getSeconds()); + + lock.lock(); + try { + if (clientStream != null) { + clientStream.closeSendWithError( + Status.UNAVAILABLE + .withDescription("Keepalive timeout with server") + .asException()); + } + } finally { + lock.unlock(); + } + stopServerMonitor(); + } catch (Exception e) { + logger.log(Level.FINE, "Error in server keepalive monitor", e); + } + }, + SERVER_MONITOR_INTERVAL.getSeconds(), + SERVER_MONITOR_INTERVAL.getSeconds(), + TimeUnit.SECONDS); + } + + private void stopServerMonitor() { + if (serverMonitorHandle != null) { + serverMonitorHandle.cancel(false); + serverMonitorHandle = null; + } + } + public void setResponseOutstandingMessages(AckResponse ackResponse) { // We will close the futures with ackResponse - if there are multiple references to the same // future they will be handled appropriately @@ -393,21 +568,7 @@ private void setFailureFutureOutstandingMessages(Throwable t) { AckResponse ackResponse; if (getExactlyOnceDeliveryEnabled()) { - if (!(t instanceof ApiException)) { - ackResponse = AckResponse.OTHER; - } - - ApiException apiException = (ApiException) t; - switch (apiException.getStatusCode().getCode()) { - case FAILED_PRECONDITION: - ackResponse = AckResponse.FAILED_PRECONDITION; - break; - case PERMISSION_DENIED: - ackResponse = AckResponse.PERMISSION_DENIED; - break; - default: - ackResponse = AckResponse.OTHER; - } + ackResponse = StatusUtil.getFailedAckResponse(t); } else { // We should set success regardless if ExactlyOnceDelivery is not enabled ackResponse = AckResponse.SUCCESSFUL; @@ -432,15 +593,20 @@ private void sendAckOperations( for (List ackRequestDataInRequestList : Lists.partition(ackRequestDataList, MAX_PER_REQUEST_CHANGES)) { List ackIdsInRequest = new ArrayList<>(); + List messagesInRequest = new ArrayList<>(); for (AckRequestData ackRequestData : ackRequestDataInRequestList) { ackIdsInRequest.add(ackRequestData.getAckId()); + messagesInRequest.add(ackRequestData.getMessageWrapper()); if (ackRequestData.hasMessageFuture()) { // Add to our pending requests if we care about the response pendingRequests.add(ackRequestData); } } + // Creates an Ack span to be passed to the callback + Span rpcSpan = + tracer.startSubscribeRpcSpan(subscriptionNameObject, "ack", messagesInRequest, 0, false); ApiFutureCallback callback = - getCallback(ackRequestDataInRequestList, 0, false, currentBackoffMillis); + getCallback(ackRequestDataInRequestList, 0, false, currentBackoffMillis, rpcSpan); ApiFuture ackFuture = subscriberStub .acknowledgeCallable() @@ -449,7 +615,7 @@ private void sendAckOperations( .setSubscription(subscription) .addAllAckIds(ackIdsInRequest) .build()); - ApiFutures.addCallback(ackFuture, callback, directExecutor()); + ApiFutures.addCallback(ackFuture, callback, getCallbackExecutor()); pendingOperations++; } ackOperationsWaiter.incrementPendingCount(pendingOperations); @@ -463,19 +629,32 @@ private void sendModackOperations( for (List ackRequestDataInRequestList : Lists.partition(modackRequestData.getAckRequestData(), MAX_PER_REQUEST_CHANGES)) { List ackIdsInRequest = new ArrayList<>(); + List messagesInRequest = new ArrayList<>(); for (AckRequestData ackRequestData : ackRequestDataInRequestList) { ackIdsInRequest.add(ackRequestData.getAckId()); + messagesInRequest.add(ackRequestData.getMessageWrapper()); if (ackRequestData.hasMessageFuture()) { // Add to our pending requests if we care about the response pendingRequests.add(ackRequestData); } } + int deadlineExtensionSeconds = modackRequestData.getDeadlineExtensionSeconds(); + String rpcOperation = deadlineExtensionSeconds == 0 ? "nack" : "modack"; + // Creates either a ModAck span or a Nack span depending on the given ack deadline + Span rpcSpan = + tracer.startSubscribeRpcSpan( + subscriptionNameObject, + rpcOperation, + messagesInRequest, + deadlineExtensionSeconds, + modackRequestData.getIsReceiptModack()); ApiFutureCallback callback = getCallback( - modackRequestData.getAckRequestData(), - modackRequestData.getDeadlineExtensionSeconds(), + ackRequestDataInRequestList, + deadlineExtensionSeconds, true, - currentBackoffMillis); + currentBackoffMillis, + rpcSpan); ApiFuture modackFuture = subscriberStub .modifyAckDeadlineCallable() @@ -485,7 +664,7 @@ private void sendModackOperations( .addAllAckIds(ackIdsInRequest) .setAckDeadlineSeconds(modackRequestData.getDeadlineExtensionSeconds()) .build()); - ApiFutures.addCallback(modackFuture, callback, directExecutor()); + ApiFutures.addCallback(modackFuture, callback, getCallbackExecutor()); pendingOperations++; } } @@ -517,22 +696,45 @@ private ApiFutureCallback getCallback( List ackRequestDataList, int deadlineExtensionSeconds, boolean isModack, - long currentBackoffMillis) { + long currentBackoffMillis, + Span rpcSpan) { // This callback handles retries, and sets message futures // Check if ack or nack boolean setResponseOnSuccess = (!isModack || (deadlineExtensionSeconds == 0)) ? true : false; + boolean rpcSpanSampled = rpcSpan == null ? false : rpcSpan.getSpanContext().isSampled(); + return new ApiFutureCallback() { @Override public void onSuccess(Empty empty) { ackOperationsWaiter.incrementPendingCount(-1); + + tracer.endSubscribeRpcSpan(rpcSpan); + for (AckRequestData ackRequestData : ackRequestDataList) { - // This will check if a response is needed, and if it has already been set - ackRequestData.setResponse(AckResponse.SUCCESSFUL, setResponseOnSuccess); - messageDispatcher.notifyAckSuccess(ackRequestData); + // If we are in NACK_IMMEDIATELY shutdown mode, we will set failures on acks/nack so that + // an error is surfaced if the user + // manually acks or nacks in their callback. + if (setResponseOnSuccess + && getExactlyOnceDeliveryEnabled() + && messageDispatcher.getNackImmediatelyShutdownInProgress()) { + ackRequestData.setResponse(AckResponse.OTHER, setResponseOnSuccess); + messageDispatcher.notifyAckFailed(ackRequestData); + } else { + ackRequestData.setResponse(AckResponse.SUCCESSFUL, setResponseOnSuccess); + messageDispatcher.notifyAckSuccess(ackRequestData); + } // Remove from our pending operations pendingRequests.remove(ackRequestData); + tracer.addEndRpcEvent( + ackRequestData.getMessageWrapper(), + rpcSpanSampled, + isModack, + deadlineExtensionSeconds); + if (!isModack || deadlineExtensionSeconds == 0) { + tracer.endSubscriberSpan(ackRequestData.getMessageWrapper()); + } } } @@ -544,43 +746,111 @@ public void onFailure(Throwable t) { Level level = isAlive() ? Level.WARNING : Level.FINER; logger.log(level, "failed to send operations", t); + tracer.setSubscribeRpcSpanException(rpcSpan, isModack, deadlineExtensionSeconds, t); + if (!getExactlyOnceDeliveryEnabled()) { + if (enableOpenTelemetryTracing) { + for (AckRequestData ackRequestData : ackRequestDataList) { + tracer.addEndRpcEvent( + ackRequestData.getMessageWrapper(), + rpcSpanSampled, + isModack, + deadlineExtensionSeconds); + if (!isModack || deadlineExtensionSeconds == 0) { + tracer.endSubscriberSpan(ackRequestData.getMessageWrapper()); + } + } + } return; } - List ackRequestDataArrayRetryList = new ArrayList<>(); try { Map metadataMap = getMetadataMapFromThrowable(t); - ackRequestDataList.forEach( - ackRequestData -> { - String ackId = ackRequestData.getAckId(); - if (metadataMap.containsKey(ackId)) { - // An error occured - String errorMessage = metadataMap.get(ackId); - if (errorMessage.startsWith(TRANSIENT_FAILURE_METADATA_PREFIX)) { - // Retry all "TRANSIENT_*" error messages - do not set message future - logger.log(Level.INFO, "Transient error message, will resend", errorMessage); - ackRequestDataArrayRetryList.add(ackRequestData); - } else if (errorMessage.equals(PERMANENT_FAILURE_INVALID_ACK_ID_METADATA)) { - // Permanent failure, send - logger.log( - Level.INFO, - "Permanent error invalid ack id message, will not resend", - errorMessage); - ackRequestData.setResponse(AckResponse.INVALID, setResponseOnSuccess); + if (metadataMap.isEmpty()) { + String operation = isModack ? "ModifyAckDeadline" : "Acknowledge"; + if (!StatusUtil.isRetryable(t)) { + logger.log(Level.WARNING, "Un-retryable error on " + operation, t); + ackRequestDataList.forEach( + ackRequestData -> { + AckResponse failedAckResponse = StatusUtil.getFailedAckResponse(t); + ackRequestData.setResponse(failedAckResponse, setResponseOnSuccess); messageDispatcher.notifyAckFailed(ackRequestData); + tracer.addEndRpcEvent( + ackRequestData.getMessageWrapper(), + rpcSpanSampled, + isModack, + deadlineExtensionSeconds); + tracer.setSubscriberSpanException( + ackRequestData.getMessageWrapper(), t, "Error with no metadata map"); + ackRequestData + .getMessageWrapper() + .setSubscriberSpanException(t, "Error with no metadata map"); + pendingRequests.remove(ackRequestData); + }); + } else { + logger.log(Level.INFO, "Retryable error on " + operation + ", will resend", t); + ackRequestDataArrayRetryList.addAll(ackRequestDataList); + ackRequestDataList.forEach( + ackRequestData -> { + pendingRequests.remove(ackRequestData); + }); + } + } else { + ackRequestDataList.forEach( + ackRequestData -> { + String ackId = ackRequestData.getAckId(); + if (metadataMap.containsKey(ackId)) { + // An error occured + String errorMessage = metadataMap.get(ackId); + if (errorMessage.startsWith(TRANSIENT_FAILURE_METADATA_PREFIX)) { + // Retry all "TRANSIENT_*" error messages - do not set message future + logger.log(Level.INFO, "Transient error message, will resend", errorMessage); + ackRequestDataArrayRetryList.add(ackRequestData); + } else if (errorMessage.equals(PERMANENT_FAILURE_INVALID_ACK_ID_METADATA)) { + // Permanent failure + logger.log( + Level.INFO, + "Permanent error invalid ack id message, will not resend", + errorMessage); + ackRequestData.setResponse(AckResponse.INVALID, setResponseOnSuccess); + messageDispatcher.notifyAckFailed(ackRequestData); + tracer.addEndRpcEvent( + ackRequestData.getMessageWrapper(), + rpcSpanSampled, + isModack, + deadlineExtensionSeconds); + tracer.setSubscriberSpanException( + ackRequestData.getMessageWrapper(), t, "Invalid ack ID"); + } else { + logger.log( + Level.INFO, "Unknown error message, will not resend", errorMessage); + ackRequestData.setResponse(AckResponse.OTHER, setResponseOnSuccess); + messageDispatcher.notifyAckFailed(ackRequestData); + tracer.addEndRpcEvent( + ackRequestData.getMessageWrapper(), + rpcSpanSampled, + isModack, + deadlineExtensionSeconds); + tracer.setSubscriberSpanException( + ackRequestData.getMessageWrapper(), t, "Unknown error message"); + ackRequestData + .getMessageWrapper() + .setSubscriberSpanException(t, "Unknown error message"); + } } else { - logger.log(Level.INFO, "Unknown error message, will not resend", errorMessage); - ackRequestData.setResponse(AckResponse.OTHER, setResponseOnSuccess); - messageDispatcher.notifyAckFailed(ackRequestData); + ackRequestData.setResponse(AckResponse.SUCCESSFUL, setResponseOnSuccess); + messageDispatcher.notifyAckSuccess(ackRequestData); + tracer.endSubscriberSpan(ackRequestData.getMessageWrapper()); + tracer.addEndRpcEvent( + ackRequestData.getMessageWrapper(), + rpcSpanSampled, + isModack, + deadlineExtensionSeconds); } - } else { - ackRequestData.setResponse(AckResponse.SUCCESSFUL, setResponseOnSuccess); - messageDispatcher.notifyAckSuccess(ackRequestData); - } - // Remove from our pending - pendingRequests.remove(ackRequestData); - }); + // Remove from our pending + pendingRequests.remove(ackRequestData); + }); + } } catch (InvalidProtocolBufferException e) { // If we fail to parse out the errorInfo, we should retry all logger.log( @@ -615,6 +885,16 @@ public void run() { }; } + // If exactly-once is enabled, we hold a lock for the ack/modack response callback, so we want to + // avoid using the directExecutor() which runs the callback on the invoking thread. Instead, we + // want to schedule the callback to be run on a different thread. + private Executor getCallbackExecutor() { + if (!getExactlyOnceDeliveryEnabled()) { + return directExecutor(); + } + return systemExecutor; + } + /** Builder of {@link StreamingSubscriberConnection StreamingSubscriberConnections}. */ public static final class Builder { private MessageReceiver receiver; @@ -630,6 +910,7 @@ public static final class Builder { private Distribution ackLatencyDistribution; private SubscriberStub subscriberStub; private int channelAffinity; + private long protocolVersion; private FlowController flowController; private FlowControlSettings flowControlSettings; private boolean useLegacyFlowControl; @@ -637,6 +918,10 @@ public static final class Builder { private ScheduledExecutorService systemExecutor; private ApiClock clock; + private boolean enableOpenTelemetryTracing; + private OpenTelemetryPubsubTracer tracer; + private SubscriberShutdownSettings subscriberShutdownSettings; + protected Builder(MessageReceiver receiver) { this.receiver = receiver; } @@ -697,6 +982,11 @@ public Builder setChannelAffinity(int channelAffinity) { return this; } + public Builder setProtocolVersion(long protocolVersion) { + this.protocolVersion = protocolVersion; + return this; + } + public Builder setFlowController(FlowController flowController) { this.flowController = flowController; return this; @@ -727,6 +1017,22 @@ public Builder setClock(ApiClock clock) { return this; } + public Builder setEnableOpenTelemetryTracing(boolean enableOpenTelemetryTracing) { + this.enableOpenTelemetryTracing = enableOpenTelemetryTracing; + return this; + } + + public Builder setTracer(OpenTelemetryPubsubTracer tracer) { + this.tracer = tracer; + return this; + } + + public Builder setSubscriberShutdownSettings( + SubscriberShutdownSettings subscriberShutdownSettings) { + this.subscriberShutdownSettings = subscriberShutdownSettings; + return this; + } + public StreamingSubscriberConnection build() { return new StreamingSubscriberConnection(this); } diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Subscriber.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Subscriber.java index 1d1017dd4..37440ba40 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Subscriber.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Subscriber.java @@ -16,12 +16,15 @@ package com.google.cloud.pubsub.v1; +import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; + import com.google.api.core.AbstractApiService; import com.google.api.core.ApiClock; import com.google.api.core.ApiService; import com.google.api.core.BetaApi; import com.google.api.core.CurrentMillisClock; import com.google.api.core.InternalApi; +import com.google.api.core.ObsoleteApi; import com.google.api.gax.batching.FlowControlSettings; import com.google.api.gax.batching.FlowController; import com.google.api.gax.batching.FlowController.LimitExceededBehavior; @@ -43,6 +46,8 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.google.pubsub.v1.ProjectSubscriptionName; import com.google.pubsub.v1.PubsubMessage; +import io.opentelemetry.api.OpenTelemetry; +import io.opentelemetry.api.trace.Tracer; import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -53,7 +58,6 @@ import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.Nullable; -import org.threeten.bp.Duration; /** * A Cloud Pub/Sub subscriber that is @@ -96,41 +100,58 @@ public class Subscriber extends AbstractApiService implements SubscriberInterfac private static final int MAX_INBOUND_METADATA_SIZE = 4 * 1024 * 1024; // 4MB API maximum metadata size - @InternalApi static final Duration DEFAULT_MAX_ACK_EXTENSION_PERIOD = Duration.ofMinutes(60); + @InternalApi + static final java.time.Duration DEFAULT_MAX_ACK_EXTENSION_PERIOD = + java.time.Duration.ofMinutes(60); @InternalApi - static final Duration DEFAULT_MIN_ACK_DEADLINE_EXTENSION_EXACTLY_ONCE_DELIVERY = - Duration.ofMinutes(1); + static final java.time.Duration DEFAULT_MIN_ACK_DEADLINE_EXTENSION_EXACTLY_ONCE_DELIVERY = + java.time.Duration.ofMinutes(1); - @InternalApi static final Duration DEFAULT_MIN_ACK_DEADLINE_EXTENSION = Duration.ofMinutes(0); - @InternalApi static final Duration DEFAULT_MAX_ACK_DEADLINE_EXTENSION = Duration.ofSeconds(0); + @InternalApi + static final java.time.Duration DEFAULT_MIN_ACK_DEADLINE_EXTENSION = + java.time.Duration.ofMinutes(0); - @InternalApi static final Duration MIN_STREAM_ACK_DEADLINE = Duration.ofSeconds(10); - @InternalApi static final Duration MAX_STREAM_ACK_DEADLINE = Duration.ofSeconds(600); + @InternalApi + static final java.time.Duration DEFAULT_MAX_ACK_DEADLINE_EXTENSION = + java.time.Duration.ofSeconds(0); - @InternalApi static final Duration STREAM_ACK_DEADLINE_DEFAULT = Duration.ofSeconds(60); + @InternalApi + static final java.time.Duration MIN_STREAM_ACK_DEADLINE = java.time.Duration.ofSeconds(10); @InternalApi - static final Duration STREAM_ACK_DEADLINE_EXACTLY_ONCE_DELIVERY_DEFAULT = Duration.ofSeconds(60); + static final java.time.Duration MAX_STREAM_ACK_DEADLINE = java.time.Duration.ofSeconds(600); - @InternalApi static final Duration ACK_EXPIRATION_PADDING_DEFAULT = Duration.ofSeconds(5); + @InternalApi + static final java.time.Duration STREAM_ACK_DEADLINE_DEFAULT = java.time.Duration.ofSeconds(60); + + @InternalApi + static final java.time.Duration STREAM_ACK_DEADLINE_EXACTLY_ONCE_DELIVERY_DEFAULT = + java.time.Duration.ofSeconds(60); + + @InternalApi + static final java.time.Duration ACK_EXPIRATION_PADDING_DEFAULT = java.time.Duration.ofSeconds(5); private static final Logger logger = Logger.getLogger(Subscriber.class.getName()); + private static final String OPEN_TELEMETRY_TRACER_NAME = "com.google.cloud.pubsub.v1"; + private final String subscriptionName; private final FlowControlSettings flowControlSettings; private final boolean useLegacyFlowControl; - private final Duration maxAckExtensionPeriod; - private final Duration maxDurationPerAckExtension; + private final java.time.Duration maxAckExtensionPeriod; + private final java.time.Duration maxDurationPerAckExtension; private final boolean maxDurationPerAckExtensionDefaultUsed; - private final Duration minDurationPerAckExtension; + private final java.time.Duration minDurationPerAckExtension; private final boolean minDurationPerAckExtensionDefaultUsed; + private final long protocolVersion = 0L; // The ExecutorProvider used to generate executors for processing messages. private final ExecutorProvider executorProvider; // An instantiation of the SystemExecutorProvider used for processing acks // and other system actions. @Nullable private final ScheduledExecutorService alarmsExecutor; + private final Distribution ackLatencyDistribution = new Distribution(Math.toIntExact(MAX_STREAM_ACK_DEADLINE.getSeconds()) + 1); @@ -145,6 +166,11 @@ public class Subscriber extends AbstractApiService implements SubscriberInterfac private final ApiClock clock; private final List backgroundResources = new ArrayList<>(); + private final boolean enableOpenTelemetryTracing; + private final OpenTelemetry openTelemetry; + private OpenTelemetryPubsubTracer tracer = new OpenTelemetryPubsubTracer(null, false); + private final SubscriberShutdownSettings subscriberShutdownSettings; + private Subscriber(Builder builder) { receiver = builder.receiver; receiverWithAckResponse = builder.receiverWithAckResponse; @@ -162,9 +188,7 @@ private Subscriber(Builder builder) { flowController = new FlowController( - builder - .flowControlSettings - .toBuilder() + builder.flowControlSettings.toBuilder() .setLimitExceededBehavior(LimitExceededBehavior.Block) .build()); @@ -192,12 +216,24 @@ private Subscriber(Builder builder) { .setTransportChannelProvider(channelProvider) .setHeaderProvider(builder.headerProvider) .setEndpoint(builder.endpoint) + .setUniverseDomain(builder.universeDomain) .build(); // TODO(pongad): what about internal header?? } catch (Exception e) { throw new IllegalStateException(e); } + this.enableOpenTelemetryTracing = builder.enableOpenTelemetryTracing; + this.openTelemetry = builder.openTelemetry; + this.subscriberShutdownSettings = builder.subscriberShutdownSettings; + if (this.openTelemetry != null && this.enableOpenTelemetryTracing) { + Tracer openTelemetryTracer = builder.openTelemetry.getTracer(OPEN_TELEMETRY_TRACER_NAME); + if (openTelemetryTracer != null) { + this.tracer = + new OpenTelemetryPubsubTracer(openTelemetryTracer, this.enableOpenTelemetryTracing); + } + } + streamingSubscriberConnections = new ArrayList(numPullers); // We regularly look up the distribution for a good subscription deadline. @@ -333,7 +369,6 @@ protected void doStop() { @Override public void run() { try { - // stop connection is no-op if connections haven't been started. runShutdown(); notifyStopped(); } catch (Exception e) { @@ -345,7 +380,13 @@ public void run() { } private void runShutdown() { - stopAllStreamingConnections(); + java.time.Duration timeout = subscriberShutdownSettings.getTimeout(); + long deadlineMillis = -1; + if (!timeout.isNegative()) { + deadlineMillis = clock.millisTime() + timeout.toMillis(); + } + + stopAllStreamingConnections(deadlineMillis); shutdownBackgroundResources(); subscriberStub.shutdownNow(); } @@ -385,6 +426,10 @@ private void startStreamingConnections() { .setExecutor(executor) .setSystemExecutor(alarmsExecutor) .setClock(clock) + .setEnableOpenTelemetryTracing(enableOpenTelemetryTracing) + .setTracer(tracer) + .setSubscriberShutdownSettings(subscriberShutdownSettings) + .setProtocolVersion(protocolVersion) .build(); streamingSubscriberConnections.add(streamingSubscriberConnection); @@ -410,8 +455,8 @@ public void failed(State from, Throwable failure) { } } - private void stopAllStreamingConnections() { - stopConnections(streamingSubscriberConnections); + private void stopAllStreamingConnections(long deadlineMillis) { + stopConnections(streamingSubscriberConnections, deadlineMillis); } private void shutdownBackgroundResources() { @@ -431,7 +476,7 @@ private void startConnections( } } - private void stopConnections(List connections) { + private void stopConnections(List connections, long deadlineMillis) { ArrayList liveConnections; synchronized (connections) { liveConnections = new ArrayList(connections); @@ -442,11 +487,19 @@ private void stopConnections(List connections) { } for (ApiService subscriber : liveConnections) { try { - subscriber.awaitTerminated(); - } catch (IllegalStateException e) { - // If the service fails, awaitTerminated will throw an exception. - // However, we could be stopping services because at least one - // has already failed, so we just ignore this exception. + if (deadlineMillis < 0) { + // Wait indefinitely + subscriber.awaitTerminated(); + } else { + long remaining = deadlineMillis - clock.millisTime(); + if (remaining < 0) { + remaining = 0; + } + subscriber.awaitTerminated(remaining, java.util.concurrent.TimeUnit.MILLISECONDS); + } + } catch (Exception e) { + logger.log(Level.FINE, "Exception while waiting for a connection to terminate", e); + break; // Stop waiting for other connections. } } } @@ -469,10 +522,10 @@ public static final class Builder { private MessageReceiver receiver; private MessageReceiverWithAckResponse receiverWithAckResponse; - private Duration maxAckExtensionPeriod = DEFAULT_MAX_ACK_EXTENSION_PERIOD; - private Duration minDurationPerAckExtension = DEFAULT_MIN_ACK_DEADLINE_EXTENSION; + private java.time.Duration maxAckExtensionPeriod = DEFAULT_MAX_ACK_EXTENSION_PERIOD; + private java.time.Duration minDurationPerAckExtension = DEFAULT_MIN_ACK_DEADLINE_EXTENSION; private boolean minDurationPerAckExtensionDefaultUsed = true; - private Duration maxDurationPerAckExtension = DEFAULT_MAX_ACK_DEADLINE_EXTENSION; + private java.time.Duration maxDurationPerAckExtension = DEFAULT_MAX_ACK_DEADLINE_EXTENSION; private boolean maxDurationPerAckExtensionDefaultUsed = true; private boolean useLegacyFlowControl = false; @@ -484,14 +537,21 @@ public static final class Builder { SubscriptionAdminSettings.defaultGrpcTransportProviderBuilder() .setMaxInboundMessageSize(MAX_INBOUND_MESSAGE_SIZE) .setMaxInboundMetadataSize(MAX_INBOUND_METADATA_SIZE) - .setKeepAliveTime(Duration.ofMinutes(5)) + .setKeepAliveTimeDuration(java.time.Duration.ofMinutes(5)) .build(); private HeaderProvider headerProvider = new NoHeaderProvider(); private CredentialsProvider credentialsProvider = SubscriptionAdminSettings.defaultCredentialsProviderBuilder().build(); private Optional clock = Optional.absent(); private int parallelPullCount = 1; - private String endpoint = SubscriberStubSettings.getDefaultEndpoint(); + private String endpoint = null; + private String universeDomain = null; + + private boolean enableOpenTelemetryTracing = false; + private OpenTelemetry openTelemetry = null; + + private SubscriberShutdownSettings subscriberShutdownSettings = + SubscriberShutdownSettings.newBuilder().build(); Builder(String subscription, MessageReceiver receiver) { this.subscription = subscription; @@ -571,6 +631,15 @@ public Builder setUseLegacyFlowControl(boolean value) { return this; } + /** + * This method is obsolete. Use {@link #setMaxAckExtensionPeriodDuration(java.time.Duration)} + * instead. + */ + @ObsoleteApi("Use setMaxAckExtensionPeriodDuration(java.time.Duration) instead") + public Builder setMaxAckExtensionPeriod(org.threeten.bp.Duration maxAckExtensionPeriod) { + return setMaxAckExtensionPeriodDuration(toJavaTimeDuration(maxAckExtensionPeriod)); + } + /** * Set the maximum period a message ack deadline will be extended. Defaults to one hour. * @@ -580,12 +649,22 @@ public Builder setUseLegacyFlowControl(boolean value) { * *

A zero duration effectively disables auto deadline extensions. */ - public Builder setMaxAckExtensionPeriod(Duration maxAckExtensionPeriod) { + public Builder setMaxAckExtensionPeriodDuration(java.time.Duration maxAckExtensionPeriod) { Preconditions.checkArgument(maxAckExtensionPeriod.toMillis() >= 0); this.maxAckExtensionPeriod = maxAckExtensionPeriod; return this; } + /** + * This method is obsolete. Use {@link + * #setMaxDurationPerAckExtensionDuration(java.time.Duration)} instead. + */ + @ObsoleteApi("Use setMaxDurationPerAckExtensionDuration(java.time.Duration) instead") + public Builder setMaxDurationPerAckExtension( + org.threeten.bp.Duration maxDurationPerAckExtension) { + return setMaxDurationPerAckExtensionDuration(toJavaTimeDuration(maxDurationPerAckExtension)); + } + /** * Set the upper bound for a single mod ack extention period. * @@ -596,7 +675,8 @@ public Builder setMaxAckExtensionPeriod(Duration maxAckExtensionPeriod) { * *

MaxDurationPerAckExtension configuration can be disabled by specifying a zero duration. */ - public Builder setMaxDurationPerAckExtension(Duration maxDurationPerAckExtension) { + public Builder setMaxDurationPerAckExtensionDuration( + java.time.Duration maxDurationPerAckExtension) { // If a non-default min is set, make sure min is less than max Preconditions.checkArgument( maxDurationPerAckExtension.toMillis() >= 0 @@ -608,6 +688,16 @@ public Builder setMaxDurationPerAckExtension(Duration maxDurationPerAckExtension return this; } + /** + * This method is obsolete. Use {@link + * #setMinDurationPerAckExtensionDuration(java.time.Duration)} instead. + */ + @ObsoleteApi("Use setMinDurationPerAckExtensionDuration(java.time.Duration) instead") + public Builder setMinDurationPerAckExtension( + org.threeten.bp.Duration minDurationPerAckExtension) { + return setMinDurationPerAckExtensionDuration(toJavaTimeDuration(minDurationPerAckExtension)); + } + /** * Set the lower bound for a single mod ack extention period. * @@ -618,7 +708,8 @@ public Builder setMaxDurationPerAckExtension(Duration maxDurationPerAckExtension * *

MinDurationPerAckExtension configuration can be disabled by specifying a zero duration. */ - public Builder setMinDurationPerAckExtension(Duration minDurationPerAckExtension) { + public Builder setMinDurationPerAckExtensionDuration( + java.time.Duration minDurationPerAckExtension) { // If a non-default max is set, make sure min is less than max Preconditions.checkArgument( minDurationPerAckExtension.toMillis() >= 0 @@ -670,12 +761,51 @@ public Builder setEndpoint(String endpoint) { return this; } + /** Gives the ability to override the universe domain. */ + public Builder setUniverseDomain(String universeDomain) { + this.universeDomain = universeDomain; + return this; + } + /** Gives the ability to set a custom clock. */ Builder setClock(ApiClock clock) { this.clock = Optional.of(clock); return this; } + /** + * OpenTelemetry will be enabled if setEnableOpenTelemetry is true and and instance of + * OpenTelemetry has been provied. Warning: traces are subject to change. The name and + * attributes of a span might change without notice. Only use run traces interactively. Don't + * use in automation. Running non-interactive traces can cause problems if the underlying trace + * architecture changes without notice. + */ + + /** Gives the ability to enable Open Telemetry Tracing */ + public Builder setEnableOpenTelemetryTracing(boolean enableOpenTelemetryTracing) { + this.enableOpenTelemetryTracing = enableOpenTelemetryTracing; + return this; + } + + /** Sets the instance of OpenTelemetry for the Publisher class. */ + public Builder setOpenTelemetry(OpenTelemetry openTelemetry) { + this.openTelemetry = openTelemetry; + return this; + } + + /** + * Sets the shutdown settings for the subscriber. Defaults to {@link + * SubscriberShutdownSettings#newBuilder() default settings}. + */ + @BetaApi( + "The surface for SubscriberShutdownSettings is not stable yet and may be changed in the" + + " future.") + public Builder setSubscriberShutdownSettings( + SubscriberShutdownSettings subscriberShutdownSettings) { + this.subscriberShutdownSettings = Preconditions.checkNotNull(subscriberShutdownSettings); + return this; + } + /** Returns the default FlowControlSettings used by the client if settings are not provided. */ public static FlowControlSettings getDefaultFlowControlSettings() { return DEFAULT_FLOW_CONTROL_SETTINGS; diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SubscriberShutdownSettings.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SubscriberShutdownSettings.java new file mode 100644 index 000000000..efd8e10db --- /dev/null +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SubscriberShutdownSettings.java @@ -0,0 +1,102 @@ +/* + * 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.pubsub.v1; + +import com.google.common.base.Preconditions; +import java.time.Duration; + +/** + * Settings for configuring the shutdown behavior of a {@link Subscriber}. + * + *

This class allows customization of how the subscriber handles outstanding messages during + * shutdown, including whether to wait for processing to complete or to immediately nack messages, + * and an optional timeout for the shutdown process. + */ +public final class SubscriberShutdownSettings { + + /** Defines the behavior for handling outstanding messages during subscriber shutdown. */ + public enum ShutdownMode { + /** + * The subscriber will wait for all outstanding messages to be processed (acked or nacked by the + * user's message receiver) before completing the shutdown. + */ + WAIT_FOR_PROCESSING, + /** + * The subscriber will immediately nack all outstanding messages and attempt to shut down as + * quickly as possible. Messages delivered to the user callback but not yet acked/nacked will + * also be nacked. + */ + NACK_IMMEDIATELY + } + + private static final Duration DEFAULT_TIMEOUT = Duration.ofSeconds(-1); // Indicates no timeout + private static final ShutdownMode DEFAULT_MODE = ShutdownMode.WAIT_FOR_PROCESSING; + + private final ShutdownMode mode; + private final Duration timeout; + + private SubscriberShutdownSettings(Builder builder) { + this.mode = builder.mode; + this.timeout = builder.timeout; + } + + /** Returns the configured shutdown mode. */ + public ShutdownMode getMode() { + return mode; + } + + /** Returns the configured shutdown timeout. A negative duration indicates no timeout. */ + public Duration getTimeout() { + return timeout; + } + + /** Returns a new builder for {@code SubscriberShutdownSettings}. */ + public static Builder newBuilder() { + return new Builder(); + } + + /** Builder for {@code SubscriberShutdownSettings}. */ + public static final class Builder { + private ShutdownMode mode = DEFAULT_MODE; + private Duration timeout = DEFAULT_TIMEOUT; + + private Builder() {} + + /** Sets the shutdown mode. Defaults to {@link ShutdownMode#WAIT_FOR_PROCESSING}. */ + public Builder setMode(ShutdownMode mode) { + this.mode = Preconditions.checkNotNull(mode); + return this; + } + + /** + * Sets the shutdown timeout. Defaults to a negative duration, indicating no timeout. + * + *

A positive duration specifies the maximum time to wait for shutdown to complete. A + * duration of zero indicates an immediate, forceful shutdown. A negative duration indicates an + * indefinite wait. + */ + public Builder setTimeout(Duration timeout) { + this.timeout = Preconditions.checkNotNull(timeout); + return this; + } + + /** Builds an instance of {@code SubscriberShutdownSettings}. */ + public SubscriberShutdownSettings build() { + return new SubscriberShutdownSettings(this); + } + } +} diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SubscriptionAdminClient.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SubscriptionAdminClient.java index e7617298c..828bbea14 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SubscriptionAdminClient.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SubscriptionAdminClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -100,352 +100,352 @@ * close(). * *

MethodsMethods
MethodDescriptionMethod Variants
CreateSchema

CreateSchema

Creates a schema.

*

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

*
    - *
  • createSchema(CreateSchemaRequest request) + *
  • createSchema(CreateSchemaRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • createSchema(ProjectName parent, Schema schema, String schemaId) - *
  • createSchema(String parent, Schema schema, String schemaId) + *
  • createSchema(ProjectName parent, Schema schema, String schemaId) + *

  • createSchema(String parent, Schema schema, String schemaId) *

*

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

*
    - *
  • createSchemaCallable() + *
  • createSchemaCallable() *

*
GetSchema

GetSchema

Gets a schema.

*

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

*
    - *
  • getSchema(GetSchemaRequest request) + *
  • getSchema(GetSchemaRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • getSchema(SchemaName name) - *
  • getSchema(String name) + *
  • getSchema(SchemaName name) + *

  • getSchema(String name) *

*

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

*
    - *
  • getSchemaCallable() + *
  • getSchemaCallable() *

*
ListSchemas

ListSchemas

Lists schemas in a project.

*

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

*
    - *
  • listSchemas(ListSchemasRequest request) + *
  • listSchemas(ListSchemasRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • listSchemas(ProjectName parent) - *
  • listSchemas(String parent) + *
  • listSchemas(ProjectName parent) + *

  • listSchemas(String parent) *

*

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

*
    - *
  • listSchemasPagedCallable() - *
  • listSchemasCallable() + *
  • listSchemasPagedCallable() + *

  • listSchemasCallable() *

*
ListSchemaRevisions

ListSchemaRevisions

Lists all schema revisions for the named schema.

*

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

*
    - *
  • listSchemaRevisions(ListSchemaRevisionsRequest request) + *
  • listSchemaRevisions(ListSchemaRevisionsRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • listSchemaRevisions(SchemaName name) - *
  • listSchemaRevisions(String name) + *
  • listSchemaRevisions(SchemaName name) + *

  • listSchemaRevisions(String name) *

*

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

*
    - *
  • listSchemaRevisionsPagedCallable() - *
  • listSchemaRevisionsCallable() + *
  • listSchemaRevisionsPagedCallable() + *

  • listSchemaRevisionsCallable() *

*
CommitSchema

CommitSchema

Commits a new schema revision to an existing schema.

*

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

*
    - *
  • commitSchema(CommitSchemaRequest request) + *
  • commitSchema(CommitSchemaRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • commitSchema(SchemaName name, Schema schema) - *
  • commitSchema(String name, Schema schema) + *
  • commitSchema(SchemaName name, Schema schema) + *

  • commitSchema(String name, Schema schema) *

*

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

*
    - *
  • commitSchemaCallable() + *
  • commitSchemaCallable() *

*
RollbackSchema

RollbackSchema

Creates a new schema revision that is a copy of the provided revision_id.

*

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

*
    - *
  • rollbackSchema(RollbackSchemaRequest request) + *
  • rollbackSchema(RollbackSchemaRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • rollbackSchema(SchemaName name, String revisionId) - *
  • rollbackSchema(String name, String revisionId) + *
  • rollbackSchema(SchemaName name, String revisionId) + *

  • rollbackSchema(String name, String revisionId) *

*

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

*
    - *
  • rollbackSchemaCallable() + *
  • rollbackSchemaCallable() *

*
DeleteSchemaRevision

DeleteSchemaRevision

Deletes a specific schema revision.

*

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

*
    - *
  • deleteSchemaRevision(DeleteSchemaRevisionRequest request) + *
  • deleteSchemaRevision(DeleteSchemaRevisionRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • deleteSchemaRevision(SchemaName name, String revisionId) - *
  • deleteSchemaRevision(String name, String revisionId) + *
  • deleteSchemaRevision(SchemaName name, String revisionId) + *

  • deleteSchemaRevision(String name, String revisionId) *

*

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

*
    - *
  • deleteSchemaRevisionCallable() + *
  • deleteSchemaRevisionCallable() *

*
DeleteSchema

DeleteSchema

Deletes a schema.

*

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

*
    - *
  • deleteSchema(DeleteSchemaRequest request) + *
  • deleteSchema(DeleteSchemaRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • deleteSchema(SchemaName name) - *
  • deleteSchema(String name) + *
  • deleteSchema(SchemaName name) + *

  • deleteSchema(String name) *

*

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

*
    - *
  • deleteSchemaCallable() + *
  • deleteSchemaCallable() *

*
ValidateSchema

ValidateSchema

Validates a schema.

*

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

*
    - *
  • validateSchema(ValidateSchemaRequest request) + *
  • validateSchema(ValidateSchemaRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • validateSchema(ProjectName parent, Schema schema) - *
  • validateSchema(String parent, Schema schema) + *
  • validateSchema(ProjectName parent, Schema schema) + *

  • validateSchema(String parent, Schema schema) *

*

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

*
    - *
  • validateSchemaCallable() + *
  • validateSchemaCallable() *

*
ValidateMessage

ValidateMessage

Validates a message against a schema.

*

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

*
    - *
  • validateMessage(ValidateMessageRequest request) + *
  • validateMessage(ValidateMessageRequest request) *

*

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

*
    - *
  • validateMessageCallable() + *
  • validateMessageCallable() *

*
SetIamPolicy

SetIamPolicy

Sets the access control policy on the specified resource. Replacesany existing policy. *

Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`errors.

*

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

*
    - *
  • setIamPolicy(SetIamPolicyRequest request) + *
  • setIamPolicy(SetIamPolicyRequest request) *

*

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

*
    - *
  • setIamPolicyCallable() + *
  • setIamPolicyCallable() *

*
GetIamPolicy

GetIamPolicy

Gets the access control policy for a resource. Returns an empty policyif the resource exists and does not have a policy set.

*

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

*
    - *
  • getIamPolicy(GetIamPolicyRequest request) + *
  • getIamPolicy(GetIamPolicyRequest request) *

*

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

*
    - *
  • getIamPolicyCallable() + *
  • getIamPolicyCallable() *

*
TestIamPermissions

TestIamPermissions

Returns permissions that a caller has on the specified resource. If theresource does not exist, this will return an empty set ofpermissions, not a `NOT_FOUND` error. *

Note: This operation is designed to be used for buildingpermission-aware UIs and command-line tools, not for authorizationchecking. This operation may "fail open" without warning.

*

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

*
    - *
  • testIamPermissions(TestIamPermissionsRequest request) + *
  • testIamPermissions(TestIamPermissionsRequest request) *

*

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

*
    - *
  • testIamPermissionsCallable() + *
  • testIamPermissionsCallable() *

*
- * + * * * * * * * - * + * * * * * - * + * * * * * - * - * + * + * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * - * + * + * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * - * + * + * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * @@ -588,7 +588,7 @@ public SubscriberStub getStub() { * } * } * - * @param name Required. The name of the subscription. It must have the format + * @param name Required. Identifier. The name of the subscription. It must have the format * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must start with a * letter, and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`), underscores * (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent signs (`%`). It must be between 3 @@ -596,12 +596,12 @@ public SubscriberStub getStub() { * @param topic Required. The name of the topic from which this subscription is receiving * messages. Format is `projects/{project}/topics/{topic}`. The value of this field will be * `_deleted-topic_` if the topic has been deleted. - * @param pushConfig If push delivery is used with this subscription, this field is used to - * configure it. - * @param ackDeadlineSeconds The approximate amount of time (on a best-effort basis) Pub/Sub waits - * for the subscriber to acknowledge receipt before resending the message. In the interval - * after the message is delivered and before it is acknowledged, it is considered to be - * _outstanding_. During that time period, the message will not be redelivered (on a + * @param pushConfig Optional. If push delivery is used with this subscription, this field is used + * to configure it. + * @param ackDeadlineSeconds Optional. The approximate amount of time (on a best-effort basis) + * Pub/Sub waits for the subscriber to acknowledge receipt before resending the message. In + * the interval after the message is delivered and before it is acknowledged, it is considered + * to be _outstanding_. During that time period, the message will not be redelivered (on a * best-effort basis). *

For pull subscriptions, this value is used as the initial value for the ack deadline. To * override this value for a given message, call `ModifyAckDeadline` with the corresponding @@ -658,7 +658,7 @@ public final Subscription createSubscription( * } * } * - * @param name Required. The name of the subscription. It must have the format + * @param name Required. Identifier. The name of the subscription. It must have the format * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must start with a * letter, and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`), underscores * (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent signs (`%`). It must be between 3 @@ -666,12 +666,12 @@ public final Subscription createSubscription( * @param topic Required. The name of the topic from which this subscription is receiving * messages. Format is `projects/{project}/topics/{topic}`. The value of this field will be * `_deleted-topic_` if the topic has been deleted. - * @param pushConfig If push delivery is used with this subscription, this field is used to - * configure it. - * @param ackDeadlineSeconds The approximate amount of time (on a best-effort basis) Pub/Sub waits - * for the subscriber to acknowledge receipt before resending the message. In the interval - * after the message is delivered and before it is acknowledged, it is considered to be - * _outstanding_. During that time period, the message will not be redelivered (on a + * @param pushConfig Optional. If push delivery is used with this subscription, this field is used + * to configure it. + * @param ackDeadlineSeconds Optional. The approximate amount of time (on a best-effort basis) + * Pub/Sub waits for the subscriber to acknowledge receipt before resending the message. In + * the interval after the message is delivered and before it is acknowledged, it is considered + * to be _outstanding_. During that time period, the message will not be redelivered (on a * best-effort basis). *

For pull subscriptions, this value is used as the initial value for the ack deadline. To * override this value for a given message, call `ModifyAckDeadline` with the corresponding @@ -728,7 +728,7 @@ public final Subscription createSubscription( * } * } * - * @param name Required. The name of the subscription. It must have the format + * @param name Required. Identifier. The name of the subscription. It must have the format * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must start with a * letter, and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`), underscores * (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent signs (`%`). It must be between 3 @@ -736,12 +736,12 @@ public final Subscription createSubscription( * @param topic Required. The name of the topic from which this subscription is receiving * messages. Format is `projects/{project}/topics/{topic}`. The value of this field will be * `_deleted-topic_` if the topic has been deleted. - * @param pushConfig If push delivery is used with this subscription, this field is used to - * configure it. - * @param ackDeadlineSeconds The approximate amount of time (on a best-effort basis) Pub/Sub waits - * for the subscriber to acknowledge receipt before resending the message. In the interval - * after the message is delivered and before it is acknowledged, it is considered to be - * _outstanding_. During that time period, the message will not be redelivered (on a + * @param pushConfig Optional. If push delivery is used with this subscription, this field is used + * to configure it. + * @param ackDeadlineSeconds Optional. The approximate amount of time (on a best-effort basis) + * Pub/Sub waits for the subscriber to acknowledge receipt before resending the message. In + * the interval after the message is delivered and before it is acknowledged, it is considered + * to be _outstanding_. During that time period, the message will not be redelivered (on a * best-effort basis). *

For pull subscriptions, this value is used as the initial value for the ack deadline. To * override this value for a given message, call `ModifyAckDeadline` with the corresponding @@ -798,7 +798,7 @@ public final Subscription createSubscription( * } * } * - * @param name Required. The name of the subscription. It must have the format + * @param name Required. Identifier. The name of the subscription. It must have the format * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must start with a * letter, and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`), underscores * (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent signs (`%`). It must be between 3 @@ -806,12 +806,12 @@ public final Subscription createSubscription( * @param topic Required. The name of the topic from which this subscription is receiving * messages. Format is `projects/{project}/topics/{topic}`. The value of this field will be * `_deleted-topic_` if the topic has been deleted. - * @param pushConfig If push delivery is used with this subscription, this field is used to - * configure it. - * @param ackDeadlineSeconds The approximate amount of time (on a best-effort basis) Pub/Sub waits - * for the subscriber to acknowledge receipt before resending the message. In the interval - * after the message is delivered and before it is acknowledged, it is considered to be - * _outstanding_. During that time period, the message will not be redelivered (on a + * @param pushConfig Optional. If push delivery is used with this subscription, this field is used + * to configure it. + * @param ackDeadlineSeconds Optional. The approximate amount of time (on a best-effort basis) + * Pub/Sub waits for the subscriber to acknowledge receipt before resending the message. In + * the interval after the message is delivered and before it is acknowledged, it is considered + * to be _outstanding_. During that time period, the message will not be redelivered (on a * best-effort basis). *

For pull subscriptions, this value is used as the initial value for the ack deadline. To * override this value for a given message, call `ModifyAckDeadline` with the corresponding @@ -878,6 +878,10 @@ public final Subscription createSubscription( * .setDetached(true) * .setEnableExactlyOnceDelivery(true) * .setTopicMessageRetentionDuration(Duration.newBuilder().build()) + * .setAnalyticsHubSubscriptionInfo( + * Subscription.AnalyticsHubSubscriptionInfo.newBuilder().build()) + * .addAllMessageTransforms(new ArrayList()) + * .putAllTags(new HashMap()) * .build(); * Subscription response = subscriptionAdminClient.createSubscription(request); * } @@ -1141,6 +1145,10 @@ public final Subscription createSubscription( * .setDetached(true) * .setEnableExactlyOnceDelivery(true) * .setTopicMessageRetentionDuration(Duration.newBuilder().build()) + * .setAnalyticsHubSubscriptionInfo( + * Subscription.AnalyticsHubSubscriptionInfo.newBuilder().build()) + * .addAllMessageTransforms(new ArrayList()) + * .putAllTags(new HashMap()) * .build(); * ApiFuture future = * subscriptionAdminClient.createSubscriptionCallable().futureCall(request); @@ -1171,7 +1179,7 @@ public final UnaryCallable createSubscriptionCallabl * } * } * - * @param subscription Required. The name of the subscription to get. Format is + * @param subscription Required. Identifier. The name of the subscription to get. Format is * `projects/{project}/subscriptions/{sub}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ @@ -1201,7 +1209,7 @@ public final Subscription getSubscription(SubscriptionName subscription) { * } * } * - * @param subscription Required. The name of the subscription to get. Format is + * @param subscription Required. Identifier. The name of the subscription to get. Format is * `projects/{project}/subscriptions/{sub}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ @@ -1296,8 +1304,8 @@ public final UnaryCallable getSubscription // AUTO-GENERATED DOCUMENTATION AND METHOD. /** - * Updates an existing subscription. Note that certain properties of a subscription, such as its - * topic, are not modifiable. + * Updates an existing subscription by updating the fields specified in the update mask. Note that + * certain properties of a subscription, such as its topic, are not modifiable. * *

Sample code: * @@ -1330,8 +1338,8 @@ public final Subscription updateSubscription(Subscription subscription, FieldMas // AUTO-GENERATED DOCUMENTATION AND METHOD. /** - * Updates an existing subscription. Note that certain properties of a subscription, such as its - * topic, are not modifiable. + * Updates an existing subscription by updating the fields specified in the update mask. Note that + * certain properties of a subscription, such as its topic, are not modifiable. * *

Sample code: * @@ -1360,8 +1368,8 @@ public final Subscription updateSubscription(UpdateSubscriptionRequest request) // AUTO-GENERATED DOCUMENTATION AND METHOD. /** - * Updates an existing subscription. Note that certain properties of a subscription, such as its - * topic, are not modifiable. + * Updates an existing subscription by updating the fields specified in the update mask. Note that + * certain properties of a subscription, such as its topic, are not modifiable. * *

Sample code: * @@ -1408,8 +1416,8 @@ public final UnaryCallable updateSubscr * } * } * - * @param project Required. The name of the project in which to list subscriptions. Format is - * `projects/{project-id}`. + * @param project Required. Identifier. The name of the project in which to list subscriptions. + * Format is `projects/{project-id}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ public final ListSubscriptionsPagedResponse listSubscriptions(ProjectName project) { @@ -1440,8 +1448,8 @@ public final ListSubscriptionsPagedResponse listSubscriptions(ProjectName projec * } * } * - * @param project Required. The name of the project in which to list subscriptions. Format is - * `projects/{project-id}`. + * @param project Required. Identifier. The name of the project in which to list subscriptions. + * Format is `projects/{project-id}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ public final ListSubscriptionsPagedResponse listSubscriptions(String project) { @@ -1576,7 +1584,7 @@ public final ListSubscriptionsPagedResponse listSubscriptions(ListSubscriptionsR * } * } * - * @param subscription Required. The subscription to delete. Format is + * @param subscription Required. Identifier. The subscription to delete. Format is * `projects/{project}/subscriptions/{sub}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ @@ -1609,7 +1617,7 @@ public final void deleteSubscription(SubscriptionName subscription) { * } * } * - * @param subscription Required. The subscription to delete. Format is + * @param subscription Required. Identifier. The subscription to delete. Format is * `projects/{project}/subscriptions/{sub}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ @@ -1742,8 +1750,8 @@ public final UnaryCallable deleteSubscriptionC * expire 10 seconds after the `ModifyAckDeadline` call was made. Specifying zero might * immediately make the message available for delivery to another subscriber client. This * typically results in an increase in the rate of message redeliveries (that is, duplicates). - * The minimum deadline you can specify is 0 seconds. The maximum deadline you can specify is - * 600 seconds (10 minutes). + * The minimum deadline you can specify is 0 seconds. The maximum deadline you can specify in + * a single request is 600 seconds (10 minutes). * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ public final void modifyAckDeadline( @@ -1788,8 +1796,8 @@ public final void modifyAckDeadline( * expire 10 seconds after the `ModifyAckDeadline` call was made. Specifying zero might * immediately make the message available for delivery to another subscriber client. This * typically results in an increase in the rate of message redeliveries (that is, duplicates). - * The minimum deadline you can specify is 0 seconds. The maximum deadline you can specify is - * 600 seconds (10 minutes). + * The minimum deadline you can specify is 0 seconds. The maximum deadline you can specify in + * a single request is 600 seconds (10 minutes). * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ public final void modifyAckDeadline( @@ -2373,7 +2381,7 @@ public final UnaryCallable pullCallable() { // AUTO-GENERATED DOCUMENTATION AND METHOD. /** * Establishes a stream with the server, which sends messages down to the client. The client - * streams acknowledgements and ack deadline modifications back to the server. The server will + * streams acknowledgments and ack deadline modifications back to the server. The server will * close the stream and return the status on any error. The server may close the stream with * status `UNAVAILABLE` to reassign server-side resources, in which case, the client should * re-establish the stream. Flow control can be achieved by configuring the underlying RPC @@ -2400,6 +2408,7 @@ public final UnaryCallable pullCallable() { * .setClientId("clientId908408390") * .setMaxOutstandingMessages(-1315266996) * .setMaxOutstandingBytes(-2103098517) + * .setProtocolVersion(-1161610703) * .build(); * bidiStream.send(request); * for (StreamingPullResponse response : bidiStream) { @@ -2622,7 +2631,7 @@ public final UnaryCallable modifyPushConfigCalla * } * } * - * @param snapshot Required. The name of the snapshot to get. Format is + * @param snapshot Required. Identifier. The name of the snapshot to get. Format is * `projects/{project}/snapshots/{snap}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ @@ -2655,7 +2664,7 @@ public final Snapshot getSnapshot(SnapshotName snapshot) { * } * } * - * @param snapshot Required. The name of the snapshot to get. Format is + * @param snapshot Required. Identifier. The name of the snapshot to get. Format is * `projects/{project}/snapshots/{snap}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ @@ -2779,8 +2788,8 @@ public final UnaryCallable getSnapshotCallable() { * } * } * - * @param project Required. The name of the project in which to list snapshots. Format is - * `projects/{project-id}`. + * @param project Required. Identifier. The name of the project in which to list snapshots. Format + * is `projects/{project-id}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ public final ListSnapshotsPagedResponse listSnapshots(ProjectName project) { @@ -2814,8 +2823,8 @@ public final ListSnapshotsPagedResponse listSnapshots(ProjectName project) { * } * } * - * @param project Required. The name of the project in which to list snapshots. Format is - * `projects/{project-id}`. + * @param project Required. Identifier. The name of the project in which to list snapshots. Format + * is `projects/{project-id}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ public final ListSnapshotsPagedResponse listSnapshots(String project) { @@ -2966,10 +2975,11 @@ public final UnaryCallable listSnap * } * } * - * @param name Required. User-provided name for this snapshot. If the name is not provided in the - * request, the server will assign a random name for this snapshot on the same project as the - * subscription. Note that for REST API requests, you must specify a name. See the [resource - * name rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). Format is + * @param name Required. Identifier. User-provided name for this snapshot. If the name is not + * provided in the request, the server will assign a random name for this snapshot on the same + * project as the subscription. Note that for REST API requests, you must specify a name. See + * the [resource name + * rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). Format is * `projects/{project}/snapshots/{snap}`. * @param subscription Required. The subscription whose backlog the snapshot retains. * Specifically, the created snapshot is guaranteed to retain: (a) The existing backlog on the @@ -3019,10 +3029,11 @@ public final Snapshot createSnapshot(SnapshotName name, SubscriptionName subscri * } * } * - * @param name Required. User-provided name for this snapshot. If the name is not provided in the - * request, the server will assign a random name for this snapshot on the same project as the - * subscription. Note that for REST API requests, you must specify a name. See the [resource - * name rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). Format is + * @param name Required. Identifier. User-provided name for this snapshot. If the name is not + * provided in the request, the server will assign a random name for this snapshot on the same + * project as the subscription. Note that for REST API requests, you must specify a name. See + * the [resource name + * rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). Format is * `projects/{project}/snapshots/{snap}`. * @param subscription Required. The subscription whose backlog the snapshot retains. * Specifically, the created snapshot is guaranteed to retain: (a) The existing backlog on the @@ -3072,10 +3083,11 @@ public final Snapshot createSnapshot(SnapshotName name, String subscription) { * } * } * - * @param name Required. User-provided name for this snapshot. If the name is not provided in the - * request, the server will assign a random name for this snapshot on the same project as the - * subscription. Note that for REST API requests, you must specify a name. See the [resource - * name rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). Format is + * @param name Required. Identifier. User-provided name for this snapshot. If the name is not + * provided in the request, the server will assign a random name for this snapshot on the same + * project as the subscription. Note that for REST API requests, you must specify a name. See + * the [resource name + * rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). Format is * `projects/{project}/snapshots/{snap}`. * @param subscription Required. The subscription whose backlog the snapshot retains. * Specifically, the created snapshot is guaranteed to retain: (a) The existing backlog on the @@ -3125,10 +3137,11 @@ public final Snapshot createSnapshot(String name, SubscriptionName subscription) * } * } * - * @param name Required. User-provided name for this snapshot. If the name is not provided in the - * request, the server will assign a random name for this snapshot on the same project as the - * subscription. Note that for REST API requests, you must specify a name. See the [resource - * name rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). Format is + * @param name Required. Identifier. User-provided name for this snapshot. If the name is not + * provided in the request, the server will assign a random name for this snapshot on the same + * project as the subscription. Note that for REST API requests, you must specify a name. See + * the [resource name + * rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). Format is * `projects/{project}/snapshots/{snap}`. * @param subscription Required. The subscription whose backlog the snapshot retains. * Specifically, the created snapshot is guaranteed to retain: (a) The existing backlog on the @@ -3174,6 +3187,7 @@ public final Snapshot createSnapshot(String name, String subscription) { * .setName(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .setSubscription(SubscriptionName.of("[PROJECT]", "[SUBSCRIPTION]").toString()) * .putAllLabels(new HashMap()) + * .putAllTags(new HashMap()) * .build(); * Snapshot response = subscriptionAdminClient.createSnapshot(request); * } @@ -3366,6 +3380,7 @@ public final Snapshot createSnapshot(ProjectSnapshotName name, String subscripti * .setName(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .setSubscription(SubscriptionName.of("[PROJECT]", "[SUBSCRIPTION]").toString()) * .putAllLabels(new HashMap()) + * .putAllTags(new HashMap()) * .build(); * ApiFuture future = * subscriptionAdminClient.createSnapshotCallable().futureCall(request); @@ -3380,9 +3395,9 @@ public final UnaryCallable createSnapshotCallab // AUTO-GENERATED DOCUMENTATION AND METHOD. /** - * Updates an existing snapshot. Snapshots are used in - * [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow you to - * manage message acknowledgments in bulk. That is, you can set the acknowledgment state of + * Updates an existing snapshot by updating the fields specified in the update mask. Snapshots are + * used in [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow + * you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of * messages in an existing subscription to the state captured by a snapshot. * *

Sample code: @@ -3413,9 +3428,9 @@ public final Snapshot updateSnapshot(Snapshot snapshot, FieldMask updateMask) { // AUTO-GENERATED DOCUMENTATION AND METHOD. /** - * Updates an existing snapshot. Snapshots are used in - * [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow you to - * manage message acknowledgments in bulk. That is, you can set the acknowledgment state of + * Updates an existing snapshot by updating the fields specified in the update mask. Snapshots are + * used in [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow + * you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of * messages in an existing subscription to the state captured by a snapshot. * *

Sample code: @@ -3445,9 +3460,9 @@ public final Snapshot updateSnapshot(UpdateSnapshotRequest request) { // AUTO-GENERATED DOCUMENTATION AND METHOD. /** - * Updates an existing snapshot. Snapshots are used in - * [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow you to - * manage message acknowledgments in bulk. That is, you can set the acknowledgment state of + * Updates an existing snapshot by updating the fields specified in the update mask. Snapshots are + * used in [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow + * you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of * messages in an existing subscription to the state captured by a snapshot. * *

Sample code: @@ -3499,7 +3514,7 @@ public final UnaryCallable updateSnapshotCallab * } * } * - * @param snapshot Required. The name of the snapshot to delete. Format is + * @param snapshot Required. Identifier. The name of the snapshot to delete. Format is * `projects/{project}/snapshots/{snap}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ @@ -3535,7 +3550,7 @@ public final void deleteSnapshot(SnapshotName snapshot) { * } * } * - * @param snapshot Required. The name of the snapshot to delete. Format is + * @param snapshot Required. Identifier. The name of the snapshot to delete. Format is * `projects/{project}/snapshots/{snap}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SubscriptionAdminSettings.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SubscriptionAdminSettings.java index 7f50be718..ccbf48885 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SubscriptionAdminSettings.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SubscriptionAdminSettings.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -80,7 +80,9 @@ *

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 total timeout of createSubscription to 30 seconds: + *

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

{@code
  * // This snippet has been automatically generated and should be regarded as a code template only.
@@ -97,10 +99,21 @@
  *             .createSubscriptionSettings()
  *             .getRetrySettings()
  *             .toBuilder()
- *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .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());
  * SubscriptionAdminSettings subscriptionAdminSettings = subscriptionAdminSettingsBuilder.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 SubscriptionAdminSettings extends ClientSettings { @@ -246,7 +259,6 @@ public static TransportChannelProvider defaultTransportChannelProvider() { return SubscriberStubSettings.defaultTransportChannelProvider(); } - @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { return SubscriberStubSettings.defaultApiClientHeaderProviderBuilder(); } @@ -257,7 +269,6 @@ public static Builder newBuilder() { } /** Returns a new REST builder for this class. */ - @BetaApi public static Builder newHttpJsonBuilder() { return Builder.createHttpJsonDefault(); } @@ -299,7 +310,6 @@ private static Builder createDefault() { return new Builder(SubscriberStubSettings.newBuilder()); } - @BetaApi private static Builder createHttpJsonDefault() { return new Builder(SubscriberStubSettings.newHttpJsonBuilder()); } diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/TopicAdminClient.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/TopicAdminClient.java index 4e2652585..d5433f8ee 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/TopicAdminClient.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/TopicAdminClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -81,221 +81,221 @@ * threads. In the example above, try-with-resources is used, which automatically calls close(). * *
MethodsMethods
MethodDescriptionMethod Variants
CreateSubscription

CreateSubscription

Creates a subscription to a given topic. See the [resource name rules] (https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). If the subscription already exists, returns `ALREADY_EXISTS`. If the corresponding topic doesn't exist, returns `NOT_FOUND`. *

If the name is not provided in the request, the server will assign a random name for this subscription on the same project as the topic, conforming to the [resource name format] (https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). The generated name is populated in the returned Subscription object. Note that for REST API requests, you must specify a name in the request.

*

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

*
    - *
  • createSubscription(Subscription request) + *
  • createSubscription(Subscription request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • createSubscription(SubscriptionName name, TopicName topic, PushConfig pushConfig, int ackDeadlineSeconds) - *
  • createSubscription(SubscriptionName name, String topic, PushConfig pushConfig, int ackDeadlineSeconds) - *
  • createSubscription(String name, TopicName topic, PushConfig pushConfig, int ackDeadlineSeconds) - *
  • createSubscription(String name, String topic, PushConfig pushConfig, int ackDeadlineSeconds) + *
  • createSubscription(SubscriptionName name, TopicName topic, PushConfig pushConfig, int ackDeadlineSeconds) + *

  • createSubscription(SubscriptionName name, String topic, PushConfig pushConfig, int ackDeadlineSeconds) + *

  • createSubscription(String name, TopicName topic, PushConfig pushConfig, int ackDeadlineSeconds) + *

  • createSubscription(String name, String topic, PushConfig pushConfig, int ackDeadlineSeconds) *

*

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

*
    - *
  • createSubscriptionCallable() + *
  • createSubscriptionCallable() *

*
GetSubscription

GetSubscription

Gets the configuration details of a subscription.

*

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

*
    - *
  • getSubscription(GetSubscriptionRequest request) + *
  • getSubscription(GetSubscriptionRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • getSubscription(SubscriptionName subscription) - *
  • getSubscription(String subscription) + *
  • getSubscription(SubscriptionName subscription) + *

  • getSubscription(String subscription) *

*

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

*
    - *
  • getSubscriptionCallable() + *
  • getSubscriptionCallable() *

*
UpdateSubscription

Updates an existing subscription. Note that certain properties of a subscription, such as its topic, are not modifiable.

UpdateSubscription

Updates an existing subscription by updating the fields specified in the update mask. Note that certain properties of a subscription, such as its topic, are not modifiable.

*

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

*
    - *
  • updateSubscription(UpdateSubscriptionRequest request) + *
  • updateSubscription(UpdateSubscriptionRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • updateSubscription(Subscription subscription, FieldMask updateMask) + *
  • updateSubscription(Subscription subscription, FieldMask updateMask) *

*

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

*
    - *
  • updateSubscriptionCallable() + *
  • updateSubscriptionCallable() *

*
ListSubscriptions

ListSubscriptions

Lists matching subscriptions.

*

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

*
    - *
  • listSubscriptions(ListSubscriptionsRequest request) + *
  • listSubscriptions(ListSubscriptionsRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • listSubscriptions(ProjectName project) - *
  • listSubscriptions(String project) + *
  • listSubscriptions(ProjectName project) + *

  • listSubscriptions(String project) *

*

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

*
    - *
  • listSubscriptionsPagedCallable() - *
  • listSubscriptionsCallable() + *
  • listSubscriptionsPagedCallable() + *

  • listSubscriptionsCallable() *

*
DeleteSubscription

DeleteSubscription

Deletes an existing subscription. All messages retained in the subscription are immediately dropped. Calls to `Pull` after deletion will return `NOT_FOUND`. After a subscription is deleted, a new one may be created with the same name, but the new one has no association with the old subscription or its topic unless the same topic is specified.

*

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

*
    - *
  • deleteSubscription(DeleteSubscriptionRequest request) + *
  • deleteSubscription(DeleteSubscriptionRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • deleteSubscription(SubscriptionName subscription) - *
  • deleteSubscription(String subscription) + *
  • deleteSubscription(SubscriptionName subscription) + *

  • deleteSubscription(String subscription) *

*

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

*
    - *
  • deleteSubscriptionCallable() + *
  • deleteSubscriptionCallable() *

*
ModifyAckDeadline

ModifyAckDeadline

Modifies the ack deadline for a specific message. This method is useful to indicate that more time is needed to process a message by the subscriber, or to make the message available for redelivery if the processing was interrupted. Note that this does not modify the subscription-level `ackDeadlineSeconds` used for subsequent messages.

*

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

*
    - *
  • modifyAckDeadline(ModifyAckDeadlineRequest request) + *
  • modifyAckDeadline(ModifyAckDeadlineRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • modifyAckDeadline(SubscriptionName subscription, List<String> ackIds, int ackDeadlineSeconds) - *
  • modifyAckDeadline(String subscription, List<String> ackIds, int ackDeadlineSeconds) + *
  • modifyAckDeadline(SubscriptionName subscription, List<String> ackIds, int ackDeadlineSeconds) + *

  • modifyAckDeadline(String subscription, List<String> ackIds, int ackDeadlineSeconds) *

*

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

*
    - *
  • modifyAckDeadlineCallable() + *
  • modifyAckDeadlineCallable() *

*
Acknowledge

Acknowledge

Acknowledges the messages associated with the `ack_ids` in the `AcknowledgeRequest`. The Pub/Sub system can remove the relevant messages from the subscription. *

Acknowledging a message whose ack deadline has expired may succeed, but such a message may be redelivered later. Acknowledging a message more than once will not result in an error.

*

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

*
    - *
  • acknowledge(AcknowledgeRequest request) + *
  • acknowledge(AcknowledgeRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • acknowledge(SubscriptionName subscription, List<String> ackIds) - *
  • acknowledge(String subscription, List<String> ackIds) + *
  • acknowledge(SubscriptionName subscription, List<String> ackIds) + *

  • acknowledge(String subscription, List<String> ackIds) *

*

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

*
    - *
  • acknowledgeCallable() + *
  • acknowledgeCallable() *

*
Pull

Pull

Pulls messages from the server.

*

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

*
    - *
  • pull(PullRequest request) + *
  • pull(PullRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • pull(SubscriptionName subscription, int maxMessages) - *
  • pull(String subscription, int maxMessages) - *
  • pull(SubscriptionName subscription, boolean returnImmediately, int maxMessages) - *
  • pull(String subscription, boolean returnImmediately, int maxMessages) + *
  • pull(SubscriptionName subscription, int maxMessages) + *

  • pull(String subscription, int maxMessages) + *

  • pull(SubscriptionName subscription, boolean returnImmediately, int maxMessages) + *

  • pull(String subscription, boolean returnImmediately, int maxMessages) *

*

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

*
    - *
  • pullCallable() + *
  • pullCallable() *

*
StreamingPull

Establishes a stream with the server, which sends messages down to the client. The client streams acknowledgements and ack deadline modifications back to the server. The server will close the stream and return the status on any error. The server may close the stream with status `UNAVAILABLE` to reassign server-side resources, in which case, the client should re-establish the stream. Flow control can be achieved by configuring the underlying RPC channel.

StreamingPull

Establishes a stream with the server, which sends messages down to the client. The client streams acknowledgments and ack deadline modifications back to the server. The server will close the stream and return the status on any error. The server may close the stream with status `UNAVAILABLE` to reassign server-side resources, in which case, the client should re-establish the stream. Flow control can be achieved by configuring the underlying RPC channel.

*

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

*
    - *
  • streamingPullCallable() + *
  • streamingPullCallable() *

*
ModifyPushConfig

ModifyPushConfig

Modifies the `PushConfig` for a specified subscription. *

This may be used to change a push subscription to a pull one (signified by an empty `PushConfig`) or vice versa, or change the endpoint URL and other attributes of a push subscription. Messages will accumulate for delivery continuously through the call regardless of changes to the `PushConfig`.

*

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

*
    - *
  • modifyPushConfig(ModifyPushConfigRequest request) + *
  • modifyPushConfig(ModifyPushConfigRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • modifyPushConfig(SubscriptionName subscription, PushConfig pushConfig) - *
  • modifyPushConfig(String subscription, PushConfig pushConfig) + *
  • modifyPushConfig(SubscriptionName subscription, PushConfig pushConfig) + *

  • modifyPushConfig(String subscription, PushConfig pushConfig) *

*

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

*
    - *
  • modifyPushConfigCallable() + *
  • modifyPushConfigCallable() *

*
GetSnapshot

GetSnapshot

Gets the configuration details of a snapshot. Snapshots are used in [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot.

*

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

*
    - *
  • getSnapshot(GetSnapshotRequest request) + *
  • getSnapshot(GetSnapshotRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • getSnapshot(SnapshotName snapshot) - *
  • getSnapshot(String snapshot) + *
  • getSnapshot(SnapshotName snapshot) + *

  • getSnapshot(String snapshot) *

*

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

*
    - *
  • getSnapshotCallable() + *
  • getSnapshotCallable() *

*
ListSnapshots

ListSnapshots

Lists the existing snapshots. Snapshots are used in [Seek]( https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot.

*

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

*
    - *
  • listSnapshots(ListSnapshotsRequest request) + *
  • listSnapshots(ListSnapshotsRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • listSnapshots(ProjectName project) - *
  • listSnapshots(String project) + *
  • listSnapshots(ProjectName project) + *

  • listSnapshots(String project) *

*

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

*
    - *
  • listSnapshotsPagedCallable() - *
  • listSnapshotsCallable() + *
  • listSnapshotsPagedCallable() + *

  • listSnapshotsCallable() *

*
CreateSnapshot

CreateSnapshot

Creates a snapshot from the requested subscription. Snapshots are used in [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot. If the snapshot already exists, returns `ALREADY_EXISTS`. If the requested subscription doesn't exist, returns `NOT_FOUND`. If the backlog in the subscription is too old -- and the resulting snapshot would expire in less than 1 hour -- then `FAILED_PRECONDITION` is returned. See also the `Snapshot.expire_time` field. If the name is not provided in the request, the server will assign a random name for this snapshot on the same project as the subscription, conforming to the [resource name format] (https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). The generated name is populated in the returned Snapshot object. Note that for REST API requests, you must specify a name in the request.

*

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

*
    - *
  • createSnapshot(CreateSnapshotRequest request) + *
  • createSnapshot(CreateSnapshotRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • createSnapshot(SnapshotName name, SubscriptionName subscription) - *
  • createSnapshot(SnapshotName name, String subscription) - *
  • createSnapshot(String name, SubscriptionName subscription) - *
  • createSnapshot(String name, String subscription) + *
  • createSnapshot(SnapshotName name, SubscriptionName subscription) + *

  • createSnapshot(SnapshotName name, String subscription) + *

  • createSnapshot(String name, SubscriptionName subscription) + *

  • createSnapshot(String name, String subscription) *

*

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

*
    - *
  • createSnapshotCallable() + *
  • createSnapshotCallable() *

*
UpdateSnapshot

Updates an existing snapshot. Snapshots are used in [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot.

UpdateSnapshot

Updates an existing snapshot by updating the fields specified in the update mask. Snapshots are used in [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot.

*

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

*
    - *
  • updateSnapshot(UpdateSnapshotRequest request) + *
  • updateSnapshot(UpdateSnapshotRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • updateSnapshot(Snapshot snapshot, FieldMask updateMask) + *
  • updateSnapshot(Snapshot snapshot, FieldMask updateMask) *

*

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

*
    - *
  • updateSnapshotCallable() + *
  • updateSnapshotCallable() *

*
DeleteSnapshot

DeleteSnapshot

Removes an existing snapshot. Snapshots are used in [Seek] (https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot. When the snapshot is deleted, all messages retained in the snapshot are immediately dropped. After a snapshot is deleted, a new one may be created with the same name, but the new one has no association with the old snapshot or its subscription, unless the same subscription is specified.

*

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

*
    - *
  • deleteSnapshot(DeleteSnapshotRequest request) + *
  • deleteSnapshot(DeleteSnapshotRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • deleteSnapshot(SnapshotName snapshot) - *
  • deleteSnapshot(String snapshot) + *
  • deleteSnapshot(SnapshotName snapshot) + *

  • deleteSnapshot(String snapshot) *

*

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

*
    - *
  • deleteSnapshotCallable() + *
  • deleteSnapshotCallable() *

*
Seek

Seek

Seeks an existing subscription to a point in time or to a given snapshot, whichever is provided in the request. Snapshots are used in [Seek] (https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot. Note that both the subscription and the snapshot must be on the same topic.

*

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

*
    - *
  • seek(SeekRequest request) + *
  • seek(SeekRequest request) *

*

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

*
    - *
  • seekCallable() + *
  • seekCallable() *

*
SetIamPolicy

SetIamPolicy

Sets the access control policy on the specified resource. Replacesany existing policy. *

Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`errors.

*

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

*
    - *
  • setIamPolicy(SetIamPolicyRequest request) + *
  • setIamPolicy(SetIamPolicyRequest request) *

*

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

*
    - *
  • setIamPolicyCallable() + *
  • setIamPolicyCallable() *

*
GetIamPolicy

GetIamPolicy

Gets the access control policy for a resource. Returns an empty policyif the resource exists and does not have a policy set.

*

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

*
    - *
  • getIamPolicy(GetIamPolicyRequest request) + *
  • getIamPolicy(GetIamPolicyRequest request) *

*

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

*
    - *
  • getIamPolicyCallable() + *
  • getIamPolicyCallable() *

*
TestIamPermissions

TestIamPermissions

Returns permissions that a caller has on the specified resource. If theresource does not exist, this will return an empty set ofpermissions, not a `NOT_FOUND` error. *

Note: This operation is designed to be used for buildingpermission-aware UIs and command-line tools, not for authorizationchecking. This operation may "fail open" without warning.

*

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

*
    - *
  • testIamPermissions(TestIamPermissionsRequest request) + *
  • testIamPermissions(TestIamPermissionsRequest request) *

*

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

*
    - *
  • testIamPermissionsCallable() + *
  • testIamPermissionsCallable() *

*
- * + * * * * * * * - * + * * * * * - * - * + * + * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * @@ -420,7 +420,7 @@ public PublisherStub getStub() { * } * } * - * @param name Required. The name of the topic. It must have the format + * @param name Required. Identifier. The name of the topic. It must have the format * `"projects/{project}/topics/{topic}"`. `{topic}` must start with a letter, and contain only * letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), * tildes (`~`), plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters in @@ -451,7 +451,7 @@ public final Topic createTopic(TopicName name) { * } * } * - * @param name Required. The name of the topic. It must have the format + * @param name Required. Identifier. The name of the topic. It must have the format * `"projects/{project}/topics/{topic}"`. `{topic}` must start with a letter, and contain only * letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), * tildes (`~`), plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters in @@ -511,10 +511,15 @@ public final Topic createTopic(ProjectTopicName name) { * .setName(TopicName.ofProjectTopicName("[PROJECT]", "[TOPIC]").toString()) * .putAllLabels(new HashMap()) * .setMessageStoragePolicy(MessageStoragePolicy.newBuilder().build()) - * .setKmsKeyName("kmsKeyName412586233") + * .setKmsKeyName( + * CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]") + * .toString()) * .setSchemaSettings(SchemaSettings.newBuilder().build()) * .setSatisfiesPzs(true) * .setMessageRetentionDuration(Duration.newBuilder().build()) + * .setIngestionDataSourceSettings(IngestionDataSourceSettings.newBuilder().build()) + * .addAllMessageTransforms(new ArrayList()) + * .putAllTags(new HashMap()) * .build(); * Topic response = topicAdminClient.createTopic(request); * } @@ -546,10 +551,15 @@ public final Topic createTopic(Topic request) { * .setName(TopicName.ofProjectTopicName("[PROJECT]", "[TOPIC]").toString()) * .putAllLabels(new HashMap()) * .setMessageStoragePolicy(MessageStoragePolicy.newBuilder().build()) - * .setKmsKeyName("kmsKeyName412586233") + * .setKmsKeyName( + * CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]") + * .toString()) * .setSchemaSettings(SchemaSettings.newBuilder().build()) * .setSatisfiesPzs(true) * .setMessageRetentionDuration(Duration.newBuilder().build()) + * .setIngestionDataSourceSettings(IngestionDataSourceSettings.newBuilder().build()) + * .addAllMessageTransforms(new ArrayList()) + * .putAllTags(new HashMap()) * .build(); * ApiFuture future = topicAdminClient.createTopicCallable().futureCall(request); * // Do something. @@ -563,7 +573,8 @@ public final UnaryCallable createTopicCallable() { // AUTO-GENERATED DOCUMENTATION AND METHOD. /** - * Updates an existing topic. Note that certain properties of a topic are not modifiable. + * Updates an existing topic by updating the fields specified in the update mask. Note that + * certain properties of a topic are not modifiable. * *

Sample code: * @@ -595,7 +606,8 @@ public final Topic updateTopic(Topic topic, FieldMask updateMask) { // AUTO-GENERATED DOCUMENTATION AND METHOD. /** - * Updates an existing topic. Note that certain properties of a topic are not modifiable. + * Updates an existing topic by updating the fields specified in the update mask. Note that + * certain properties of a topic are not modifiable. * *

Sample code: * @@ -624,7 +636,8 @@ public final Topic updateTopic(UpdateTopicRequest request) { // AUTO-GENERATED DOCUMENTATION AND METHOD. /** - * Updates an existing topic. Note that certain properties of a topic are not modifiable. + * Updates an existing topic by updating the fields specified in the update mask. Note that + * certain properties of a topic are not modifiable. * *

Sample code: * @@ -669,8 +682,8 @@ public final UnaryCallable updateTopicCallable() { * } * } * - * @param topic Required. The messages in the request will be published on this topic. Format is - * `projects/{project}/topics/{topic}`. + * @param topic Required. Identifier. The messages in the request will be published on this topic. + * Format is `projects/{project}/topics/{topic}`. * @param messages Required. The messages to publish. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ @@ -702,8 +715,8 @@ public final PublishResponse publish(TopicName topic, List messag * } * } * - * @param topic Required. The messages in the request will be published on this topic. Format is - * `projects/{project}/topics/{topic}`. + * @param topic Required. Identifier. The messages in the request will be published on this topic. + * Format is `projects/{project}/topics/{topic}`. * @param messages Required. The messages to publish. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ @@ -788,7 +801,7 @@ public final UnaryCallable publishCallable() { * } * } * - * @param topic Required. The name of the topic to get. Format is + * @param topic Required. Identifier. The name of the topic to get. Format is * `projects/{project}/topics/{topic}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ @@ -816,7 +829,7 @@ public final Topic getTopic(TopicName topic) { * } * } * - * @param topic Required. The name of the topic to get. Format is + * @param topic Required. Identifier. The name of the topic to get. Format is * `projects/{project}/topics/{topic}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ @@ -925,7 +938,7 @@ public final UnaryCallable getTopicCallable() { * } * } * - * @param project Required. The name of the project in which to list topics. Format is + * @param project Required. Identifier. The name of the project in which to list topics. Format is * `projects/{project-id}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ @@ -957,7 +970,7 @@ public final ListTopicsPagedResponse listTopics(ProjectName project) { * } * } * - * @param project Required. The name of the project in which to list topics. Format is + * @param project Required. Identifier. The name of the project in which to list topics. Format is * `projects/{project-id}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ @@ -1468,7 +1481,7 @@ public final ListTopicSnapshotsPagedResponse listTopicSnapshots( * } * } * - * @param topic Required. Name of the topic to delete. Format is + * @param topic Required. Identifier. Name of the topic to delete. Format is * `projects/{project}/topics/{topic}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ @@ -1499,7 +1512,7 @@ public final void deleteTopic(TopicName topic) { * } * } * - * @param topic Required. Name of the topic to delete. Format is + * @param topic Required. Identifier. Name of the topic to delete. Format is * `projects/{project}/topics/{topic}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/TopicAdminSettings.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/TopicAdminSettings.java index 9dd62bda3..927b61b2c 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/TopicAdminSettings.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/TopicAdminSettings.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -73,7 +73,9 @@ *

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 total timeout of createTopic to 30 seconds: + *

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

{@code
  * // This snippet has been automatically generated and should be regarded as a code template only.
@@ -89,10 +91,21 @@
  *             .createTopicSettings()
  *             .getRetrySettings()
  *             .toBuilder()
- *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .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());
  * TopicAdminSettings topicAdminSettings = topicAdminSettingsBuilder.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 TopicAdminSettings extends ClientSettings { @@ -206,7 +219,6 @@ public static TransportChannelProvider defaultTransportChannelProvider() { return PublisherStubSettings.defaultTransportChannelProvider(); } - @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { return PublisherStubSettings.defaultApiClientHeaderProviderBuilder(); } @@ -217,7 +229,6 @@ public static Builder newBuilder() { } /** Returns a new REST builder for this class. */ - @BetaApi public static Builder newHttpJsonBuilder() { return Builder.createHttpJsonDefault(); } @@ -259,7 +270,6 @@ private static Builder createDefault() { return new Builder(PublisherStubSettings.newBuilder()); } - @BetaApi private static Builder createHttpJsonDefault() { return new Builder(PublisherStubSettings.newHttpJsonBuilder()); } diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Waiter.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Waiter.java index e22125fee..7221d5144 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Waiter.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Waiter.java @@ -16,6 +16,7 @@ package com.google.cloud.pubsub.v1; +import com.google.api.core.ApiClock; import com.google.api.core.InternalApi; /** @@ -54,6 +55,32 @@ public synchronized void waitComplete() { } } + public synchronized boolean tryWait(long timeoutMilliseconds, ApiClock clock) { + long startTime = clock.millisTime(); + long remainingMilliseconds = timeoutMilliseconds; + boolean interrupted = false; + boolean completedWait = true; + try { + while (pendingCount > 0) { + if (remainingMilliseconds <= 0) { + completedWait = false; + break; + } + try { + wait(remainingMilliseconds); + } catch (InterruptedException e) { + interrupted = true; + } + remainingMilliseconds = timeoutMilliseconds - (clock.millisTime() - startTime); + } + } finally { + if (interrupted) { + Thread.currentThread().interrupt(); + } + } + return completedWait; + } + @InternalApi public int pendingCount() { return pendingCount; diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/package-info.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/package-info.java index 5e73e3a64..28c492a15 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/package-info.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcPublisherCallableFactory.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcPublisherCallableFactory.java index 60af80164..c6ed49480 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcPublisherCallableFactory.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcPublisherCallableFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcPublisherStub.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcPublisherStub.java index d4c26515d..df360653c 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcPublisherStub.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcPublisherStub.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -68,6 +68,7 @@ public class GrpcPublisherStub extends PublisherStub { .setFullMethodName("google.pubsub.v1.Publisher/CreateTopic") .setRequestMarshaller(ProtoUtils.marshaller(Topic.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Topic.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor updateTopicMethodDescriptor = @@ -76,6 +77,7 @@ public class GrpcPublisherStub extends PublisherStub { .setFullMethodName("google.pubsub.v1.Publisher/UpdateTopic") .setRequestMarshaller(ProtoUtils.marshaller(UpdateTopicRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Topic.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor publishMethodDescriptor = @@ -84,6 +86,7 @@ public class GrpcPublisherStub extends PublisherStub { .setFullMethodName("google.pubsub.v1.Publisher/Publish") .setRequestMarshaller(ProtoUtils.marshaller(PublishRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(PublishResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor getTopicMethodDescriptor = @@ -92,6 +95,7 @@ public class GrpcPublisherStub extends PublisherStub { .setFullMethodName("google.pubsub.v1.Publisher/GetTopic") .setRequestMarshaller(ProtoUtils.marshaller(GetTopicRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Topic.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -101,6 +105,7 @@ public class GrpcPublisherStub extends PublisherStub { .setFullMethodName("google.pubsub.v1.Publisher/ListTopics") .setRequestMarshaller(ProtoUtils.marshaller(ListTopicsRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(ListTopicsResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor< @@ -114,6 +119,7 @@ public class GrpcPublisherStub extends PublisherStub { ProtoUtils.marshaller(ListTopicSubscriptionsRequest.getDefaultInstance())) .setResponseMarshaller( ProtoUtils.marshaller(ListTopicSubscriptionsResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -125,6 +131,7 @@ public class GrpcPublisherStub extends PublisherStub { ProtoUtils.marshaller(ListTopicSnapshotsRequest.getDefaultInstance())) .setResponseMarshaller( ProtoUtils.marshaller(ListTopicSnapshotsResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor deleteTopicMethodDescriptor = @@ -133,6 +140,7 @@ public class GrpcPublisherStub extends PublisherStub { .setFullMethodName("google.pubsub.v1.Publisher/DeleteTopic") .setRequestMarshaller(ProtoUtils.marshaller(DeleteTopicRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Empty.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -144,6 +152,7 @@ public class GrpcPublisherStub extends PublisherStub { ProtoUtils.marshaller(DetachSubscriptionRequest.getDefaultInstance())) .setResponseMarshaller( ProtoUtils.marshaller(DetachSubscriptionResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor setIamPolicyMethodDescriptor = @@ -152,6 +161,7 @@ public class GrpcPublisherStub extends PublisherStub { .setFullMethodName("google.iam.v1.IAMPolicy/SetIamPolicy") .setRequestMarshaller(ProtoUtils.marshaller(SetIamPolicyRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Policy.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor getIamPolicyMethodDescriptor = @@ -160,6 +170,7 @@ public class GrpcPublisherStub extends PublisherStub { .setFullMethodName("google.iam.v1.IAMPolicy/GetIamPolicy") .setRequestMarshaller(ProtoUtils.marshaller(GetIamPolicyRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Policy.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -171,6 +182,7 @@ public class GrpcPublisherStub extends PublisherStub { ProtoUtils.marshaller(TestIamPermissionsRequest.getDefaultInstance())) .setResponseMarshaller( ProtoUtils.marshaller(TestIamPermissionsResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private final UnaryCallable createTopicCallable; diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcSchemaServiceCallableFactory.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcSchemaServiceCallableFactory.java index b7ad8cab4..c1cce2d8e 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcSchemaServiceCallableFactory.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcSchemaServiceCallableFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcSchemaServiceStub.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcSchemaServiceStub.java index cbaf6a608..592a17bf5 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcSchemaServiceStub.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcSchemaServiceStub.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -68,6 +68,7 @@ public class GrpcSchemaServiceStub extends SchemaServiceStub { .setFullMethodName("google.pubsub.v1.SchemaService/CreateSchema") .setRequestMarshaller(ProtoUtils.marshaller(CreateSchemaRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Schema.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor getSchemaMethodDescriptor = @@ -76,6 +77,7 @@ public class GrpcSchemaServiceStub extends SchemaServiceStub { .setFullMethodName("google.pubsub.v1.SchemaService/GetSchema") .setRequestMarshaller(ProtoUtils.marshaller(GetSchemaRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Schema.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -86,6 +88,7 @@ public class GrpcSchemaServiceStub extends SchemaServiceStub { .setRequestMarshaller(ProtoUtils.marshaller(ListSchemasRequest.getDefaultInstance())) .setResponseMarshaller( ProtoUtils.marshaller(ListSchemasResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -97,6 +100,7 @@ public class GrpcSchemaServiceStub extends SchemaServiceStub { ProtoUtils.marshaller(ListSchemaRevisionsRequest.getDefaultInstance())) .setResponseMarshaller( ProtoUtils.marshaller(ListSchemaRevisionsResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor commitSchemaMethodDescriptor = @@ -105,6 +109,7 @@ public class GrpcSchemaServiceStub extends SchemaServiceStub { .setFullMethodName("google.pubsub.v1.SchemaService/CommitSchema") .setRequestMarshaller(ProtoUtils.marshaller(CommitSchemaRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Schema.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -115,6 +120,7 @@ public class GrpcSchemaServiceStub extends SchemaServiceStub { .setRequestMarshaller( ProtoUtils.marshaller(RollbackSchemaRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Schema.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -125,6 +131,7 @@ public class GrpcSchemaServiceStub extends SchemaServiceStub { .setRequestMarshaller( ProtoUtils.marshaller(DeleteSchemaRevisionRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Schema.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor deleteSchemaMethodDescriptor = @@ -133,6 +140,7 @@ public class GrpcSchemaServiceStub extends SchemaServiceStub { .setFullMethodName("google.pubsub.v1.SchemaService/DeleteSchema") .setRequestMarshaller(ProtoUtils.marshaller(DeleteSchemaRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Empty.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -144,6 +152,7 @@ public class GrpcSchemaServiceStub extends SchemaServiceStub { ProtoUtils.marshaller(ValidateSchemaRequest.getDefaultInstance())) .setResponseMarshaller( ProtoUtils.marshaller(ValidateSchemaResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -155,6 +164,7 @@ public class GrpcSchemaServiceStub extends SchemaServiceStub { ProtoUtils.marshaller(ValidateMessageRequest.getDefaultInstance())) .setResponseMarshaller( ProtoUtils.marshaller(ValidateMessageResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor setIamPolicyMethodDescriptor = @@ -163,6 +173,7 @@ public class GrpcSchemaServiceStub extends SchemaServiceStub { .setFullMethodName("google.iam.v1.IAMPolicy/SetIamPolicy") .setRequestMarshaller(ProtoUtils.marshaller(SetIamPolicyRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Policy.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor getIamPolicyMethodDescriptor = @@ -171,6 +182,7 @@ public class GrpcSchemaServiceStub extends SchemaServiceStub { .setFullMethodName("google.iam.v1.IAMPolicy/GetIamPolicy") .setRequestMarshaller(ProtoUtils.marshaller(GetIamPolicyRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Policy.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -182,6 +194,7 @@ public class GrpcSchemaServiceStub extends SchemaServiceStub { ProtoUtils.marshaller(TestIamPermissionsRequest.getDefaultInstance())) .setResponseMarshaller( ProtoUtils.marshaller(TestIamPermissionsResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private final UnaryCallable createSchemaCallable; diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcSubscriberCallableFactory.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcSubscriberCallableFactory.java index 27f99f671..fe083befe 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcSubscriberCallableFactory.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcSubscriberCallableFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcSubscriberStub.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcSubscriberStub.java index b3651167c..8c08d2ad3 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcSubscriberStub.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/GrpcSubscriberStub.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -77,6 +77,7 @@ public class GrpcSubscriberStub extends SubscriberStub { .setFullMethodName("google.pubsub.v1.Subscriber/CreateSubscription") .setRequestMarshaller(ProtoUtils.marshaller(Subscription.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Subscription.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -87,6 +88,7 @@ public class GrpcSubscriberStub extends SubscriberStub { .setRequestMarshaller( ProtoUtils.marshaller(GetSubscriptionRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Subscription.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -97,6 +99,7 @@ public class GrpcSubscriberStub extends SubscriberStub { .setRequestMarshaller( ProtoUtils.marshaller(UpdateSubscriptionRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Subscription.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -108,6 +111,7 @@ public class GrpcSubscriberStub extends SubscriberStub { ProtoUtils.marshaller(ListSubscriptionsRequest.getDefaultInstance())) .setResponseMarshaller( ProtoUtils.marshaller(ListSubscriptionsResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -118,6 +122,7 @@ public class GrpcSubscriberStub extends SubscriberStub { .setRequestMarshaller( ProtoUtils.marshaller(DeleteSubscriptionRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Empty.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -128,6 +133,7 @@ public class GrpcSubscriberStub extends SubscriberStub { .setRequestMarshaller( ProtoUtils.marshaller(ModifyAckDeadlineRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Empty.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor acknowledgeMethodDescriptor = @@ -136,6 +142,7 @@ public class GrpcSubscriberStub extends SubscriberStub { .setFullMethodName("google.pubsub.v1.Subscriber/Acknowledge") .setRequestMarshaller(ProtoUtils.marshaller(AcknowledgeRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Empty.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor pullMethodDescriptor = @@ -144,6 +151,7 @@ public class GrpcSubscriberStub extends SubscriberStub { .setFullMethodName("google.pubsub.v1.Subscriber/Pull") .setRequestMarshaller(ProtoUtils.marshaller(PullRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(PullResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -155,6 +163,7 @@ public class GrpcSubscriberStub extends SubscriberStub { ProtoUtils.marshaller(StreamingPullRequest.getDefaultInstance())) .setResponseMarshaller( ProtoUtils.marshaller(StreamingPullResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -165,6 +174,7 @@ public class GrpcSubscriberStub extends SubscriberStub { .setRequestMarshaller( ProtoUtils.marshaller(ModifyPushConfigRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Empty.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor getSnapshotMethodDescriptor = @@ -173,6 +183,7 @@ public class GrpcSubscriberStub extends SubscriberStub { .setFullMethodName("google.pubsub.v1.Subscriber/GetSnapshot") .setRequestMarshaller(ProtoUtils.marshaller(GetSnapshotRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Snapshot.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -184,6 +195,7 @@ public class GrpcSubscriberStub extends SubscriberStub { ProtoUtils.marshaller(ListSnapshotsRequest.getDefaultInstance())) .setResponseMarshaller( ProtoUtils.marshaller(ListSnapshotsResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -194,6 +206,7 @@ public class GrpcSubscriberStub extends SubscriberStub { .setRequestMarshaller( ProtoUtils.marshaller(CreateSnapshotRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Snapshot.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -204,6 +217,7 @@ public class GrpcSubscriberStub extends SubscriberStub { .setRequestMarshaller( ProtoUtils.marshaller(UpdateSnapshotRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Snapshot.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -214,6 +228,7 @@ public class GrpcSubscriberStub extends SubscriberStub { .setRequestMarshaller( ProtoUtils.marshaller(DeleteSnapshotRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Empty.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor seekMethodDescriptor = @@ -222,6 +237,7 @@ public class GrpcSubscriberStub extends SubscriberStub { .setFullMethodName("google.pubsub.v1.Subscriber/Seek") .setRequestMarshaller(ProtoUtils.marshaller(SeekRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(SeekResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor setIamPolicyMethodDescriptor = @@ -230,6 +246,7 @@ public class GrpcSubscriberStub extends SubscriberStub { .setFullMethodName("google.iam.v1.IAMPolicy/SetIamPolicy") .setRequestMarshaller(ProtoUtils.marshaller(SetIamPolicyRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Policy.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor getIamPolicyMethodDescriptor = @@ -238,6 +255,7 @@ public class GrpcSubscriberStub extends SubscriberStub { .setFullMethodName("google.iam.v1.IAMPolicy/GetIamPolicy") .setRequestMarshaller(ProtoUtils.marshaller(GetIamPolicyRequest.getDefaultInstance())) .setResponseMarshaller(ProtoUtils.marshaller(Policy.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private static final MethodDescriptor @@ -249,6 +267,7 @@ public class GrpcSubscriberStub extends SubscriberStub { ProtoUtils.marshaller(TestIamPermissionsRequest.getDefaultInstance())) .setResponseMarshaller( ProtoUtils.marshaller(TestIamPermissionsResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) .build(); private final UnaryCallable createSubscriptionCallable; diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonPublisherCallableFactory.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonPublisherCallableFactory.java index cd5b6e6f2..8a3a1c577 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonPublisherCallableFactory.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonPublisherCallableFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,7 +16,6 @@ package com.google.cloud.pubsub.v1.stub; -import com.google.api.core.BetaApi; import com.google.api.gax.httpjson.HttpJsonCallSettings; import com.google.api.gax.httpjson.HttpJsonCallableFactory; import com.google.api.gax.httpjson.HttpJsonOperationSnapshotCallable; @@ -41,7 +40,6 @@ *

This class is for advanced usage. */ @Generated("by gapic-generator-java") -@BetaApi public class HttpJsonPublisherCallableFactory implements HttpJsonStubCallableFactory { @@ -73,8 +71,6 @@ public UnaryCallable createBatchingCa httpJsonCallSettings, callSettings, clientContext); } - @BetaApi( - "The surface for long-running operations is not stable yet and may change in the future.") @Override public OperationCallable createOperationCallable( diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonPublisherStub.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonPublisherStub.java index 5ae0dfc9e..fb668a667 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonPublisherStub.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonPublisherStub.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -20,7 +20,6 @@ import static com.google.cloud.pubsub.v1.TopicAdminClient.ListTopicSubscriptionsPagedResponse; import static com.google.cloud.pubsub.v1.TopicAdminClient.ListTopicsPagedResponse; -import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.api.gax.core.BackgroundResource; import com.google.api.gax.core.BackgroundResourceAggregation; @@ -69,7 +68,6 @@ *

This class is for advanced usage and reflects the underlying API directly. */ @Generated("by gapic-generator-java") -@BetaApi public class HttpJsonPublisherStub extends PublisherStub { private static final TypeRegistry typeRegistry = TypeRegistry.newBuilder().build(); diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonSchemaServiceCallableFactory.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonSchemaServiceCallableFactory.java index c1db412c1..14136bdc5 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonSchemaServiceCallableFactory.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonSchemaServiceCallableFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,7 +16,6 @@ package com.google.cloud.pubsub.v1.stub; -import com.google.api.core.BetaApi; import com.google.api.gax.httpjson.HttpJsonCallSettings; import com.google.api.gax.httpjson.HttpJsonCallableFactory; import com.google.api.gax.httpjson.HttpJsonOperationSnapshotCallable; @@ -41,7 +40,6 @@ *

This class is for advanced usage. */ @Generated("by gapic-generator-java") -@BetaApi public class HttpJsonSchemaServiceCallableFactory implements HttpJsonStubCallableFactory { @@ -73,8 +71,6 @@ public UnaryCallable createBatchingCa httpJsonCallSettings, callSettings, clientContext); } - @BetaApi( - "The surface for long-running operations is not stable yet and may change in the future.") @Override public OperationCallable createOperationCallable( diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonSchemaServiceStub.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonSchemaServiceStub.java index 186405096..8816b63ad 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonSchemaServiceStub.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonSchemaServiceStub.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -19,7 +19,6 @@ import static com.google.cloud.pubsub.v1.SchemaServiceClient.ListSchemaRevisionsPagedResponse; import static com.google.cloud.pubsub.v1.SchemaServiceClient.ListSchemasPagedResponse; -import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.api.gax.core.BackgroundResource; import com.google.api.gax.core.BackgroundResourceAggregation; @@ -69,7 +68,6 @@ *

This class is for advanced usage and reflects the underlying API directly. */ @Generated("by gapic-generator-java") -@BetaApi public class HttpJsonSchemaServiceStub extends SchemaServiceStub { private static final TypeRegistry typeRegistry = TypeRegistry.newBuilder().build(); diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonSubscriberCallableFactory.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonSubscriberCallableFactory.java index 7acbff90f..336a8bdef 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonSubscriberCallableFactory.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonSubscriberCallableFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,7 +16,6 @@ package com.google.cloud.pubsub.v1.stub; -import com.google.api.core.BetaApi; import com.google.api.gax.httpjson.HttpJsonCallSettings; import com.google.api.gax.httpjson.HttpJsonCallableFactory; import com.google.api.gax.httpjson.HttpJsonOperationSnapshotCallable; @@ -41,7 +40,6 @@ *

This class is for advanced usage. */ @Generated("by gapic-generator-java") -@BetaApi public class HttpJsonSubscriberCallableFactory implements HttpJsonStubCallableFactory { @@ -73,8 +71,6 @@ public UnaryCallable createBatchingCa httpJsonCallSettings, callSettings, clientContext); } - @BetaApi( - "The surface for long-running operations is not stable yet and may change in the future.") @Override public OperationCallable createOperationCallable( diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonSubscriberStub.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonSubscriberStub.java index 010a08bac..3b6a28ee6 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonSubscriberStub.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/HttpJsonSubscriberStub.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -19,7 +19,6 @@ import static com.google.cloud.pubsub.v1.SubscriptionAdminClient.ListSnapshotsPagedResponse; import static com.google.cloud.pubsub.v1.SubscriptionAdminClient.ListSubscriptionsPagedResponse; -import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.api.gax.core.BackgroundResource; import com.google.api.gax.core.BackgroundResourceAggregation; @@ -77,7 +76,6 @@ *

This class is for advanced usage and reflects the underlying API directly. */ @Generated("by gapic-generator-java") -@BetaApi public class HttpJsonSubscriberStub extends SubscriberStub { private static final TypeRegistry typeRegistry = TypeRegistry.newBuilder().build(); @@ -1225,7 +1223,8 @@ public UnaryCallable getIamPolicyCallable() { public BidiStreamingCallable streamingPullCallable() { throw new UnsupportedOperationException( - "Not implemented: streamingPullCallable(). REST transport is not implemented for this method yet."); + "Not implemented: streamingPullCallable(). REST transport is not implemented for this" + + " method yet."); } @Override diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/PublisherStub.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/PublisherStub.java index 5b8ed6112..1d8945a23 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/PublisherStub.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/PublisherStub.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/PublisherStubSettings.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/PublisherStubSettings.java index f3c495688..8f039bbe9 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/PublisherStubSettings.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/PublisherStubSettings.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -23,6 +23,7 @@ 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.batching.BatchingSettings; import com.google.api.gax.batching.FlowControlSettings; import com.google.api.gax.batching.FlowController; @@ -78,11 +79,11 @@ import com.google.pubsub.v1.Topic; import com.google.pubsub.v1.UpdateTopicRequest; import java.io.IOException; +import java.time.Duration; import java.util.ArrayList; import java.util.Collection; import java.util.List; import javax.annotation.Generated; -import org.threeten.bp.Duration; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** @@ -99,7 +100,9 @@ *

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 total timeout of createTopic to 30 seconds: + *

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

{@code
  * // This snippet has been automatically generated and should be regarded as a code template only.
@@ -115,10 +118,21 @@
  *             .createTopicSettings()
  *             .getRetrySettings()
  *             .toBuilder()
- *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .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());
  * PublisherStubSettings topicAdminSettings = topicAdminSettingsBuilder.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 PublisherStubSettings extends StubSettings { @@ -181,9 +195,7 @@ public String extractNextToken(ListTopicsResponse payload) { @Override public Iterable extractResources(ListTopicsResponse payload) { - return payload.getTopicsList() == null - ? ImmutableList.of() - : payload.getTopicsList(); + return payload.getTopicsList(); } }; @@ -223,9 +235,7 @@ public String extractNextToken(ListTopicSubscriptionsResponse payload) { @Override public Iterable extractResources(ListTopicSubscriptionsResponse payload) { - return payload.getSubscriptionsList() == null - ? ImmutableList.of() - : payload.getSubscriptionsList(); + return payload.getSubscriptionsList(); } }; @@ -262,9 +272,7 @@ public String extractNextToken(ListTopicSnapshotsResponse payload) { @Override public Iterable extractResources(ListTopicSnapshotsResponse payload) { - return payload.getSnapshotsList() == null - ? ImmutableList.of() - : payload.getSnapshotsList(); + return payload.getSnapshotsList(); } }; @@ -492,6 +500,7 @@ public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuild } /** Returns the default service endpoint. */ + @ObsoleteApi("Use getEndpoint() instead") public static String getDefaultEndpoint() { return "pubsub.googleapis.com:443"; } @@ -530,7 +539,6 @@ public static TransportChannelProvider defaultTransportChannelProvider() { return defaultGrpcTransportProviderBuilder().build(); } - @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() { return ApiClientHeaderProvider.newBuilder() .setGeneratedLibToken("gapic", GaxProperties.getLibraryVersion(PublisherStubSettings.class)) @@ -538,7 +546,6 @@ public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProvider GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion()); } - @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() { return ApiClientHeaderProvider.newBuilder() .setGeneratedLibToken("gapic", GaxProperties.getLibraryVersion(PublisherStubSettings.class)) @@ -648,35 +655,35 @@ public static class Builder extends StubSettings.BuilderThe 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 total timeout of createSchema to 30 seconds: + *

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

{@code
  * // This snippet has been automatically generated and should be regarded as a code template only.
@@ -106,10 +109,21 @@
  *             .createSchemaSettings()
  *             .getRetrySettings()
  *             .toBuilder()
- *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .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());
  * SchemaServiceStubSettings schemaServiceSettings = schemaServiceSettingsBuilder.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 SchemaServiceStubSettings extends StubSettings { @@ -170,9 +184,7 @@ public String extractNextToken(ListSchemasResponse payload) { @Override public Iterable extractResources(ListSchemasResponse payload) { - return payload.getSchemasList() == null - ? ImmutableList.of() - : payload.getSchemasList(); + return payload.getSchemasList(); } }; @@ -210,9 +222,7 @@ public String extractNextToken(ListSchemaRevisionsResponse payload) { @Override public Iterable extractResources(ListSchemaRevisionsResponse payload) { - return payload.getSchemasList() == null - ? ImmutableList.of() - : payload.getSchemasList(); + return payload.getSchemasList(); } }; @@ -352,6 +362,7 @@ public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuild } /** Returns the default service endpoint. */ + @ObsoleteApi("Use getEndpoint() instead") public static String getDefaultEndpoint() { return "pubsub.googleapis.com:443"; } @@ -390,7 +401,6 @@ public static TransportChannelProvider defaultTransportChannelProvider() { return defaultGrpcTransportProviderBuilder().build(); } - @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() { return ApiClientHeaderProvider.newBuilder() .setGeneratedLibToken( @@ -399,7 +409,6 @@ public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProvider GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion()); } - @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() { return ApiClientHeaderProvider.newBuilder() .setGeneratedLibToken( @@ -497,13 +506,13 @@ public static class Builder extends StubSettings.BuilderThe 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 total timeout of createSubscription to 30 seconds: + *

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

{@code
  * // This snippet has been automatically generated and should be regarded as a code template only.
@@ -114,10 +117,21 @@
  *             .createSubscriptionSettings()
  *             .getRetrySettings()
  *             .toBuilder()
- *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .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());
  * SubscriberStubSettings subscriptionAdminSettings = subscriptionAdminSettingsBuilder.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 SubscriberStubSettings extends StubSettings { @@ -189,9 +203,7 @@ public String extractNextToken(ListSubscriptionsResponse payload) { @Override public Iterable extractResources(ListSubscriptionsResponse payload) { - return payload.getSubscriptionsList() == null - ? ImmutableList.of() - : payload.getSubscriptionsList(); + return payload.getSubscriptionsList(); } }; @@ -225,9 +237,7 @@ public String extractNextToken(ListSnapshotsResponse payload) { @Override public Iterable extractResources(ListSnapshotsResponse payload) { - return payload.getSnapshotsList() == null - ? ImmutableList.of() - : payload.getSnapshotsList(); + return payload.getSnapshotsList(); } }; @@ -397,6 +407,7 @@ public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuild } /** Returns the default service endpoint. */ + @ObsoleteApi("Use getEndpoint() instead") public static String getDefaultEndpoint() { return "pubsub.googleapis.com:443"; } @@ -434,7 +445,6 @@ public static TransportChannelProvider defaultTransportChannelProvider() { return defaultGrpcTransportProviderBuilder().build(); } - @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() { return ApiClientHeaderProvider.newBuilder() .setGeneratedLibToken( @@ -443,7 +453,6 @@ public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProvider GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion()); } - @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() { return ApiClientHeaderProvider.newBuilder() .setGeneratedLibToken( @@ -575,46 +584,46 @@ public static class Builder extends StubSettings.Builder schedule(Runnable command, long delay, TimeUnit unit) { return schedulePendingCallable( new PendingCallable<>( - Duration.ofMillis(unit.toMillis(delay)), command, PendingCallableType.NORMAL)); + Duration.ofMillis(unit.toMillis(delay)), command, null, PendingCallableType.NORMAL)); } @Override public ScheduledFuture schedule(Callable callable, long delay, TimeUnit unit) { return schedulePendingCallable( new PendingCallable<>( - Duration.ofMillis(unit.toMillis(delay)), callable, PendingCallableType.NORMAL)); + Duration.ofMillis(unit.toMillis(delay)), callable, null, PendingCallableType.NORMAL)); } @Override @@ -72,6 +72,7 @@ public ScheduledFuture scheduleAtFixedRate( new PendingCallable<>( Duration.ofMillis(unit.toMillis(initialDelay)), command, + Duration.ofMillis(unit.toMillis(period)), PendingCallableType.FIXED_RATE)); } @@ -82,6 +83,7 @@ public ScheduledFuture scheduleWithFixedDelay( new PendingCallable<>( Duration.ofMillis(unit.toMillis(initialDelay)), command, + Duration.ofMillis(unit.toMillis(delay)), PendingCallableType.FIXED_DELAY)); } @@ -212,13 +214,15 @@ enum PendingCallableType { class PendingCallable implements Comparable> { Instant creationTime = Instant.ofEpochMilli(clock.millisTime()); Duration delay; + Duration period; Callable pendingCallable; SettableFuture future = SettableFuture.create(); AtomicBoolean cancelled = new AtomicBoolean(false); AtomicBoolean done = new AtomicBoolean(false); PendingCallableType type; - PendingCallable(Duration delay, final Runnable runnable, PendingCallableType type) { + PendingCallable( + Duration delay, final Runnable runnable, Duration period, PendingCallableType type) { pendingCallable = new Callable() { @Override @@ -229,12 +233,15 @@ public T call() { }; this.type = type; this.delay = delay; + this.period = period; } - PendingCallable(Duration delay, Callable callable, PendingCallableType type) { + PendingCallable( + Duration delay, Callable callable, Duration period, PendingCallableType type) { pendingCallable = callable; this.type = type; this.delay = delay; + this.period = period; } private Instant getScheduledTime() { @@ -305,10 +312,12 @@ T call() { break; case FIXED_DELAY: this.creationTime = Instant.ofEpochMilli(clock.millisTime()); + this.delay = period; schedulePendingCallable(this); break; case FIXED_RATE: this.creationTime = this.creationTime.plus(delay); + this.delay = period; schedulePendingCallable(this); break; default: diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/FakeSubscriberServiceImpl.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/FakeSubscriberServiceImpl.java index 173248041..3b2bd2f5d 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/FakeSubscriberServiceImpl.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/FakeSubscriberServiceImpl.java @@ -24,6 +24,7 @@ import com.google.pubsub.v1.PublisherGrpc.PublisherImplBase; import com.google.pubsub.v1.PullRequest; import com.google.pubsub.v1.PullResponse; +import com.google.pubsub.v1.ReceivedMessage; import com.google.pubsub.v1.StreamingPullRequest; import com.google.pubsub.v1.StreamingPullResponse; import com.google.pubsub.v1.SubscriberGrpc.SubscriberImplBase; @@ -247,8 +248,26 @@ public void modifyAckDeadline( responseObserver.onCompleted(); } + public void sendMessages(int numMessages) throws InterruptedException { + waitForRegisteredSubscription(); + synchronized (openedStreams) { + waitForOpenedStreams(1); + Stream stream = openedStreams.get(getAndAdvanceCurrentStream()); + StreamingPullResponse.Builder response = StreamingPullResponse.newBuilder(); + for (int i = 0; i < numMessages; i++) { + response.addReceivedMessages( + ReceivedMessage.newBuilder() + .setAckId("ackid" + i) + .setMessage( + com.google.pubsub.v1.PubsubMessage.newBuilder().setMessageId("id" + i).build()) + .build()); + } + stream.responseObserver.onNext(response.build()); + } + } + public void sendError(Throwable error) throws InterruptedException { - waitForRegistedSubscription(); + waitForRegisteredSubscription(); synchronized (openedStreams) { waitForOpenedStreams(1); Stream stream = openedStreams.get(getAndAdvanceCurrentStream()); @@ -257,7 +276,7 @@ public void sendError(Throwable error) throws InterruptedException { } } - public String waitForRegistedSubscription() throws InterruptedException { + public String waitForRegisteredSubscription() throws InterruptedException { synchronized (subscriptionInitialized) { while (!subscriptionInitialized.get()) { subscriptionInitialized.wait(); diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MessageDispatcherTest.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MessageDispatcherTest.java index c608ee8d5..1285fadd5 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MessageDispatcherTest.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MessageDispatcherTest.java @@ -18,6 +18,9 @@ import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.*; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.argThat; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.*; import com.google.api.gax.batching.FlowController; @@ -26,15 +29,17 @@ import com.google.protobuf.ByteString; import com.google.pubsub.v1.PubsubMessage; import com.google.pubsub.v1.ReceivedMessage; +import java.time.Duration; import java.util.*; import java.util.concurrent.*; import org.junit.Before; import org.junit.Test; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; -import org.threeten.bp.Duration; public class MessageDispatcherTest { + private static final String MOCK_SUBSCRIPTION_NAME = + "projects/MOCK-PROJECT/subscriptions/MOCK-SUBSCRIPTION"; private static final ByteString MESSAGE_DATA = ByteString.copyFromUtf8("message-data"); private static final int DELIVERY_INFO_COUNT = 3; private static final String ACK_ID = "ACK-ID"; @@ -462,6 +467,7 @@ public void testAckExtensionDefaultsExactlyOnceDeliveryDisabledThenEnabled() { .setMinDurationPerAckExtensionDefaultUsed(true) .setMaxDurationPerAckExtension(Subscriber.DEFAULT_MAX_ACK_DEADLINE_EXTENSION) .setMaxDurationPerAckExtensionDefaultUsed(true) + .setSubscriptionName(MOCK_SUBSCRIPTION_NAME) .build(); // ExactlyOnceDeliveryEnabled is turned off by default @@ -494,6 +500,7 @@ public void testAckExtensionDefaultsExactlyOnceDeliveryEnabledThenDisabled() { .setMinDurationPerAckExtensionDefaultUsed(true) .setMaxDurationPerAckExtension(Subscriber.DEFAULT_MIN_ACK_DEADLINE_EXTENSION) .setMaxDurationPerAckExtensionDefaultUsed(true) + .setSubscriptionName(MOCK_SUBSCRIPTION_NAME) .build(); // This would normally be set from the streaming pull response in the @@ -605,6 +612,7 @@ public void testAckExtensionCustomMinExactlyOnceDeliveryDisabledThenEnabled() { .setMinDurationPerAckExtensionDefaultUsed(false) .setMaxDurationPerAckExtension(Subscriber.DEFAULT_MIN_ACK_DEADLINE_EXTENSION) .setMaxDurationPerAckExtensionDefaultUsed(true) + .setSubscriptionName(MOCK_SUBSCRIPTION_NAME) .build(); // ExactlyOnceDeliveryEnabled is turned off by default @@ -634,6 +642,7 @@ public void testAckExtensionCustomMaxExactlyOnceDeliveryDisabledThenEnabled() { .setMinDurationPerAckExtensionDefaultUsed(true) .setMaxDurationPerAckExtension(Duration.ofSeconds(customMaxSeconds)) .setMaxDurationPerAckExtensionDefaultUsed(false) + .setSubscriptionName(MOCK_SUBSCRIPTION_NAME) .build(); // ExactlyOnceDeliveryEnabled is turned off by default @@ -704,11 +713,241 @@ private MessageDispatcher getMessageDispatcherFromBuilder( .setAckLatencyDistribution(mock(Distribution.class)) .setFlowController(mock(FlowController.class)) .setExecutor(executor) + .setSubscriptionName(MOCK_SUBSCRIPTION_NAME) .setSystemExecutor(systemExecutor) .setApiClock(clock) + .setSubscriberShutdownSettings(SubscriberShutdownSettings.newBuilder().build()) .build(); messageDispatcher.setMessageDeadlineSeconds(MIN_ACK_DEADLINE_SECONDS); return messageDispatcher; } + + private MessageDispatcher getMessageDispatcherFromBuilder( + MessageDispatcher.Builder builder, SubscriberShutdownSettings shutdownSettings) { + MessageDispatcher messageDispatcher = + builder + .setAckProcessor(mockAckProcessor) + .setAckExpirationPadding(ACK_EXPIRATION_PADDING_DEFAULT) + .setMaxAckExtensionPeriod(MAX_ACK_EXTENSION_PERIOD) + .setMinDurationPerAckExtension(Subscriber.DEFAULT_MIN_ACK_DEADLINE_EXTENSION) + .setMinDurationPerAckExtensionDefaultUsed(true) + .setMaxDurationPerAckExtension(Subscriber.DEFAULT_MAX_ACK_DEADLINE_EXTENSION) + .setMaxDurationPerAckExtensionDefaultUsed(true) + .setAckLatencyDistribution(mock(Distribution.class)) + .setFlowController(mock(FlowController.class)) + .setExecutor(MoreExecutors.newDirectExecutorService()) + .setSubscriptionName(MOCK_SUBSCRIPTION_NAME) + .setSystemExecutor(systemExecutor) + .setApiClock(clock) + .setSubscriberShutdownSettings(shutdownSettings) + .build(); + + messageDispatcher.setMessageDeadlineSeconds(MIN_ACK_DEADLINE_SECONDS); + return messageDispatcher; + } + + @Test + public void testStop_waitForProcessing_indefinite() throws Exception { + SubscriberShutdownSettings shutdownSettings = + SubscriberShutdownSettings.newBuilder() + .setMode(SubscriberShutdownSettings.ShutdownMode.WAIT_FOR_PROCESSING) + .setTimeout(Duration.ofSeconds(-1)) + .build(); + MessageDispatcher dispatcher = + getMessageDispatcherFromBuilder( + MessageDispatcher.newBuilder(messageReceiver), shutdownSettings); + + dispatcher.processReceivedMessages(Collections.singletonList(TEST_MESSAGE)); + + Thread stopThread = new Thread(dispatcher::stop); + stopThread.start(); + + // Wait for the stop thread to block on the waiter. + Thread.sleep(100); + assertTrue(stopThread.isAlive()); + + // Ack the message, which should allow the stop thread to complete. + consumers.take().ack(); + + List ackRequestDataList = new ArrayList(); + AckRequestData ackRequestData = AckRequestData.newBuilder(TEST_MESSAGE.getAckId()).build(); + ackRequestDataList.add(ackRequestData); + + stopThread.join(); + assertFalse(stopThread.isAlive()); + + verify(mockAckProcessor, times(1)) + .sendAckOperations( + argThat(new CustomArgumentMatchers.AckRequestDataListMatcher(ackRequestDataList))); + } + + @Test + public void testStop_waitForProcessing_withTimeout_success() { + SubscriberShutdownSettings shutdownSettings = + SubscriberShutdownSettings.newBuilder() + .setMode(SubscriberShutdownSettings.ShutdownMode.WAIT_FOR_PROCESSING) + .setTimeout(Duration.ofSeconds(5)) + .build(); + MessageDispatcher dispatcher = + getMessageDispatcherFromBuilder( + MessageDispatcher.newBuilder(messageReceiver), shutdownSettings); + + dispatcher.processReceivedMessages(Collections.singletonList(TEST_MESSAGE)); + + Thread stopThread = new Thread(dispatcher::stop); + stopThread.start(); + + // Ack the message before the timeout expires. + try { + consumers.take().ack(); + } catch (InterruptedException e) { + fail("Interrupted while taking consumer"); + } + + try { + stopThread.join(1000); + } catch (InterruptedException e) { + fail("Interrupted while joining stop thread"); + } + + List ackRequestDataList = new ArrayList(); + AckRequestData ackRequestData = AckRequestData.newBuilder(TEST_MESSAGE.getAckId()).build(); + ackRequestDataList.add(ackRequestData); + + verify(mockAckProcessor, times(1)) + .sendAckOperations( + argThat(new CustomArgumentMatchers.AckRequestDataListMatcher(ackRequestDataList))); + assertFalse(stopThread.isAlive()); + } + + @Test + public void testStop_waitForProcessing_withTimeout_nackWithOneSecondLeft() { + SubscriberShutdownSettings shutdownSettings = + SubscriberShutdownSettings.newBuilder() + .setMode(SubscriberShutdownSettings.ShutdownMode.WAIT_FOR_PROCESSING) + .setTimeout(Duration.ofSeconds(2)) + .build(); + MessageDispatcher dispatcher = + getMessageDispatcherFromBuilder( + MessageDispatcher.newBuilder(messageReceiver), shutdownSettings); + + dispatcher.processReceivedMessages(Collections.singletonList(TEST_MESSAGE)); + Thread stopThread = new Thread(dispatcher::stop); + stopThread.start(); + + // Wait for the stop thread to block on the waiter. + try { + Thread.sleep(100); + } catch (InterruptedException e) { + fail("Interrupted while sleeping"); + } + + clock.advance(1500, TimeUnit.MILLISECONDS); + + try { + stopThread.join(); + } catch (InterruptedException e) { + fail("Interrupted while joining stop thread"); + } + // Assert expected behavior + List modackRequestDataList = new ArrayList(); + modackRequestDataList.add( + new ModackRequestData(0, AckRequestData.newBuilder(TEST_MESSAGE.getAckId()).build())); + + verify(mockAckProcessor, times(1)) + .sendModackOperations( + argThat( + new CustomArgumentMatchers.ModackRequestDataListMatcher(modackRequestDataList))); + verify(mockAckProcessor, times(1)) + .sendAckOperations( + argThat(new CustomArgumentMatchers.AckRequestDataListMatcher(Collections.emptyList()))); + } + + @Test + public void testStop_nackImmediately() { + SubscriberShutdownSettings shutdownSettings = + SubscriberShutdownSettings.newBuilder() + .setMode(SubscriberShutdownSettings.ShutdownMode.NACK_IMMEDIATELY) + .build(); + MessageDispatcher dispatcher = + getMessageDispatcherFromBuilder( + MessageDispatcher.newBuilder(messageReceiver), shutdownSettings); + + dispatcher.processReceivedMessages(Collections.singletonList(TEST_MESSAGE)); + dispatcher.stop(); + + // Assert expected behavior + List modackRequestDataList = new ArrayList(); + modackRequestDataList.add( + new ModackRequestData(0, AckRequestData.newBuilder(TEST_MESSAGE.getAckId()).build())); + + verify(mockAckProcessor, times(1)) + .sendModackOperations( + argThat( + new CustomArgumentMatchers.ModackRequestDataListMatcher(modackRequestDataList))); + verify(mockAckProcessor, times(1)) + .sendAckOperations( + argThat(new CustomArgumentMatchers.AckRequestDataListMatcher(Collections.emptyList()))); + } + + @Test + public void testAckDuringNackImmediatelyShutdown() throws Exception { + SubscriberShutdownSettings shutdownSettings = + SubscriberShutdownSettings.newBuilder() + .setMode(SubscriberShutdownSettings.ShutdownMode.NACK_IMMEDIATELY) + .build(); + MessageDispatcher dispatcher = + getMessageDispatcherFromBuilder( + MessageDispatcher.newBuilder(messageReceiverWithAckResponse), shutdownSettings); + dispatcher.setExactlyOnceDeliveryEnabled(true); + + dispatcher.processReceivedMessages(Collections.singletonList(TEST_MESSAGE)); + dispatcher.processOutstandingOperations(); + + List receiptModackRequestDataList = new ArrayList(); + AckRequestData receiptModackRequestData = + AckRequestData.newBuilder(TEST_MESSAGE.getAckId()).build(); + receiptModackRequestDataList.add( + new ModackRequestData(MIN_ACK_DEADLINE_SECONDS, receiptModackRequestData)); + dispatcher.notifyAckSuccess(receiptModackRequestData); + + verify(mockAckProcessor, times(1)) + .sendModackOperations( + argThat( + new CustomArgumentMatchers.ModackRequestDataListMatcher( + receiptModackRequestDataList))); + + Thread stopThread = + new Thread( + () -> { + dispatcher.stop(); + }); + stopThread.start(); + + // Wait for the stop process to start. + while (!dispatcher.getNackImmediatelyShutdownInProgress()) { + Thread.sleep(1); + } + + // Try to ack the message. + AckResponse reply = consumersWithResponse.take().ack().get(); + assertThat(reply.equals(AckResponse.OTHER)); + + stopThread.join(); + + // Assert expected behavior + List modackRequestDataList = new ArrayList(); + modackRequestDataList.add( + new ModackRequestData(0, AckRequestData.newBuilder(TEST_MESSAGE.getAckId()).build())); + + // The message should have been nacked, not acked. + verify(mockAckProcessor, times(1)) + .sendModackOperations( + argThat( + new CustomArgumentMatchers.ModackRequestDataListMatcher(modackRequestDataList))); + verify(mockAckProcessor, times(2)) + .sendAckOperations( + argThat(new CustomArgumentMatchers.AckRequestDataListMatcher(Collections.emptyList()))); + } } diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockIAMPolicy.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockIAMPolicy.java index c17e00ad2..ee510a051 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockIAMPolicy.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockIAMPolicy.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockIAMPolicyImpl.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockIAMPolicyImpl.java index e18c2a7bc..f686ce75c 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockIAMPolicyImpl.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockIAMPolicyImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockPublisher.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockPublisher.java index 2a26cd59a..239ed0369 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockPublisher.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockPublisher.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockPublisherImpl.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockPublisherImpl.java index 47cf6f416..e01c205a6 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockPublisherImpl.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockPublisherImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -189,7 +189,8 @@ public void listTopicSubscriptions( responseObserver.onError( new IllegalArgumentException( String.format( - "Unrecognized response type %s for method ListTopicSubscriptions, expected %s or %s", + "Unrecognized response type %s for method ListTopicSubscriptions, expected %s or" + + " %s", response == null ? "null" : response.getClass().getName(), ListTopicSubscriptionsResponse.class.getName(), Exception.class.getName()))); diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockSchemaService.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockSchemaService.java index 29559fa86..838d5fbc6 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockSchemaService.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockSchemaService.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockSchemaServiceImpl.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockSchemaServiceImpl.java index 8510e1b77..71c5edb34 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockSchemaServiceImpl.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockSchemaServiceImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -212,7 +212,8 @@ public void deleteSchemaRevision( responseObserver.onError( new IllegalArgumentException( String.format( - "Unrecognized response type %s for method DeleteSchemaRevision, expected %s or %s", + "Unrecognized response type %s for method DeleteSchemaRevision, expected %s or" + + " %s", response == null ? "null" : response.getClass().getName(), Schema.class.getName(), Exception.class.getName()))); diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockSubscriber.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockSubscriber.java index 13b54dd7a..067dcd861 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockSubscriber.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockSubscriber.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockSubscriberImpl.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockSubscriberImpl.java index 389fc6561..cd711d2a2 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockSubscriberImpl.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/MockSubscriberImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -265,7 +265,8 @@ public void onNext(StreamingPullRequest value) { responseObserver.onError( new IllegalArgumentException( String.format( - "Unrecognized response type %s for method StreamingPull, expected %s or %s", + "Unrecognized response type %s for method StreamingPull, expected %s or" + + " %s", response == null ? "null" : response.getClass().getName(), StreamingPullResponse.class.getName(), Exception.class.getName()))); diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/OpenTelemetryTest.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/OpenTelemetryTest.java new file mode 100644 index 000000000..52351ddef --- /dev/null +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/OpenTelemetryTest.java @@ -0,0 +1,665 @@ +/* + * 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. + */ + +package com.google.cloud.pubsub.v1; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import com.google.protobuf.ByteString; +import com.google.pubsub.v1.PubsubMessage; +import com.google.pubsub.v1.SubscriptionName; +import com.google.pubsub.v1.TopicName; +import io.opentelemetry.api.trace.Span; +import io.opentelemetry.api.trace.SpanKind; +import io.opentelemetry.api.trace.StatusCode; +import io.opentelemetry.api.trace.Tracer; +import io.opentelemetry.sdk.testing.assertj.AttributesAssert; +import io.opentelemetry.sdk.testing.assertj.EventDataAssert; +import io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions; +import io.opentelemetry.sdk.testing.assertj.SpanDataAssert; +import io.opentelemetry.sdk.testing.junit4.OpenTelemetryRule; +import io.opentelemetry.sdk.trace.data.LinkData; +import io.opentelemetry.sdk.trace.data.SpanData; +import io.opentelemetry.sdk.trace.data.StatusData; +import java.util.Arrays; +import java.util.List; +import org.junit.Test; + +public class OpenTelemetryTest { + private static final TopicName FULL_TOPIC_NAME = + TopicName.parse("projects/test-project/topics/test-topic"); + private static final SubscriptionName FULL_SUBSCRIPTION_NAME = + SubscriptionName.parse("projects/test-project/subscriptions/test-sub"); + private static final String PROJECT_NAME = "test-project"; + private static final String ORDERING_KEY = "abc"; + private static final String MESSAGE_ID = "m0"; + private static final String ACK_ID = "def"; + private static final int DELIVERY_ATTEMPT = 1; + private static final int ACK_DEADLINE = 10; + private static final boolean EXACTLY_ONCE_ENABLED = true; + + private static final String PUBLISHER_SPAN_NAME = FULL_TOPIC_NAME.getTopic() + " create"; + private static final String PUBLISH_FLOW_CONTROL_SPAN_NAME = "publisher flow control"; + private static final String PUBLISH_BATCHING_SPAN_NAME = "publisher batching"; + private static final String PUBLISH_RPC_SPAN_NAME = FULL_TOPIC_NAME.getTopic() + " publish"; + private static final String PUBLISH_START_EVENT = "publish start"; + private static final String PUBLISH_END_EVENT = "publish end"; + + private static final String SUBSCRIBER_SPAN_NAME = + FULL_SUBSCRIPTION_NAME.getSubscription() + " subscribe"; + private static final String SUBSCRIBE_CONCURRENCY_CONTROL_SPAN_NAME = + "subscriber concurrency control"; + private static final String SUBSCRIBE_SCHEDULER_SPAN_NAME = "subscriber scheduler"; + private static final String SUBSCRIBE_PROCESS_SPAN_NAME = + FULL_SUBSCRIPTION_NAME.getSubscription() + " process"; + private static final String SUBSCRIBE_MODACK_RPC_SPAN_NAME = + FULL_SUBSCRIPTION_NAME.getSubscription() + " modack"; + private static final String SUBSCRIBE_ACK_RPC_SPAN_NAME = + FULL_SUBSCRIPTION_NAME.getSubscription() + " ack"; + private static final String SUBSCRIBE_NACK_RPC_SPAN_NAME = + FULL_SUBSCRIPTION_NAME.getSubscription() + " nack"; + + private static final String PROCESS_ACTION = "ack"; + private static final String MODACK_START_EVENT = "modack start"; + private static final String MODACK_END_EVENT = "modack end"; + private static final String NACK_START_EVENT = "nack start"; + private static final String NACK_END_EVENT = "nack end"; + private static final String ACK_START_EVENT = "ack start"; + private static final String ACK_END_EVENT = "ack end"; + + private static final String MESSAGING_SYSTEM_ATTR_KEY = "messaging.system"; + private static final String MESSAGING_DESTINATION_NAME_ATTR_KEY = "messaging.destination.name"; + private static final String CODE_FUNCTION_ATTR_KEY = "code.function"; + private static final String MESSAGING_OPERATION_ATTR_KEY = "messaging.operation"; + private static final String MESSAGING_BATCH_MESSAGE_COUNT_ATTR_KEY = + "messaging.batch.message_count"; + private static final String MESSAGING_MESSAGE_ID_ATTR_KEY = "messaging.message.id"; + private static final String MESSAGING_SYSTEM_VALUE = "gcp_pubsub"; + private static final String PROJECT_ATTR_KEY = "gcp.project_id"; + private static final String MESSAGE_SIZE_ATTR_KEY = "messaging.message.body.size"; + private static final String ORDERING_KEY_ATTR_KEY = "messaging.gcp_pubsub.message.ordering_key"; + private static final String ACK_DEADLINE_ATTR_KEY = "messaging.gcp_pubsub.message.ack_deadline"; + private static final String RECEIPT_MODACK_ATTR_KEY = "messaging.gcp_pubsub.is_receipt_modack"; + private static final String MESSAGE_ACK_ID_ATTR_KEY = "messaging.gcp_pubsub.message.ack_id"; + private static final String MESSAGE_EXACTLY_ONCE_ATTR_KEY = + "messaging.gcp_pubsub.message.exactly_once_delivery"; + private static final String MESSAGE_RESULT_ATTR_KEY = "messaging.gcp_pubsub.result"; + private static final String MESSAGE_DELIVERY_ATTEMPT_ATTR_KEY = + "messaging.gcp_pubsub.message.delivery_attempt"; + + private static final String TRACEPARENT_ATTRIBUTE = "googclient_traceparent"; + + private static final OpenTelemetryRule openTelemetryTesting = OpenTelemetryRule.create(); + + @Test + public void testPublishSpansSuccess() { + openTelemetryTesting.clearSpans(); + + PubsubMessageWrapper messageWrapper = + PubsubMessageWrapper.newBuilder(getPubsubMessage(), FULL_TOPIC_NAME).build(); + List messageWrappers = Arrays.asList(messageWrapper); + + long messageSize = messageWrapper.getPubsubMessage().getData().size(); + Tracer openTelemetryTracer = openTelemetryTesting.getOpenTelemetry().getTracer("test"); + OpenTelemetryPubsubTracer tracer = new OpenTelemetryPubsubTracer(openTelemetryTracer, true); + + // Call all span start/end methods in the expected order + tracer.startPublisherSpan(messageWrapper); + tracer.startPublishFlowControlSpan(messageWrapper); + tracer.endPublishFlowControlSpan(messageWrapper); + tracer.startPublishBatchingSpan(messageWrapper); + tracer.endPublishBatchingSpan(messageWrapper); + Span publishRpcSpan = tracer.startPublishRpcSpan(FULL_TOPIC_NAME, messageWrappers); + tracer.endPublishRpcSpan(publishRpcSpan); + tracer.setPublisherMessageIdSpanAttribute(messageWrapper, MESSAGE_ID); + tracer.endPublisherSpan(messageWrapper); + + List allSpans = openTelemetryTesting.getSpans(); + assertEquals(4, allSpans.size()); + SpanData flowControlSpanData = allSpans.get(0); + SpanData batchingSpanData = allSpans.get(1); + SpanData publishRpcSpanData = allSpans.get(2); + SpanData publisherSpanData = allSpans.get(3); + + SpanDataAssert flowControlSpanDataAssert = + OpenTelemetryAssertions.assertThat(flowControlSpanData); + flowControlSpanDataAssert + .hasName(PUBLISH_FLOW_CONTROL_SPAN_NAME) + .hasParent(publisherSpanData) + .hasEnded(); + + SpanDataAssert batchingSpanDataAssert = OpenTelemetryAssertions.assertThat(batchingSpanData); + batchingSpanDataAssert + .hasName(PUBLISH_BATCHING_SPAN_NAME) + .hasParent(publisherSpanData) + .hasEnded(); + + // Check span data, links, and attributes for the publish RPC span + SpanDataAssert publishRpcSpanDataAssert = + OpenTelemetryAssertions.assertThat(publishRpcSpanData); + publishRpcSpanDataAssert + .hasName(PUBLISH_RPC_SPAN_NAME) + .hasKind(SpanKind.CLIENT) + .hasNoParent() + .hasEnded(); + + List publishRpcLinks = publishRpcSpanData.getLinks(); + assertEquals(messageWrappers.size(), publishRpcLinks.size()); + assertEquals(publisherSpanData.getSpanContext(), publishRpcLinks.get(0).getSpanContext()); + + assertEquals(6, publishRpcSpanData.getAttributes().size()); + AttributesAssert publishRpcSpanAttributesAssert = + OpenTelemetryAssertions.assertThat(publishRpcSpanData.getAttributes()); + publishRpcSpanAttributesAssert + .containsEntry(MESSAGING_SYSTEM_ATTR_KEY, MESSAGING_SYSTEM_VALUE) + .containsEntry(MESSAGING_DESTINATION_NAME_ATTR_KEY, FULL_TOPIC_NAME.getTopic()) + .containsEntry(PROJECT_ATTR_KEY, FULL_TOPIC_NAME.getProject()) + .containsEntry(CODE_FUNCTION_ATTR_KEY, "publishCall") + .containsEntry(MESSAGING_OPERATION_ATTR_KEY, "publish") + .containsEntry(MESSAGING_BATCH_MESSAGE_COUNT_ATTR_KEY, messageWrappers.size()); + + // Check span data, events, links, and attributes for the publisher create span + SpanDataAssert publisherSpanDataAssert = OpenTelemetryAssertions.assertThat(publisherSpanData); + publisherSpanDataAssert + .hasName(PUBLISHER_SPAN_NAME) + .hasKind(SpanKind.PRODUCER) + .hasNoParent() + .hasEnded(); + + assertEquals(2, publisherSpanData.getEvents().size()); + EventDataAssert startEventAssert = + OpenTelemetryAssertions.assertThat(publisherSpanData.getEvents().get(0)); + startEventAssert.hasName(PUBLISH_START_EVENT); + EventDataAssert endEventAssert = + OpenTelemetryAssertions.assertThat(publisherSpanData.getEvents().get(1)); + endEventAssert.hasName(PUBLISH_END_EVENT); + + List publisherLinks = publisherSpanData.getLinks(); + assertEquals(1, publisherLinks.size()); + assertEquals(publishRpcSpanData.getSpanContext(), publisherLinks.get(0).getSpanContext()); + + assertEquals(8, publisherSpanData.getAttributes().size()); + AttributesAssert publisherSpanAttributesAssert = + OpenTelemetryAssertions.assertThat(publisherSpanData.getAttributes()); + publisherSpanAttributesAssert + .containsEntry(MESSAGING_SYSTEM_ATTR_KEY, MESSAGING_SYSTEM_VALUE) + .containsEntry(MESSAGING_DESTINATION_NAME_ATTR_KEY, FULL_TOPIC_NAME.getTopic()) + .containsEntry(PROJECT_ATTR_KEY, PROJECT_NAME) + .containsEntry(CODE_FUNCTION_ATTR_KEY, "publish") + .containsEntry(MESSAGING_OPERATION_ATTR_KEY, "create") + .containsEntry(ORDERING_KEY_ATTR_KEY, ORDERING_KEY) + .containsEntry(MESSAGE_SIZE_ATTR_KEY, messageSize) + .containsEntry(MESSAGING_MESSAGE_ID_ATTR_KEY, MESSAGE_ID); + + // Check that the message has the attribute containing the trace context. + PubsubMessage message = messageWrapper.getPubsubMessage(); + assertEquals(1, message.getAttributesMap().size()); + assertTrue(message.containsAttributes(TRACEPARENT_ATTRIBUTE)); + assertTrue( + message + .getAttributesOrDefault(TRACEPARENT_ATTRIBUTE, "") + .contains(publisherSpanData.getTraceId())); + assertTrue( + message + .getAttributesOrDefault(TRACEPARENT_ATTRIBUTE, "") + .contains(publisherSpanData.getSpanId())); + } + + @Test + public void testPublishFlowControlSpanFailure() { + openTelemetryTesting.clearSpans(); + + PubsubMessageWrapper messageWrapper = + PubsubMessageWrapper.newBuilder(getPubsubMessage(), FULL_TOPIC_NAME).build(); + + Tracer openTelemetryTracer = openTelemetryTesting.getOpenTelemetry().getTracer("test"); + OpenTelemetryPubsubTracer tracer = new OpenTelemetryPubsubTracer(openTelemetryTracer, true); + + tracer.startPublisherSpan(messageWrapper); + tracer.startPublishFlowControlSpan(messageWrapper); + + Exception e = new Exception("test-exception"); + tracer.setPublishFlowControlSpanException(messageWrapper, e); + + List allSpans = openTelemetryTesting.getSpans(); + assertEquals(2, allSpans.size()); + SpanData flowControlSpanData = allSpans.get(0); + SpanData publisherSpanData = allSpans.get(1); + + SpanDataAssert flowControlSpanDataAssert = + OpenTelemetryAssertions.assertThat(flowControlSpanData); + StatusData expectedStatus = + StatusData.create(StatusCode.ERROR, "Exception thrown during publish flow control."); + flowControlSpanDataAssert + .hasName(PUBLISH_FLOW_CONTROL_SPAN_NAME) + .hasParent(publisherSpanData) + .hasStatus(expectedStatus) + .hasException(e) + .hasEnded(); + + SpanDataAssert publisherSpanDataAssert = OpenTelemetryAssertions.assertThat(publisherSpanData); + publisherSpanDataAssert + .hasName(PUBLISHER_SPAN_NAME) + .hasKind(SpanKind.PRODUCER) + .hasNoParent() + .hasEnded(); + } + + @Test + public void testPublishRpcSpanFailure() { + openTelemetryTesting.clearSpans(); + + PubsubMessageWrapper messageWrapper = + PubsubMessageWrapper.newBuilder(getPubsubMessage(), FULL_TOPIC_NAME).build(); + + List messageWrappers = Arrays.asList(messageWrapper); + Tracer openTelemetryTracer = openTelemetryTesting.getOpenTelemetry().getTracer("test"); + OpenTelemetryPubsubTracer tracer = new OpenTelemetryPubsubTracer(openTelemetryTracer, true); + + tracer.startPublisherSpan(messageWrapper); + Span publishRpcSpan = tracer.startPublishRpcSpan(FULL_TOPIC_NAME, messageWrappers); + + Exception e = new Exception("test-exception"); + tracer.setPublishRpcSpanException(publishRpcSpan, e); + tracer.endPublisherSpan(messageWrapper); + + List allSpans = openTelemetryTesting.getSpans(); + assertEquals(2, allSpans.size()); + SpanData rpcSpanData = allSpans.get(0); + SpanData publisherSpanData = allSpans.get(1); + + SpanDataAssert rpcSpanDataAssert = OpenTelemetryAssertions.assertThat(rpcSpanData); + StatusData expectedStatus = + StatusData.create(StatusCode.ERROR, "Exception thrown on publish RPC."); + rpcSpanDataAssert + .hasName(PUBLISH_RPC_SPAN_NAME) + .hasKind(SpanKind.CLIENT) + .hasStatus(expectedStatus) + .hasException(e) + .hasEnded(); + + SpanDataAssert publisherSpanDataAssert = OpenTelemetryAssertions.assertThat(publisherSpanData); + publisherSpanDataAssert + .hasName(PUBLISHER_SPAN_NAME) + .hasKind(SpanKind.PRODUCER) + .hasNoParent() + .hasEnded(); + } + + @Test + public void testSubscribeSpansSuccess() { + openTelemetryTesting.clearSpans(); + + Tracer openTelemetryTracer = openTelemetryTesting.getOpenTelemetry().getTracer("test"); + OpenTelemetryPubsubTracer tracer = new OpenTelemetryPubsubTracer(openTelemetryTracer, true); + + PubsubMessageWrapper publishMessageWrapper = + PubsubMessageWrapper.newBuilder(getPubsubMessage(), FULL_TOPIC_NAME).build(); + // Initialize the Publisher span to inject the context in the message + tracer.startPublisherSpan(publishMessageWrapper); + tracer.endPublisherSpan(publishMessageWrapper); + + PubsubMessage publishedMessage = + publishMessageWrapper.getPubsubMessage().toBuilder().setMessageId(MESSAGE_ID).build(); + PubsubMessageWrapper subscribeMessageWrapper = + PubsubMessageWrapper.newBuilder(publishedMessage, FULL_SUBSCRIPTION_NAME, ACK_ID, 1) + .build(); + List subscribeMessageWrappers = Arrays.asList(subscribeMessageWrapper); + + long messageSize = subscribeMessageWrapper.getPubsubMessage().getData().size(); + + // Call all span start/end methods in the expected order + tracer.startSubscriberSpan(subscribeMessageWrapper, EXACTLY_ONCE_ENABLED); + tracer.startSubscribeConcurrencyControlSpan(subscribeMessageWrapper); + tracer.endSubscribeConcurrencyControlSpan(subscribeMessageWrapper); + tracer.startSubscribeSchedulerSpan(subscribeMessageWrapper); + tracer.endSubscribeSchedulerSpan(subscribeMessageWrapper); + tracer.startSubscribeProcessSpan(subscribeMessageWrapper); + tracer.endSubscribeProcessSpan(subscribeMessageWrapper, PROCESS_ACTION); + Span subscribeModackRpcSpan = + tracer.startSubscribeRpcSpan( + FULL_SUBSCRIPTION_NAME, "modack", subscribeMessageWrappers, ACK_DEADLINE, true); + tracer.endSubscribeRpcSpan(subscribeModackRpcSpan); + tracer.addEndRpcEvent(subscribeMessageWrapper, true, true, ACK_DEADLINE); + Span subscribeAckRpcSpan = + tracer.startSubscribeRpcSpan( + FULL_SUBSCRIPTION_NAME, "ack", subscribeMessageWrappers, 0, false); + tracer.endSubscribeRpcSpan(subscribeAckRpcSpan); + tracer.addEndRpcEvent(subscribeMessageWrapper, true, false, 0); + Span subscribeNackRpcSpan = + tracer.startSubscribeRpcSpan( + FULL_SUBSCRIPTION_NAME, "nack", subscribeMessageWrappers, 0, false); + tracer.endSubscribeRpcSpan(subscribeNackRpcSpan); + tracer.addEndRpcEvent(subscribeMessageWrapper, true, true, 0); + tracer.endSubscriberSpan(subscribeMessageWrapper); + + List allSpans = openTelemetryTesting.getSpans(); + assertEquals(8, allSpans.size()); + + SpanData publisherSpanData = allSpans.get(0); + SpanData concurrencyControlSpanData = allSpans.get(1); + SpanData schedulerSpanData = allSpans.get(2); + SpanData processSpanData = allSpans.get(3); + SpanData modackRpcSpanData = allSpans.get(4); + SpanData ackRpcSpanData = allSpans.get(5); + SpanData nackRpcSpanData = allSpans.get(6); + SpanData subscriberSpanData = allSpans.get(7); + + SpanDataAssert concurrencyControlSpanDataAssert = + OpenTelemetryAssertions.assertThat(concurrencyControlSpanData); + concurrencyControlSpanDataAssert + .hasName(SUBSCRIBE_CONCURRENCY_CONTROL_SPAN_NAME) + .hasParent(subscriberSpanData) + .hasEnded(); + + SpanDataAssert schedulerSpanDataAssert = OpenTelemetryAssertions.assertThat(schedulerSpanData); + schedulerSpanDataAssert + .hasName(SUBSCRIBE_SCHEDULER_SPAN_NAME) + .hasParent(subscriberSpanData) + .hasEnded(); + + SpanDataAssert processSpanDataAssert = OpenTelemetryAssertions.assertThat(processSpanData); + processSpanDataAssert + .hasName(SUBSCRIBE_PROCESS_SPAN_NAME) + .hasParent(subscriberSpanData) + .hasEnded(); + + assertEquals(1, processSpanData.getEvents().size()); + EventDataAssert actionCalledEventAssert = + OpenTelemetryAssertions.assertThat(processSpanData.getEvents().get(0)); + actionCalledEventAssert.hasName(PROCESS_ACTION + " called"); + + // Check span data, links, and attributes for the modack RPC span + SpanDataAssert modackRpcSpanDataAssert = OpenTelemetryAssertions.assertThat(modackRpcSpanData); + modackRpcSpanDataAssert + .hasName(SUBSCRIBE_MODACK_RPC_SPAN_NAME) + .hasKind(SpanKind.CLIENT) + .hasNoParent() + .hasEnded(); + + List modackRpcLinks = modackRpcSpanData.getLinks(); + assertEquals(subscribeMessageWrappers.size(), modackRpcLinks.size()); + assertEquals(subscriberSpanData.getSpanContext(), modackRpcLinks.get(0).getSpanContext()); + + assertEquals(8, modackRpcSpanData.getAttributes().size()); + AttributesAssert modackRpcSpanAttributesAssert = + OpenTelemetryAssertions.assertThat(modackRpcSpanData.getAttributes()); + modackRpcSpanAttributesAssert + .containsEntry(MESSAGING_SYSTEM_ATTR_KEY, MESSAGING_SYSTEM_VALUE) + .containsEntry( + MESSAGING_DESTINATION_NAME_ATTR_KEY, FULL_SUBSCRIPTION_NAME.getSubscription()) + .containsEntry(PROJECT_ATTR_KEY, FULL_TOPIC_NAME.getProject()) + .containsEntry(CODE_FUNCTION_ATTR_KEY, "sendModAckOperations") + .containsEntry(MESSAGING_OPERATION_ATTR_KEY, "modack") + .containsEntry(MESSAGING_BATCH_MESSAGE_COUNT_ATTR_KEY, subscribeMessageWrappers.size()) + .containsEntry(ACK_DEADLINE_ATTR_KEY, 10) + .containsEntry(RECEIPT_MODACK_ATTR_KEY, true); + + // Check span data, links, and attributes for the ack RPC span + SpanDataAssert ackRpcSpanDataAssert = OpenTelemetryAssertions.assertThat(ackRpcSpanData); + ackRpcSpanDataAssert + .hasName(SUBSCRIBE_ACK_RPC_SPAN_NAME) + .hasKind(SpanKind.CLIENT) + .hasNoParent() + .hasEnded(); + + List ackRpcLinks = ackRpcSpanData.getLinks(); + assertEquals(subscribeMessageWrappers.size(), ackRpcLinks.size()); + assertEquals(subscriberSpanData.getSpanContext(), ackRpcLinks.get(0).getSpanContext()); + + assertEquals(6, ackRpcSpanData.getAttributes().size()); + AttributesAssert ackRpcSpanAttributesAssert = + OpenTelemetryAssertions.assertThat(ackRpcSpanData.getAttributes()); + ackRpcSpanAttributesAssert + .containsEntry(MESSAGING_SYSTEM_ATTR_KEY, MESSAGING_SYSTEM_VALUE) + .containsEntry( + MESSAGING_DESTINATION_NAME_ATTR_KEY, FULL_SUBSCRIPTION_NAME.getSubscription()) + .containsEntry(PROJECT_ATTR_KEY, FULL_TOPIC_NAME.getProject()) + .containsEntry(CODE_FUNCTION_ATTR_KEY, "sendAckOperations") + .containsEntry(MESSAGING_OPERATION_ATTR_KEY, "ack") + .containsEntry(MESSAGING_BATCH_MESSAGE_COUNT_ATTR_KEY, subscribeMessageWrappers.size()); + + // Check span data, links, and attributes for the nack RPC span + SpanDataAssert nackRpcSpanDataAssert = OpenTelemetryAssertions.assertThat(nackRpcSpanData); + nackRpcSpanDataAssert + .hasName(SUBSCRIBE_NACK_RPC_SPAN_NAME) + .hasKind(SpanKind.CLIENT) + .hasNoParent() + .hasEnded(); + + List nackRpcLinks = nackRpcSpanData.getLinks(); + assertEquals(subscribeMessageWrappers.size(), nackRpcLinks.size()); + assertEquals(subscriberSpanData.getSpanContext(), nackRpcLinks.get(0).getSpanContext()); + + assertEquals(6, nackRpcSpanData.getAttributes().size()); + AttributesAssert nackRpcSpanAttributesAssert = + OpenTelemetryAssertions.assertThat(nackRpcSpanData.getAttributes()); + nackRpcSpanAttributesAssert + .containsEntry(MESSAGING_SYSTEM_ATTR_KEY, MESSAGING_SYSTEM_VALUE) + .containsEntry( + MESSAGING_DESTINATION_NAME_ATTR_KEY, FULL_SUBSCRIPTION_NAME.getSubscription()) + .containsEntry(PROJECT_ATTR_KEY, FULL_TOPIC_NAME.getProject()) + .containsEntry(CODE_FUNCTION_ATTR_KEY, "sendModAckOperations") + .containsEntry(MESSAGING_OPERATION_ATTR_KEY, "nack") + .containsEntry(MESSAGING_BATCH_MESSAGE_COUNT_ATTR_KEY, subscribeMessageWrappers.size()); + + // Check span data, events, links, and attributes for the publisher create span + SpanDataAssert subscriberSpanDataAssert = + OpenTelemetryAssertions.assertThat(subscriberSpanData); + subscriberSpanDataAssert + .hasName(SUBSCRIBER_SPAN_NAME) + .hasKind(SpanKind.CONSUMER) + .hasParent(publisherSpanData) + .hasEnded(); + + assertEquals(6, subscriberSpanData.getEvents().size()); + EventDataAssert startModackEventAssert = + OpenTelemetryAssertions.assertThat(subscriberSpanData.getEvents().get(0)); + startModackEventAssert.hasName(MODACK_START_EVENT); + EventDataAssert endModackEventAssert = + OpenTelemetryAssertions.assertThat(subscriberSpanData.getEvents().get(1)); + endModackEventAssert.hasName(MODACK_END_EVENT); + EventDataAssert startAckEventAssert = + OpenTelemetryAssertions.assertThat(subscriberSpanData.getEvents().get(2)); + startAckEventAssert.hasName(ACK_START_EVENT); + EventDataAssert endAckEventAssert = + OpenTelemetryAssertions.assertThat(subscriberSpanData.getEvents().get(3)); + endAckEventAssert.hasName(ACK_END_EVENT); + EventDataAssert startNackEventAssert = + OpenTelemetryAssertions.assertThat(subscriberSpanData.getEvents().get(4)); + startNackEventAssert.hasName(NACK_START_EVENT); + EventDataAssert endNackEventAssert = + OpenTelemetryAssertions.assertThat(subscriberSpanData.getEvents().get(5)); + endNackEventAssert.hasName(NACK_END_EVENT); + + List subscriberLinks = subscriberSpanData.getLinks(); + assertEquals(3, subscriberLinks.size()); + assertEquals(modackRpcSpanData.getSpanContext(), subscriberLinks.get(0).getSpanContext()); + assertEquals(ackRpcSpanData.getSpanContext(), subscriberLinks.get(1).getSpanContext()); + assertEquals(nackRpcSpanData.getSpanContext(), subscriberLinks.get(2).getSpanContext()); + + assertEquals(11, subscriberSpanData.getAttributes().size()); + AttributesAssert subscriberSpanAttributesAssert = + OpenTelemetryAssertions.assertThat(subscriberSpanData.getAttributes()); + subscriberSpanAttributesAssert + .containsEntry(MESSAGING_SYSTEM_ATTR_KEY, MESSAGING_SYSTEM_VALUE) + .containsEntry( + MESSAGING_DESTINATION_NAME_ATTR_KEY, FULL_SUBSCRIPTION_NAME.getSubscription()) + .containsEntry(PROJECT_ATTR_KEY, PROJECT_NAME) + .containsEntry(CODE_FUNCTION_ATTR_KEY, "onResponse") + .containsEntry(MESSAGE_SIZE_ATTR_KEY, messageSize) + .containsEntry(ORDERING_KEY_ATTR_KEY, ORDERING_KEY) + .containsEntry(MESSAGE_ACK_ID_ATTR_KEY, ACK_ID) + .containsEntry(MESSAGE_DELIVERY_ATTEMPT_ATTR_KEY, DELIVERY_ATTEMPT) + .containsEntry(MESSAGE_EXACTLY_ONCE_ATTR_KEY, EXACTLY_ONCE_ENABLED) + .containsEntry(MESSAGE_RESULT_ATTR_KEY, PROCESS_ACTION) + .containsEntry(MESSAGING_MESSAGE_ID_ATTR_KEY, MESSAGE_ID); + } + + @Test + public void testSubscribeConcurrencyControlSpanFailure() { + openTelemetryTesting.clearSpans(); + + PubsubMessageWrapper messageWrapper = + PubsubMessageWrapper.newBuilder( + getPubsubMessage(), FULL_SUBSCRIPTION_NAME, ACK_ID, DELIVERY_ATTEMPT) + .build(); + + Tracer openTelemetryTracer = openTelemetryTesting.getOpenTelemetry().getTracer("test"); + OpenTelemetryPubsubTracer tracer = new OpenTelemetryPubsubTracer(openTelemetryTracer, true); + + tracer.startSubscriberSpan(messageWrapper, EXACTLY_ONCE_ENABLED); + tracer.startSubscribeConcurrencyControlSpan(messageWrapper); + + Exception e = new Exception("test-exception"); + tracer.setSubscribeConcurrencyControlSpanException(messageWrapper, e); + + List allSpans = openTelemetryTesting.getSpans(); + assertEquals(2, allSpans.size()); + SpanData concurrencyControlSpanData = allSpans.get(0); + SpanData subscriberSpanData = allSpans.get(1); + + SpanDataAssert concurrencyControlSpanDataAssert = + OpenTelemetryAssertions.assertThat(concurrencyControlSpanData); + StatusData expectedStatus = + StatusData.create( + StatusCode.ERROR, "Exception thrown during subscribe concurrency control."); + concurrencyControlSpanDataAssert + .hasName(SUBSCRIBE_CONCURRENCY_CONTROL_SPAN_NAME) + .hasParent(subscriberSpanData) + .hasStatus(expectedStatus) + .hasException(e) + .hasEnded(); + + SpanDataAssert subscriberSpanDataAssert = + OpenTelemetryAssertions.assertThat(subscriberSpanData); + subscriberSpanDataAssert + .hasName(SUBSCRIBER_SPAN_NAME) + .hasKind(SpanKind.CONSUMER) + .hasNoParent() + .hasEnded(); + } + + @Test + public void testSubscriberSpanFailure() { + openTelemetryTesting.clearSpans(); + + PubsubMessageWrapper messageWrapper = + PubsubMessageWrapper.newBuilder( + getPubsubMessage(), FULL_SUBSCRIPTION_NAME, ACK_ID, DELIVERY_ATTEMPT) + .build(); + + Tracer openTelemetryTracer = openTelemetryTesting.getOpenTelemetry().getTracer("test"); + OpenTelemetryPubsubTracer tracer = new OpenTelemetryPubsubTracer(openTelemetryTracer, true); + + tracer.startSubscriberSpan(messageWrapper, EXACTLY_ONCE_ENABLED); + + Exception e = new Exception("test-exception"); + tracer.setSubscriberSpanException(messageWrapper, e, "Test exception"); + + List allSpans = openTelemetryTesting.getSpans(); + assertEquals(1, allSpans.size()); + SpanData subscriberSpanData = allSpans.get(0); + + StatusData expectedStatus = StatusData.create(StatusCode.ERROR, "Test exception"); + SpanDataAssert subscriberSpanDataAssert = + OpenTelemetryAssertions.assertThat(subscriberSpanData); + subscriberSpanDataAssert + .hasName(SUBSCRIBER_SPAN_NAME) + .hasKind(SpanKind.CONSUMER) + .hasNoParent() + .hasStatus(expectedStatus) + .hasException(e) + .hasEnded(); + } + + @Test + public void testSubscribeRpcSpanFailures() { + openTelemetryTesting.clearSpans(); + + PubsubMessageWrapper messageWrapper = + PubsubMessageWrapper.newBuilder( + getPubsubMessage(), FULL_SUBSCRIPTION_NAME, ACK_ID, DELIVERY_ATTEMPT) + .build(); + List messageWrappers = Arrays.asList(messageWrapper); + + Tracer openTelemetryTracer = openTelemetryTesting.getOpenTelemetry().getTracer("test"); + OpenTelemetryPubsubTracer tracer = new OpenTelemetryPubsubTracer(openTelemetryTracer, true); + + tracer.startSubscriberSpan(messageWrapper, EXACTLY_ONCE_ENABLED); + Span subscribeModackRpcSpan = + tracer.startSubscribeRpcSpan( + FULL_SUBSCRIPTION_NAME, "modack", messageWrappers, ACK_DEADLINE, true); + Span subscribeAckRpcSpan = + tracer.startSubscribeRpcSpan(FULL_SUBSCRIPTION_NAME, "ack", messageWrappers, 0, false); + Span subscribeNackRpcSpan = + tracer.startSubscribeRpcSpan(FULL_SUBSCRIPTION_NAME, "nack", messageWrappers, 0, false); + + Exception e = new Exception("test-exception"); + tracer.setSubscribeRpcSpanException(subscribeModackRpcSpan, true, ACK_DEADLINE, e); + tracer.setSubscribeRpcSpanException(subscribeAckRpcSpan, false, 0, e); + tracer.setSubscribeRpcSpanException(subscribeNackRpcSpan, true, 0, e); + tracer.endSubscriberSpan(messageWrapper); + + List allSpans = openTelemetryTesting.getSpans(); + assertEquals(4, allSpans.size()); + SpanData modackSpanData = allSpans.get(0); + SpanData ackSpanData = allSpans.get(1); + SpanData nackSpanData = allSpans.get(2); + SpanData subscriberSpanData = allSpans.get(3); + + StatusData expectedModackStatus = + StatusData.create(StatusCode.ERROR, "Exception thrown on modack RPC."); + SpanDataAssert modackSpanDataAssert = OpenTelemetryAssertions.assertThat(modackSpanData); + modackSpanDataAssert + .hasName(SUBSCRIBE_MODACK_RPC_SPAN_NAME) + .hasKind(SpanKind.CLIENT) + .hasNoParent() + .hasStatus(expectedModackStatus) + .hasException(e) + .hasEnded(); + + StatusData expectedAckStatus = + StatusData.create(StatusCode.ERROR, "Exception thrown on ack RPC."); + SpanDataAssert ackSpanDataAssert = OpenTelemetryAssertions.assertThat(ackSpanData); + ackSpanDataAssert + .hasName(SUBSCRIBE_ACK_RPC_SPAN_NAME) + .hasKind(SpanKind.CLIENT) + .hasNoParent() + .hasStatus(expectedAckStatus) + .hasException(e) + .hasEnded(); + + StatusData expectedNackStatus = + StatusData.create(StatusCode.ERROR, "Exception thrown on nack RPC."); + SpanDataAssert nackSpanDataAssert = OpenTelemetryAssertions.assertThat(nackSpanData); + nackSpanDataAssert + .hasName(SUBSCRIBE_NACK_RPC_SPAN_NAME) + .hasKind(SpanKind.CLIENT) + .hasNoParent() + .hasStatus(expectedNackStatus) + .hasException(e) + .hasEnded(); + } + + private PubsubMessage getPubsubMessage() { + return PubsubMessage.newBuilder() + .setData(ByteString.copyFromUtf8("test-data")) + .setOrderingKey(ORDERING_KEY) + .build(); + } +} diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/PublisherImplTest.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/PublisherImplTest.java index 9785b7716..39155c848 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/PublisherImplTest.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/PublisherImplTest.java @@ -48,6 +48,13 @@ import io.grpc.StatusException; import io.grpc.inprocess.InProcessChannelBuilder; import io.grpc.inprocess.InProcessServerBuilder; +import io.opentelemetry.api.OpenTelemetry; +import io.opentelemetry.api.trace.SpanKind; +import io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions; +import io.opentelemetry.sdk.testing.assertj.SpanDataAssert; +import io.opentelemetry.sdk.testing.junit4.OpenTelemetryRule; +import io.opentelemetry.sdk.trace.data.SpanData; +import java.time.Duration; import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutionException; @@ -60,7 +67,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; -import org.threeten.bp.Duration; @RunWith(JUnit4.class) public class PublisherImplTest { @@ -74,6 +80,11 @@ public class PublisherImplTest { private static final TransportChannelProvider TEST_CHANNEL_PROVIDER = LocalChannelProvider.create("test-server"); + private static final String PUBLISHER_SPAN_NAME = TEST_TOPIC.getTopic() + " create"; + private static final String PUBLISH_FLOW_CONTROL_SPAN_NAME = "publisher flow control"; + private static final String PUBLISH_BATCHING_SPAN_NAME = "publisher batching"; + private static final String PUBLISH_RPC_SPAN_NAME = TEST_TOPIC.getTopic() + " publish"; + private FakeScheduledExecutorService fakeExecutor; private FakePublisherServiceImpl testPublisherServiceImpl; @@ -107,9 +118,8 @@ public void testPublishByDuration() throws Exception { getTestPublisherBuilder() // To demonstrate that reaching duration will trigger publish .setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() - .setDelayThreshold(Duration.ofSeconds(5)) + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() + .setDelayThresholdDuration(Duration.ofSeconds(5)) .setElementCountThreshold(10L) .build()) .build(); @@ -137,10 +147,9 @@ public void testPublishByNumBatchedMessages() throws Exception { Publisher publisher = getTestPublisherBuilder() .setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(2L) - .setDelayThreshold(Duration.ofSeconds(100)) + .setDelayThresholdDuration(Duration.ofSeconds(100)) .build()) .build(); @@ -176,10 +185,9 @@ public void testSinglePublishByNumBytes() throws Exception { Publisher publisher = getTestPublisherBuilder() .setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(2L) - .setDelayThreshold(Duration.ofSeconds(100)) + .setDelayThresholdDuration(Duration.ofSeconds(100)) .build()) .build(); @@ -212,9 +220,8 @@ public void testPublishByShutdown() throws Exception { Publisher publisher = getTestPublisherBuilder() .setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() - .setDelayThreshold(Duration.ofSeconds(100)) + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() + .setDelayThresholdDuration(Duration.ofSeconds(100)) .setElementCountThreshold(10L) .build()) .build(); @@ -245,10 +252,9 @@ public void testPublishMixedSizeAndDuration() throws Exception { getTestPublisherBuilder() // To demonstrate that reaching duration will trigger publish .setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(2L) - .setDelayThreshold(Duration.ofSeconds(5)) + .setDelayThresholdDuration(Duration.ofSeconds(5)) .build()) .build(); @@ -286,10 +292,9 @@ public void testPublishWithCompression() throws Exception { Publisher publisher = getTestPublisherBuilder() .setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(2L) - .setDelayThreshold(Duration.ofSeconds(100)) + .setDelayThresholdDuration(Duration.ofSeconds(100)) .build()) .setEnableCompression(true) .setCompressionBytesThreshold(100) @@ -317,10 +322,9 @@ public void testBatchedMessagesWithOrderingKeyByNum() throws Exception { Publisher publisher = getTestPublisherBuilder() .setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(3L) - .setDelayThreshold(Duration.ofSeconds(100)) + .setDelayThresholdDuration(Duration.ofSeconds(100)) .build()) .setEnableMessageOrdering(true) .build(); @@ -370,10 +374,9 @@ public void testBatchedMessagesWithOrderingKeyByDuration() throws Exception { Publisher publisher = getTestPublisherBuilder() .setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(10L) - .setDelayThreshold(Duration.ofSeconds(100)) + .setDelayThresholdDuration(Duration.ofSeconds(100)) .build()) .setEnableMessageOrdering(true) .build(); @@ -433,11 +436,10 @@ public void testLargeMessagesDoNotReorderBatches() throws Exception { Publisher publisher = getTestPublisherBuilder() .setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(10L) - .setRequestByteThreshold(20L) - .setDelayThreshold(Duration.ofSeconds(100)) + .setRequestByteThreshold(64L) + .setDelayThresholdDuration(Duration.ofSeconds(100)) .build()) .setEnableMessageOrdering(true) .build(); @@ -477,9 +479,8 @@ public void testEnableMessageOrdering_overwritesMaxAttempts() throws Exception { getTestPublisherBuilder() .setExecutorProvider(SINGLE_THREAD_EXECUTOR) .setRetrySettings( - Publisher.Builder.DEFAULT_RETRY_SETTINGS - .toBuilder() - .setTotalTimeout(Duration.ofSeconds(10)) + Publisher.Builder.DEFAULT_RETRY_SETTINGS.toBuilder() + .setTotalTimeoutDuration(Duration.ofSeconds(10)) .setMaxAttempts(1) .build()) .setEnableMessageOrdering(true) @@ -602,7 +603,7 @@ public void testPublishThrowExceptionForUnsubmittedOrderingKeyMessage() throws E Publisher.Builder.DEFAULT_BATCHING_SETTINGS .toBuilder() .setElementCountThreshold(2L) - .setDelayThreshold(Duration.ofSeconds(500)) + .setDelayThresholdDuration(Duration.ofSeconds(500)) .build()) .setEnableMessageOrdering(true) .build(); @@ -660,10 +661,9 @@ public void testErrorPropagation() throws Exception { getTestPublisherBuilder() .setExecutorProvider(SINGLE_THREAD_EXECUTOR) .setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(1L) - .setDelayThreshold(Duration.ofSeconds(5)) + .setDelayThresholdDuration(Duration.ofSeconds(5)) .build()) .build(); testPublisherServiceImpl.addPublishError(Status.DATA_LOSS.asException()); @@ -681,10 +681,9 @@ public void testPublishFailureRetries() throws Exception { getTestPublisherBuilder() .setExecutorProvider(SINGLE_THREAD_EXECUTOR) .setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(1L) - .setDelayThreshold(Duration.ofSeconds(5)) + .setDelayThresholdDuration(Duration.ofSeconds(5)) .build()) .build(); // To demonstrate that reaching duration will trigger publish @@ -705,9 +704,8 @@ public void testPublishFailureRetries_retriesDisabled() throws Exception { getTestPublisherBuilder() .setExecutorProvider(SINGLE_THREAD_EXECUTOR) .setRetrySettings( - Publisher.Builder.DEFAULT_RETRY_SETTINGS - .toBuilder() - .setTotalTimeout(Duration.ofSeconds(10)) + Publisher.Builder.DEFAULT_RETRY_SETTINGS.toBuilder() + .setTotalTimeoutDuration(Duration.ofSeconds(10)) .setMaxAttempts(1) .build()) .build(); @@ -730,9 +728,8 @@ public void testPublishFailureRetries_maxRetriesSetup() throws Exception { getTestPublisherBuilder() .setExecutorProvider(SINGLE_THREAD_EXECUTOR) .setRetrySettings( - Publisher.Builder.DEFAULT_RETRY_SETTINGS - .toBuilder() - .setTotalTimeout(Duration.ofSeconds(10)) + Publisher.Builder.DEFAULT_RETRY_SETTINGS.toBuilder() + .setTotalTimeoutDuration(Duration.ofSeconds(10)) .setMaxAttempts(3) .build()) .build(); @@ -755,9 +752,8 @@ public void testPublishFailureRetries_maxRetriesSetUnlimited() throws Exception getTestPublisherBuilder() .setExecutorProvider(SINGLE_THREAD_EXECUTOR) .setRetrySettings( - Publisher.Builder.DEFAULT_RETRY_SETTINGS - .toBuilder() - .setTotalTimeout(Duration.ofSeconds(10)) + Publisher.Builder.DEFAULT_RETRY_SETTINGS.toBuilder() + .setTotalTimeoutDuration(Duration.ofSeconds(10)) .setMaxAttempts(0) .build()) .build(); @@ -781,15 +777,13 @@ public void testPublishFailureRetries_nonRetryableFailsImmediately() throws Exce getTestPublisherBuilder() .setExecutorProvider(SINGLE_THREAD_EXECUTOR) .setRetrySettings( - Publisher.Builder.DEFAULT_RETRY_SETTINGS - .toBuilder() - .setTotalTimeout(Duration.ofSeconds(10)) + Publisher.Builder.DEFAULT_RETRY_SETTINGS.toBuilder() + .setTotalTimeoutDuration(Duration.ofSeconds(10)) .build()) .setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(1L) - .setDelayThreshold(Duration.ofSeconds(5)) + .setDelayThresholdDuration(Duration.ofSeconds(5)) .build()) .build(); // To demonstrate that reaching duration will trigger publish @@ -814,7 +808,7 @@ public void testPublisherGetters() throws Exception { builder.setBatchingSettings( BatchingSettings.newBuilder() .setRequestByteThreshold(10L) - .setDelayThreshold(Duration.ofMillis(11)) + .setDelayThresholdDuration(Duration.ofMillis(11)) .setElementCountThreshold(12L) .build()); builder.setCredentialsProvider(NoCredentialsProvider.create()); @@ -822,7 +816,8 @@ public void testPublisherGetters() throws Exception { assertEquals(TEST_TOPIC, publisher.getTopicName()); assertEquals(10, (long) publisher.getBatchingSettings().getRequestByteThreshold()); - assertEquals(Duration.ofMillis(11), publisher.getBatchingSettings().getDelayThreshold()); + assertEquals( + Duration.ofMillis(11), publisher.getBatchingSettings().getDelayThresholdDuration()); assertEquals(12, (long) publisher.getBatchingSettings().getElementCountThreshold()); publisher.shutdown(); assertTrue(publisher.awaitTermination(1, TimeUnit.MINUTES)); @@ -837,7 +832,8 @@ public void testBuilderParametersAndDefaults() { Publisher.Builder.DEFAULT_REQUEST_BYTES_THRESHOLD, builder.batchingSettings.getRequestByteThreshold().longValue()); assertEquals( - Publisher.Builder.DEFAULT_DELAY_THRESHOLD, builder.batchingSettings.getDelayThreshold()); + Publisher.Builder.DEFAULT_DELAY_THRESHOLD, + builder.batchingSettings.getDelayThresholdDuration()); assertEquals( Publisher.Builder.DEFAULT_ELEMENT_COUNT_THRESHOLD, builder.batchingSettings.getElementCountThreshold().longValue()); @@ -863,8 +859,7 @@ public void testBuilderInvalidArguments() { } try { builder.setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setRequestByteThreshold(null) .build()); fail("Should have thrown an NullPointerException"); @@ -873,8 +868,7 @@ public void testBuilderInvalidArguments() { } try { builder.setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setRequestByteThreshold(0L) .build()); fail("Should have thrown an IllegalArgumentException"); @@ -883,8 +877,7 @@ public void testBuilderInvalidArguments() { } try { builder.setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setRequestByteThreshold(-1L) .build()); fail("Should have thrown an IllegalArgumentException"); @@ -893,9 +886,8 @@ public void testBuilderInvalidArguments() { } builder.setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() - .setDelayThreshold(Duration.ofMillis(1)) + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() + .setDelayThresholdDuration(Duration.ofMillis(1)) .build()); try { builder.setBatchingSettings( @@ -906,9 +898,8 @@ public void testBuilderInvalidArguments() { } try { builder.setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() - .setDelayThreshold(Duration.ofMillis(-1)) + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() + .setDelayThresholdDuration(Duration.ofMillis(-1)) .build()); fail("Should have thrown an IllegalArgumentException"); } catch (IllegalArgumentException expected) { @@ -916,14 +907,12 @@ public void testBuilderInvalidArguments() { } builder.setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(1L) .build()); try { builder.setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(null) .build()); fail("Should have thrown an NullPointerException"); @@ -932,8 +921,7 @@ public void testBuilderInvalidArguments() { } try { builder.setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(0L) .build()); fail("Should have thrown an IllegalArgumentException"); @@ -942,8 +930,7 @@ public void testBuilderInvalidArguments() { } try { builder.setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(-1L) .build()); fail("Should have thrown an IllegalArgumentException"); @@ -952,30 +939,26 @@ public void testBuilderInvalidArguments() { } builder.setRetrySettings( - Publisher.Builder.DEFAULT_RETRY_SETTINGS - .toBuilder() - .setInitialRpcTimeout(Publisher.Builder.MIN_RPC_TIMEOUT) + Publisher.Builder.DEFAULT_RETRY_SETTINGS.toBuilder() + .setInitialRpcTimeoutDuration(Publisher.Builder.MIN_RPC_TIMEOUT) .build()); try { builder.setRetrySettings( - Publisher.Builder.DEFAULT_RETRY_SETTINGS - .toBuilder() - .setInitialRpcTimeout(Publisher.Builder.MIN_RPC_TIMEOUT.minusMillis(1)) + Publisher.Builder.DEFAULT_RETRY_SETTINGS.toBuilder() + .setInitialRpcTimeoutDuration(Publisher.Builder.MIN_RPC_TIMEOUT.minusMillis(1)) .build()); fail("Should have thrown an IllegalArgumentException"); } catch (IllegalArgumentException expected) { // Expected } builder.setRetrySettings( - Publisher.Builder.DEFAULT_RETRY_SETTINGS - .toBuilder() - .setTotalTimeout(Publisher.Builder.MIN_TOTAL_TIMEOUT) + Publisher.Builder.DEFAULT_RETRY_SETTINGS.toBuilder() + .setTotalTimeoutDuration(Publisher.Builder.MIN_TOTAL_TIMEOUT) .build()); try { builder.setRetrySettings( - Publisher.Builder.DEFAULT_RETRY_SETTINGS - .toBuilder() - .setTotalTimeout(Publisher.Builder.MIN_TOTAL_TIMEOUT.minusMillis(1)) + Publisher.Builder.DEFAULT_RETRY_SETTINGS.toBuilder() + .setTotalTimeoutDuration(Publisher.Builder.MIN_TOTAL_TIMEOUT.minusMillis(1)) .build()); fail("Should have thrown an IllegalArgumentException"); } catch (IllegalArgumentException expected) { @@ -988,8 +971,7 @@ public void testPartialBatchingSettings() throws Exception { Publisher publisher = getTestPublisherBuilder() .setBatchingSettings( - Publisher.Builder.getDefaultBatchingSettings() - .toBuilder() + Publisher.Builder.getDefaultBatchingSettings().toBuilder() .setRequestByteThreshold(5000L) .build()) .build(); @@ -1001,8 +983,7 @@ public void testPartialBatchingSettings() throws Exception { publisher = getTestPublisherBuilder() .setBatchingSettings( - Publisher.Builder.getDefaultBatchingSettings() - .toBuilder() + Publisher.Builder.getDefaultBatchingSettings().toBuilder() .setElementCountThreshold(500L) .build()) .build(); @@ -1018,9 +999,8 @@ public void testAwaitTermination() throws Exception { getTestPublisherBuilder() .setExecutorProvider(SINGLE_THREAD_EXECUTOR) .setRetrySettings( - Publisher.Builder.DEFAULT_RETRY_SETTINGS - .toBuilder() - .setTotalTimeout(Duration.ofSeconds(10)) + Publisher.Builder.DEFAULT_RETRY_SETTINGS.toBuilder() + .setTotalTimeoutDuration(Duration.ofSeconds(10)) .setMaxAttempts(0) .build()) .build(); @@ -1052,10 +1032,9 @@ public void invalidFlowControlBytes_throwException() throws Exception { Publisher publisher = getTestPublisherBuilder() .setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(1L) - .setDelayThreshold(Duration.ofSeconds(5)) + .setDelayThresholdDuration(Duration.ofSeconds(5)) .setFlowControlSettings( FlowControlSettings.newBuilder() .setLimitExceededBehavior( @@ -1077,10 +1056,9 @@ public void invalidFlowControlElementCount_throwException() throws Exception { Publisher publisher = getTestPublisherBuilder() .setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(1L) - .setDelayThreshold(Duration.ofSeconds(5)) + .setDelayThresholdDuration(Duration.ofSeconds(5)) .setFlowControlSettings( FlowControlSettings.newBuilder() .setLimitExceededBehavior( @@ -1102,10 +1080,9 @@ public void testMessageExceedsFlowControlLimits_throwException() throws Exceptio getTestPublisherBuilder() .setExecutorProvider(SINGLE_THREAD_EXECUTOR) .setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(1L) - .setDelayThreshold(Duration.ofSeconds(5)) + .setDelayThresholdDuration(Duration.ofSeconds(5)) .setFlowControlSettings( FlowControlSettings.newBuilder() .setLimitExceededBehavior(FlowController.LimitExceededBehavior.Block) @@ -1130,16 +1107,15 @@ public void testPublishFlowControl_throwException() throws Exception { getTestPublisherBuilder() .setExecutorProvider(SINGLE_THREAD_EXECUTOR) .setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(1L) - .setDelayThreshold(Duration.ofSeconds(5)) + .setDelayThresholdDuration(Duration.ofSeconds(5)) .setFlowControlSettings( FlowControlSettings.newBuilder() .setLimitExceededBehavior( FlowController.LimitExceededBehavior.ThrowException) .setMaxOutstandingElementCount(1L) - .setMaxOutstandingRequestBytes(10L) + .setMaxOutstandingRequestBytes(13L) .build()) .build()) .build(); @@ -1172,16 +1148,15 @@ public void testPublishFlowControl_throwExceptionWithOrderingKey() throws Except getTestPublisherBuilder() .setExecutorProvider(SINGLE_THREAD_EXECUTOR) .setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(1L) - .setDelayThreshold(Duration.ofSeconds(5)) + .setDelayThresholdDuration(Duration.ofSeconds(5)) .setFlowControlSettings( FlowControlSettings.newBuilder() .setLimitExceededBehavior( FlowController.LimitExceededBehavior.ThrowException) .setMaxOutstandingElementCount(1L) - .setMaxOutstandingRequestBytes(10L) + .setMaxOutstandingRequestBytes(13L) .build()) .build()) .setEnableMessageOrdering(true) @@ -1219,15 +1194,14 @@ public void testPublishFlowControl_block() throws Exception { getTestPublisherBuilder() .setExecutorProvider(SINGLE_THREAD_EXECUTOR) .setBatchingSettings( - Publisher.Builder.DEFAULT_BATCHING_SETTINGS - .toBuilder() + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() .setElementCountThreshold(1L) - .setDelayThreshold(Duration.ofSeconds(5)) + .setDelayThresholdDuration(Duration.ofSeconds(5)) .setFlowControlSettings( FlowControlSettings.newBuilder() .setLimitExceededBehavior(FlowController.LimitExceededBehavior.Block) .setMaxOutstandingElementCount(2L) - .setMaxOutstandingRequestBytes(10L) + .setMaxOutstandingRequestBytes(13L) .build()) .build()) .build(); @@ -1304,6 +1278,70 @@ public void run() { publish4Completed.await(); } + @Test + public void testPublishOpenTelemetryTracing() throws Exception { + OpenTelemetryRule openTelemetryTesting = OpenTelemetryRule.create(); + OpenTelemetry openTelemetry = openTelemetryTesting.getOpenTelemetry(); + final Publisher publisher = + getTestPublisherBuilder() + .setBatchingSettings( + Publisher.Builder.DEFAULT_BATCHING_SETTINGS.toBuilder() + .setElementCountThreshold(1L) + .setDelayThresholdDuration(Duration.ofSeconds(5)) + .setFlowControlSettings( + FlowControlSettings.newBuilder() + .setLimitExceededBehavior(FlowController.LimitExceededBehavior.Block) + .setMaxOutstandingElementCount(2L) + .setMaxOutstandingRequestBytes(100L) + .build()) + .build()) + .setOpenTelemetry(openTelemetry) + .setEnableOpenTelemetryTracing(true) + .build(); + + testPublisherServiceImpl.addPublishResponse(PublishResponse.newBuilder().addMessageIds("1")); + ApiFuture publishFuture = sendTestMessage(publisher, "A"); + fakeExecutor.advanceTime(Duration.ofSeconds(5)); + assertEquals("1", publishFuture.get()); + fakeExecutor.advanceTime(Duration.ofSeconds(5)); + shutdownTestPublisher(publisher); + + List allSpans = openTelemetryTesting.getSpans(); + assertEquals(4, allSpans.size()); + SpanData flowControlSpanData = allSpans.get(0); + SpanData batchingSpanData = allSpans.get(1); + SpanData publishRpcSpanData = allSpans.get(2); + SpanData publisherSpanData = allSpans.get(3); + + SpanDataAssert flowControlSpanDataAssert = + OpenTelemetryAssertions.assertThat(flowControlSpanData); + flowControlSpanDataAssert + .hasName(PUBLISH_FLOW_CONTROL_SPAN_NAME) + .hasParent(publisherSpanData) + .hasEnded(); + + SpanDataAssert batchingSpanDataAssert = OpenTelemetryAssertions.assertThat(batchingSpanData); + batchingSpanDataAssert + .hasName(PUBLISH_BATCHING_SPAN_NAME) + .hasParent(publisherSpanData) + .hasEnded(); + + SpanDataAssert publishRpcSpanDataAssert = + OpenTelemetryAssertions.assertThat(publishRpcSpanData); + publishRpcSpanDataAssert + .hasName(PUBLISH_RPC_SPAN_NAME) + .hasKind(SpanKind.CLIENT) + .hasNoParent() + .hasEnded(); + + SpanDataAssert publishSpanDataAssert = OpenTelemetryAssertions.assertThat(publisherSpanData); + publishSpanDataAssert + .hasName(PUBLISHER_SPAN_NAME) + .hasKind(SpanKind.PRODUCER) + .hasNoParent() + .hasEnded(); + } + private Builder getTestPublisherBuilder() { return Publisher.newBuilder(TEST_TOPIC) .setExecutorProvider(FixedExecutorProvider.create(fakeExecutor)) diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SchemaServiceClientHttpJsonTest.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SchemaServiceClientHttpJsonTest.java index 964b25a6e..a8fcaedc6 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SchemaServiceClientHttpJsonTest.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SchemaServiceClientHttpJsonTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SchemaServiceClientTest.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SchemaServiceClientTest.java index 7d216444b..7e354bf49 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SchemaServiceClientTest.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SchemaServiceClientTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/StreamingSubscriberConnectionTest.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/StreamingSubscriberConnectionTest.java index 95f8897a4..6979963a5 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/StreamingSubscriberConnectionTest.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/StreamingSubscriberConnectionTest.java @@ -17,6 +17,8 @@ package com.google.cloud.pubsub.v1; import static org.junit.Assert.*; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.Mockito.*; import com.google.api.core.ApiFutures; @@ -24,24 +26,37 @@ import com.google.api.gax.batching.FlowControlSettings; import com.google.api.gax.batching.FlowController; import com.google.api.gax.core.Distribution; +import com.google.api.gax.grpc.GrpcStatusCode; +import com.google.api.gax.rpc.ApiException; +import com.google.api.gax.rpc.BidiStreamingCallable; +import com.google.api.gax.rpc.ClientStream; +import com.google.api.gax.rpc.ResponseObserver; import com.google.api.gax.rpc.StatusCode; +import com.google.api.gax.rpc.StreamController; import com.google.cloud.pubsub.v1.stub.SubscriberStub; import com.google.common.collect.Lists; import com.google.protobuf.Any; import com.google.pubsub.v1.AcknowledgeRequest; import com.google.pubsub.v1.ModifyAckDeadlineRequest; +import com.google.pubsub.v1.StreamingPullRequest; +import com.google.pubsub.v1.StreamingPullResponse; import com.google.rpc.ErrorInfo; import com.google.rpc.Status; +import io.grpc.Status.Code; import io.grpc.StatusException; import io.grpc.protobuf.StatusProto; +import java.time.Duration; import java.util.*; import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import java.util.concurrent.atomic.AtomicInteger; import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TestName; -import org.threeten.bp.Duration; +import org.mockito.ArgumentCaptor; /** Tests for {@link StreamingSubscriberConnection}. */ public class StreamingSubscriberConnectionTest { @@ -52,7 +67,8 @@ public class StreamingSubscriberConnectionTest { private FakeClock clock; private SubscriberStub mockSubscriberStub; - private static final String MOCK_SUBSCRIPTION_NAME = "MOCK-SUBSCRIPTION"; + private static final String MOCK_SUBSCRIPTION_NAME = + "projects/MOCK-PROJECT/subscriptions/MOCK-SUBSCRIPTION"; private static final String MOCK_ACK_ID_SUCCESS = "MOCK-ACK-ID-SUCCESS"; private static final String MOCK_ACK_ID_SUCCESS_2 = "MOCK-ACK-ID-SUCCESS-2"; private static final String MOCK_ACK_ID_NACK_SUCCESS = "MOCK-ACK-ID-NACK-SUCCESS"; @@ -64,6 +80,8 @@ public class StreamingSubscriberConnectionTest { "MOCK-ACK-ID-TRANSIENT-FAILURE-SERVICE-UNAVAILABLE-THEN-SUCCESS"; private static final String MOCK_ACK_ID_INVALID = "MOCK-ACK-ID-INVALID"; private static final String MOCK_ACK_ID_OTHER = "MOCK-ACK-ID-OTHER"; + private static final String MOCK_ACK_ID_NO_METADATA_MAP_INTERNAL_ERROR_THEN_PERMISSION_DENIED = + "MOCK-ACK-ID-NO-METADATA-MAP-INTERNAL-ERROR"; private static final String PERMANENT_FAILURE_INVALID_ACK_ID = "PERMANENT_FAILURE_INVALID_ACK_ID"; private static final String TRANSIENT_FAILURE_UNORDERED_ACK_ID = @@ -76,6 +94,10 @@ public class StreamingSubscriberConnectionTest { private static Duration ACK_EXPIRATION_PADDING_DEFAULT_DURATION = Duration.ofSeconds(10); private static int MAX_DURATION_PER_ACK_EXTENSION_DEFAULT_SECONDS = 10; + private static final long KEEP_ALIVE_SUPPORT_VERSION = 1; + private static final Duration CLIENT_PING_INTERVAL = Duration.ofSeconds(30); + private static final Duration MAX_ACK_EXTENSION_PERIOD = Duration.ofMinutes(60); + @Before public void setUp() { systemExecutor = new FakeScheduledExecutorService(); @@ -99,6 +121,110 @@ public void testSetupAndTeardown() { streamingSubscriberConnection.awaitTerminated(); } + @Test + public void testRunShutdown_TimeoutMet() throws Exception { + SubscriberShutdownSettings shutdownSettings = + SubscriberShutdownSettings.newBuilder().setTimeout(Duration.ofSeconds(10)).build(); + StreamingSubscriberConnection.Builder builder = + StreamingSubscriberConnection.newBuilder(mock(MessageReceiverWithAckResponse.class)); + builder.setSubscriberShutdownSettings(shutdownSettings); + StreamingSubscriberConnection streamingSubscriberConnection = + getStreamingSubscriberConnectionFromBuilder(builder); + + streamingSubscriberConnection.startAsync().awaitRunning(); + streamingSubscriberConnection.stopAsync(); + + // Should terminate quickly as there are no outstanding messages. + streamingSubscriberConnection.awaitTerminated(1, TimeUnit.SECONDS); + } + + @Test + public void testRunShutdown_TimeoutExceeded() throws Exception { + final SettableApiFuture ackFuture = SettableApiFuture.create(); + when(mockSubscriberStub.acknowledgeCallable().futureCall(any(AcknowledgeRequest.class))) + .thenReturn(ackFuture); + + SubscriberShutdownSettings shutdownSettings = + SubscriberShutdownSettings.newBuilder().setTimeout(Duration.ofSeconds(2)).build(); + StreamingSubscriberConnection.Builder builder = + StreamingSubscriberConnection.newBuilder(mock(MessageReceiverWithAckResponse.class)); + StreamingSubscriberConnection streamingSubscriberConnection = + getStreamingSubscriberConnectionFromBuilder(builder, shutdownSettings); + streamingSubscriberConnection.setExactlyOnceDeliveryEnabled(true); + + streamingSubscriberConnection.startAsync().awaitRunning(); + + // Send an ACK that will not complete. + SettableApiFuture messageFuture = SettableApiFuture.create(); + streamingSubscriberConnection.sendAckOperations( + Collections.singletonList( + AckRequestData.newBuilder("ack1").setMessageFuture(messageFuture).build())); + + Thread t = + new Thread( + () -> { + streamingSubscriberConnection.stopAsync(); + }); + t.start(); + + Thread t2 = + new Thread( + () -> { + try { + streamingSubscriberConnection.awaitTerminated(1, TimeUnit.SECONDS); + fail("Should have timed out"); + } catch (TimeoutException e) { + // expected + } + }); + t2.start(); + t2.join(); + + // Advance the clock past the shutdown timeout. + clock.advance(3, TimeUnit.SECONDS); + t.join(); + + // Now it should terminate. + streamingSubscriberConnection.awaitTerminated(); + assertFalse(streamingSubscriberConnection.isRunning()); + assertFalse(messageFuture.isDone()); + } + + @Test + public void testAckDuringNackImmediatelyShutdown() throws Exception { + SubscriberShutdownSettings shutdownSettings = + SubscriberShutdownSettings.newBuilder() + .setMode(SubscriberShutdownSettings.ShutdownMode.NACK_IMMEDIATELY) + .build(); + + MessageDispatcher mockMessageDispatcher = mock(MessageDispatcher.class); + when(mockMessageDispatcher.getNackImmediatelyShutdownInProgress()).thenReturn(true); + + StreamingSubscriberConnection.Builder builder = + StreamingSubscriberConnection.newBuilder(mock(MessageReceiverWithAckResponse.class)); + StreamingSubscriberConnection streamingSubscriberConnection = + getStreamingSubscriberConnectionFromBuilder(builder, shutdownSettings); + + // Use reflection to set the mock message dispatcher + java.lang.reflect.Field dispatcherField = + StreamingSubscriberConnection.class.getDeclaredField("messageDispatcher"); + dispatcherField.setAccessible(true); + dispatcherField.set(streamingSubscriberConnection, mockMessageDispatcher); + + streamingSubscriberConnection.setExactlyOnceDeliveryEnabled(true); + + SettableApiFuture messageFuture = SettableApiFuture.create(); + AckRequestData ackRequestData = + AckRequestData.newBuilder("ack1").setMessageFuture(messageFuture).build(); + + when(mockSubscriberStub.acknowledgeCallable().futureCall(any())) + .thenReturn(ApiFutures.immediateFuture(null)); + streamingSubscriberConnection.sendAckOperations(Collections.singletonList(ackRequestData)); + + verify(mockMessageDispatcher, times(1)).notifyAckFailed(ackRequestData); + assertEquals(AckResponse.OTHER, messageFuture.get()); + } + @Test public void testSendAckOperationsExactlyOnceDisabledNoMessageFutures() { // Setup mocks @@ -397,6 +523,62 @@ public void testSendAckOperationsExactlyOnceEnabledMessageFuturesAcks() { } } + @Test + public void testSendAckOperationsExactlyOnceEnabledErrorWithEmptyMetadataMap() { + // Setup + + // The list(s) of ackIds allows us to mock the grpc response(s) + List ackIdsRequest = new ArrayList<>(); + List ackRequestDataList = new ArrayList(); + + // Initial) INTERNAL error, retryable + // Retry) PERMISSION_DENIED, not retryable + SettableApiFuture messageInternalErrorThenPermissionDenied = + SettableApiFuture.create(); + ackRequestDataList.add( + AckRequestData.newBuilder(MOCK_ACK_ID_NO_METADATA_MAP_INTERNAL_ERROR_THEN_PERMISSION_DENIED) + .setMessageFuture(messageInternalErrorThenPermissionDenied) + .build()); + ackIdsRequest.add(MOCK_ACK_ID_NO_METADATA_MAP_INTERNAL_ERROR_THEN_PERMISSION_DENIED); + + // Build our request so we can set our mock responses + AcknowledgeRequest acknowledgeRequest = + AcknowledgeRequest.newBuilder() + .setSubscription(MOCK_SUBSCRIPTION_NAME) + .addAllAckIds(ackIdsRequest) + .build(); + + ApiException internalError = + new ApiException("internal", null, GrpcStatusCode.of(Code.INTERNAL), true); + ApiException permissionDeniedError = + new ApiException( + "permission_denied", null, GrpcStatusCode.of(Code.PERMISSION_DENIED), false); + // Set mock grpc responses + when(mockSubscriberStub.acknowledgeCallable().futureCall(acknowledgeRequest)) + .thenReturn(ApiFutures.immediateFailedFuture(internalError)) + .thenReturn(ApiFutures.immediateFailedFuture(permissionDeniedError)); + + // Instantiate class and run operation(s) + StreamingSubscriberConnection streamingSubscriberConnection = + getStreamingSubscriberConnection(true); + + streamingSubscriberConnection.sendAckOperations(ackRequestDataList); + + // Backoff + systemExecutor.advanceTime(Duration.ofMillis(200)); + + // Assert expected behavior; + verify(mockSubscriberStub.acknowledgeCallable(), times(2)).futureCall(acknowledgeRequest); + verify(mockSubscriberStub, never()).modifyAckDeadlineCallable(); + + try { + assertEquals(AckResponse.PERMISSION_DENIED, messageInternalErrorThenPermissionDenied.get()); + } catch (InterruptedException | ExecutionException e) { + // In case something goes wrong retrieving the futures + throw new AssertionError(); + } + } + @Test public void testSetFailureResponseOutstandingMessages() { // Setup @@ -500,6 +682,155 @@ public void testMaxPerRequestChanges() { } } + @Test + public void testClientPinger_pingSent() { + BidiStreamingCallable mockStreamingCallable = + mock(BidiStreamingCallable.class); + ClientStream mockClientStream = mock(ClientStream.class); + when(mockSubscriberStub.streamingPullCallable()).thenReturn(mockStreamingCallable); + when(mockStreamingCallable.splitCall(any(ResponseObserver.class), any())) + .thenReturn(mockClientStream); + + StreamingSubscriberConnection streamingSubscriberConnection = + getKeepaliveStreamingSubscriberConnection(); + + streamingSubscriberConnection.startAsync(); + streamingSubscriberConnection.awaitRunning(); + + systemExecutor.advanceTime(CLIENT_PING_INTERVAL); + systemExecutor.advanceTime(CLIENT_PING_INTERVAL); + + ArgumentCaptor requestCaptor = + ArgumentCaptor.forClass(StreamingPullRequest.class); + // 1 initial request + 3 pings + verify(mockClientStream, times(4)).send(requestCaptor.capture()); + List requests = requestCaptor.getAllValues(); + + StreamingPullRequest initialRequest = requests.get(0); + assertEquals(MOCK_SUBSCRIPTION_NAME, initialRequest.getSubscription()); + assertEquals(KEEP_ALIVE_SUPPORT_VERSION, initialRequest.getProtocolVersion()); + assertEquals(0, initialRequest.getMaxOutstandingMessages()); + + StreamingPullRequest firstPing = requests.get(1); + assertEquals(StreamingPullRequest.getDefaultInstance(), firstPing); + + StreamingPullRequest secondPing = requests.get(2); + assertEquals(StreamingPullRequest.getDefaultInstance(), secondPing); + + streamingSubscriberConnection.stopAsync(); + streamingSubscriberConnection.awaitTerminated(); + + // No more pings + systemExecutor.advanceTime(CLIENT_PING_INTERVAL); + verify(mockClientStream, times(4)).send(any(StreamingPullRequest.class)); + } + + @Test + public void testClientPinger_pingsNotSentWhenDisabled() { + BidiStreamingCallable mockStreamingCallable = + mock(BidiStreamingCallable.class); + ClientStream mockClientStream = mock(ClientStream.class); + when(mockSubscriberStub.streamingPullCallable()).thenReturn(mockStreamingCallable); + when(mockStreamingCallable.splitCall(any(ResponseObserver.class), any())) + .thenReturn(mockClientStream); + + StreamingSubscriberConnection streamingSubscriberConnection = + getStreamingSubscriberConnection(false); // keepalive disabled + + streamingSubscriberConnection.startAsync(); + streamingSubscriberConnection.awaitRunning(); + + // Initial request. + verify(mockClientStream, times(1)).send(any(StreamingPullRequest.class)); + + // No pings + systemExecutor.advanceTime(CLIENT_PING_INTERVAL); + systemExecutor.advanceTime(CLIENT_PING_INTERVAL); + + verify(mockClientStream, times(1)).send(any(StreamingPullRequest.class)); + } + + @Test + public void testServerMonitor_timesOut() { + BidiStreamingCallable mockStreamingCallable = + mock(BidiStreamingCallable.class); + ClientStream mockClientStream = mock(ClientStream.class); + ArgumentCaptor> observerCaptor = + ArgumentCaptor.forClass(ResponseObserver.class); + when(mockSubscriberStub.streamingPullCallable()).thenReturn(mockStreamingCallable); + when(mockStreamingCallable.splitCall(observerCaptor.capture(), any())) + .thenReturn(mockClientStream); + + // fail pings after the first one to ensure timeout occurs + AtomicInteger pingCount = new AtomicInteger(0); + doAnswer( + (invocation) -> { + StreamingPullRequest req = invocation.getArgument(0); + // Pings are empty requests + if (req.getSubscription().isEmpty()) { + if (pingCount.incrementAndGet() > 2) { // allow first 2 pings + throw new RuntimeException("ping failed"); + } + } + return null; + }) + .when(mockClientStream) + .send(any(StreamingPullRequest.class)); + + StreamingSubscriberConnection streamingSubscriberConnection = + getKeepaliveStreamingSubscriberConnection(); + + streamingSubscriberConnection.startAsync(); + streamingSubscriberConnection.awaitRunning(); + + ResponseObserver observer = observerCaptor.getValue(); + StreamController mockController = mock(StreamController.class); + observer.onStart(mockController); + + systemExecutor.advanceTime(CLIENT_PING_INTERVAL); + verify(mockClientStream, never()).closeSendWithError(any(Exception.class)); + + systemExecutor.advanceTime(CLIENT_PING_INTERVAL); + ArgumentCaptor exceptionCaptor = ArgumentCaptor.forClass(Exception.class); + verify(mockClientStream, times(1)).closeSendWithError(exceptionCaptor.capture()); + StatusException exception = (StatusException) exceptionCaptor.getValue(); + assertEquals(Code.UNAVAILABLE, exception.getStatus().getCode()); + assertEquals("Keepalive timeout with server", exception.getStatus().getDescription()); + } + + @Test + public void testServerMonitor_doesNotTimeOutIfResponseReceived() { + BidiStreamingCallable mockStreamingCallable = + mock(BidiStreamingCallable.class); + ClientStream mockClientStream = mock(ClientStream.class); + ArgumentCaptor> observerCaptor = + ArgumentCaptor.forClass(ResponseObserver.class); + when(mockSubscriberStub.streamingPullCallable()).thenReturn(mockStreamingCallable); + when(mockStreamingCallable.splitCall(observerCaptor.capture(), any())) + .thenReturn(mockClientStream); + + StreamingSubscriberConnection streamingSubscriberConnection = + getKeepaliveStreamingSubscriberConnection(); + + streamingSubscriberConnection.startAsync(); + streamingSubscriberConnection.awaitRunning(); + + ResponseObserver observer = observerCaptor.getValue(); + StreamController mockController = mock(StreamController.class); + observer.onStart(mockController); + + // t=30s: ping sent. + // t=40s: response received. + // t=45s: monitor check. lastPing=30, lastResponse=40. lastPing>lastResponse is false -> no + // timeout. + systemExecutor.advanceTime(Duration.ofSeconds(40)); + observer.onResponse(StreamingPullResponse.getDefaultInstance()); + systemExecutor.advanceTime(Duration.ofSeconds(20)); // to t=60s + observer.onResponse(StreamingPullResponse.getDefaultInstance()); + + verify(mockClientStream, never()).closeSendWithError(any(Exception.class)); + } + private StreamingSubscriberConnection getStreamingSubscriberConnection( boolean exactlyOnceDeliveryEnabled) { StreamingSubscriberConnection streamingSubscriberConnection = @@ -512,8 +843,39 @@ private StreamingSubscriberConnection getStreamingSubscriberConnection( return streamingSubscriberConnection; } + private StreamingSubscriberConnection getKeepaliveStreamingSubscriberConnection() { + StreamingSubscriberConnection streamingSubscriberConnection = + getStreamingSubscriberConnectionFromBuilder( + StreamingSubscriberConnection.newBuilder(mock(MessageReceiverWithAckResponse.class)) + .setProtocolVersion(KEEP_ALIVE_SUPPORT_VERSION)); + + return streamingSubscriberConnection; + } + private StreamingSubscriberConnection getStreamingSubscriberConnectionFromBuilder( StreamingSubscriberConnection.Builder builder) { + return builder + .setSubscription(MOCK_SUBSCRIPTION_NAME) + .setAckExpirationPadding(ACK_EXPIRATION_PADDING_DEFAULT_DURATION) + .setMaxAckExtensionPeriod(MAX_ACK_EXTENSION_PERIOD) + .setAckLatencyDistribution(mock(Distribution.class)) + .setSubscriberStub(mockSubscriberStub) + .setChannelAffinity(0) + .setFlowControlSettings(mock(FlowControlSettings.class)) + .setFlowController(mock(FlowController.class)) + .setExecutor(executor) + .setSystemExecutor(systemExecutor) + .setClock(clock) + .setMinDurationPerAckExtension(Subscriber.DEFAULT_MIN_ACK_DEADLINE_EXTENSION) + .setMinDurationPerAckExtensionDefaultUsed(true) + .setMaxDurationPerAckExtension(Subscriber.DEFAULT_MAX_ACK_DEADLINE_EXTENSION) + .setMaxDurationPerAckExtensionDefaultUsed(true) + .setSubscriberShutdownSettings(SubscriberShutdownSettings.newBuilder().build()) + .build(); + } + + private StreamingSubscriberConnection getStreamingSubscriberConnectionFromBuilder( + StreamingSubscriberConnection.Builder builder, SubscriberShutdownSettings shutdownSettings) { return builder .setSubscription(MOCK_SUBSCRIPTION_NAME) .setAckExpirationPadding(ACK_EXPIRATION_PADDING_DEFAULT_DURATION) @@ -529,6 +891,7 @@ private StreamingSubscriberConnection getStreamingSubscriberConnectionFromBuilde .setMinDurationPerAckExtensionDefaultUsed(true) .setMaxDurationPerAckExtension(Subscriber.DEFAULT_MAX_ACK_DEADLINE_EXTENSION) .setMaxDurationPerAckExtensionDefaultUsed(true) + .setSubscriberShutdownSettings(shutdownSettings) .build(); } diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SubscriberShutdownSettingsTest.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SubscriberShutdownSettingsTest.java new file mode 100644 index 000000000..f82937582 --- /dev/null +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SubscriberShutdownSettingsTest.java @@ -0,0 +1,100 @@ +/* + * 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. + */ + +package com.google.cloud.pubsub.v1; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import com.google.cloud.pubsub.v1.SubscriberShutdownSettings.ShutdownMode; +import java.time.Duration; +import org.junit.Test; + +public class SubscriberShutdownSettingsTest { + + @Test + public void testDefaultSettings() { + SubscriberShutdownSettings settings = SubscriberShutdownSettings.newBuilder().build(); + + assertNotNull(settings); + assertEquals(ShutdownMode.WAIT_FOR_PROCESSING, settings.getMode()); + assertTrue(settings.getTimeout().isNegative()); // Indefinite timeout + } + + @Test + public void testWaitForProcessingWithCustomTimeout() { + Duration customTimeout = Duration.ofSeconds(30); + SubscriberShutdownSettings settings = + SubscriberShutdownSettings.newBuilder() + .setMode(ShutdownMode.WAIT_FOR_PROCESSING) + .setTimeout(customTimeout) + .build(); + + assertNotNull(settings); + assertEquals(ShutdownMode.WAIT_FOR_PROCESSING, settings.getMode()); + assertEquals(customTimeout, settings.getTimeout()); + } + + @Test + public void testNackImmediatelyWithDefaultTimeout() { + SubscriberShutdownSettings settings = + SubscriberShutdownSettings.newBuilder().setMode(ShutdownMode.NACK_IMMEDIATELY).build(); + + assertNotNull(settings); + assertEquals(ShutdownMode.NACK_IMMEDIATELY, settings.getMode()); + assertTrue(settings.getTimeout().isNegative()); // Indefinite timeout + } + + @Test + public void testNackImmediatelyWithCustomTimeout() { + Duration customTimeout = Duration.ofSeconds(10); + SubscriberShutdownSettings settings = + SubscriberShutdownSettings.newBuilder() + .setMode(ShutdownMode.NACK_IMMEDIATELY) + .setTimeout(customTimeout) + .build(); + + assertNotNull(settings); + assertEquals(ShutdownMode.NACK_IMMEDIATELY, settings.getMode()); + assertEquals(customTimeout, settings.getTimeout()); + } + + @Test + public void testZeroTimeout() { + Duration zeroTimeout = Duration.ZERO; + SubscriberShutdownSettings settings = + SubscriberShutdownSettings.newBuilder() + .setMode(ShutdownMode.WAIT_FOR_PROCESSING) + .setTimeout(zeroTimeout) + .build(); + + assertNotNull(settings); + assertEquals(ShutdownMode.WAIT_FOR_PROCESSING, settings.getMode()); + assertEquals(zeroTimeout, settings.getTimeout()); + assertTrue(settings.getTimeout().isZero()); + } + + @Test(expected = NullPointerException.class) + public void testNullModeThrowsException() { + SubscriberShutdownSettings.newBuilder().setMode(null).build(); + } + + @Test(expected = NullPointerException.class) + public void testNullTimeoutThrowsException() { + SubscriberShutdownSettings.newBuilder().setTimeout(null).build(); + } +} diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SubscriberTest.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SubscriberTest.java index 612c244fe..649769d1c 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SubscriberTest.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SubscriberTest.java @@ -35,13 +35,13 @@ import io.grpc.StatusException; import io.grpc.inprocess.InProcessChannelBuilder; import io.grpc.inprocess.InProcessServerBuilder; +import java.time.Duration; import java.util.concurrent.*; import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TestName; -import org.threeten.bp.Duration; /** Tests for {@link Subscriber}. */ public class SubscriberTest { @@ -241,7 +241,8 @@ public void testStreamAckDeadlineIsSetCorrectly() throws Exception { Subscriber subscriber = startSubscriber( getTestSubscriberBuilder(testReceiver) - .setMaxDurationPerAckExtension(Duration.ofSeconds(maxDurationPerAckExtension))); + .setMaxDurationPerAckExtensionDuration( + Duration.ofSeconds(maxDurationPerAckExtension))); assertEquals( expectedChannelCount, fakeSubscriberServiceImpl.waitForOpenedStreams(expectedChannelCount)); assertEquals( @@ -255,7 +256,8 @@ public void testStreamAckDeadlineIsSetCorrectly() throws Exception { subscriber = startSubscriber( getTestSubscriberBuilder(testReceiver) - .setMaxDurationPerAckExtension(Duration.ofSeconds(maxDurationPerAckExtension))); + .setMaxDurationPerAckExtensionDuration( + Duration.ofSeconds(maxDurationPerAckExtension))); assertEquals( expectedChannelCount, fakeSubscriberServiceImpl.waitForOpenedStreams(expectedChannelCount)); assertEquals( @@ -269,7 +271,8 @@ public void testStreamAckDeadlineIsSetCorrectly() throws Exception { subscriber = startSubscriber( getTestSubscriberBuilder(testReceiver) - .setMaxDurationPerAckExtension(Duration.ofSeconds(maxDurationPerAckExtension))); + .setMaxDurationPerAckExtensionDuration( + Duration.ofSeconds(maxDurationPerAckExtension))); assertEquals( expectedChannelCount, fakeSubscriberServiceImpl.waitForOpenedStreams(expectedChannelCount)); assertEquals( @@ -294,8 +297,7 @@ public void testPartialFlowControlSettings() throws Exception { Subscriber subscriber = getTestSubscriberBuilder(testReceiver) .setFlowControlSettings( - Subscriber.Builder.DEFAULT_FLOW_CONTROL_SETTINGS - .toBuilder() + Subscriber.Builder.DEFAULT_FLOW_CONTROL_SETTINGS.toBuilder() .setMaxOutstandingElementCount(500L) .build()) .build(); @@ -307,8 +309,7 @@ public void testPartialFlowControlSettings() throws Exception { subscriber = getTestSubscriberBuilder(testReceiver) .setFlowControlSettings( - Subscriber.Builder.DEFAULT_FLOW_CONTROL_SETTINGS - .toBuilder() + Subscriber.Builder.DEFAULT_FLOW_CONTROL_SETTINGS.toBuilder() .setMaxOutstandingRequestBytes(5_000_000_000L) .build()) .build(); @@ -319,6 +320,104 @@ public void testPartialFlowControlSettings() throws Exception { Subscriber.Builder.DEFAULT_FLOW_CONTROL_SETTINGS.getMaxOutstandingElementCount()); } + @Test + public void testShutdown_waitForProcessing_indefinite() throws Exception { + final CountDownLatch messageReceived = new CountDownLatch(1); + final AckReplyConsumer[] consumer = new AckReplyConsumer[1]; + + MessageReceiver receiver = + new MessageReceiver() { + @Override + public void receiveMessage(PubsubMessage message, AckReplyConsumer c) { + consumer[0] = c; + messageReceived.countDown(); + } + }; + + Subscriber subscriber = + startSubscriber( + getTestSubscriberBuilder(receiver) + .setSubscriberShutdownSettings( + SubscriberShutdownSettings.newBuilder() + .setMode(SubscriberShutdownSettings.ShutdownMode.WAIT_FOR_PROCESSING) + .setTimeout(Duration.ofSeconds(-1)) + .build())); + + // Send a message and wait for it to be received. + fakeSubscriberServiceImpl.sendMessages(1); + messageReceived.await(10, TimeUnit.SECONDS); + + subscriber.stopAsync(); + + try { + subscriber.awaitTerminated(1, TimeUnit.SECONDS); + fail("Subscriber should not have terminated yet."); + } catch (TimeoutException e) { + // Expected + } + + // Now, ack the message, which should allow the subscriber to terminate. + consumer[0].ack(); + subscriber.awaitTerminated(10, TimeUnit.SECONDS); + } + + @Test + public void testShutdown_waitForProcessing_withTimeout_success() throws Exception { + Subscriber subscriber = + startSubscriber( + getTestSubscriberBuilder(testReceiver) + .setSubscriberShutdownSettings( + SubscriberShutdownSettings.newBuilder() + .setMode(SubscriberShutdownSettings.ShutdownMode.WAIT_FOR_PROCESSING) + .setTimeout(Duration.ofSeconds(10)) + .build())); + subscriber.stopAsync(); + fakeExecutor.advanceTime(Duration.ofSeconds(5)); + subscriber.awaitTerminated(1, TimeUnit.SECONDS); // Should terminate quickly now + } + + @Test + public void testShutdown_waitForProcessing_withTimeout_failure() throws Exception { + Subscriber subscriber = + startSubscriber( + getTestSubscriberBuilder(testReceiver) + .setSubscriberShutdownSettings( + SubscriberShutdownSettings.newBuilder() + .setMode(SubscriberShutdownSettings.ShutdownMode.WAIT_FOR_PROCESSING) + .setTimeout(Duration.ofSeconds(5)) + .build())); + subscriber.stopAsync(); + fakeExecutor.advanceTime(Duration.ofSeconds(6)); + subscriber.awaitTerminated(1, TimeUnit.SECONDS); // Should have timed out and terminated + } + + @Test + public void testShutdown_waitForProcessing_zeroTimeout() throws Exception { + Subscriber subscriber = + startSubscriber( + getTestSubscriberBuilder(testReceiver) + .setSubscriberShutdownSettings( + SubscriberShutdownSettings.newBuilder() + .setMode(SubscriberShutdownSettings.ShutdownMode.WAIT_FOR_PROCESSING) + .setTimeout(Duration.ZERO) + .build())); + subscriber.stopAsync(); + subscriber.awaitTerminated(1, TimeUnit.SECONDS); // Should terminate almost immediately + } + + @Test + public void testShutdown_nackImmediately() throws Exception { + Subscriber subscriber = + startSubscriber( + getTestSubscriberBuilder(testReceiver) + .setSubscriberShutdownSettings( + SubscriberShutdownSettings.newBuilder() + .setMode(SubscriberShutdownSettings.ShutdownMode.NACK_IMMEDIATELY) + .build())); + subscriber.stopAsync(); + subscriber.awaitTerminated(1, TimeUnit.SECONDS); // Should terminate almost immediately + } + private Subscriber startSubscriber(Builder testSubscriberBuilder) { Subscriber subscriber = testSubscriberBuilder.build(); subscriber.startAsync().awaitRunning(); diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SubscriptionAdminClientHttpJsonTest.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SubscriptionAdminClientHttpJsonTest.java index 433d1aa6c..860eb95ce 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SubscriptionAdminClientHttpJsonTest.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SubscriptionAdminClientHttpJsonTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -49,6 +49,7 @@ import com.google.pubsub.v1.ExpirationPolicy; import com.google.pubsub.v1.ListSnapshotsResponse; import com.google.pubsub.v1.ListSubscriptionsResponse; +import com.google.pubsub.v1.MessageTransform; import com.google.pubsub.v1.ProjectName; import com.google.pubsub.v1.PullResponse; import com.google.pubsub.v1.PushConfig; @@ -131,6 +132,10 @@ public void createSubscriptionTest() throws Exception { .setDetached(true) .setEnableExactlyOnceDelivery(true) .setTopicMessageRetentionDuration(Duration.newBuilder().build()) + .setAnalyticsHubSubscriptionInfo( + Subscription.AnalyticsHubSubscriptionInfo.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockService.addResponse(expectedResponse); @@ -198,6 +203,10 @@ public void createSubscriptionTest2() throws Exception { .setDetached(true) .setEnableExactlyOnceDelivery(true) .setTopicMessageRetentionDuration(Duration.newBuilder().build()) + .setAnalyticsHubSubscriptionInfo( + Subscription.AnalyticsHubSubscriptionInfo.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockService.addResponse(expectedResponse); @@ -265,6 +274,10 @@ public void createSubscriptionTest3() throws Exception { .setDetached(true) .setEnableExactlyOnceDelivery(true) .setTopicMessageRetentionDuration(Duration.newBuilder().build()) + .setAnalyticsHubSubscriptionInfo( + Subscription.AnalyticsHubSubscriptionInfo.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockService.addResponse(expectedResponse); @@ -332,6 +345,10 @@ public void createSubscriptionTest4() throws Exception { .setDetached(true) .setEnableExactlyOnceDelivery(true) .setTopicMessageRetentionDuration(Duration.newBuilder().build()) + .setAnalyticsHubSubscriptionInfo( + Subscription.AnalyticsHubSubscriptionInfo.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockService.addResponse(expectedResponse); @@ -399,6 +416,10 @@ public void getSubscriptionTest() throws Exception { .setDetached(true) .setEnableExactlyOnceDelivery(true) .setTopicMessageRetentionDuration(Duration.newBuilder().build()) + .setAnalyticsHubSubscriptionInfo( + Subscription.AnalyticsHubSubscriptionInfo.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockService.addResponse(expectedResponse); @@ -459,6 +480,10 @@ public void getSubscriptionTest2() throws Exception { .setDetached(true) .setEnableExactlyOnceDelivery(true) .setTopicMessageRetentionDuration(Duration.newBuilder().build()) + .setAnalyticsHubSubscriptionInfo( + Subscription.AnalyticsHubSubscriptionInfo.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockService.addResponse(expectedResponse); @@ -519,6 +544,10 @@ public void updateSubscriptionTest() throws Exception { .setDetached(true) .setEnableExactlyOnceDelivery(true) .setTopicMessageRetentionDuration(Duration.newBuilder().build()) + .setAnalyticsHubSubscriptionInfo( + Subscription.AnalyticsHubSubscriptionInfo.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockService.addResponse(expectedResponse); @@ -541,6 +570,10 @@ public void updateSubscriptionTest() throws Exception { .setDetached(true) .setEnableExactlyOnceDelivery(true) .setTopicMessageRetentionDuration(Duration.newBuilder().build()) + .setAnalyticsHubSubscriptionInfo( + Subscription.AnalyticsHubSubscriptionInfo.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); FieldMask updateMask = FieldMask.newBuilder().build(); @@ -589,6 +622,10 @@ public void updateSubscriptionExceptionTest() throws Exception { .setDetached(true) .setEnableExactlyOnceDelivery(true) .setTopicMessageRetentionDuration(Duration.newBuilder().build()) + .setAnalyticsHubSubscriptionInfo( + Subscription.AnalyticsHubSubscriptionInfo.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); FieldMask updateMask = FieldMask.newBuilder().build(); client.updateSubscription(subscription, updateMask); diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SubscriptionAdminClientTest.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SubscriptionAdminClientTest.java index c636cdcd3..480e7ceaa 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SubscriptionAdminClientTest.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/SubscriptionAdminClientTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -59,6 +59,7 @@ import com.google.pubsub.v1.ListSnapshotsResponse; import com.google.pubsub.v1.ListSubscriptionsRequest; import com.google.pubsub.v1.ListSubscriptionsResponse; +import com.google.pubsub.v1.MessageTransform; import com.google.pubsub.v1.ModifyAckDeadlineRequest; import com.google.pubsub.v1.ModifyPushConfigRequest; import com.google.pubsub.v1.ProjectName; @@ -157,6 +158,10 @@ public void createSubscriptionTest() throws Exception { .setDetached(true) .setEnableExactlyOnceDelivery(true) .setTopicMessageRetentionDuration(Duration.newBuilder().build()) + .setAnalyticsHubSubscriptionInfo( + Subscription.AnalyticsHubSubscriptionInfo.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockSubscriber.addResponse(expectedResponse); @@ -221,6 +226,10 @@ public void createSubscriptionTest2() throws Exception { .setDetached(true) .setEnableExactlyOnceDelivery(true) .setTopicMessageRetentionDuration(Duration.newBuilder().build()) + .setAnalyticsHubSubscriptionInfo( + Subscription.AnalyticsHubSubscriptionInfo.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockSubscriber.addResponse(expectedResponse); @@ -285,6 +294,10 @@ public void createSubscriptionTest3() throws Exception { .setDetached(true) .setEnableExactlyOnceDelivery(true) .setTopicMessageRetentionDuration(Duration.newBuilder().build()) + .setAnalyticsHubSubscriptionInfo( + Subscription.AnalyticsHubSubscriptionInfo.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockSubscriber.addResponse(expectedResponse); @@ -349,6 +362,10 @@ public void createSubscriptionTest4() throws Exception { .setDetached(true) .setEnableExactlyOnceDelivery(true) .setTopicMessageRetentionDuration(Duration.newBuilder().build()) + .setAnalyticsHubSubscriptionInfo( + Subscription.AnalyticsHubSubscriptionInfo.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockSubscriber.addResponse(expectedResponse); @@ -413,6 +430,10 @@ public void getSubscriptionTest() throws Exception { .setDetached(true) .setEnableExactlyOnceDelivery(true) .setTopicMessageRetentionDuration(Duration.newBuilder().build()) + .setAnalyticsHubSubscriptionInfo( + Subscription.AnalyticsHubSubscriptionInfo.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockSubscriber.addResponse(expectedResponse); @@ -467,6 +488,10 @@ public void getSubscriptionTest2() throws Exception { .setDetached(true) .setEnableExactlyOnceDelivery(true) .setTopicMessageRetentionDuration(Duration.newBuilder().build()) + .setAnalyticsHubSubscriptionInfo( + Subscription.AnalyticsHubSubscriptionInfo.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockSubscriber.addResponse(expectedResponse); @@ -521,6 +546,10 @@ public void updateSubscriptionTest() throws Exception { .setDetached(true) .setEnableExactlyOnceDelivery(true) .setTopicMessageRetentionDuration(Duration.newBuilder().build()) + .setAnalyticsHubSubscriptionInfo( + Subscription.AnalyticsHubSubscriptionInfo.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockSubscriber.addResponse(expectedResponse); @@ -1052,6 +1081,7 @@ public void streamingPullTest() throws Exception { .setClientId("clientId908408390") .setMaxOutstandingMessages(-1315266996) .setMaxOutstandingBytes(-2103098517) + .setProtocolVersion(-1161610703) .build(); MockStreamObserver responseObserver = new MockStreamObserver<>(); @@ -1083,6 +1113,7 @@ public void streamingPullExceptionTest() throws Exception { .setClientId("clientId908408390") .setMaxOutstandingMessages(-1315266996) .setMaxOutstandingBytes(-2103098517) + .setProtocolVersion(-1161610703) .build(); MockStreamObserver responseObserver = new MockStreamObserver<>(); diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/TopicAdminClientHttpJsonTest.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/TopicAdminClientHttpJsonTest.java index c18152b5d..44488abc6 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/TopicAdminClientHttpJsonTest.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/TopicAdminClientHttpJsonTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -43,12 +43,15 @@ import com.google.protobuf.Duration; import com.google.protobuf.Empty; import com.google.protobuf.FieldMask; +import com.google.pubsub.v1.CryptoKeyName; import com.google.pubsub.v1.DetachSubscriptionRequest; import com.google.pubsub.v1.DetachSubscriptionResponse; +import com.google.pubsub.v1.IngestionDataSourceSettings; import com.google.pubsub.v1.ListTopicSnapshotsResponse; import com.google.pubsub.v1.ListTopicSubscriptionsResponse; import com.google.pubsub.v1.ListTopicsResponse; import com.google.pubsub.v1.MessageStoragePolicy; +import com.google.pubsub.v1.MessageTransform; import com.google.pubsub.v1.ProjectName; import com.google.pubsub.v1.PublishResponse; import com.google.pubsub.v1.PubsubMessage; @@ -111,10 +114,15 @@ public void createTopicTest() throws Exception { .setName(TopicName.ofProjectTopicName("[PROJECT]", "[TOPIC]").toString()) .putAllLabels(new HashMap()) .setMessageStoragePolicy(MessageStoragePolicy.newBuilder().build()) - .setKmsKeyName("kmsKeyName412586233") + .setKmsKeyName( + CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]") + .toString()) .setSchemaSettings(SchemaSettings.newBuilder().build()) .setSatisfiesPzs(true) .setMessageRetentionDuration(Duration.newBuilder().build()) + .setIngestionDataSourceSettings(IngestionDataSourceSettings.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockService.addResponse(expectedResponse); @@ -161,10 +169,15 @@ public void createTopicTest2() throws Exception { .setName(TopicName.ofProjectTopicName("[PROJECT]", "[TOPIC]").toString()) .putAllLabels(new HashMap()) .setMessageStoragePolicy(MessageStoragePolicy.newBuilder().build()) - .setKmsKeyName("kmsKeyName412586233") + .setKmsKeyName( + CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]") + .toString()) .setSchemaSettings(SchemaSettings.newBuilder().build()) .setSatisfiesPzs(true) .setMessageRetentionDuration(Duration.newBuilder().build()) + .setIngestionDataSourceSettings(IngestionDataSourceSettings.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockService.addResponse(expectedResponse); @@ -211,10 +224,15 @@ public void updateTopicTest() throws Exception { .setName(TopicName.ofProjectTopicName("[PROJECT]", "[TOPIC]").toString()) .putAllLabels(new HashMap()) .setMessageStoragePolicy(MessageStoragePolicy.newBuilder().build()) - .setKmsKeyName("kmsKeyName412586233") + .setKmsKeyName( + CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]") + .toString()) .setSchemaSettings(SchemaSettings.newBuilder().build()) .setSatisfiesPzs(true) .setMessageRetentionDuration(Duration.newBuilder().build()) + .setIngestionDataSourceSettings(IngestionDataSourceSettings.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockService.addResponse(expectedResponse); @@ -223,10 +241,15 @@ public void updateTopicTest() throws Exception { .setName(TopicName.ofProjectTopicName("[PROJECT]", "[TOPIC]").toString()) .putAllLabels(new HashMap()) .setMessageStoragePolicy(MessageStoragePolicy.newBuilder().build()) - .setKmsKeyName("kmsKeyName412586233") + .setKmsKeyName( + CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]") + .toString()) .setSchemaSettings(SchemaSettings.newBuilder().build()) .setSatisfiesPzs(true) .setMessageRetentionDuration(Duration.newBuilder().build()) + .setIngestionDataSourceSettings(IngestionDataSourceSettings.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); FieldMask updateMask = FieldMask.newBuilder().build(); @@ -261,10 +284,15 @@ public void updateTopicExceptionTest() throws Exception { .setName(TopicName.ofProjectTopicName("[PROJECT]", "[TOPIC]").toString()) .putAllLabels(new HashMap()) .setMessageStoragePolicy(MessageStoragePolicy.newBuilder().build()) - .setKmsKeyName("kmsKeyName412586233") + .setKmsKeyName( + CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]") + .toString()) .setSchemaSettings(SchemaSettings.newBuilder().build()) .setSatisfiesPzs(true) .setMessageRetentionDuration(Duration.newBuilder().build()) + .setIngestionDataSourceSettings(IngestionDataSourceSettings.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); FieldMask updateMask = FieldMask.newBuilder().build(); client.updateTopic(topic, updateMask); @@ -369,10 +397,15 @@ public void getTopicTest() throws Exception { .setName(TopicName.ofProjectTopicName("[PROJECT]", "[TOPIC]").toString()) .putAllLabels(new HashMap()) .setMessageStoragePolicy(MessageStoragePolicy.newBuilder().build()) - .setKmsKeyName("kmsKeyName412586233") + .setKmsKeyName( + CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]") + .toString()) .setSchemaSettings(SchemaSettings.newBuilder().build()) .setSatisfiesPzs(true) .setMessageRetentionDuration(Duration.newBuilder().build()) + .setIngestionDataSourceSettings(IngestionDataSourceSettings.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockService.addResponse(expectedResponse); @@ -419,10 +452,15 @@ public void getTopicTest2() throws Exception { .setName(TopicName.ofProjectTopicName("[PROJECT]", "[TOPIC]").toString()) .putAllLabels(new HashMap()) .setMessageStoragePolicy(MessageStoragePolicy.newBuilder().build()) - .setKmsKeyName("kmsKeyName412586233") + .setKmsKeyName( + CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]") + .toString()) .setSchemaSettings(SchemaSettings.newBuilder().build()) .setSatisfiesPzs(true) .setMessageRetentionDuration(Duration.newBuilder().build()) + .setIngestionDataSourceSettings(IngestionDataSourceSettings.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockService.addResponse(expectedResponse); diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/TopicAdminClientTest.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/TopicAdminClientTest.java index 1693f7e40..2ad693de3 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/TopicAdminClientTest.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/TopicAdminClientTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -41,10 +41,12 @@ import com.google.protobuf.Duration; import com.google.protobuf.Empty; import com.google.protobuf.FieldMask; +import com.google.pubsub.v1.CryptoKeyName; import com.google.pubsub.v1.DeleteTopicRequest; import com.google.pubsub.v1.DetachSubscriptionRequest; import com.google.pubsub.v1.DetachSubscriptionResponse; import com.google.pubsub.v1.GetTopicRequest; +import com.google.pubsub.v1.IngestionDataSourceSettings; import com.google.pubsub.v1.ListTopicSnapshotsRequest; import com.google.pubsub.v1.ListTopicSnapshotsResponse; import com.google.pubsub.v1.ListTopicSubscriptionsRequest; @@ -52,6 +54,7 @@ import com.google.pubsub.v1.ListTopicsRequest; import com.google.pubsub.v1.ListTopicsResponse; import com.google.pubsub.v1.MessageStoragePolicy; +import com.google.pubsub.v1.MessageTransform; import com.google.pubsub.v1.ProjectName; import com.google.pubsub.v1.PublishRequest; import com.google.pubsub.v1.PublishResponse; @@ -125,10 +128,15 @@ public void createTopicTest() throws Exception { .setName(TopicName.ofProjectTopicName("[PROJECT]", "[TOPIC]").toString()) .putAllLabels(new HashMap()) .setMessageStoragePolicy(MessageStoragePolicy.newBuilder().build()) - .setKmsKeyName("kmsKeyName412586233") + .setKmsKeyName( + CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]") + .toString()) .setSchemaSettings(SchemaSettings.newBuilder().build()) .setSatisfiesPzs(true) .setMessageRetentionDuration(Duration.newBuilder().build()) + .setIngestionDataSourceSettings(IngestionDataSourceSettings.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockPublisher.addResponse(expectedResponse); @@ -169,10 +177,15 @@ public void createTopicTest2() throws Exception { .setName(TopicName.ofProjectTopicName("[PROJECT]", "[TOPIC]").toString()) .putAllLabels(new HashMap()) .setMessageStoragePolicy(MessageStoragePolicy.newBuilder().build()) - .setKmsKeyName("kmsKeyName412586233") + .setKmsKeyName( + CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]") + .toString()) .setSchemaSettings(SchemaSettings.newBuilder().build()) .setSatisfiesPzs(true) .setMessageRetentionDuration(Duration.newBuilder().build()) + .setIngestionDataSourceSettings(IngestionDataSourceSettings.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockPublisher.addResponse(expectedResponse); @@ -213,10 +226,15 @@ public void updateTopicTest() throws Exception { .setName(TopicName.ofProjectTopicName("[PROJECT]", "[TOPIC]").toString()) .putAllLabels(new HashMap()) .setMessageStoragePolicy(MessageStoragePolicy.newBuilder().build()) - .setKmsKeyName("kmsKeyName412586233") + .setKmsKeyName( + CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]") + .toString()) .setSchemaSettings(SchemaSettings.newBuilder().build()) .setSatisfiesPzs(true) .setMessageRetentionDuration(Duration.newBuilder().build()) + .setIngestionDataSourceSettings(IngestionDataSourceSettings.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockPublisher.addResponse(expectedResponse); @@ -338,10 +356,15 @@ public void getTopicTest() throws Exception { .setName(TopicName.ofProjectTopicName("[PROJECT]", "[TOPIC]").toString()) .putAllLabels(new HashMap()) .setMessageStoragePolicy(MessageStoragePolicy.newBuilder().build()) - .setKmsKeyName("kmsKeyName412586233") + .setKmsKeyName( + CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]") + .toString()) .setSchemaSettings(SchemaSettings.newBuilder().build()) .setSatisfiesPzs(true) .setMessageRetentionDuration(Duration.newBuilder().build()) + .setIngestionDataSourceSettings(IngestionDataSourceSettings.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockPublisher.addResponse(expectedResponse); @@ -382,10 +405,15 @@ public void getTopicTest2() throws Exception { .setName(TopicName.ofProjectTopicName("[PROJECT]", "[TOPIC]").toString()) .putAllLabels(new HashMap()) .setMessageStoragePolicy(MessageStoragePolicy.newBuilder().build()) - .setKmsKeyName("kmsKeyName412586233") + .setKmsKeyName( + CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]") + .toString()) .setSchemaSettings(SchemaSettings.newBuilder().build()) .setSatisfiesPzs(true) .setMessageRetentionDuration(Duration.newBuilder().build()) + .setIngestionDataSourceSettings(IngestionDataSourceSettings.newBuilder().build()) + .addAllMessageTransforms(new ArrayList()) + .putAllTags(new HashMap()) .build(); mockPublisher.addResponse(expectedResponse); diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/WaiterTest.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/WaiterTest.java index ca8618378..aaa396690 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/WaiterTest.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/v1/WaiterTest.java @@ -17,7 +17,10 @@ package com.google.cloud.pubsub.v1; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import java.util.concurrent.TimeUnit; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -50,4 +53,69 @@ public void run() { assertEquals(0, waiter.pendingCount()); } + + @Test + public void testTryWait_Completes() throws Exception { + final Waiter waiter = new Waiter(); + waiter.incrementPendingCount(1); + final FakeClock clock = new FakeClock(); + + final Thread mainThread = Thread.currentThread(); + Thread t = + new Thread( + new Runnable() { + @Override + public void run() { + while (mainThread.getState() == Thread.State.NEW) { + Thread.yield(); + } + waiter.incrementPendingCount(-1); + } + }); + t.start(); + + assertTrue(waiter.tryWait(500, clock)); + t.join(); + + assertEquals(0, waiter.pendingCount()); + } + + @Test + public void testTryWait_TimesOut() throws Exception { + final Waiter waiter = new Waiter(); + waiter.incrementPendingCount(1); + final FakeClock clock = new FakeClock(); + + final Thread mainThread = Thread.currentThread(); + Thread t = + new Thread( + new Runnable() { + @Override + public void run() { + while (mainThread.getState() == Thread.State.NEW) { + Thread.yield(); + } + try { + // Waits some additional time to ensure that the waiter is actually waiting. + Thread.sleep(100); + clock.advance(200, TimeUnit.MILLISECONDS); + } catch (InterruptedException e) { + // Ignored. + } + } + }); + t.start(); + + assertFalse(waiter.tryWait(100, clock)); + t.join(); + + assertEquals(1, waiter.pendingCount()); + } + + @Test + public void testTryWait_NoPending() { + final Waiter waiter = new Waiter(); + final FakeClock clock = new FakeClock(); + assertTrue(waiter.tryWait(100, clock)); + } } diff --git a/google-cloud-pubsub/src/test/resources/META-INF/native-image/com.google.cloud/google-cloud-pubsub/native-image.properties b/google-cloud-pubsub/src/test/resources/META-INF/native-image/com.google.cloud/google-cloud-pubsub/native-image.properties new file mode 100644 index 000000000..b77dd433a --- /dev/null +++ b/google-cloud-pubsub/src/test/resources/META-INF/native-image/com.google.cloud/google-cloud-pubsub/native-image.properties @@ -0,0 +1 @@ +Args=--initialize-at-build-time=org.junit.runners.model.FrameworkField \ No newline at end of file diff --git a/grpc-google-cloud-pubsub-v1/pom.xml b/grpc-google-cloud-pubsub-v1/pom.xml index b8b3e3f1d..8ab76948c 100644 --- a/grpc-google-cloud-pubsub-v1/pom.xml +++ b/grpc-google-cloud-pubsub-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-pubsub-v1 - 1.108.1-SNAPSHOT + 1.126.1 grpc-google-cloud-pubsub-v1 GRPC library for grpc-google-cloud-pubsub-v1 com.google.cloud google-cloud-pubsub-parent - 1.126.1-SNAPSHOT + 1.144.1 diff --git a/grpc-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublisherGrpc.java b/grpc-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublisherGrpc.java index 020bf6f9d..8ee09f14e 100644 --- a/grpc-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublisherGrpc.java +++ b/grpc-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublisherGrpc.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -25,9 +25,6 @@ * messages to a topic. * */ -@javax.annotation.Generated( - value = "by gRPC proto compiler", - comments = "Source: google/pubsub/v1/pubsub.proto") @io.grpc.stub.annotations.GrpcGenerated public final class PublisherGrpc { @@ -422,6 +419,19 @@ public PublisherStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOp return PublisherStub.newStub(factory, channel); } + /** Creates a new blocking-style stub that supports all types of calls on the service */ + public static PublisherBlockingV2Stub newBlockingV2Stub(io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public PublisherBlockingV2Stub newStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new PublisherBlockingV2Stub(channel, callOptions); + } + }; + return PublisherBlockingV2Stub.newStub(factory, channel); + } + /** * Creates a new blocking-style stub that supports unary and streaming output calls on the service */ @@ -479,8 +489,8 @@ default void createTopic( * * *
-     * Updates an existing topic. Note that certain properties of a
-     * topic are not modifiable.
+     * Updates an existing topic by updating the fields specified in the update
+     * mask. Note that certain properties of a topic are not modifiable.
      * 
*/ default void updateTopic( @@ -656,8 +666,8 @@ public void createTopic( * * *
-     * Updates an existing topic. Note that certain properties of a
-     * topic are not modifiable.
+     * Updates an existing topic by updating the fields specified in the update
+     * mask. Note that certain properties of a topic are not modifiable.
      * 
*/ public void updateTopic( @@ -799,6 +809,158 @@ public void detachSubscription( * messages to a topic. * */ + public static final class PublisherBlockingV2Stub + extends io.grpc.stub.AbstractBlockingStub { + private PublisherBlockingV2Stub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected PublisherBlockingV2Stub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new PublisherBlockingV2Stub(channel, callOptions); + } + + /** + * + * + *
+     * Creates the given topic with the given name. See the [resource name rules]
+     * (https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names).
+     * 
+ */ + public com.google.pubsub.v1.Topic createTopic(com.google.pubsub.v1.Topic request) + throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getCreateTopicMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Updates an existing topic by updating the fields specified in the update
+     * mask. Note that certain properties of a topic are not modifiable.
+     * 
+ */ + public com.google.pubsub.v1.Topic updateTopic(com.google.pubsub.v1.UpdateTopicRequest request) + throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getUpdateTopicMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Adds one or more messages to the topic. Returns `NOT_FOUND` if the topic
+     * does not exist.
+     * 
+ */ + public com.google.pubsub.v1.PublishResponse publish(com.google.pubsub.v1.PublishRequest request) + throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getPublishMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Gets the configuration of a topic.
+     * 
+ */ + public com.google.pubsub.v1.Topic getTopic(com.google.pubsub.v1.GetTopicRequest request) + throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getGetTopicMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Lists matching topics.
+     * 
+ */ + public com.google.pubsub.v1.ListTopicsResponse listTopics( + com.google.pubsub.v1.ListTopicsRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getListTopicsMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Lists the names of the attached subscriptions on this topic.
+     * 
+ */ + public com.google.pubsub.v1.ListTopicSubscriptionsResponse listTopicSubscriptions( + com.google.pubsub.v1.ListTopicSubscriptionsRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getListTopicSubscriptionsMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Lists the names of the snapshots on this topic. Snapshots are used in
+     * [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations,
+     * which allow you to manage message acknowledgments in bulk. That is, you can
+     * set the acknowledgment state of messages in an existing subscription to the
+     * state captured by a snapshot.
+     * 
+ */ + public com.google.pubsub.v1.ListTopicSnapshotsResponse listTopicSnapshots( + com.google.pubsub.v1.ListTopicSnapshotsRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getListTopicSnapshotsMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Deletes the topic with the given name. Returns `NOT_FOUND` if the topic
+     * does not exist. After a topic is deleted, a new topic may be created with
+     * the same name; this is an entirely new topic with none of the old
+     * configuration or subscriptions. Existing subscriptions to this topic are
+     * not deleted, but their `topic` field is set to `_deleted-topic_`.
+     * 
+ */ + public com.google.protobuf.Empty deleteTopic(com.google.pubsub.v1.DeleteTopicRequest request) + throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getDeleteTopicMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Detaches a subscription from this topic. All messages retained in the
+     * subscription are dropped. Subsequent `Pull` and `StreamingPull` requests
+     * will return FAILED_PRECONDITION. If the subscription is a push
+     * subscription, pushes to the endpoint will stop.
+     * 
+ */ + public com.google.pubsub.v1.DetachSubscriptionResponse detachSubscription( + com.google.pubsub.v1.DetachSubscriptionRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getDetachSubscriptionMethod(), getCallOptions(), request); + } + } + + /** + * A stub to allow clients to do limited synchronous rpc calls to service Publisher. + * + *
+   * The service that an application uses to manipulate topics, and to send
+   * messages to a topic.
+   * 
+ */ public static final class PublisherBlockingStub extends io.grpc.stub.AbstractBlockingStub { private PublisherBlockingStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { @@ -828,8 +990,8 @@ public com.google.pubsub.v1.Topic createTopic(com.google.pubsub.v1.Topic request * * *
-     * Updates an existing topic. Note that certain properties of a
-     * topic are not modifiable.
+     * Updates an existing topic by updating the fields specified in the update
+     * mask. Note that certain properties of a topic are not modifiable.
      * 
*/ public com.google.pubsub.v1.Topic updateTopic(com.google.pubsub.v1.UpdateTopicRequest request) { @@ -976,8 +1138,8 @@ protected PublisherFutureStub build(io.grpc.Channel channel, io.grpc.CallOptions * * *
-     * Updates an existing topic. Note that certain properties of a
-     * topic are not modifiable.
+     * Updates an existing topic by updating the fields specified in the update
+     * mask. Note that certain properties of a topic are not modifiable.
      * 
*/ public com.google.common.util.concurrent.ListenableFuture diff --git a/grpc-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaServiceGrpc.java b/grpc-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaServiceGrpc.java index 3b11ea3dc..59fbec01b 100644 --- a/grpc-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaServiceGrpc.java +++ b/grpc-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaServiceGrpc.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -24,9 +24,6 @@ * Service for doing schema-related operations. * */ -@javax.annotation.Generated( - value = "by gRPC proto compiler", - comments = "Source: google/pubsub/v1/schema.proto") @io.grpc.stub.annotations.GrpcGenerated public final class SchemaServiceGrpc { @@ -467,6 +464,19 @@ public SchemaServiceStub newStub( return SchemaServiceStub.newStub(factory, channel); } + /** Creates a new blocking-style stub that supports all types of calls on the service */ + public static SchemaServiceBlockingV2Stub newBlockingV2Stub(io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public SchemaServiceBlockingV2Stub newStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new SchemaServiceBlockingV2Stub(channel, callOptions); + } + }; + return SchemaServiceBlockingV2Stub.newStub(factory, channel); + } + /** * Creates a new blocking-style stub that supports unary and streaming output calls on the service */ @@ -848,6 +858,156 @@ public void validateMessage( * Service for doing schema-related operations. * */ + public static final class SchemaServiceBlockingV2Stub + extends io.grpc.stub.AbstractBlockingStub { + private SchemaServiceBlockingV2Stub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected SchemaServiceBlockingV2Stub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new SchemaServiceBlockingV2Stub(channel, callOptions); + } + + /** + * + * + *
+     * Creates a schema.
+     * 
+ */ + public com.google.pubsub.v1.Schema createSchema( + com.google.pubsub.v1.CreateSchemaRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getCreateSchemaMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Gets a schema.
+     * 
+ */ + public com.google.pubsub.v1.Schema getSchema(com.google.pubsub.v1.GetSchemaRequest request) + throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getGetSchemaMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Lists schemas in a project.
+     * 
+ */ + public com.google.pubsub.v1.ListSchemasResponse listSchemas( + com.google.pubsub.v1.ListSchemasRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getListSchemasMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Lists all schema revisions for the named schema.
+     * 
+ */ + public com.google.pubsub.v1.ListSchemaRevisionsResponse listSchemaRevisions( + com.google.pubsub.v1.ListSchemaRevisionsRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getListSchemaRevisionsMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Commits a new schema revision to an existing schema.
+     * 
+ */ + public com.google.pubsub.v1.Schema commitSchema( + com.google.pubsub.v1.CommitSchemaRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getCommitSchemaMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Creates a new schema revision that is a copy of the provided revision_id.
+     * 
+ */ + public com.google.pubsub.v1.Schema rollbackSchema( + com.google.pubsub.v1.RollbackSchemaRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getRollbackSchemaMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Deletes a specific schema revision.
+     * 
+ */ + public com.google.pubsub.v1.Schema deleteSchemaRevision( + com.google.pubsub.v1.DeleteSchemaRevisionRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getDeleteSchemaRevisionMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Deletes a schema.
+     * 
+ */ + public com.google.protobuf.Empty deleteSchema(com.google.pubsub.v1.DeleteSchemaRequest request) + throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getDeleteSchemaMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Validates a schema.
+     * 
+ */ + public com.google.pubsub.v1.ValidateSchemaResponse validateSchema( + com.google.pubsub.v1.ValidateSchemaRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getValidateSchemaMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Validates a message against a schema.
+     * 
+ */ + public com.google.pubsub.v1.ValidateMessageResponse validateMessage( + com.google.pubsub.v1.ValidateMessageRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getValidateMessageMethod(), getCallOptions(), request); + } + } + + /** + * A stub to allow clients to do limited synchronous rpc calls to service SchemaService. + * + *
+   * Service for doing schema-related operations.
+   * 
+ */ public static final class SchemaServiceBlockingStub extends io.grpc.stub.AbstractBlockingStub { private SchemaServiceBlockingStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { diff --git a/grpc-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SubscriberGrpc.java b/grpc-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SubscriberGrpc.java index c90e438e8..26003fb0e 100644 --- a/grpc-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SubscriberGrpc.java +++ b/grpc-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SubscriberGrpc.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -26,9 +26,6 @@ * establishing a bi-directional stream using the `StreamingPull` method. * */ -@javax.annotation.Generated( - value = "by gRPC proto compiler", - comments = "Source: google/pubsub/v1/pubsub.proto") @io.grpc.stub.annotations.GrpcGenerated public final class SubscriberGrpc { @@ -698,6 +695,19 @@ public SubscriberStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callO return SubscriberStub.newStub(factory, channel); } + /** Creates a new blocking-style stub that supports all types of calls on the service */ + public static SubscriberBlockingV2Stub newBlockingV2Stub(io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public SubscriberBlockingV2Stub newStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new SubscriberBlockingV2Stub(channel, callOptions); + } + }; + return SubscriberBlockingV2Stub.newStub(factory, channel); + } + /** * Creates a new blocking-style stub that supports unary and streaming output calls on the service */ @@ -778,8 +788,9 @@ default void getSubscription( * * *
-     * Updates an existing subscription. Note that certain properties of a
-     * subscription, such as its topic, are not modifiable.
+     * Updates an existing subscription by updating the fields specified in the
+     * update mask. Note that certain properties of a subscription, such as its
+     * topic, are not modifiable.
      * 
*/ default void updateSubscription( @@ -877,7 +888,7 @@ default void pull( * *
      * Establishes a stream with the server, which sends messages down to the
-     * client. The client streams acknowledgements and ack deadline modifications
+     * client. The client streams acknowledgments and ack deadline modifications
      * back to the server. The server will close the stream and return the status
      * on any error. The server may close the stream with status `UNAVAILABLE` to
      * reassign server-side resources, in which case, the client should
@@ -978,7 +989,8 @@ default void createSnapshot(
      *
      *
      * 
-     * Updates an existing snapshot. Snapshots are used in
+     * Updates an existing snapshot by updating the fields specified in the update
+     * mask. Snapshots are used in
      * [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations,
      * which allow you to manage message acknowledgments in bulk. That is, you can
      * set the acknowledgment state of messages in an existing subscription to the
@@ -1115,8 +1127,9 @@ public void getSubscription(
      *
      *
      * 
-     * Updates an existing subscription. Note that certain properties of a
-     * subscription, such as its topic, are not modifiable.
+     * Updates an existing subscription by updating the fields specified in the
+     * update mask. Note that certain properties of a subscription, such as its
+     * topic, are not modifiable.
      * 
*/ public void updateSubscription( @@ -1225,7 +1238,7 @@ public void pull( * *
      * Establishes a stream with the server, which sends messages down to the
-     * client. The client streams acknowledgements and ack deadline modifications
+     * client. The client streams acknowledgments and ack deadline modifications
      * back to the server. The server will close the stream and return the status
      * on any error. The server may close the stream with status `UNAVAILABLE` to
      * reassign server-side resources, in which case, the client should
@@ -1334,7 +1347,8 @@ public void createSnapshot(
      *
      *
      * 
-     * Updates an existing snapshot. Snapshots are used in
+     * Updates an existing snapshot by updating the fields specified in the update
+     * mask. Snapshots are used in
      * [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations,
      * which allow you to manage message acknowledgments in bulk. That is, you can
      * set the acknowledgment state of messages in an existing subscription to the
@@ -1404,6 +1418,314 @@ public void seek(
    * establishing a bi-directional stream using the `StreamingPull` method.
    * 
*/ + public static final class SubscriberBlockingV2Stub + extends io.grpc.stub.AbstractBlockingStub { + private SubscriberBlockingV2Stub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected SubscriberBlockingV2Stub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new SubscriberBlockingV2Stub(channel, callOptions); + } + + /** + * + * + *
+     * Creates a subscription to a given topic. See the [resource name rules]
+     * (https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names).
+     * If the subscription already exists, returns `ALREADY_EXISTS`.
+     * If the corresponding topic doesn't exist, returns `NOT_FOUND`.
+     * If the name is not provided in the request, the server will assign a random
+     * name for this subscription on the same project as the topic, conforming
+     * to the [resource name format]
+     * (https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). The
+     * generated name is populated in the returned Subscription object. Note that
+     * for REST API requests, you must specify a name in the request.
+     * 
+ */ + public com.google.pubsub.v1.Subscription createSubscription( + com.google.pubsub.v1.Subscription request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getCreateSubscriptionMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Gets the configuration details of a subscription.
+     * 
+ */ + public com.google.pubsub.v1.Subscription getSubscription( + com.google.pubsub.v1.GetSubscriptionRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getGetSubscriptionMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Updates an existing subscription by updating the fields specified in the
+     * update mask. Note that certain properties of a subscription, such as its
+     * topic, are not modifiable.
+     * 
+ */ + public com.google.pubsub.v1.Subscription updateSubscription( + com.google.pubsub.v1.UpdateSubscriptionRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getUpdateSubscriptionMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Lists matching subscriptions.
+     * 
+ */ + public com.google.pubsub.v1.ListSubscriptionsResponse listSubscriptions( + com.google.pubsub.v1.ListSubscriptionsRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getListSubscriptionsMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Deletes an existing subscription. All messages retained in the subscription
+     * are immediately dropped. Calls to `Pull` after deletion will return
+     * `NOT_FOUND`. After a subscription is deleted, a new one may be created with
+     * the same name, but the new one has no association with the old
+     * subscription or its topic unless the same topic is specified.
+     * 
+ */ + public com.google.protobuf.Empty deleteSubscription( + com.google.pubsub.v1.DeleteSubscriptionRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getDeleteSubscriptionMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Modifies the ack deadline for a specific message. This method is useful
+     * to indicate that more time is needed to process a message by the
+     * subscriber, or to make the message available for redelivery if the
+     * processing was interrupted. Note that this does not modify the
+     * subscription-level `ackDeadlineSeconds` used for subsequent messages.
+     * 
+ */ + public com.google.protobuf.Empty modifyAckDeadline( + com.google.pubsub.v1.ModifyAckDeadlineRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getModifyAckDeadlineMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Acknowledges the messages associated with the `ack_ids` in the
+     * `AcknowledgeRequest`. The Pub/Sub system can remove the relevant messages
+     * from the subscription.
+     * Acknowledging a message whose ack deadline has expired may succeed,
+     * but such a message may be redelivered later. Acknowledging a message more
+     * than once will not result in an error.
+     * 
+ */ + public com.google.protobuf.Empty acknowledge(com.google.pubsub.v1.AcknowledgeRequest request) + throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getAcknowledgeMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Pulls messages from the server.
+     * 
+ */ + public com.google.pubsub.v1.PullResponse pull(com.google.pubsub.v1.PullRequest request) + throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getPullMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Establishes a stream with the server, which sends messages down to the
+     * client. The client streams acknowledgments and ack deadline modifications
+     * back to the server. The server will close the stream and return the status
+     * on any error. The server may close the stream with status `UNAVAILABLE` to
+     * reassign server-side resources, in which case, the client should
+     * re-establish the stream. Flow control can be achieved by configuring the
+     * underlying RPC channel.
+     * 
+ */ + @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/10918") + public io.grpc.stub.BlockingClientCall< + com.google.pubsub.v1.StreamingPullRequest, com.google.pubsub.v1.StreamingPullResponse> + streamingPull() { + return io.grpc.stub.ClientCalls.blockingBidiStreamingCall( + getChannel(), getStreamingPullMethod(), getCallOptions()); + } + + /** + * + * + *
+     * Modifies the `PushConfig` for a specified subscription.
+     * This may be used to change a push subscription to a pull one (signified by
+     * an empty `PushConfig`) or vice versa, or change the endpoint URL and other
+     * attributes of a push subscription. Messages will accumulate for delivery
+     * continuously through the call regardless of changes to the `PushConfig`.
+     * 
+ */ + public com.google.protobuf.Empty modifyPushConfig( + com.google.pubsub.v1.ModifyPushConfigRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getModifyPushConfigMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Gets the configuration details of a snapshot. Snapshots are used in
+     * [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations,
+     * which allow you to manage message acknowledgments in bulk. That is, you can
+     * set the acknowledgment state of messages in an existing subscription to the
+     * state captured by a snapshot.
+     * 
+ */ + public com.google.pubsub.v1.Snapshot getSnapshot( + com.google.pubsub.v1.GetSnapshotRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getGetSnapshotMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Lists the existing snapshots. Snapshots are used in [Seek](
+     * https://cloud.google.com/pubsub/docs/replay-overview) operations, which
+     * allow you to manage message acknowledgments in bulk. That is, you can set
+     * the acknowledgment state of messages in an existing subscription to the
+     * state captured by a snapshot.
+     * 
+ */ + public com.google.pubsub.v1.ListSnapshotsResponse listSnapshots( + com.google.pubsub.v1.ListSnapshotsRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getListSnapshotsMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Creates a snapshot from the requested subscription. Snapshots are used in
+     * [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations,
+     * which allow you to manage message acknowledgments in bulk. That is, you can
+     * set the acknowledgment state of messages in an existing subscription to the
+     * state captured by a snapshot.
+     * If the snapshot already exists, returns `ALREADY_EXISTS`.
+     * If the requested subscription doesn't exist, returns `NOT_FOUND`.
+     * If the backlog in the subscription is too old -- and the resulting snapshot
+     * would expire in less than 1 hour -- then `FAILED_PRECONDITION` is returned.
+     * See also the `Snapshot.expire_time` field. If the name is not provided in
+     * the request, the server will assign a random
+     * name for this snapshot on the same project as the subscription, conforming
+     * to the [resource name format]
+     * (https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). The
+     * generated name is populated in the returned Snapshot object. Note that for
+     * REST API requests, you must specify a name in the request.
+     * 
+ */ + public com.google.pubsub.v1.Snapshot createSnapshot( + com.google.pubsub.v1.CreateSnapshotRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getCreateSnapshotMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Updates an existing snapshot by updating the fields specified in the update
+     * mask. Snapshots are used in
+     * [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations,
+     * which allow you to manage message acknowledgments in bulk. That is, you can
+     * set the acknowledgment state of messages in an existing subscription to the
+     * state captured by a snapshot.
+     * 
+ */ + public com.google.pubsub.v1.Snapshot updateSnapshot( + com.google.pubsub.v1.UpdateSnapshotRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getUpdateSnapshotMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Removes an existing snapshot. Snapshots are used in [Seek]
+     * (https://cloud.google.com/pubsub/docs/replay-overview) operations, which
+     * allow you to manage message acknowledgments in bulk. That is, you can set
+     * the acknowledgment state of messages in an existing subscription to the
+     * state captured by a snapshot.
+     * When the snapshot is deleted, all messages retained in the snapshot
+     * are immediately dropped. After a snapshot is deleted, a new one may be
+     * created with the same name, but the new one has no association with the old
+     * snapshot or its subscription, unless the same subscription is specified.
+     * 
+ */ + public com.google.protobuf.Empty deleteSnapshot( + com.google.pubsub.v1.DeleteSnapshotRequest request) throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getDeleteSnapshotMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Seeks an existing subscription to a point in time or to a given snapshot,
+     * whichever is provided in the request. Snapshots are used in [Seek]
+     * (https://cloud.google.com/pubsub/docs/replay-overview) operations, which
+     * allow you to manage message acknowledgments in bulk. That is, you can set
+     * the acknowledgment state of messages in an existing subscription to the
+     * state captured by a snapshot. Note that both the subscription and the
+     * snapshot must be on the same topic.
+     * 
+ */ + public com.google.pubsub.v1.SeekResponse seek(com.google.pubsub.v1.SeekRequest request) + throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getSeekMethod(), getCallOptions(), request); + } + } + + /** + * A stub to allow clients to do limited synchronous rpc calls to service Subscriber. + * + *
+   * The service that an application uses to manipulate subscriptions and to
+   * consume messages from a subscription via the `Pull` method or by
+   * establishing a bi-directional stream using the `StreamingPull` method.
+   * 
+ */ public static final class SubscriberBlockingStub extends io.grpc.stub.AbstractBlockingStub { private SubscriberBlockingStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { @@ -1455,8 +1777,9 @@ public com.google.pubsub.v1.Subscription getSubscription( * * *
-     * Updates an existing subscription. Note that certain properties of a
-     * subscription, such as its topic, are not modifiable.
+     * Updates an existing subscription by updating the fields specified in the
+     * update mask. Note that certain properties of a subscription, such as its
+     * topic, are not modifiable.
      * 
*/ public com.google.pubsub.v1.Subscription updateSubscription( @@ -1624,7 +1947,8 @@ public com.google.pubsub.v1.Snapshot createSnapshot( * * *
-     * Updates an existing snapshot. Snapshots are used in
+     * Updates an existing snapshot by updating the fields specified in the update
+     * mask. Snapshots are used in
      * [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations,
      * which allow you to manage message acknowledgments in bulk. That is, you can
      * set the acknowledgment state of messages in an existing subscription to the
@@ -1736,8 +2060,9 @@ protected SubscriberFutureStub build(io.grpc.Channel channel, io.grpc.CallOption
      *
      *
      * 
-     * Updates an existing subscription. Note that certain properties of a
-     * subscription, such as its topic, are not modifiable.
+     * Updates an existing subscription by updating the fields specified in the
+     * update mask. Note that certain properties of a subscription, such as its
+     * topic, are not modifiable.
      * 
*/ public com.google.common.util.concurrent.ListenableFuture @@ -1909,7 +2234,8 @@ protected SubscriberFutureStub build(io.grpc.Channel channel, io.grpc.CallOption * * *
-     * Updates an existing snapshot. Snapshots are used in
+     * Updates an existing snapshot by updating the fields specified in the update
+     * mask. Snapshots are used in
      * [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations,
      * which allow you to manage message acknowledgments in bulk. That is, you can
      * set the acknowledgment state of messages in an existing subscription to the
diff --git a/owlbot.py b/owlbot.py
index 69cab5df9..1ef474bc4 100644
--- a/owlbot.py
+++ b/owlbot.py
@@ -1210,5 +1210,9 @@
         ".kokoro/build.sh",
         ".github/sync-repo-settings.yaml",
         ".github/blunderbuss.yml",
+        '.kokoro/requirements.in',
+        '.kokoro/requirements.txt',
+        '.kokoro/presubmit/graalvm-native.cfg',
+        '.kokoro/presubmit/graalvm-native-17.cfg'
     ]
 )
diff --git a/pom.xml b/pom.xml
index 4ffa585d6..11d3514f6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
   com.google.cloud
   google-cloud-pubsub-parent
   pom
-  1.126.1-SNAPSHOT
+  1.144.1
   Google Cloud Pub/Sub Parent
   https://github.com/googleapis/java-pubsub
   
@@ -13,8 +13,8 @@
 
   
     com.google.cloud
-    google-cloud-shared-config
-    1.7.1
+    sdk-platform-java-config
+    3.54.2
   
 
   
@@ -61,7 +61,7 @@
       
         com.google.cloud
         google-cloud-shared-dependencies
-        3.21.0
+        ${google-cloud-shared-dependencies.version}
         pom
         import
       
@@ -69,17 +69,17 @@
       
         com.google.api.grpc
         proto-google-cloud-pubsub-v1
-        1.108.1-SNAPSHOT
+        1.126.1
       
       
         com.google.api.grpc
         grpc-google-cloud-pubsub-v1
-        1.108.1-SNAPSHOT
+        1.126.1
       
       
         com.google.cloud
         google-cloud-pubsub
-        1.126.1-SNAPSHOT
+        1.144.1
       
 
       
@@ -98,13 +98,13 @@
       
         org.easymock
         easymock
-        5.2.0
+        5.6.0
         test
       
       
         com.google.truth
         truth
-        1.2.0
+        1.4.5
         test
         
           
@@ -113,6 +113,12 @@
           
         
       
+      
+        org.assertj
+        assertj-core
+        3.27.6
+        test
+      
     
   
 
@@ -145,7 +151,7 @@
       
         org.apache.maven.plugins
         maven-project-info-reports-plugin
-        3.5.0
+        3.9.0
         
           
             
diff --git a/proto-google-cloud-pubsub-v1/clirr-ignored-differences.xml b/proto-google-cloud-pubsub-v1/clirr-ignored-differences.xml
index 223719761..75ea618ea 100644
--- a/proto-google-cloud-pubsub-v1/clirr-ignored-differences.xml
+++ b/proto-google-cloud-pubsub-v1/clirr-ignored-differences.xml
@@ -16,4 +16,66 @@
     com/google/pubsub/v1/*OrBuilder
     boolean has*(*)
   
+
+  
+  
+    7006
+    com/google/pubsub/v1/**
+    * getDefaultInstanceForType()
+    **
+  
+  
+    7006
+    com/google/pubsub/v1/**
+    * addRepeatedField(*)
+    **
+  
+  
+    7006
+    com/google/pubsub/v1/**
+    * clear()
+    **
+  
+  
+    7006
+    com/google/pubsub/v1/**
+    * clearField(*)
+    **
+  
+  
+    7006
+    com/google/pubsub/v1/**
+    * clearOneof(*)
+    **
+  
+  
+    7006
+    com/google/pubsub/v1/**
+    * clone()
+    **
+  
+  
+    7006
+    com/google/pubsub/v1/**
+    * mergeUnknownFields(*)
+    **
+  
+  
+    7006
+    com/google/pubsub/v1/**
+    * setField(*)
+    **
+  
+  
+    7006
+    com/google/pubsub/v1/**
+    * setRepeatedField(*)
+    **
+  
+  
+    7006
+    com/google/pubsub/v1/**
+    * setUnknownFields(*)
+    **
+  
 
diff --git a/proto-google-cloud-pubsub-v1/pom.xml b/proto-google-cloud-pubsub-v1/pom.xml
index d43ce584b..93bdf6c5a 100644
--- a/proto-google-cloud-pubsub-v1/pom.xml
+++ b/proto-google-cloud-pubsub-v1/pom.xml
@@ -4,13 +4,13 @@
   4.0.0
   com.google.api.grpc
   proto-google-cloud-pubsub-v1
-  1.108.1-SNAPSHOT
+  1.126.1
   proto-google-cloud-pubsub-v1
   PROTO library for proto-google-cloud-pubsub-v1
   
     com.google.cloud
     google-cloud-pubsub-parent
-    1.126.1-SNAPSHOT
+    1.144.1
   
   
     
diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/AcknowledgeRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/AcknowledgeRequest.java
index ad61b3fa8..219fba089 100644
--- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/AcknowledgeRequest.java
+++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/AcknowledgeRequest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * 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.
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/pubsub/v1/pubsub.proto
 
+// Protobuf Java Version: 3.25.8
 package com.google.pubsub.v1;
 
 /**
@@ -32,6 +33,7 @@ public final class AcknowledgeRequest extends com.google.protobuf.GeneratedMessa
     // @@protoc_insertion_point(message_implements:google.pubsub.v1.AcknowledgeRequest)
     AcknowledgeRequestOrBuilder {
   private static final long serialVersionUID = 0L;
+
   // Use AcknowledgeRequest.newBuilder() to construct.
   private AcknowledgeRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
     super(builder);
@@ -67,6 +69,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
 
   @SuppressWarnings("serial")
   private volatile java.lang.Object subscription_ = "";
+
   /**
    *
    *
@@ -93,6 +96,7 @@ public java.lang.String getSubscription() {
       return s;
     }
   }
+
   /**
    *
    *
@@ -125,6 +129,7 @@ public com.google.protobuf.ByteString getSubscriptionBytes() {
   @SuppressWarnings("serial")
   private com.google.protobuf.LazyStringArrayList ackIds_ =
       com.google.protobuf.LazyStringArrayList.emptyList();
+
   /**
    *
    *
@@ -141,6 +146,7 @@ public com.google.protobuf.ByteString getSubscriptionBytes() {
   public com.google.protobuf.ProtocolStringList getAckIdsList() {
     return ackIds_;
   }
+
   /**
    *
    *
@@ -157,6 +163,7 @@ public com.google.protobuf.ProtocolStringList getAckIdsList() {
   public int getAckIdsCount() {
     return ackIds_.size();
   }
+
   /**
    *
    *
@@ -174,6 +181,7 @@ public int getAckIdsCount() {
   public java.lang.String getAckIds(int index) {
     return ackIds_.get(index);
   }
+
   /**
    *
    *
@@ -366,6 +374,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
     Builder builder = new Builder(parent);
     return builder;
   }
+
   /**
    *
    *
@@ -571,6 +580,7 @@ public Builder mergeFrom(
     private int bitField0_;
 
     private java.lang.Object subscription_ = "";
+
     /**
      *
      *
@@ -596,6 +606,7 @@ public java.lang.String getSubscription() {
         return (java.lang.String) ref;
       }
     }
+
     /**
      *
      *
@@ -621,6 +632,7 @@ public com.google.protobuf.ByteString getSubscriptionBytes() {
         return (com.google.protobuf.ByteString) ref;
       }
     }
+
     /**
      *
      *
@@ -645,6 +657,7 @@ public Builder setSubscription(java.lang.String value) {
       onChanged();
       return this;
     }
+
     /**
      *
      *
@@ -665,6 +678,7 @@ public Builder clearSubscription() {
       onChanged();
       return this;
     }
+
     /**
      *
      *
@@ -700,6 +714,7 @@ private void ensureAckIdsIsMutable() {
       }
       bitField0_ |= 0x00000002;
     }
+
     /**
      *
      *
@@ -717,6 +732,7 @@ public com.google.protobuf.ProtocolStringList getAckIdsList() {
       ackIds_.makeImmutable();
       return ackIds_;
     }
+
     /**
      *
      *
@@ -733,6 +749,7 @@ public com.google.protobuf.ProtocolStringList getAckIdsList() {
     public int getAckIdsCount() {
       return ackIds_.size();
     }
+
     /**
      *
      *
@@ -750,6 +767,7 @@ public int getAckIdsCount() {
     public java.lang.String getAckIds(int index) {
       return ackIds_.get(index);
     }
+
     /**
      *
      *
@@ -767,6 +785,7 @@ public java.lang.String getAckIds(int index) {
     public com.google.protobuf.ByteString getAckIdsBytes(int index) {
       return ackIds_.getByteString(index);
     }
+
     /**
      *
      *
@@ -792,6 +811,7 @@ public Builder setAckIds(int index, java.lang.String value) {
       onChanged();
       return this;
     }
+
     /**
      *
      *
@@ -816,6 +836,7 @@ public Builder addAckIds(java.lang.String value) {
       onChanged();
       return this;
     }
+
     /**
      *
      *
@@ -837,6 +858,7 @@ public Builder addAllAckIds(java.lang.Iterable values) {
       onChanged();
       return this;
     }
+
     /**
      *
      *
@@ -857,6 +879,7 @@ public Builder clearAckIds() {
       onChanged();
       return this;
     }
+
     /**
      *
      *
diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/AcknowledgeRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/AcknowledgeRequestOrBuilder.java
index b2e049435..db4488150 100644
--- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/AcknowledgeRequestOrBuilder.java
+++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/AcknowledgeRequestOrBuilder.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * 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.
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/pubsub/v1/pubsub.proto
 
+// Protobuf Java Version: 3.25.8
 package com.google.pubsub.v1;
 
 public interface AcknowledgeRequestOrBuilder
@@ -38,6 +39,7 @@ public interface AcknowledgeRequestOrBuilder
    * @return The subscription.
    */
   java.lang.String getSubscription();
+
   /**
    *
    *
@@ -68,6 +70,7 @@ public interface AcknowledgeRequestOrBuilder
    * @return A list containing the ackIds.
    */
   java.util.List getAckIdsList();
+
   /**
    *
    *
@@ -82,6 +85,7 @@ public interface AcknowledgeRequestOrBuilder
    * @return The count of ackIds.
    */
   int getAckIdsCount();
+
   /**
    *
    *
@@ -97,6 +101,7 @@ public interface AcknowledgeRequestOrBuilder
    * @return The ackIds at the given index.
    */
   java.lang.String getAckIds(int index);
+
   /**
    *
    *
diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/BigQueryConfig.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/BigQueryConfig.java
index 2683f75df..95239f904 100644
--- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/BigQueryConfig.java
+++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/BigQueryConfig.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * 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.
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/pubsub/v1/pubsub.proto
 
+// Protobuf Java Version: 3.25.8
 package com.google.pubsub.v1;
 
 /**
@@ -32,6 +33,7 @@ public final class BigQueryConfig extends com.google.protobuf.GeneratedMessageV3
     // @@protoc_insertion_point(message_implements:google.pubsub.v1.BigQueryConfig)
     BigQueryConfigOrBuilder {
   private static final long serialVersionUID = 0L;
+
   // Use BigQueryConfig.newBuilder() to construct.
   private BigQueryConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) {
     super(builder);
@@ -40,6 +42,7 @@ private BigQueryConfig(com.google.protobuf.GeneratedMessageV3.Builder builder
   private BigQueryConfig() {
     table_ = "";
     state_ = 0;
+    serviceAccountEmail_ = "";
   }
 
   @java.lang.Override
@@ -128,6 +131,17 @@ public enum State implements com.google.protobuf.ProtocolMessageEnum {
      * SCHEMA_MISMATCH = 4;
      */
     SCHEMA_MISMATCH(4),
+    /**
+     *
+     *
+     * 
+     * Cannot write to the destination because enforce_in_transit is set to true
+     * and the destination locations are not in the allowed regions.
+     * 
+ * + * IN_TRANSIT_LOCATION_RESTRICTION = 5; + */ + IN_TRANSIT_LOCATION_RESTRICTION(5), UNRECOGNIZED(-1), ; @@ -141,6 +155,7 @@ public enum State implements com.google.protobuf.ProtocolMessageEnum { * STATE_UNSPECIFIED = 0; */ public static final int STATE_UNSPECIFIED_VALUE = 0; + /** * * @@ -151,6 +166,7 @@ public enum State implements com.google.protobuf.ProtocolMessageEnum { * ACTIVE = 1; */ public static final int ACTIVE_VALUE = 1; + /** * * @@ -166,6 +182,7 @@ public enum State implements com.google.protobuf.ProtocolMessageEnum { * PERMISSION_DENIED = 2; */ public static final int PERMISSION_DENIED_VALUE = 2; + /** * * @@ -176,6 +193,7 @@ public enum State implements com.google.protobuf.ProtocolMessageEnum { * NOT_FOUND = 3; */ public static final int NOT_FOUND_VALUE = 3; + /** * * @@ -187,6 +205,18 @@ public enum State implements com.google.protobuf.ProtocolMessageEnum { */ public static final int SCHEMA_MISMATCH_VALUE = 4; + /** + * + * + *
+     * Cannot write to the destination because enforce_in_transit is set to true
+     * and the destination locations are not in the allowed regions.
+     * 
+ * + * IN_TRANSIT_LOCATION_RESTRICTION = 5; + */ + public static final int IN_TRANSIT_LOCATION_RESTRICTION_VALUE = 5; + public final int getNumber() { if (this == UNRECOGNIZED) { throw new java.lang.IllegalArgumentException( @@ -221,6 +251,8 @@ public static State forNumber(int value) { return NOT_FOUND; case 4: return SCHEMA_MISMATCH; + case 5: + return IN_TRANSIT_LOCATION_RESTRICTION; default: return null; } @@ -278,15 +310,16 @@ private State(int value) { @SuppressWarnings("serial") private volatile java.lang.Object table_ = ""; + /** * * *
-   * The name of the table to which to write data, of the form
+   * Optional. The name of the table to which to write data, of the form
    * {projectId}.{datasetId}.{tableId}
    * 
* - * string table = 1; + * string table = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The table. */ @@ -302,15 +335,16 @@ public java.lang.String getTable() { return s; } } + /** * * *
-   * The name of the table to which to write data, of the form
+   * Optional. The name of the table to which to write data, of the form
    * {projectId}.{datasetId}.{tableId}
    * 
* - * string table = 1; + * string table = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for table. */ @@ -329,6 +363,7 @@ public com.google.protobuf.ByteString getTableBytes() { public static final int USE_TOPIC_SCHEMA_FIELD_NUMBER = 2; private boolean useTopicSchema_ = false; + /** * * @@ -349,18 +384,19 @@ public boolean getUseTopicSchema() { public static final int WRITE_METADATA_FIELD_NUMBER = 3; private boolean writeMetadata_ = false; + /** * * *
-   * When true, write the subscription name, message_id, publish_time,
+   * Optional. When true, write the subscription name, message_id, publish_time,
    * attributes, and ordering_key to additional columns in the table. The
    * subscription name, message_id, and publish_time fields are put in their own
    * columns while all other message properties (other than data) are written to
    * a JSON object in the attributes column.
    * 
* - * bool write_metadata = 3; + * bool write_metadata = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The writeMetadata. */ @@ -371,18 +407,19 @@ public boolean getWriteMetadata() { public static final int DROP_UNKNOWN_FIELDS_FIELD_NUMBER = 4; private boolean dropUnknownFields_ = false; + /** * * *
-   * When true and use_topic_schema is true, any fields that are a part of the
-   * topic schema that are not part of the BigQuery table schema are dropped
-   * when writing to BigQuery. Otherwise, the schemas must be kept in sync and
-   * any messages with extra fields are not written and remain in the
+   * Optional. When true and use_topic_schema is true, any fields that are a
+   * part of the topic schema that are not part of the BigQuery table schema are
+   * dropped when writing to BigQuery. Otherwise, the schemas must be kept in
+   * sync and any messages with extra fields are not written and remain in the
    * subscription's backlog.
    * 
* - * bool drop_unknown_fields = 4; + * bool drop_unknown_fields = 4 [(.google.api.field_behavior) = OPTIONAL]; * * @return The dropUnknownFields. */ @@ -393,6 +430,7 @@ public boolean getDropUnknownFields() { public static final int STATE_FIELD_NUMBER = 5; private int state_ = 0; + /** * * @@ -411,6 +449,7 @@ public boolean getDropUnknownFields() { public int getStateValue() { return state_; } + /** * * @@ -434,6 +473,7 @@ public com.google.pubsub.v1.BigQueryConfig.State getState() { public static final int USE_TABLE_SCHEMA_FIELD_NUMBER = 6; private boolean useTableSchema_ = false; + /** * * @@ -452,6 +492,69 @@ public boolean getUseTableSchema() { return useTableSchema_; } + public static final int SERVICE_ACCOUNT_EMAIL_FIELD_NUMBER = 7; + + @SuppressWarnings("serial") + private volatile java.lang.Object serviceAccountEmail_ = ""; + + /** + * + * + *
+   * Optional. The service account to use to write to BigQuery. The subscription
+   * creator or updater that specifies this field must have
+   * `iam.serviceAccounts.actAs` permission on the service account. If not
+   * specified, the Pub/Sub [service
+   * agent](https://cloud.google.com/iam/docs/service-agents),
+   * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
+   * 
+ * + * string service_account_email = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The serviceAccountEmail. + */ + @java.lang.Override + public java.lang.String getServiceAccountEmail() { + java.lang.Object ref = serviceAccountEmail_; + 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(); + serviceAccountEmail_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. The service account to use to write to BigQuery. The subscription
+   * creator or updater that specifies this field must have
+   * `iam.serviceAccounts.actAs` permission on the service account. If not
+   * specified, the Pub/Sub [service
+   * agent](https://cloud.google.com/iam/docs/service-agents),
+   * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
+   * 
+ * + * string service_account_email = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for serviceAccountEmail. + */ + @java.lang.Override + public com.google.protobuf.ByteString getServiceAccountEmailBytes() { + java.lang.Object ref = serviceAccountEmail_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + serviceAccountEmail_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -484,6 +587,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (useTableSchema_ != false) { output.writeBool(6, useTableSchema_); } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(serviceAccountEmail_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 7, serviceAccountEmail_); + } getUnknownFields().writeTo(output); } @@ -511,6 +617,9 @@ public int getSerializedSize() { if (useTableSchema_ != false) { size += com.google.protobuf.CodedOutputStream.computeBoolSize(6, useTableSchema_); } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(serviceAccountEmail_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, serviceAccountEmail_); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -532,6 +641,7 @@ public boolean equals(final java.lang.Object obj) { if (getDropUnknownFields() != other.getDropUnknownFields()) return false; if (state_ != other.state_) return false; if (getUseTableSchema() != other.getUseTableSchema()) return false; + if (!getServiceAccountEmail().equals(other.getServiceAccountEmail())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -555,6 +665,8 @@ public int hashCode() { hash = (53 * hash) + state_; hash = (37 * hash) + USE_TABLE_SCHEMA_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getUseTableSchema()); + hash = (37 * hash) + SERVICE_ACCOUNT_EMAIL_FIELD_NUMBER; + hash = (53 * hash) + getServiceAccountEmail().hashCode(); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -654,6 +766,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -699,6 +812,7 @@ public Builder clear() { dropUnknownFields_ = false; state_ = 0; useTableSchema_ = false; + serviceAccountEmail_ = ""; return this; } @@ -752,6 +866,9 @@ private void buildPartial0(com.google.pubsub.v1.BigQueryConfig result) { if (((from_bitField0_ & 0x00000020) != 0)) { result.useTableSchema_ = useTableSchema_; } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.serviceAccountEmail_ = serviceAccountEmail_; + } } @java.lang.Override @@ -819,6 +936,11 @@ public Builder mergeFrom(com.google.pubsub.v1.BigQueryConfig other) { if (other.getUseTableSchema() != false) { setUseTableSchema(other.getUseTableSchema()); } + if (!other.getServiceAccountEmail().isEmpty()) { + serviceAccountEmail_ = other.serviceAccountEmail_; + bitField0_ |= 0x00000040; + onChanged(); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -881,6 +1003,12 @@ public Builder mergeFrom( bitField0_ |= 0x00000020; break; } // case 48 + case 58: + { + serviceAccountEmail_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 58 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -901,15 +1029,16 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object table_ = ""; + /** * * *
-     * The name of the table to which to write data, of the form
+     * Optional. The name of the table to which to write data, of the form
      * {projectId}.{datasetId}.{tableId}
      * 
* - * string table = 1; + * string table = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The table. */ @@ -924,15 +1053,16 @@ public java.lang.String getTable() { return (java.lang.String) ref; } } + /** * * *
-     * The name of the table to which to write data, of the form
+     * Optional. The name of the table to which to write data, of the form
      * {projectId}.{datasetId}.{tableId}
      * 
* - * string table = 1; + * string table = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for table. */ @@ -947,15 +1077,16 @@ public com.google.protobuf.ByteString getTableBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * The name of the table to which to write data, of the form
+     * Optional. The name of the table to which to write data, of the form
      * {projectId}.{datasetId}.{tableId}
      * 
* - * string table = 1; + * string table = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The table to set. * @return This builder for chaining. @@ -969,15 +1100,16 @@ public Builder setTable(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The name of the table to which to write data, of the form
+     * Optional. The name of the table to which to write data, of the form
      * {projectId}.{datasetId}.{tableId}
      * 
* - * string table = 1; + * string table = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -987,15 +1119,16 @@ public Builder clearTable() { onChanged(); return this; } + /** * * *
-     * The name of the table to which to write data, of the form
+     * Optional. The name of the table to which to write data, of the form
      * {projectId}.{datasetId}.{tableId}
      * 
* - * string table = 1; + * string table = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for table to set. * @return This builder for chaining. @@ -1012,6 +1145,7 @@ public Builder setTableBytes(com.google.protobuf.ByteString value) { } private boolean useTopicSchema_; + /** * * @@ -1029,6 +1163,7 @@ public Builder setTableBytes(com.google.protobuf.ByteString value) { public boolean getUseTopicSchema() { return useTopicSchema_; } + /** * * @@ -1050,6 +1185,7 @@ public Builder setUseTopicSchema(boolean value) { onChanged(); return this; } + /** * * @@ -1071,18 +1207,19 @@ public Builder clearUseTopicSchema() { } private boolean writeMetadata_; + /** * * *
-     * When true, write the subscription name, message_id, publish_time,
+     * Optional. When true, write the subscription name, message_id, publish_time,
      * attributes, and ordering_key to additional columns in the table. The
      * subscription name, message_id, and publish_time fields are put in their own
      * columns while all other message properties (other than data) are written to
      * a JSON object in the attributes column.
      * 
* - * bool write_metadata = 3; + * bool write_metadata = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The writeMetadata. */ @@ -1090,18 +1227,19 @@ public Builder clearUseTopicSchema() { public boolean getWriteMetadata() { return writeMetadata_; } + /** * * *
-     * When true, write the subscription name, message_id, publish_time,
+     * Optional. When true, write the subscription name, message_id, publish_time,
      * attributes, and ordering_key to additional columns in the table. The
      * subscription name, message_id, and publish_time fields are put in their own
      * columns while all other message properties (other than data) are written to
      * a JSON object in the attributes column.
      * 
* - * bool write_metadata = 3; + * bool write_metadata = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The writeMetadata to set. * @return This builder for chaining. @@ -1113,18 +1251,19 @@ public Builder setWriteMetadata(boolean value) { onChanged(); return this; } + /** * * *
-     * When true, write the subscription name, message_id, publish_time,
+     * Optional. When true, write the subscription name, message_id, publish_time,
      * attributes, and ordering_key to additional columns in the table. The
      * subscription name, message_id, and publish_time fields are put in their own
      * columns while all other message properties (other than data) are written to
      * a JSON object in the attributes column.
      * 
* - * bool write_metadata = 3; + * bool write_metadata = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -1136,18 +1275,19 @@ public Builder clearWriteMetadata() { } private boolean dropUnknownFields_; + /** * * *
-     * When true and use_topic_schema is true, any fields that are a part of the
-     * topic schema that are not part of the BigQuery table schema are dropped
-     * when writing to BigQuery. Otherwise, the schemas must be kept in sync and
-     * any messages with extra fields are not written and remain in the
+     * Optional. When true and use_topic_schema is true, any fields that are a
+     * part of the topic schema that are not part of the BigQuery table schema are
+     * dropped when writing to BigQuery. Otherwise, the schemas must be kept in
+     * sync and any messages with extra fields are not written and remain in the
      * subscription's backlog.
      * 
* - * bool drop_unknown_fields = 4; + * bool drop_unknown_fields = 4 [(.google.api.field_behavior) = OPTIONAL]; * * @return The dropUnknownFields. */ @@ -1155,18 +1295,19 @@ public Builder clearWriteMetadata() { public boolean getDropUnknownFields() { return dropUnknownFields_; } + /** * * *
-     * When true and use_topic_schema is true, any fields that are a part of the
-     * topic schema that are not part of the BigQuery table schema are dropped
-     * when writing to BigQuery. Otherwise, the schemas must be kept in sync and
-     * any messages with extra fields are not written and remain in the
+     * Optional. When true and use_topic_schema is true, any fields that are a
+     * part of the topic schema that are not part of the BigQuery table schema are
+     * dropped when writing to BigQuery. Otherwise, the schemas must be kept in
+     * sync and any messages with extra fields are not written and remain in the
      * subscription's backlog.
      * 
* - * bool drop_unknown_fields = 4; + * bool drop_unknown_fields = 4 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The dropUnknownFields to set. * @return This builder for chaining. @@ -1178,18 +1319,19 @@ public Builder setDropUnknownFields(boolean value) { onChanged(); return this; } + /** * * *
-     * When true and use_topic_schema is true, any fields that are a part of the
-     * topic schema that are not part of the BigQuery table schema are dropped
-     * when writing to BigQuery. Otherwise, the schemas must be kept in sync and
-     * any messages with extra fields are not written and remain in the
+     * Optional. When true and use_topic_schema is true, any fields that are a
+     * part of the topic schema that are not part of the BigQuery table schema are
+     * dropped when writing to BigQuery. Otherwise, the schemas must be kept in
+     * sync and any messages with extra fields are not written and remain in the
      * subscription's backlog.
      * 
* - * bool drop_unknown_fields = 4; + * bool drop_unknown_fields = 4 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -1201,6 +1343,7 @@ public Builder clearDropUnknownFields() { } private int state_ = 0; + /** * * @@ -1219,6 +1362,7 @@ public Builder clearDropUnknownFields() { public int getStateValue() { return state_; } + /** * * @@ -1240,6 +1384,7 @@ public Builder setStateValue(int value) { onChanged(); return this; } + /** * * @@ -1260,6 +1405,7 @@ public com.google.pubsub.v1.BigQueryConfig.State getState() { com.google.pubsub.v1.BigQueryConfig.State.forNumber(state_); return result == null ? com.google.pubsub.v1.BigQueryConfig.State.UNRECOGNIZED : result; } + /** * * @@ -1284,6 +1430,7 @@ public Builder setState(com.google.pubsub.v1.BigQueryConfig.State value) { onChanged(); return this; } + /** * * @@ -1306,6 +1453,7 @@ public Builder clearState() { } private boolean useTableSchema_; + /** * * @@ -1323,6 +1471,7 @@ public Builder clearState() { public boolean getUseTableSchema() { return useTableSchema_; } + /** * * @@ -1344,6 +1493,7 @@ public Builder setUseTableSchema(boolean value) { onChanged(); return this; } + /** * * @@ -1364,6 +1514,142 @@ public Builder clearUseTableSchema() { return this; } + private java.lang.Object serviceAccountEmail_ = ""; + + /** + * + * + *
+     * Optional. The service account to use to write to BigQuery. The subscription
+     * creator or updater that specifies this field must have
+     * `iam.serviceAccounts.actAs` permission on the service account. If not
+     * specified, the Pub/Sub [service
+     * agent](https://cloud.google.com/iam/docs/service-agents),
+     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
+     * 
+ * + * string service_account_email = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The serviceAccountEmail. + */ + public java.lang.String getServiceAccountEmail() { + java.lang.Object ref = serviceAccountEmail_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + serviceAccountEmail_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. The service account to use to write to BigQuery. The subscription
+     * creator or updater that specifies this field must have
+     * `iam.serviceAccounts.actAs` permission on the service account. If not
+     * specified, the Pub/Sub [service
+     * agent](https://cloud.google.com/iam/docs/service-agents),
+     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
+     * 
+ * + * string service_account_email = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for serviceAccountEmail. + */ + public com.google.protobuf.ByteString getServiceAccountEmailBytes() { + java.lang.Object ref = serviceAccountEmail_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + serviceAccountEmail_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. The service account to use to write to BigQuery. The subscription
+     * creator or updater that specifies this field must have
+     * `iam.serviceAccounts.actAs` permission on the service account. If not
+     * specified, the Pub/Sub [service
+     * agent](https://cloud.google.com/iam/docs/service-agents),
+     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
+     * 
+ * + * string service_account_email = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The serviceAccountEmail to set. + * @return This builder for chaining. + */ + public Builder setServiceAccountEmail(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + serviceAccountEmail_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The service account to use to write to BigQuery. The subscription
+     * creator or updater that specifies this field must have
+     * `iam.serviceAccounts.actAs` permission on the service account. If not
+     * specified, the Pub/Sub [service
+     * agent](https://cloud.google.com/iam/docs/service-agents),
+     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
+     * 
+ * + * string service_account_email = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearServiceAccountEmail() { + serviceAccountEmail_ = getDefaultInstance().getServiceAccountEmail(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The service account to use to write to BigQuery. The subscription
+     * creator or updater that specifies this field must have
+     * `iam.serviceAccounts.actAs` permission on the service account. If not
+     * specified, the Pub/Sub [service
+     * agent](https://cloud.google.com/iam/docs/service-agents),
+     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
+     * 
+ * + * string service_account_email = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for serviceAccountEmail to set. + * @return This builder for chaining. + */ + public Builder setServiceAccountEmailBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + serviceAccountEmail_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/BigQueryConfigOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/BigQueryConfigOrBuilder.java index bc805214f..eaa9abaaa 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/BigQueryConfigOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/BigQueryConfigOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface BigQueryConfigOrBuilder @@ -27,24 +28,25 @@ public interface BigQueryConfigOrBuilder * * *
-   * The name of the table to which to write data, of the form
+   * Optional. The name of the table to which to write data, of the form
    * {projectId}.{datasetId}.{tableId}
    * 
* - * string table = 1; + * string table = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The table. */ java.lang.String getTable(); + /** * * *
-   * The name of the table to which to write data, of the form
+   * Optional. The name of the table to which to write data, of the form
    * {projectId}.{datasetId}.{tableId}
    * 
* - * string table = 1; + * string table = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for table. */ @@ -69,14 +71,14 @@ public interface BigQueryConfigOrBuilder * * *
-   * When true, write the subscription name, message_id, publish_time,
+   * Optional. When true, write the subscription name, message_id, publish_time,
    * attributes, and ordering_key to additional columns in the table. The
    * subscription name, message_id, and publish_time fields are put in their own
    * columns while all other message properties (other than data) are written to
    * a JSON object in the attributes column.
    * 
* - * bool write_metadata = 3; + * bool write_metadata = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The writeMetadata. */ @@ -86,14 +88,14 @@ public interface BigQueryConfigOrBuilder * * *
-   * When true and use_topic_schema is true, any fields that are a part of the
-   * topic schema that are not part of the BigQuery table schema are dropped
-   * when writing to BigQuery. Otherwise, the schemas must be kept in sync and
-   * any messages with extra fields are not written and remain in the
+   * Optional. When true and use_topic_schema is true, any fields that are a
+   * part of the topic schema that are not part of the BigQuery table schema are
+   * dropped when writing to BigQuery. Otherwise, the schemas must be kept in
+   * sync and any messages with extra fields are not written and remain in the
    * subscription's backlog.
    * 
* - * bool drop_unknown_fields = 4; + * bool drop_unknown_fields = 4 [(.google.api.field_behavior) = OPTIONAL]; * * @return The dropUnknownFields. */ @@ -114,6 +116,7 @@ public interface BigQueryConfigOrBuilder * @return The enum numeric value on the wire for state. */ int getStateValue(); + /** * * @@ -144,4 +147,40 @@ public interface BigQueryConfigOrBuilder * @return The useTableSchema. */ boolean getUseTableSchema(); + + /** + * + * + *
+   * Optional. The service account to use to write to BigQuery. The subscription
+   * creator or updater that specifies this field must have
+   * `iam.serviceAccounts.actAs` permission on the service account. If not
+   * specified, the Pub/Sub [service
+   * agent](https://cloud.google.com/iam/docs/service-agents),
+   * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
+   * 
+ * + * string service_account_email = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The serviceAccountEmail. + */ + java.lang.String getServiceAccountEmail(); + + /** + * + * + *
+   * Optional. The service account to use to write to BigQuery. The subscription
+   * creator or updater that specifies this field must have
+   * `iam.serviceAccounts.actAs` permission on the service account. If not
+   * specified, the Pub/Sub [service
+   * agent](https://cloud.google.com/iam/docs/service-agents),
+   * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
+   * 
+ * + * string service_account_email = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for serviceAccountEmail. + */ + com.google.protobuf.ByteString getServiceAccountEmailBytes(); } diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CloudStorageConfig.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CloudStorageConfig.java index a4532a62f..3f2ecd9db 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CloudStorageConfig.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CloudStorageConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class CloudStorageConfig extends com.google.protobuf.GeneratedMessa // @@protoc_insertion_point(message_implements:google.pubsub.v1.CloudStorageConfig) CloudStorageConfigOrBuilder { private static final long serialVersionUID = 0L; + // Use CloudStorageConfig.newBuilder() to construct. private CloudStorageConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -41,7 +43,9 @@ private CloudStorageConfig() { bucket_ = ""; filenamePrefix_ = ""; filenameSuffix_ = ""; + filenameDatetimeFormat_ = ""; state_ = 0; + serviceAccountEmail_ = ""; } @java.lang.Override @@ -116,6 +120,28 @@ public enum State implements com.google.protobuf.ProtocolMessageEnum { * NOT_FOUND = 3; */ NOT_FOUND(3), + /** + * + * + *
+     * Cannot write to the destination because enforce_in_transit is set to true
+     * and the destination locations are not in the allowed regions.
+     * 
+ * + * IN_TRANSIT_LOCATION_RESTRICTION = 4; + */ + IN_TRANSIT_LOCATION_RESTRICTION(4), + /** + * + * + *
+     * Cannot write to the Cloud Storage bucket due to an incompatibility
+     * between the topic schema and subscription settings.
+     * 
+ * + * SCHEMA_MISMATCH = 5; + */ + SCHEMA_MISMATCH(5), UNRECOGNIZED(-1), ; @@ -129,6 +155,7 @@ public enum State implements com.google.protobuf.ProtocolMessageEnum { * STATE_UNSPECIFIED = 0; */ public static final int STATE_UNSPECIFIED_VALUE = 0; + /** * * @@ -139,6 +166,7 @@ public enum State implements com.google.protobuf.ProtocolMessageEnum { * ACTIVE = 1; */ public static final int ACTIVE_VALUE = 1; + /** * * @@ -150,6 +178,7 @@ public enum State implements com.google.protobuf.ProtocolMessageEnum { * PERMISSION_DENIED = 2; */ public static final int PERMISSION_DENIED_VALUE = 2; + /** * * @@ -161,6 +190,30 @@ public enum State implements com.google.protobuf.ProtocolMessageEnum { */ public static final int NOT_FOUND_VALUE = 3; + /** + * + * + *
+     * Cannot write to the destination because enforce_in_transit is set to true
+     * and the destination locations are not in the allowed regions.
+     * 
+ * + * IN_TRANSIT_LOCATION_RESTRICTION = 4; + */ + public static final int IN_TRANSIT_LOCATION_RESTRICTION_VALUE = 4; + + /** + * + * + *
+     * Cannot write to the Cloud Storage bucket due to an incompatibility
+     * between the topic schema and subscription settings.
+     * 
+ * + * SCHEMA_MISMATCH = 5; + */ + public static final int SCHEMA_MISMATCH_VALUE = 5; + public final int getNumber() { if (this == UNRECOGNIZED) { throw new java.lang.IllegalArgumentException( @@ -193,6 +246,10 @@ public static State forNumber(int value) { return PERMISSION_DENIED; case 3: return NOT_FOUND; + case 4: + return IN_TRANSIT_LOCATION_RESTRICTION; + case 5: + return SCHEMA_MISMATCH; default: return null; } @@ -250,6 +307,7 @@ public interface TextConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:google.pubsub.v1.CloudStorageConfig.TextConfig) com.google.protobuf.MessageOrBuilder {} + /** * * @@ -266,6 +324,7 @@ public static final class TextConfig extends com.google.protobuf.GeneratedMessag // @@protoc_insertion_point(message_implements:google.pubsub.v1.CloudStorageConfig.TextConfig) TextConfigOrBuilder { private static final long serialVersionUID = 0L; + // Use TextConfig.newBuilder() to construct. private TextConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -445,6 +504,7 @@ protected Builder newBuilderForType( Builder builder = new Builder(parent); return builder; } + /** * * @@ -681,20 +741,35 @@ public interface AvroConfigOrBuilder * * *
-     * When true, write the subscription name, message_id, publish_time,
-     * attributes, and ordering_key as additional fields in the output. The
-     * subscription name, message_id, and publish_time fields are put in their
-     * own fields while all other message properties other than data (for
-     * example, an ordering_key, if present) are added as entries in the
-     * attributes map.
+     * Optional. When true, write the subscription name, message_id,
+     * publish_time, attributes, and ordering_key as additional fields in the
+     * output. The subscription name, message_id, and publish_time fields are
+     * put in their own fields while all other message properties other than
+     * data (for example, an ordering_key, if present) are added as entries in
+     * the attributes map.
      * 
* - * bool write_metadata = 1; + * bool write_metadata = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The writeMetadata. */ boolean getWriteMetadata(); + + /** + * + * + *
+     * Optional. When true, the output Cloud Storage file will be serialized
+     * using the topic schema, if it exists.
+     * 
+ * + * bool use_topic_schema = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The useTopicSchema. + */ + boolean getUseTopicSchema(); } + /** * * @@ -710,6 +785,7 @@ public static final class AvroConfig extends com.google.protobuf.GeneratedMessag // @@protoc_insertion_point(message_implements:google.pubsub.v1.CloudStorageConfig.AvroConfig) AvroConfigOrBuilder { private static final long serialVersionUID = 0L; + // Use AvroConfig.newBuilder() to construct. private AvroConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -740,19 +816,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { public static final int WRITE_METADATA_FIELD_NUMBER = 1; private boolean writeMetadata_ = false; + /** * * *
-     * When true, write the subscription name, message_id, publish_time,
-     * attributes, and ordering_key as additional fields in the output. The
-     * subscription name, message_id, and publish_time fields are put in their
-     * own fields while all other message properties other than data (for
-     * example, an ordering_key, if present) are added as entries in the
-     * attributes map.
+     * Optional. When true, write the subscription name, message_id,
+     * publish_time, attributes, and ordering_key as additional fields in the
+     * output. The subscription name, message_id, and publish_time fields are
+     * put in their own fields while all other message properties other than
+     * data (for example, an ordering_key, if present) are added as entries in
+     * the attributes map.
      * 
* - * bool write_metadata = 1; + * bool write_metadata = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The writeMetadata. */ @@ -761,6 +838,26 @@ public boolean getWriteMetadata() { return writeMetadata_; } + public static final int USE_TOPIC_SCHEMA_FIELD_NUMBER = 2; + private boolean useTopicSchema_ = false; + + /** + * + * + *
+     * Optional. When true, the output Cloud Storage file will be serialized
+     * using the topic schema, if it exists.
+     * 
+ * + * bool use_topic_schema = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The useTopicSchema. + */ + @java.lang.Override + public boolean getUseTopicSchema() { + return useTopicSchema_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -778,6 +875,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (writeMetadata_ != false) { output.writeBool(1, writeMetadata_); } + if (useTopicSchema_ != false) { + output.writeBool(2, useTopicSchema_); + } getUnknownFields().writeTo(output); } @@ -790,6 +890,9 @@ public int getSerializedSize() { if (writeMetadata_ != false) { size += com.google.protobuf.CodedOutputStream.computeBoolSize(1, writeMetadata_); } + if (useTopicSchema_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, useTopicSchema_); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -807,6 +910,7 @@ public boolean equals(final java.lang.Object obj) { (com.google.pubsub.v1.CloudStorageConfig.AvroConfig) obj; if (getWriteMetadata() != other.getWriteMetadata()) return false; + if (getUseTopicSchema() != other.getUseTopicSchema()) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -820,6 +924,8 @@ public int hashCode() { hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + WRITE_METADATA_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getWriteMetadata()); + hash = (37 * hash) + USE_TOPIC_SCHEMA_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getUseTopicSchema()); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -921,6 +1027,7 @@ protected Builder newBuilderForType( Builder builder = new Builder(parent); return builder; } + /** * * @@ -963,6 +1070,7 @@ public Builder clear() { super.clear(); bitField0_ = 0; writeMetadata_ = false; + useTopicSchema_ = false; return this; } @@ -1002,6 +1110,9 @@ private void buildPartial0(com.google.pubsub.v1.CloudStorageConfig.AvroConfig re if (((from_bitField0_ & 0x00000001) != 0)) { result.writeMetadata_ = writeMetadata_; } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.useTopicSchema_ = useTopicSchema_; + } } @java.lang.Override @@ -1055,6 +1166,9 @@ public Builder mergeFrom(com.google.pubsub.v1.CloudStorageConfig.AvroConfig othe if (other.getWriteMetadata() != false) { setWriteMetadata(other.getWriteMetadata()); } + if (other.getUseTopicSchema() != false) { + setUseTopicSchema(other.getUseTopicSchema()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -1087,6 +1201,12 @@ public Builder mergeFrom( bitField0_ |= 0x00000001; break; } // case 8 + case 16: + { + useTopicSchema_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } // case 16 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -1107,19 +1227,20 @@ public Builder mergeFrom( private int bitField0_; private boolean writeMetadata_; + /** * * *
-       * When true, write the subscription name, message_id, publish_time,
-       * attributes, and ordering_key as additional fields in the output. The
-       * subscription name, message_id, and publish_time fields are put in their
-       * own fields while all other message properties other than data (for
-       * example, an ordering_key, if present) are added as entries in the
-       * attributes map.
+       * Optional. When true, write the subscription name, message_id,
+       * publish_time, attributes, and ordering_key as additional fields in the
+       * output. The subscription name, message_id, and publish_time fields are
+       * put in their own fields while all other message properties other than
+       * data (for example, an ordering_key, if present) are added as entries in
+       * the attributes map.
        * 
* - * bool write_metadata = 1; + * bool write_metadata = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The writeMetadata. */ @@ -1127,19 +1248,20 @@ public Builder mergeFrom( public boolean getWriteMetadata() { return writeMetadata_; } + /** * * *
-       * When true, write the subscription name, message_id, publish_time,
-       * attributes, and ordering_key as additional fields in the output. The
-       * subscription name, message_id, and publish_time fields are put in their
-       * own fields while all other message properties other than data (for
-       * example, an ordering_key, if present) are added as entries in the
-       * attributes map.
+       * Optional. When true, write the subscription name, message_id,
+       * publish_time, attributes, and ordering_key as additional fields in the
+       * output. The subscription name, message_id, and publish_time fields are
+       * put in their own fields while all other message properties other than
+       * data (for example, an ordering_key, if present) are added as entries in
+       * the attributes map.
        * 
* - * bool write_metadata = 1; + * bool write_metadata = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The writeMetadata to set. * @return This builder for chaining. @@ -1151,19 +1273,20 @@ public Builder setWriteMetadata(boolean value) { onChanged(); return this; } + /** * * *
-       * When true, write the subscription name, message_id, publish_time,
-       * attributes, and ordering_key as additional fields in the output. The
-       * subscription name, message_id, and publish_time fields are put in their
-       * own fields while all other message properties other than data (for
-       * example, an ordering_key, if present) are added as entries in the
-       * attributes map.
+       * Optional. When true, write the subscription name, message_id,
+       * publish_time, attributes, and ordering_key as additional fields in the
+       * output. The subscription name, message_id, and publish_time fields are
+       * put in their own fields while all other message properties other than
+       * data (for example, an ordering_key, if present) are added as entries in
+       * the attributes map.
        * 
* - * bool write_metadata = 1; + * bool write_metadata = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -1174,6 +1297,65 @@ public Builder clearWriteMetadata() { return this; } + private boolean useTopicSchema_; + + /** + * + * + *
+       * Optional. When true, the output Cloud Storage file will be serialized
+       * using the topic schema, if it exists.
+       * 
+ * + * bool use_topic_schema = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The useTopicSchema. + */ + @java.lang.Override + public boolean getUseTopicSchema() { + return useTopicSchema_; + } + + /** + * + * + *
+       * Optional. When true, the output Cloud Storage file will be serialized
+       * using the topic schema, if it exists.
+       * 
+ * + * bool use_topic_schema = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The useTopicSchema to set. + * @return This builder for chaining. + */ + public Builder setUseTopicSchema(boolean value) { + + useTopicSchema_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. When true, the output Cloud Storage file will be serialized
+       * using the topic schema, if it exists.
+       * 
+ * + * bool use_topic_schema = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearUseTopicSchema() { + bitField0_ = (bitField0_ & ~0x00000002); + useTopicSchema_ = false; + onChanged(); + return this; + } + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -1238,6 +1420,7 @@ public com.google.pubsub.v1.CloudStorageConfig.AvroConfig getDefaultInstanceForT } } + private int bitField0_; private int outputFormatCase_ = 0; @SuppressWarnings("serial") @@ -1255,6 +1438,7 @@ public enum OutputFormatCase private OutputFormatCase(int value) { this.value = value; } + /** * @param value The number of the enum to look for. * @return The enum associated with the given number. @@ -1291,6 +1475,7 @@ public OutputFormatCase getOutputFormatCase() { @SuppressWarnings("serial") private volatile java.lang.Object bucket_ = ""; + /** * * @@ -1317,6 +1502,7 @@ public java.lang.String getBucket() { return s; } } + /** * * @@ -1348,15 +1534,16 @@ public com.google.protobuf.ByteString getBucketBytes() { @SuppressWarnings("serial") private volatile java.lang.Object filenamePrefix_ = ""; + /** * * *
-   * User-provided prefix for Cloud Storage filename. See the [object naming
-   * requirements](https://cloud.google.com/storage/docs/objects#naming).
+   * Optional. User-provided prefix for Cloud Storage filename. See the [object
+   * naming requirements](https://cloud.google.com/storage/docs/objects#naming).
    * 
* - * string filename_prefix = 2; + * string filename_prefix = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The filenamePrefix. */ @@ -1372,15 +1559,16 @@ public java.lang.String getFilenamePrefix() { return s; } } + /** * * *
-   * User-provided prefix for Cloud Storage filename. See the [object naming
-   * requirements](https://cloud.google.com/storage/docs/objects#naming).
+   * Optional. User-provided prefix for Cloud Storage filename. See the [object
+   * naming requirements](https://cloud.google.com/storage/docs/objects#naming).
    * 
* - * string filename_prefix = 2; + * string filename_prefix = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for filenamePrefix. */ @@ -1401,16 +1589,17 @@ public com.google.protobuf.ByteString getFilenamePrefixBytes() { @SuppressWarnings("serial") private volatile java.lang.Object filenameSuffix_ = ""; + /** * * *
-   * User-provided suffix for Cloud Storage filename. See the [object naming
-   * requirements](https://cloud.google.com/storage/docs/objects#naming). Must
-   * not end in "/".
+   * Optional. User-provided suffix for Cloud Storage filename. See the [object
+   * naming requirements](https://cloud.google.com/storage/docs/objects#naming).
+   * Must not end in "/".
    * 
* - * string filename_suffix = 3; + * string filename_suffix = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The filenameSuffix. */ @@ -1426,16 +1615,17 @@ public java.lang.String getFilenameSuffix() { return s; } } + /** * * *
-   * User-provided suffix for Cloud Storage filename. See the [object naming
-   * requirements](https://cloud.google.com/storage/docs/objects#naming). Must
-   * not end in "/".
+   * Optional. User-provided suffix for Cloud Storage filename. See the [object
+   * naming requirements](https://cloud.google.com/storage/docs/objects#naming).
+   * Must not end in "/".
    * 
* - * string filename_suffix = 3; + * string filename_suffix = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for filenameSuffix. */ @@ -1452,15 +1642,76 @@ public com.google.protobuf.ByteString getFilenameSuffixBytes() { } } + public static final int FILENAME_DATETIME_FORMAT_FIELD_NUMBER = 10; + + @SuppressWarnings("serial") + private volatile java.lang.Object filenameDatetimeFormat_ = ""; + + /** + * + * + *
+   * Optional. User-provided format string specifying how to represent datetimes
+   * in Cloud Storage filenames. See the [datetime format
+   * guidance](https://cloud.google.com/pubsub/docs/create-cloudstorage-subscription#file_names).
+   * 
+ * + * string filename_datetime_format = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The filenameDatetimeFormat. + */ + @java.lang.Override + public java.lang.String getFilenameDatetimeFormat() { + java.lang.Object ref = filenameDatetimeFormat_; + 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(); + filenameDatetimeFormat_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. User-provided format string specifying how to represent datetimes
+   * in Cloud Storage filenames. See the [datetime format
+   * guidance](https://cloud.google.com/pubsub/docs/create-cloudstorage-subscription#file_names).
+   * 
+ * + * string filename_datetime_format = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for filenameDatetimeFormat. + */ + @java.lang.Override + public com.google.protobuf.ByteString getFilenameDatetimeFormatBytes() { + java.lang.Object ref = filenameDatetimeFormat_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + filenameDatetimeFormat_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + public static final int TEXT_CONFIG_FIELD_NUMBER = 4; + /** * * *
-   * If set, message data will be written to Cloud Storage in text format.
+   * Optional. If set, message data will be written to Cloud Storage in text
+   * format.
    * 
* - * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4; + * + * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the textConfig field is set. */ @@ -1468,14 +1719,18 @@ public com.google.protobuf.ByteString getFilenameSuffixBytes() { public boolean hasTextConfig() { return outputFormatCase_ == 4; } + /** * * *
-   * If set, message data will be written to Cloud Storage in text format.
+   * Optional. If set, message data will be written to Cloud Storage in text
+   * format.
    * 
* - * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4; + * + * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The textConfig. */ @@ -1486,14 +1741,18 @@ public com.google.pubsub.v1.CloudStorageConfig.TextConfig getTextConfig() { } return com.google.pubsub.v1.CloudStorageConfig.TextConfig.getDefaultInstance(); } + /** * * *
-   * If set, message data will be written to Cloud Storage in text format.
+   * Optional. If set, message data will be written to Cloud Storage in text
+   * format.
    * 
* - * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4; + * + * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.CloudStorageConfig.TextConfigOrBuilder getTextConfigOrBuilder() { @@ -1504,14 +1763,18 @@ public com.google.pubsub.v1.CloudStorageConfig.TextConfigOrBuilder getTextConfig } public static final int AVRO_CONFIG_FIELD_NUMBER = 5; + /** * * *
-   * If set, message data will be written to Cloud Storage in Avro format.
+   * Optional. If set, message data will be written to Cloud Storage in Avro
+   * format.
    * 
* - * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5; + * + * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the avroConfig field is set. */ @@ -1519,14 +1782,18 @@ public com.google.pubsub.v1.CloudStorageConfig.TextConfigOrBuilder getTextConfig public boolean hasAvroConfig() { return outputFormatCase_ == 5; } + /** * * *
-   * If set, message data will be written to Cloud Storage in Avro format.
+   * Optional. If set, message data will be written to Cloud Storage in Avro
+   * format.
    * 
* - * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5; + * + * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The avroConfig. */ @@ -1537,14 +1804,18 @@ public com.google.pubsub.v1.CloudStorageConfig.AvroConfig getAvroConfig() { } return com.google.pubsub.v1.CloudStorageConfig.AvroConfig.getDefaultInstance(); } + /** * * *
-   * If set, message data will be written to Cloud Storage in Avro format.
+   * Optional. If set, message data will be written to Cloud Storage in Avro
+   * format.
    * 
* - * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5; + * + * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.CloudStorageConfig.AvroConfigOrBuilder getAvroConfigOrBuilder() { @@ -1556,33 +1827,37 @@ public com.google.pubsub.v1.CloudStorageConfig.AvroConfigOrBuilder getAvroConfig public static final int MAX_DURATION_FIELD_NUMBER = 6; private com.google.protobuf.Duration maxDuration_; + /** * * *
-   * The maximum duration that can elapse before a new Cloud Storage file is
-   * created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed
-   * the subscription's acknowledgement deadline.
+   * Optional. The maximum duration that can elapse before a new Cloud Storage
+   * file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not
+   * exceed the subscription's acknowledgment deadline.
    * 
* - * .google.protobuf.Duration max_duration = 6; + * .google.protobuf.Duration max_duration = 6 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the maxDuration field is set. */ @java.lang.Override public boolean hasMaxDuration() { - return maxDuration_ != null; + return ((bitField0_ & 0x00000001) != 0); } + /** * * *
-   * The maximum duration that can elapse before a new Cloud Storage file is
-   * created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed
-   * the subscription's acknowledgement deadline.
+   * Optional. The maximum duration that can elapse before a new Cloud Storage
+   * file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not
+   * exceed the subscription's acknowledgment deadline.
    * 
* - * .google.protobuf.Duration max_duration = 6; + * .google.protobuf.Duration max_duration = 6 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The maxDuration. */ @@ -1590,16 +1865,18 @@ public boolean hasMaxDuration() { public com.google.protobuf.Duration getMaxDuration() { return maxDuration_ == null ? com.google.protobuf.Duration.getDefaultInstance() : maxDuration_; } + /** * * *
-   * The maximum duration that can elapse before a new Cloud Storage file is
-   * created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed
-   * the subscription's acknowledgement deadline.
+   * Optional. The maximum duration that can elapse before a new Cloud Storage
+   * file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not
+   * exceed the subscription's acknowledgment deadline.
    * 
* - * .google.protobuf.Duration max_duration = 6; + * .google.protobuf.Duration max_duration = 6 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getMaxDurationOrBuilder() { @@ -1608,16 +1885,17 @@ public com.google.protobuf.DurationOrBuilder getMaxDurationOrBuilder() { public static final int MAX_BYTES_FIELD_NUMBER = 7; private long maxBytes_ = 0L; + /** * * *
-   * The maximum bytes that can be written to a Cloud Storage file before a new
-   * file is created. Min 1 KB, max 10 GiB. The max_bytes limit may be exceeded
-   * in cases where messages are larger than the limit.
+   * Optional. The maximum bytes that can be written to a Cloud Storage file
+   * before a new file is created. Min 1 KB, max 10 GiB. The max_bytes limit may
+   * be exceeded in cases where messages are larger than the limit.
    * 
* - * int64 max_bytes = 7; + * int64 max_bytes = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @return The maxBytes. */ @@ -1626,8 +1904,29 @@ public long getMaxBytes() { return maxBytes_; } + public static final int MAX_MESSAGES_FIELD_NUMBER = 8; + private long maxMessages_ = 0L; + + /** + * + * + *
+   * Optional. The maximum number of messages that can be written to a Cloud
+   * Storage file before a new file is created. Min 1000 messages.
+   * 
+ * + * int64 max_messages = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The maxMessages. + */ + @java.lang.Override + public long getMaxMessages() { + return maxMessages_; + } + public static final int STATE_FIELD_NUMBER = 9; private int state_ = 0; + /** * * @@ -1646,6 +1945,7 @@ public long getMaxBytes() { public int getStateValue() { return state_; } + /** * * @@ -1667,6 +1967,69 @@ public com.google.pubsub.v1.CloudStorageConfig.State getState() { return result == null ? com.google.pubsub.v1.CloudStorageConfig.State.UNRECOGNIZED : result; } + public static final int SERVICE_ACCOUNT_EMAIL_FIELD_NUMBER = 11; + + @SuppressWarnings("serial") + private volatile java.lang.Object serviceAccountEmail_ = ""; + + /** + * + * + *
+   * Optional. The service account to use to write to Cloud Storage. The
+   * subscription creator or updater that specifies this field must have
+   * `iam.serviceAccounts.actAs` permission on the service account. If not
+   * specified, the Pub/Sub
+   * [service agent](https://cloud.google.com/iam/docs/service-agents),
+   * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
+   * 
+ * + * string service_account_email = 11 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The serviceAccountEmail. + */ + @java.lang.Override + public java.lang.String getServiceAccountEmail() { + java.lang.Object ref = serviceAccountEmail_; + 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(); + serviceAccountEmail_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. The service account to use to write to Cloud Storage. The
+   * subscription creator or updater that specifies this field must have
+   * `iam.serviceAccounts.actAs` permission on the service account. If not
+   * specified, the Pub/Sub
+   * [service agent](https://cloud.google.com/iam/docs/service-agents),
+   * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
+   * 
+ * + * string service_account_email = 11 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for serviceAccountEmail. + */ + @java.lang.Override + public com.google.protobuf.ByteString getServiceAccountEmailBytes() { + java.lang.Object ref = serviceAccountEmail_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + serviceAccountEmail_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -1696,15 +2059,24 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (outputFormatCase_ == 5) { output.writeMessage(5, (com.google.pubsub.v1.CloudStorageConfig.AvroConfig) outputFormat_); } - if (maxDuration_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(6, getMaxDuration()); } if (maxBytes_ != 0L) { output.writeInt64(7, maxBytes_); } + if (maxMessages_ != 0L) { + output.writeInt64(8, maxMessages_); + } if (state_ != com.google.pubsub.v1.CloudStorageConfig.State.STATE_UNSPECIFIED.getNumber()) { output.writeEnum(9, state_); } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(filenameDatetimeFormat_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 10, filenameDatetimeFormat_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(serviceAccountEmail_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 11, serviceAccountEmail_); + } getUnknownFields().writeTo(output); } @@ -1733,15 +2105,24 @@ public int getSerializedSize() { com.google.protobuf.CodedOutputStream.computeMessageSize( 5, (com.google.pubsub.v1.CloudStorageConfig.AvroConfig) outputFormat_); } - if (maxDuration_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getMaxDuration()); } if (maxBytes_ != 0L) { size += com.google.protobuf.CodedOutputStream.computeInt64Size(7, maxBytes_); } + if (maxMessages_ != 0L) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(8, maxMessages_); + } if (state_ != com.google.pubsub.v1.CloudStorageConfig.State.STATE_UNSPECIFIED.getNumber()) { size += com.google.protobuf.CodedOutputStream.computeEnumSize(9, state_); } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(filenameDatetimeFormat_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, filenameDatetimeFormat_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(serviceAccountEmail_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, serviceAccountEmail_); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -1760,12 +2141,15 @@ public boolean equals(final java.lang.Object obj) { if (!getBucket().equals(other.getBucket())) return false; if (!getFilenamePrefix().equals(other.getFilenamePrefix())) return false; if (!getFilenameSuffix().equals(other.getFilenameSuffix())) return false; + if (!getFilenameDatetimeFormat().equals(other.getFilenameDatetimeFormat())) return false; if (hasMaxDuration() != other.hasMaxDuration()) return false; if (hasMaxDuration()) { if (!getMaxDuration().equals(other.getMaxDuration())) return false; } if (getMaxBytes() != other.getMaxBytes()) return false; + if (getMaxMessages() != other.getMaxMessages()) return false; if (state_ != other.state_) return false; + if (!getServiceAccountEmail().equals(other.getServiceAccountEmail())) return false; if (!getOutputFormatCase().equals(other.getOutputFormatCase())) return false; switch (outputFormatCase_) { case 4: @@ -1794,14 +2178,20 @@ public int hashCode() { hash = (53 * hash) + getFilenamePrefix().hashCode(); hash = (37 * hash) + FILENAME_SUFFIX_FIELD_NUMBER; hash = (53 * hash) + getFilenameSuffix().hashCode(); + hash = (37 * hash) + FILENAME_DATETIME_FORMAT_FIELD_NUMBER; + hash = (53 * hash) + getFilenameDatetimeFormat().hashCode(); if (hasMaxDuration()) { hash = (37 * hash) + MAX_DURATION_FIELD_NUMBER; hash = (53 * hash) + getMaxDuration().hashCode(); } hash = (37 * hash) + MAX_BYTES_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMaxBytes()); + hash = (37 * hash) + MAX_MESSAGES_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMaxMessages()); hash = (37 * hash) + STATE_FIELD_NUMBER; hash = (53 * hash) + state_; + hash = (37 * hash) + SERVICE_ACCOUNT_EMAIL_FIELD_NUMBER; + hash = (53 * hash) + getServiceAccountEmail().hashCode(); switch (outputFormatCase_) { case 4: hash = (37 * hash) + TEXT_CONFIG_FIELD_NUMBER; @@ -1914,6 +2304,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -1943,10 +2334,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } // Construct using com.google.pubsub.v1.CloudStorageConfig.newBuilder() - private Builder() {} + private Builder() { + maybeForceBuilderInitialization(); + } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getMaxDurationFieldBuilder(); + } } @java.lang.Override @@ -1956,6 +2356,7 @@ public Builder clear() { bucket_ = ""; filenamePrefix_ = ""; filenameSuffix_ = ""; + filenameDatetimeFormat_ = ""; if (textConfigBuilder_ != null) { textConfigBuilder_.clear(); } @@ -1968,7 +2369,9 @@ public Builder clear() { maxDurationBuilder_ = null; } maxBytes_ = 0L; + maxMessages_ = 0L; state_ = 0; + serviceAccountEmail_ = ""; outputFormatCase_ = 0; outputFormat_ = null; return this; @@ -2017,16 +2420,28 @@ private void buildPartial0(com.google.pubsub.v1.CloudStorageConfig result) { if (((from_bitField0_ & 0x00000004) != 0)) { result.filenameSuffix_ = filenameSuffix_; } - if (((from_bitField0_ & 0x00000020) != 0)) { + if (((from_bitField0_ & 0x00000008) != 0)) { + result.filenameDatetimeFormat_ = filenameDatetimeFormat_; + } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000040) != 0)) { result.maxDuration_ = maxDurationBuilder_ == null ? maxDuration_ : maxDurationBuilder_.build(); + to_bitField0_ |= 0x00000001; } - if (((from_bitField0_ & 0x00000040) != 0)) { + if (((from_bitField0_ & 0x00000080) != 0)) { result.maxBytes_ = maxBytes_; } - if (((from_bitField0_ & 0x00000080) != 0)) { + if (((from_bitField0_ & 0x00000100) != 0)) { + result.maxMessages_ = maxMessages_; + } + if (((from_bitField0_ & 0x00000200) != 0)) { result.state_ = state_; } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.serviceAccountEmail_ = serviceAccountEmail_; + } + result.bitField0_ |= to_bitField0_; } private void buildPartialOneofs(com.google.pubsub.v1.CloudStorageConfig result) { @@ -2100,15 +2515,28 @@ public Builder mergeFrom(com.google.pubsub.v1.CloudStorageConfig other) { bitField0_ |= 0x00000004; onChanged(); } - if (other.hasMaxDuration()) { + if (!other.getFilenameDatetimeFormat().isEmpty()) { + filenameDatetimeFormat_ = other.filenameDatetimeFormat_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (other.hasMaxDuration()) { mergeMaxDuration(other.getMaxDuration()); } if (other.getMaxBytes() != 0L) { setMaxBytes(other.getMaxBytes()); } + if (other.getMaxMessages() != 0L) { + setMaxMessages(other.getMaxMessages()); + } if (other.state_ != 0) { setStateValue(other.getStateValue()); } + if (!other.getServiceAccountEmail().isEmpty()) { + serviceAccountEmail_ = other.serviceAccountEmail_; + bitField0_ |= 0x00000400; + onChanged(); + } switch (other.getOutputFormatCase()) { case TEXT_CONFIG: { @@ -2184,21 +2612,39 @@ public Builder mergeFrom( case 50: { input.readMessage(getMaxDurationFieldBuilder().getBuilder(), extensionRegistry); - bitField0_ |= 0x00000020; + bitField0_ |= 0x00000040; break; } // case 50 case 56: { maxBytes_ = input.readInt64(); - bitField0_ |= 0x00000040; + bitField0_ |= 0x00000080; break; } // case 56 + case 64: + { + maxMessages_ = input.readInt64(); + bitField0_ |= 0x00000100; + break; + } // case 64 case 72: { state_ = input.readEnum(); - bitField0_ |= 0x00000080; + bitField0_ |= 0x00000200; break; } // case 72 + case 82: + { + filenameDatetimeFormat_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 82 + case 90: + { + serviceAccountEmail_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000400; + break; + } // case 90 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -2233,6 +2679,7 @@ public Builder clearOutputFormat() { private int bitField0_; private java.lang.Object bucket_ = ""; + /** * * @@ -2258,6 +2705,7 @@ public java.lang.String getBucket() { return (java.lang.String) ref; } } + /** * * @@ -2283,6 +2731,7 @@ public com.google.protobuf.ByteString getBucketBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -2307,6 +2756,7 @@ public Builder setBucket(java.lang.String value) { onChanged(); return this; } + /** * * @@ -2327,6 +2777,7 @@ public Builder clearBucket() { onChanged(); return this; } + /** * * @@ -2354,15 +2805,16 @@ public Builder setBucketBytes(com.google.protobuf.ByteString value) { } private java.lang.Object filenamePrefix_ = ""; + /** * * *
-     * User-provided prefix for Cloud Storage filename. See the [object naming
-     * requirements](https://cloud.google.com/storage/docs/objects#naming).
+     * Optional. User-provided prefix for Cloud Storage filename. See the [object
+     * naming requirements](https://cloud.google.com/storage/docs/objects#naming).
      * 
* - * string filename_prefix = 2; + * string filename_prefix = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The filenamePrefix. */ @@ -2377,15 +2829,16 @@ public java.lang.String getFilenamePrefix() { return (java.lang.String) ref; } } + /** * * *
-     * User-provided prefix for Cloud Storage filename. See the [object naming
-     * requirements](https://cloud.google.com/storage/docs/objects#naming).
+     * Optional. User-provided prefix for Cloud Storage filename. See the [object
+     * naming requirements](https://cloud.google.com/storage/docs/objects#naming).
      * 
* - * string filename_prefix = 2; + * string filename_prefix = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for filenamePrefix. */ @@ -2400,15 +2853,16 @@ public com.google.protobuf.ByteString getFilenamePrefixBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * User-provided prefix for Cloud Storage filename. See the [object naming
-     * requirements](https://cloud.google.com/storage/docs/objects#naming).
+     * Optional. User-provided prefix for Cloud Storage filename. See the [object
+     * naming requirements](https://cloud.google.com/storage/docs/objects#naming).
      * 
* - * string filename_prefix = 2; + * string filename_prefix = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The filenamePrefix to set. * @return This builder for chaining. @@ -2422,15 +2876,16 @@ public Builder setFilenamePrefix(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * User-provided prefix for Cloud Storage filename. See the [object naming
-     * requirements](https://cloud.google.com/storage/docs/objects#naming).
+     * Optional. User-provided prefix for Cloud Storage filename. See the [object
+     * naming requirements](https://cloud.google.com/storage/docs/objects#naming).
      * 
* - * string filename_prefix = 2; + * string filename_prefix = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -2440,15 +2895,16 @@ public Builder clearFilenamePrefix() { onChanged(); return this; } + /** * * *
-     * User-provided prefix for Cloud Storage filename. See the [object naming
-     * requirements](https://cloud.google.com/storage/docs/objects#naming).
+     * Optional. User-provided prefix for Cloud Storage filename. See the [object
+     * naming requirements](https://cloud.google.com/storage/docs/objects#naming).
      * 
* - * string filename_prefix = 2; + * string filename_prefix = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for filenamePrefix to set. * @return This builder for chaining. @@ -2465,16 +2921,17 @@ public Builder setFilenamePrefixBytes(com.google.protobuf.ByteString value) { } private java.lang.Object filenameSuffix_ = ""; + /** * * *
-     * User-provided suffix for Cloud Storage filename. See the [object naming
-     * requirements](https://cloud.google.com/storage/docs/objects#naming). Must
-     * not end in "/".
+     * Optional. User-provided suffix for Cloud Storage filename. See the [object
+     * naming requirements](https://cloud.google.com/storage/docs/objects#naming).
+     * Must not end in "/".
      * 
* - * string filename_suffix = 3; + * string filename_suffix = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The filenameSuffix. */ @@ -2489,16 +2946,17 @@ public java.lang.String getFilenameSuffix() { return (java.lang.String) ref; } } + /** * * *
-     * User-provided suffix for Cloud Storage filename. See the [object naming
-     * requirements](https://cloud.google.com/storage/docs/objects#naming). Must
-     * not end in "/".
+     * Optional. User-provided suffix for Cloud Storage filename. See the [object
+     * naming requirements](https://cloud.google.com/storage/docs/objects#naming).
+     * Must not end in "/".
      * 
* - * string filename_suffix = 3; + * string filename_suffix = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for filenameSuffix. */ @@ -2513,16 +2971,17 @@ public com.google.protobuf.ByteString getFilenameSuffixBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * User-provided suffix for Cloud Storage filename. See the [object naming
-     * requirements](https://cloud.google.com/storage/docs/objects#naming). Must
-     * not end in "/".
+     * Optional. User-provided suffix for Cloud Storage filename. See the [object
+     * naming requirements](https://cloud.google.com/storage/docs/objects#naming).
+     * Must not end in "/".
      * 
* - * string filename_suffix = 3; + * string filename_suffix = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The filenameSuffix to set. * @return This builder for chaining. @@ -2536,16 +2995,17 @@ public Builder setFilenameSuffix(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * User-provided suffix for Cloud Storage filename. See the [object naming
-     * requirements](https://cloud.google.com/storage/docs/objects#naming). Must
-     * not end in "/".
+     * Optional. User-provided suffix for Cloud Storage filename. See the [object
+     * naming requirements](https://cloud.google.com/storage/docs/objects#naming).
+     * Must not end in "/".
      * 
* - * string filename_suffix = 3; + * string filename_suffix = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -2555,16 +3015,17 @@ public Builder clearFilenameSuffix() { onChanged(); return this; } + /** * * *
-     * User-provided suffix for Cloud Storage filename. See the [object naming
-     * requirements](https://cloud.google.com/storage/docs/objects#naming). Must
-     * not end in "/".
+     * Optional. User-provided suffix for Cloud Storage filename. See the [object
+     * naming requirements](https://cloud.google.com/storage/docs/objects#naming).
+     * Must not end in "/".
      * 
* - * string filename_suffix = 3; + * string filename_suffix = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for filenameSuffix to set. * @return This builder for chaining. @@ -2580,19 +3041,144 @@ public Builder setFilenameSuffixBytes(com.google.protobuf.ByteString value) { return this; } + private java.lang.Object filenameDatetimeFormat_ = ""; + + /** + * + * + *
+     * Optional. User-provided format string specifying how to represent datetimes
+     * in Cloud Storage filenames. See the [datetime format
+     * guidance](https://cloud.google.com/pubsub/docs/create-cloudstorage-subscription#file_names).
+     * 
+ * + * string filename_datetime_format = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The filenameDatetimeFormat. + */ + public java.lang.String getFilenameDatetimeFormat() { + java.lang.Object ref = filenameDatetimeFormat_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + filenameDatetimeFormat_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. User-provided format string specifying how to represent datetimes
+     * in Cloud Storage filenames. See the [datetime format
+     * guidance](https://cloud.google.com/pubsub/docs/create-cloudstorage-subscription#file_names).
+     * 
+ * + * string filename_datetime_format = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for filenameDatetimeFormat. + */ + public com.google.protobuf.ByteString getFilenameDatetimeFormatBytes() { + java.lang.Object ref = filenameDatetimeFormat_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + filenameDatetimeFormat_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. User-provided format string specifying how to represent datetimes
+     * in Cloud Storage filenames. See the [datetime format
+     * guidance](https://cloud.google.com/pubsub/docs/create-cloudstorage-subscription#file_names).
+     * 
+ * + * string filename_datetime_format = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The filenameDatetimeFormat to set. + * @return This builder for chaining. + */ + public Builder setFilenameDatetimeFormat(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + filenameDatetimeFormat_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. User-provided format string specifying how to represent datetimes
+     * in Cloud Storage filenames. See the [datetime format
+     * guidance](https://cloud.google.com/pubsub/docs/create-cloudstorage-subscription#file_names).
+     * 
+ * + * string filename_datetime_format = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearFilenameDatetimeFormat() { + filenameDatetimeFormat_ = getDefaultInstance().getFilenameDatetimeFormat(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. User-provided format string specifying how to represent datetimes
+     * in Cloud Storage filenames. See the [datetime format
+     * guidance](https://cloud.google.com/pubsub/docs/create-cloudstorage-subscription#file_names).
+     * 
+ * + * string filename_datetime_format = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for filenameDatetimeFormat to set. + * @return This builder for chaining. + */ + public Builder setFilenameDatetimeFormatBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + filenameDatetimeFormat_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + private com.google.protobuf.SingleFieldBuilderV3< com.google.pubsub.v1.CloudStorageConfig.TextConfig, com.google.pubsub.v1.CloudStorageConfig.TextConfig.Builder, com.google.pubsub.v1.CloudStorageConfig.TextConfigOrBuilder> textConfigBuilder_; + /** * * *
-     * If set, message data will be written to Cloud Storage in text format.
+     * Optional. If set, message data will be written to Cloud Storage in text
+     * format.
      * 
* - * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4; + * + * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the textConfig field is set. */ @@ -2600,14 +3186,18 @@ public Builder setFilenameSuffixBytes(com.google.protobuf.ByteString value) { public boolean hasTextConfig() { return outputFormatCase_ == 4; } + /** * * *
-     * If set, message data will be written to Cloud Storage in text format.
+     * Optional. If set, message data will be written to Cloud Storage in text
+     * format.
      * 
* - * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4; + * + * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The textConfig. */ @@ -2625,14 +3215,18 @@ public com.google.pubsub.v1.CloudStorageConfig.TextConfig getTextConfig() { return com.google.pubsub.v1.CloudStorageConfig.TextConfig.getDefaultInstance(); } } + /** * * *
-     * If set, message data will be written to Cloud Storage in text format.
+     * Optional. If set, message data will be written to Cloud Storage in text
+     * format.
      * 
* - * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4; + * + * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setTextConfig(com.google.pubsub.v1.CloudStorageConfig.TextConfig value) { if (textConfigBuilder_ == null) { @@ -2647,14 +3241,18 @@ public Builder setTextConfig(com.google.pubsub.v1.CloudStorageConfig.TextConfig outputFormatCase_ = 4; return this; } + /** * * *
-     * If set, message data will be written to Cloud Storage in text format.
+     * Optional. If set, message data will be written to Cloud Storage in text
+     * format.
      * 
* - * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4; + * + * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setTextConfig( com.google.pubsub.v1.CloudStorageConfig.TextConfig.Builder builderForValue) { @@ -2667,14 +3265,18 @@ public Builder setTextConfig( outputFormatCase_ = 4; return this; } + /** * * *
-     * If set, message data will be written to Cloud Storage in text format.
+     * Optional. If set, message data will be written to Cloud Storage in text
+     * format.
      * 
* - * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4; + * + * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder mergeTextConfig(com.google.pubsub.v1.CloudStorageConfig.TextConfig value) { if (textConfigBuilder_ == null) { @@ -2700,14 +3302,18 @@ public Builder mergeTextConfig(com.google.pubsub.v1.CloudStorageConfig.TextConfi outputFormatCase_ = 4; return this; } + /** * * *
-     * If set, message data will be written to Cloud Storage in text format.
+     * Optional. If set, message data will be written to Cloud Storage in text
+     * format.
      * 
* - * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4; + * + * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder clearTextConfig() { if (textConfigBuilder_ == null) { @@ -2725,26 +3331,34 @@ public Builder clearTextConfig() { } return this; } + /** * * *
-     * If set, message data will be written to Cloud Storage in text format.
+     * Optional. If set, message data will be written to Cloud Storage in text
+     * format.
      * 
* - * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4; + * + * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.CloudStorageConfig.TextConfig.Builder getTextConfigBuilder() { return getTextConfigFieldBuilder().getBuilder(); } + /** * * *
-     * If set, message data will be written to Cloud Storage in text format.
+     * Optional. If set, message data will be written to Cloud Storage in text
+     * format.
      * 
* - * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4; + * + * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.CloudStorageConfig.TextConfigOrBuilder getTextConfigOrBuilder() { @@ -2757,14 +3371,18 @@ public com.google.pubsub.v1.CloudStorageConfig.TextConfigOrBuilder getTextConfig return com.google.pubsub.v1.CloudStorageConfig.TextConfig.getDefaultInstance(); } } + /** * * *
-     * If set, message data will be written to Cloud Storage in text format.
+     * Optional. If set, message data will be written to Cloud Storage in text
+     * format.
      * 
* - * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4; + * + * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ private com.google.protobuf.SingleFieldBuilderV3< com.google.pubsub.v1.CloudStorageConfig.TextConfig, @@ -2795,14 +3413,18 @@ public com.google.pubsub.v1.CloudStorageConfig.TextConfigOrBuilder getTextConfig com.google.pubsub.v1.CloudStorageConfig.AvroConfig.Builder, com.google.pubsub.v1.CloudStorageConfig.AvroConfigOrBuilder> avroConfigBuilder_; + /** * * *
-     * If set, message data will be written to Cloud Storage in Avro format.
+     * Optional. If set, message data will be written to Cloud Storage in Avro
+     * format.
      * 
* - * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5; + * + * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the avroConfig field is set. */ @@ -2810,14 +3432,18 @@ public com.google.pubsub.v1.CloudStorageConfig.TextConfigOrBuilder getTextConfig public boolean hasAvroConfig() { return outputFormatCase_ == 5; } + /** * * *
-     * If set, message data will be written to Cloud Storage in Avro format.
+     * Optional. If set, message data will be written to Cloud Storage in Avro
+     * format.
      * 
* - * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5; + * + * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The avroConfig. */ @@ -2835,14 +3461,18 @@ public com.google.pubsub.v1.CloudStorageConfig.AvroConfig getAvroConfig() { return com.google.pubsub.v1.CloudStorageConfig.AvroConfig.getDefaultInstance(); } } + /** * * *
-     * If set, message data will be written to Cloud Storage in Avro format.
+     * Optional. If set, message data will be written to Cloud Storage in Avro
+     * format.
      * 
* - * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5; + * + * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setAvroConfig(com.google.pubsub.v1.CloudStorageConfig.AvroConfig value) { if (avroConfigBuilder_ == null) { @@ -2857,14 +3487,18 @@ public Builder setAvroConfig(com.google.pubsub.v1.CloudStorageConfig.AvroConfig outputFormatCase_ = 5; return this; } + /** * * *
-     * If set, message data will be written to Cloud Storage in Avro format.
+     * Optional. If set, message data will be written to Cloud Storage in Avro
+     * format.
      * 
* - * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5; + * + * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setAvroConfig( com.google.pubsub.v1.CloudStorageConfig.AvroConfig.Builder builderForValue) { @@ -2877,14 +3511,18 @@ public Builder setAvroConfig( outputFormatCase_ = 5; return this; } + /** * * *
-     * If set, message data will be written to Cloud Storage in Avro format.
+     * Optional. If set, message data will be written to Cloud Storage in Avro
+     * format.
      * 
* - * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5; + * + * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder mergeAvroConfig(com.google.pubsub.v1.CloudStorageConfig.AvroConfig value) { if (avroConfigBuilder_ == null) { @@ -2910,14 +3548,18 @@ public Builder mergeAvroConfig(com.google.pubsub.v1.CloudStorageConfig.AvroConfi outputFormatCase_ = 5; return this; } + /** * * *
-     * If set, message data will be written to Cloud Storage in Avro format.
+     * Optional. If set, message data will be written to Cloud Storage in Avro
+     * format.
      * 
* - * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5; + * + * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder clearAvroConfig() { if (avroConfigBuilder_ == null) { @@ -2935,26 +3577,34 @@ public Builder clearAvroConfig() { } return this; } + /** * * *
-     * If set, message data will be written to Cloud Storage in Avro format.
+     * Optional. If set, message data will be written to Cloud Storage in Avro
+     * format.
      * 
* - * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5; + * + * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.CloudStorageConfig.AvroConfig.Builder getAvroConfigBuilder() { return getAvroConfigFieldBuilder().getBuilder(); } + /** * * *
-     * If set, message data will be written to Cloud Storage in Avro format.
+     * Optional. If set, message data will be written to Cloud Storage in Avro
+     * format.
      * 
* - * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5; + * + * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.CloudStorageConfig.AvroConfigOrBuilder getAvroConfigOrBuilder() { @@ -2967,14 +3617,18 @@ public com.google.pubsub.v1.CloudStorageConfig.AvroConfigOrBuilder getAvroConfig return com.google.pubsub.v1.CloudStorageConfig.AvroConfig.getDefaultInstance(); } } + /** * * *
-     * If set, message data will be written to Cloud Storage in Avro format.
+     * Optional. If set, message data will be written to Cloud Storage in Avro
+     * format.
      * 
* - * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5; + * + * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * */ private com.google.protobuf.SingleFieldBuilderV3< com.google.pubsub.v1.CloudStorageConfig.AvroConfig, @@ -3006,32 +3660,36 @@ public com.google.pubsub.v1.CloudStorageConfig.AvroConfigOrBuilder getAvroConfig com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> maxDurationBuilder_; + /** * * *
-     * The maximum duration that can elapse before a new Cloud Storage file is
-     * created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed
-     * the subscription's acknowledgement deadline.
+     * Optional. The maximum duration that can elapse before a new Cloud Storage
+     * file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not
+     * exceed the subscription's acknowledgment deadline.
      * 
* - * .google.protobuf.Duration max_duration = 6; + * .google.protobuf.Duration max_duration = 6 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the maxDuration field is set. */ public boolean hasMaxDuration() { - return ((bitField0_ & 0x00000020) != 0); + return ((bitField0_ & 0x00000040) != 0); } + /** * * *
-     * The maximum duration that can elapse before a new Cloud Storage file is
-     * created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed
-     * the subscription's acknowledgement deadline.
+     * Optional. The maximum duration that can elapse before a new Cloud Storage
+     * file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not
+     * exceed the subscription's acknowledgment deadline.
      * 
* - * .google.protobuf.Duration max_duration = 6; + * .google.protobuf.Duration max_duration = 6 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The maxDuration. */ @@ -3044,16 +3702,18 @@ public com.google.protobuf.Duration getMaxDuration() { return maxDurationBuilder_.getMessage(); } } + /** * * *
-     * The maximum duration that can elapse before a new Cloud Storage file is
-     * created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed
-     * the subscription's acknowledgement deadline.
+     * Optional. The maximum duration that can elapse before a new Cloud Storage
+     * file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not
+     * exceed the subscription's acknowledgment deadline.
      * 
* - * .google.protobuf.Duration max_duration = 6; + * .google.protobuf.Duration max_duration = 6 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setMaxDuration(com.google.protobuf.Duration value) { if (maxDurationBuilder_ == null) { @@ -3064,20 +3724,22 @@ public Builder setMaxDuration(com.google.protobuf.Duration value) { } else { maxDurationBuilder_.setMessage(value); } - bitField0_ |= 0x00000020; + bitField0_ |= 0x00000040; onChanged(); return this; } + /** * * *
-     * The maximum duration that can elapse before a new Cloud Storage file is
-     * created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed
-     * the subscription's acknowledgement deadline.
+     * Optional. The maximum duration that can elapse before a new Cloud Storage
+     * file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not
+     * exceed the subscription's acknowledgment deadline.
      * 
* - * .google.protobuf.Duration max_duration = 6; + * .google.protobuf.Duration max_duration = 6 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setMaxDuration(com.google.protobuf.Duration.Builder builderForValue) { if (maxDurationBuilder_ == null) { @@ -3085,24 +3747,26 @@ public Builder setMaxDuration(com.google.protobuf.Duration.Builder builderForVal } else { maxDurationBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x00000020; + bitField0_ |= 0x00000040; onChanged(); return this; } + /** * * *
-     * The maximum duration that can elapse before a new Cloud Storage file is
-     * created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed
-     * the subscription's acknowledgement deadline.
+     * Optional. The maximum duration that can elapse before a new Cloud Storage
+     * file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not
+     * exceed the subscription's acknowledgment deadline.
      * 
* - * .google.protobuf.Duration max_duration = 6; + * .google.protobuf.Duration max_duration = 6 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder mergeMaxDuration(com.google.protobuf.Duration value) { if (maxDurationBuilder_ == null) { - if (((bitField0_ & 0x00000020) != 0) + if (((bitField0_ & 0x00000040) != 0) && maxDuration_ != null && maxDuration_ != com.google.protobuf.Duration.getDefaultInstance()) { getMaxDurationBuilder().mergeFrom(value); @@ -3112,23 +3776,27 @@ public Builder mergeMaxDuration(com.google.protobuf.Duration value) { } else { maxDurationBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000020; - onChanged(); + if (maxDuration_ != null) { + bitField0_ |= 0x00000040; + onChanged(); + } return this; } + /** * * *
-     * The maximum duration that can elapse before a new Cloud Storage file is
-     * created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed
-     * the subscription's acknowledgement deadline.
+     * Optional. The maximum duration that can elapse before a new Cloud Storage
+     * file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not
+     * exceed the subscription's acknowledgment deadline.
      * 
* - * .google.protobuf.Duration max_duration = 6; + * .google.protobuf.Duration max_duration = 6 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder clearMaxDuration() { - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000040); maxDuration_ = null; if (maxDurationBuilder_ != null) { maxDurationBuilder_.dispose(); @@ -3137,32 +3805,36 @@ public Builder clearMaxDuration() { onChanged(); return this; } + /** * * *
-     * The maximum duration that can elapse before a new Cloud Storage file is
-     * created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed
-     * the subscription's acknowledgement deadline.
+     * Optional. The maximum duration that can elapse before a new Cloud Storage
+     * file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not
+     * exceed the subscription's acknowledgment deadline.
      * 
* - * .google.protobuf.Duration max_duration = 6; + * .google.protobuf.Duration max_duration = 6 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.protobuf.Duration.Builder getMaxDurationBuilder() { - bitField0_ |= 0x00000020; + bitField0_ |= 0x00000040; onChanged(); return getMaxDurationFieldBuilder().getBuilder(); } + /** * * *
-     * The maximum duration that can elapse before a new Cloud Storage file is
-     * created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed
-     * the subscription's acknowledgement deadline.
+     * Optional. The maximum duration that can elapse before a new Cloud Storage
+     * file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not
+     * exceed the subscription's acknowledgment deadline.
      * 
* - * .google.protobuf.Duration max_duration = 6; + * .google.protobuf.Duration max_duration = 6 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.protobuf.DurationOrBuilder getMaxDurationOrBuilder() { if (maxDurationBuilder_ != null) { @@ -3173,16 +3845,18 @@ public com.google.protobuf.DurationOrBuilder getMaxDurationOrBuilder() { : maxDuration_; } } + /** * * *
-     * The maximum duration that can elapse before a new Cloud Storage file is
-     * created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed
-     * the subscription's acknowledgement deadline.
+     * Optional. The maximum duration that can elapse before a new Cloud Storage
+     * file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not
+     * exceed the subscription's acknowledgment deadline.
      * 
* - * .google.protobuf.Duration max_duration = 6; + * .google.protobuf.Duration max_duration = 6 [(.google.api.field_behavior) = OPTIONAL]; + * */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, @@ -3202,16 +3876,17 @@ public com.google.protobuf.DurationOrBuilder getMaxDurationOrBuilder() { } private long maxBytes_; + /** * * *
-     * The maximum bytes that can be written to a Cloud Storage file before a new
-     * file is created. Min 1 KB, max 10 GiB. The max_bytes limit may be exceeded
-     * in cases where messages are larger than the limit.
+     * Optional. The maximum bytes that can be written to a Cloud Storage file
+     * before a new file is created. Min 1 KB, max 10 GiB. The max_bytes limit may
+     * be exceeded in cases where messages are larger than the limit.
      * 
* - * int64 max_bytes = 7; + * int64 max_bytes = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @return The maxBytes. */ @@ -3219,16 +3894,17 @@ public com.google.protobuf.DurationOrBuilder getMaxDurationOrBuilder() { public long getMaxBytes() { return maxBytes_; } + /** * * *
-     * The maximum bytes that can be written to a Cloud Storage file before a new
-     * file is created. Min 1 KB, max 10 GiB. The max_bytes limit may be exceeded
-     * in cases where messages are larger than the limit.
+     * Optional. The maximum bytes that can be written to a Cloud Storage file
+     * before a new file is created. Min 1 KB, max 10 GiB. The max_bytes limit may
+     * be exceeded in cases where messages are larger than the limit.
      * 
* - * int64 max_bytes = 7; + * int64 max_bytes = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The maxBytes to set. * @return This builder for chaining. @@ -3236,31 +3912,92 @@ public long getMaxBytes() { public Builder setMaxBytes(long value) { maxBytes_ = value; - bitField0_ |= 0x00000040; + bitField0_ |= 0x00000080; onChanged(); return this; } + /** * * *
-     * The maximum bytes that can be written to a Cloud Storage file before a new
-     * file is created. Min 1 KB, max 10 GiB. The max_bytes limit may be exceeded
-     * in cases where messages are larger than the limit.
+     * Optional. The maximum bytes that can be written to a Cloud Storage file
+     * before a new file is created. Min 1 KB, max 10 GiB. The max_bytes limit may
+     * be exceeded in cases where messages are larger than the limit.
      * 
* - * int64 max_bytes = 7; + * int64 max_bytes = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ public Builder clearMaxBytes() { - bitField0_ = (bitField0_ & ~0x00000040); + bitField0_ = (bitField0_ & ~0x00000080); maxBytes_ = 0L; onChanged(); return this; } + private long maxMessages_; + + /** + * + * + *
+     * Optional. The maximum number of messages that can be written to a Cloud
+     * Storage file before a new file is created. Min 1000 messages.
+     * 
+ * + * int64 max_messages = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The maxMessages. + */ + @java.lang.Override + public long getMaxMessages() { + return maxMessages_; + } + + /** + * + * + *
+     * Optional. The maximum number of messages that can be written to a Cloud
+     * Storage file before a new file is created. Min 1000 messages.
+     * 
+ * + * int64 max_messages = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The maxMessages to set. + * @return This builder for chaining. + */ + public Builder setMaxMessages(long value) { + + maxMessages_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The maximum number of messages that can be written to a Cloud
+     * Storage file before a new file is created. Min 1000 messages.
+     * 
+ * + * int64 max_messages = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearMaxMessages() { + bitField0_ = (bitField0_ & ~0x00000100); + maxMessages_ = 0L; + onChanged(); + return this; + } + private int state_ = 0; + /** * * @@ -3279,6 +4016,7 @@ public Builder clearMaxBytes() { public int getStateValue() { return state_; } + /** * * @@ -3296,10 +4034,11 @@ public int getStateValue() { */ public Builder setStateValue(int value) { state_ = value; - bitField0_ |= 0x00000080; + bitField0_ |= 0x00000200; onChanged(); return this; } + /** * * @@ -3320,6 +4059,7 @@ public com.google.pubsub.v1.CloudStorageConfig.State getState() { com.google.pubsub.v1.CloudStorageConfig.State.forNumber(state_); return result == null ? com.google.pubsub.v1.CloudStorageConfig.State.UNRECOGNIZED : result; } + /** * * @@ -3339,11 +4079,12 @@ public Builder setState(com.google.pubsub.v1.CloudStorageConfig.State value) { if (value == null) { throw new NullPointerException(); } - bitField0_ |= 0x00000080; + bitField0_ |= 0x00000200; state_ = value.getNumber(); onChanged(); return this; } + /** * * @@ -3359,12 +4100,148 @@ public Builder setState(com.google.pubsub.v1.CloudStorageConfig.State value) { * @return This builder for chaining. */ public Builder clearState() { - bitField0_ = (bitField0_ & ~0x00000080); + bitField0_ = (bitField0_ & ~0x00000200); state_ = 0; onChanged(); return this; } + private java.lang.Object serviceAccountEmail_ = ""; + + /** + * + * + *
+     * Optional. The service account to use to write to Cloud Storage. The
+     * subscription creator or updater that specifies this field must have
+     * `iam.serviceAccounts.actAs` permission on the service account. If not
+     * specified, the Pub/Sub
+     * [service agent](https://cloud.google.com/iam/docs/service-agents),
+     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
+     * 
+ * + * string service_account_email = 11 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The serviceAccountEmail. + */ + public java.lang.String getServiceAccountEmail() { + java.lang.Object ref = serviceAccountEmail_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + serviceAccountEmail_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. The service account to use to write to Cloud Storage. The
+     * subscription creator or updater that specifies this field must have
+     * `iam.serviceAccounts.actAs` permission on the service account. If not
+     * specified, the Pub/Sub
+     * [service agent](https://cloud.google.com/iam/docs/service-agents),
+     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
+     * 
+ * + * string service_account_email = 11 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for serviceAccountEmail. + */ + public com.google.protobuf.ByteString getServiceAccountEmailBytes() { + java.lang.Object ref = serviceAccountEmail_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + serviceAccountEmail_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. The service account to use to write to Cloud Storage. The
+     * subscription creator or updater that specifies this field must have
+     * `iam.serviceAccounts.actAs` permission on the service account. If not
+     * specified, the Pub/Sub
+     * [service agent](https://cloud.google.com/iam/docs/service-agents),
+     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
+     * 
+ * + * string service_account_email = 11 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The serviceAccountEmail to set. + * @return This builder for chaining. + */ + public Builder setServiceAccountEmail(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + serviceAccountEmail_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The service account to use to write to Cloud Storage. The
+     * subscription creator or updater that specifies this field must have
+     * `iam.serviceAccounts.actAs` permission on the service account. If not
+     * specified, the Pub/Sub
+     * [service agent](https://cloud.google.com/iam/docs/service-agents),
+     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
+     * 
+ * + * string service_account_email = 11 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearServiceAccountEmail() { + serviceAccountEmail_ = getDefaultInstance().getServiceAccountEmail(); + bitField0_ = (bitField0_ & ~0x00000400); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The service account to use to write to Cloud Storage. The
+     * subscription creator or updater that specifies this field must have
+     * `iam.serviceAccounts.actAs` permission on the service account. If not
+     * specified, the Pub/Sub
+     * [service agent](https://cloud.google.com/iam/docs/service-agents),
+     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
+     * 
+ * + * string service_account_email = 11 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for serviceAccountEmail to set. + * @return This builder for chaining. + */ + public Builder setServiceAccountEmailBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + serviceAccountEmail_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CloudStorageConfigOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CloudStorageConfigOrBuilder.java index 5122f804a..207a691d7 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CloudStorageConfigOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CloudStorageConfigOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface CloudStorageConfigOrBuilder @@ -38,6 +39,7 @@ public interface CloudStorageConfigOrBuilder * @return The bucket. */ java.lang.String getBucket(); + /** * * @@ -58,24 +60,25 @@ public interface CloudStorageConfigOrBuilder * * *
-   * User-provided prefix for Cloud Storage filename. See the [object naming
-   * requirements](https://cloud.google.com/storage/docs/objects#naming).
+   * Optional. User-provided prefix for Cloud Storage filename. See the [object
+   * naming requirements](https://cloud.google.com/storage/docs/objects#naming).
    * 
* - * string filename_prefix = 2; + * string filename_prefix = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The filenamePrefix. */ java.lang.String getFilenamePrefix(); + /** * * *
-   * User-provided prefix for Cloud Storage filename. See the [object naming
-   * requirements](https://cloud.google.com/storage/docs/objects#naming).
+   * Optional. User-provided prefix for Cloud Storage filename. See the [object
+   * naming requirements](https://cloud.google.com/storage/docs/objects#naming).
    * 
* - * string filename_prefix = 2; + * string filename_prefix = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for filenamePrefix. */ @@ -85,26 +88,27 @@ public interface CloudStorageConfigOrBuilder * * *
-   * User-provided suffix for Cloud Storage filename. See the [object naming
-   * requirements](https://cloud.google.com/storage/docs/objects#naming). Must
-   * not end in "/".
+   * Optional. User-provided suffix for Cloud Storage filename. See the [object
+   * naming requirements](https://cloud.google.com/storage/docs/objects#naming).
+   * Must not end in "/".
    * 
* - * string filename_suffix = 3; + * string filename_suffix = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The filenameSuffix. */ java.lang.String getFilenameSuffix(); + /** * * *
-   * User-provided suffix for Cloud Storage filename. See the [object naming
-   * requirements](https://cloud.google.com/storage/docs/objects#naming). Must
-   * not end in "/".
+   * Optional. User-provided suffix for Cloud Storage filename. See the [object
+   * naming requirements](https://cloud.google.com/storage/docs/objects#naming).
+   * Must not end in "/".
    * 
* - * string filename_suffix = 3; + * string filename_suffix = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for filenameSuffix. */ @@ -114,34 +118,75 @@ public interface CloudStorageConfigOrBuilder * * *
-   * If set, message data will be written to Cloud Storage in text format.
+   * Optional. User-provided format string specifying how to represent datetimes
+   * in Cloud Storage filenames. See the [datetime format
+   * guidance](https://cloud.google.com/pubsub/docs/create-cloudstorage-subscription#file_names).
+   * 
+ * + * string filename_datetime_format = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The filenameDatetimeFormat. + */ + java.lang.String getFilenameDatetimeFormat(); + + /** + * + * + *
+   * Optional. User-provided format string specifying how to represent datetimes
+   * in Cloud Storage filenames. See the [datetime format
+   * guidance](https://cloud.google.com/pubsub/docs/create-cloudstorage-subscription#file_names).
    * 
* - * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4; + * string filename_datetime_format = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for filenameDatetimeFormat. + */ + com.google.protobuf.ByteString getFilenameDatetimeFormatBytes(); + + /** + * + * + *
+   * Optional. If set, message data will be written to Cloud Storage in text
+   * format.
+   * 
+ * + * + * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the textConfig field is set. */ boolean hasTextConfig(); + /** * * *
-   * If set, message data will be written to Cloud Storage in text format.
+   * Optional. If set, message data will be written to Cloud Storage in text
+   * format.
    * 
* - * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4; + * + * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The textConfig. */ com.google.pubsub.v1.CloudStorageConfig.TextConfig getTextConfig(); + /** * * *
-   * If set, message data will be written to Cloud Storage in text format.
+   * Optional. If set, message data will be written to Cloud Storage in text
+   * format.
    * 
* - * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4; + * + * .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.CloudStorageConfig.TextConfigOrBuilder getTextConfigOrBuilder(); @@ -149,34 +194,45 @@ public interface CloudStorageConfigOrBuilder * * *
-   * If set, message data will be written to Cloud Storage in Avro format.
+   * Optional. If set, message data will be written to Cloud Storage in Avro
+   * format.
    * 
* - * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5; + * + * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the avroConfig field is set. */ boolean hasAvroConfig(); + /** * * *
-   * If set, message data will be written to Cloud Storage in Avro format.
+   * Optional. If set, message data will be written to Cloud Storage in Avro
+   * format.
    * 
* - * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5; + * + * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The avroConfig. */ com.google.pubsub.v1.CloudStorageConfig.AvroConfig getAvroConfig(); + /** * * *
-   * If set, message data will be written to Cloud Storage in Avro format.
+   * Optional. If set, message data will be written to Cloud Storage in Avro
+   * format.
    * 
* - * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5; + * + * .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.CloudStorageConfig.AvroConfigOrBuilder getAvroConfigOrBuilder(); @@ -184,40 +240,45 @@ public interface CloudStorageConfigOrBuilder * * *
-   * The maximum duration that can elapse before a new Cloud Storage file is
-   * created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed
-   * the subscription's acknowledgement deadline.
+   * Optional. The maximum duration that can elapse before a new Cloud Storage
+   * file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not
+   * exceed the subscription's acknowledgment deadline.
    * 
* - * .google.protobuf.Duration max_duration = 6; + * .google.protobuf.Duration max_duration = 6 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the maxDuration field is set. */ boolean hasMaxDuration(); + /** * * *
-   * The maximum duration that can elapse before a new Cloud Storage file is
-   * created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed
-   * the subscription's acknowledgement deadline.
+   * Optional. The maximum duration that can elapse before a new Cloud Storage
+   * file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not
+   * exceed the subscription's acknowledgment deadline.
    * 
* - * .google.protobuf.Duration max_duration = 6; + * .google.protobuf.Duration max_duration = 6 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The maxDuration. */ com.google.protobuf.Duration getMaxDuration(); + /** * * *
-   * The maximum duration that can elapse before a new Cloud Storage file is
-   * created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed
-   * the subscription's acknowledgement deadline.
+   * Optional. The maximum duration that can elapse before a new Cloud Storage
+   * file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not
+   * exceed the subscription's acknowledgment deadline.
    * 
* - * .google.protobuf.Duration max_duration = 6; + * .google.protobuf.Duration max_duration = 6 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.protobuf.DurationOrBuilder getMaxDurationOrBuilder(); @@ -225,17 +286,31 @@ public interface CloudStorageConfigOrBuilder * * *
-   * The maximum bytes that can be written to a Cloud Storage file before a new
-   * file is created. Min 1 KB, max 10 GiB. The max_bytes limit may be exceeded
-   * in cases where messages are larger than the limit.
+   * Optional. The maximum bytes that can be written to a Cloud Storage file
+   * before a new file is created. Min 1 KB, max 10 GiB. The max_bytes limit may
+   * be exceeded in cases where messages are larger than the limit.
    * 
* - * int64 max_bytes = 7; + * int64 max_bytes = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @return The maxBytes. */ long getMaxBytes(); + /** + * + * + *
+   * Optional. The maximum number of messages that can be written to a Cloud
+   * Storage file before a new file is created. Min 1000 messages.
+   * 
+ * + * int64 max_messages = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The maxMessages. + */ + long getMaxMessages(); + /** * * @@ -251,6 +326,7 @@ public interface CloudStorageConfigOrBuilder * @return The enum numeric value on the wire for state. */ int getStateValue(); + /** * * @@ -267,5 +343,41 @@ public interface CloudStorageConfigOrBuilder */ com.google.pubsub.v1.CloudStorageConfig.State getState(); + /** + * + * + *
+   * Optional. The service account to use to write to Cloud Storage. The
+   * subscription creator or updater that specifies this field must have
+   * `iam.serviceAccounts.actAs` permission on the service account. If not
+   * specified, the Pub/Sub
+   * [service agent](https://cloud.google.com/iam/docs/service-agents),
+   * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
+   * 
+ * + * string service_account_email = 11 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The serviceAccountEmail. + */ + java.lang.String getServiceAccountEmail(); + + /** + * + * + *
+   * Optional. The service account to use to write to Cloud Storage. The
+   * subscription creator or updater that specifies this field must have
+   * `iam.serviceAccounts.actAs` permission on the service account. If not
+   * specified, the Pub/Sub
+   * [service agent](https://cloud.google.com/iam/docs/service-agents),
+   * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
+   * 
+ * + * string service_account_email = 11 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for serviceAccountEmail. + */ + com.google.protobuf.ByteString getServiceAccountEmailBytes(); + com.google.pubsub.v1.CloudStorageConfig.OutputFormatCase getOutputFormatCase(); } diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CommitSchemaRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CommitSchemaRequest.java index ba816deeb..25d739ae3 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CommitSchemaRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CommitSchemaRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class CommitSchemaRequest extends com.google.protobuf.GeneratedMess // @@protoc_insertion_point(message_implements:google.pubsub.v1.CommitSchemaRequest) CommitSchemaRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use CommitSchemaRequest.newBuilder() to construct. private CommitSchemaRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -62,10 +64,12 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { com.google.pubsub.v1.CommitSchemaRequest.Builder.class); } + private int bitField0_; public static final int NAME_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object name_ = ""; + /** * * @@ -92,6 +96,7 @@ public java.lang.String getName() { return s; } } + /** * * @@ -121,6 +126,7 @@ public com.google.protobuf.ByteString getNameBytes() { public static final int SCHEMA_FIELD_NUMBER = 2; private com.google.pubsub.v1.Schema schema_; + /** * * @@ -134,8 +140,9 @@ public com.google.protobuf.ByteString getNameBytes() { */ @java.lang.Override public boolean hasSchema() { - return schema_ != null; + return ((bitField0_ & 0x00000001) != 0); } + /** * * @@ -151,6 +158,7 @@ public boolean hasSchema() { public com.google.pubsub.v1.Schema getSchema() { return schema_ == null ? com.google.pubsub.v1.Schema.getDefaultInstance() : schema_; } + /** * * @@ -182,7 +190,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); } - if (schema_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(2, getSchema()); } getUnknownFields().writeTo(output); @@ -197,7 +205,7 @@ public int getSerializedSize() { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); } - if (schema_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSchema()); } size += getUnknownFields().getSerializedSize(); @@ -337,6 +345,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -366,10 +375,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } // Construct using com.google.pubsub.v1.CommitSchemaRequest.newBuilder() - private Builder() {} + private Builder() { + maybeForceBuilderInitialization(); + } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getSchemaFieldBuilder(); + } } @java.lang.Override @@ -421,9 +439,12 @@ private void buildPartial0(com.google.pubsub.v1.CommitSchemaRequest result) { if (((from_bitField0_ & 0x00000001) != 0)) { result.name_ = name_; } + int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000002) != 0)) { result.schema_ = schemaBuilder_ == null ? schema_ : schemaBuilder_.build(); + to_bitField0_ |= 0x00000001; } + result.bitField0_ |= to_bitField0_; } @java.lang.Override @@ -537,6 +558,7 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object name_ = ""; + /** * * @@ -562,6 +584,7 @@ public java.lang.String getName() { return (java.lang.String) ref; } } + /** * * @@ -587,6 +610,7 @@ public com.google.protobuf.ByteString getNameBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -611,6 +635,7 @@ public Builder setName(java.lang.String value) { onChanged(); return this; } + /** * * @@ -631,6 +656,7 @@ public Builder clearName() { onChanged(); return this; } + /** * * @@ -663,6 +689,7 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) { com.google.pubsub.v1.Schema.Builder, com.google.pubsub.v1.SchemaOrBuilder> schemaBuilder_; + /** * * @@ -677,6 +704,7 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) { public boolean hasSchema() { return ((bitField0_ & 0x00000002) != 0); } + /** * * @@ -695,6 +723,7 @@ public com.google.pubsub.v1.Schema getSchema() { return schemaBuilder_.getMessage(); } } + /** * * @@ -717,6 +746,7 @@ public Builder setSchema(com.google.pubsub.v1.Schema value) { onChanged(); return this; } + /** * * @@ -736,6 +766,7 @@ public Builder setSchema(com.google.pubsub.v1.Schema.Builder builderForValue) { onChanged(); return this; } + /** * * @@ -757,10 +788,13 @@ public Builder mergeSchema(com.google.pubsub.v1.Schema value) { } else { schemaBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000002; - onChanged(); + if (schema_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } return this; } + /** * * @@ -780,6 +814,7 @@ public Builder clearSchema() { onChanged(); return this; } + /** * * @@ -794,6 +829,7 @@ public com.google.pubsub.v1.Schema.Builder getSchemaBuilder() { onChanged(); return getSchemaFieldBuilder().getBuilder(); } + /** * * @@ -810,6 +846,7 @@ public com.google.pubsub.v1.SchemaOrBuilder getSchemaOrBuilder() { return schema_ == null ? com.google.pubsub.v1.Schema.getDefaultInstance() : schema_; } } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CommitSchemaRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CommitSchemaRequestOrBuilder.java index 7ac207df8..47dbb75e3 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CommitSchemaRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CommitSchemaRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface CommitSchemaRequestOrBuilder @@ -38,6 +39,7 @@ public interface CommitSchemaRequestOrBuilder * @return The name. */ java.lang.String getName(); + /** * * @@ -66,6 +68,7 @@ public interface CommitSchemaRequestOrBuilder * @return Whether the schema field is set. */ boolean hasSchema(); + /** * * @@ -78,6 +81,7 @@ public interface CommitSchemaRequestOrBuilder * @return The schema. */ com.google.pubsub.v1.Schema getSchema(); + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CreateSchemaRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CreateSchemaRequest.java index 82fe63cea..1f3ad6468 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CreateSchemaRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CreateSchemaRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class CreateSchemaRequest extends com.google.protobuf.GeneratedMess // @@protoc_insertion_point(message_implements:google.pubsub.v1.CreateSchemaRequest) CreateSchemaRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use CreateSchemaRequest.newBuilder() to construct. private CreateSchemaRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -63,10 +65,12 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { com.google.pubsub.v1.CreateSchemaRequest.Builder.class); } + private int bitField0_; public static final int PARENT_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object parent_ = ""; + /** * * @@ -93,6 +97,7 @@ public java.lang.String getParent() { return s; } } + /** * * @@ -122,6 +127,7 @@ public com.google.protobuf.ByteString getParentBytes() { public static final int SCHEMA_FIELD_NUMBER = 2; private com.google.pubsub.v1.Schema schema_; + /** * * @@ -139,8 +145,9 @@ public com.google.protobuf.ByteString getParentBytes() { */ @java.lang.Override public boolean hasSchema() { - return schema_ != null; + return ((bitField0_ & 0x00000001) != 0); } + /** * * @@ -160,6 +167,7 @@ public boolean hasSchema() { public com.google.pubsub.v1.Schema getSchema() { return schema_ == null ? com.google.pubsub.v1.Schema.getDefaultInstance() : schema_; } + /** * * @@ -182,6 +190,7 @@ public com.google.pubsub.v1.SchemaOrBuilder getSchemaOrBuilder() { @SuppressWarnings("serial") private volatile java.lang.Object schemaId_ = ""; + /** * * @@ -189,8 +198,8 @@ public com.google.pubsub.v1.SchemaOrBuilder getSchemaOrBuilder() { * The ID to use for the schema, which will become the final component of * the schema's resource name. * - * See https://cloud.google.com/pubsub/docs/admin#resource_names for resource - * name constraints. + * See https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names for + * resource name constraints. *
* * string schema_id = 3; @@ -209,6 +218,7 @@ public java.lang.String getSchemaId() { return s; } } + /** * * @@ -216,8 +226,8 @@ public java.lang.String getSchemaId() { * The ID to use for the schema, which will become the final component of * the schema's resource name. * - * See https://cloud.google.com/pubsub/docs/admin#resource_names for resource - * name constraints. + * See https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names for + * resource name constraints. *
* * string schema_id = 3; @@ -254,7 +264,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(parent_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, parent_); } - if (schema_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(2, getSchema()); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(schemaId_)) { @@ -272,7 +282,7 @@ public int getSerializedSize() { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(parent_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, parent_); } - if (schema_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSchema()); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(schemaId_)) { @@ -418,6 +428,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -447,10 +458,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } // Construct using com.google.pubsub.v1.CreateSchemaRequest.newBuilder() - private Builder() {} + private Builder() { + maybeForceBuilderInitialization(); + } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getSchemaFieldBuilder(); + } } @java.lang.Override @@ -503,12 +523,15 @@ private void buildPartial0(com.google.pubsub.v1.CreateSchemaRequest result) { if (((from_bitField0_ & 0x00000001) != 0)) { result.parent_ = parent_; } + int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000002) != 0)) { result.schema_ = schemaBuilder_ == null ? schema_ : schemaBuilder_.build(); + to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000004) != 0)) { result.schemaId_ = schemaId_; } + result.bitField0_ |= to_bitField0_; } @java.lang.Override @@ -633,6 +656,7 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object parent_ = ""; + /** * * @@ -658,6 +682,7 @@ public java.lang.String getParent() { return (java.lang.String) ref; } } + /** * * @@ -683,6 +708,7 @@ public com.google.protobuf.ByteString getParentBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -707,6 +733,7 @@ public Builder setParent(java.lang.String value) { onChanged(); return this; } + /** * * @@ -727,6 +754,7 @@ public Builder clearParent() { onChanged(); return this; } + /** * * @@ -759,6 +787,7 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) { com.google.pubsub.v1.Schema.Builder, com.google.pubsub.v1.SchemaOrBuilder> schemaBuilder_; + /** * * @@ -777,6 +806,7 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) { public boolean hasSchema() { return ((bitField0_ & 0x00000002) != 0); } + /** * * @@ -799,6 +829,7 @@ public com.google.pubsub.v1.Schema getSchema() { return schemaBuilder_.getMessage(); } } + /** * * @@ -825,6 +856,7 @@ public Builder setSchema(com.google.pubsub.v1.Schema value) { onChanged(); return this; } + /** * * @@ -848,6 +880,7 @@ public Builder setSchema(com.google.pubsub.v1.Schema.Builder builderForValue) { onChanged(); return this; } + /** * * @@ -873,10 +906,13 @@ public Builder mergeSchema(com.google.pubsub.v1.Schema value) { } else { schemaBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000002; - onChanged(); + if (schema_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } return this; } + /** * * @@ -900,6 +936,7 @@ public Builder clearSchema() { onChanged(); return this; } + /** * * @@ -918,6 +955,7 @@ public com.google.pubsub.v1.Schema.Builder getSchemaBuilder() { onChanged(); return getSchemaFieldBuilder().getBuilder(); } + /** * * @@ -938,6 +976,7 @@ public com.google.pubsub.v1.SchemaOrBuilder getSchemaOrBuilder() { return schema_ == null ? com.google.pubsub.v1.Schema.getDefaultInstance() : schema_; } } + /** * * @@ -969,6 +1008,7 @@ public com.google.pubsub.v1.SchemaOrBuilder getSchemaOrBuilder() { } private java.lang.Object schemaId_ = ""; + /** * * @@ -976,8 +1016,8 @@ public com.google.pubsub.v1.SchemaOrBuilder getSchemaOrBuilder() { * The ID to use for the schema, which will become the final component of * the schema's resource name. * - * See https://cloud.google.com/pubsub/docs/admin#resource_names for resource - * name constraints. + * See https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names for + * resource name constraints. *
* * string schema_id = 3; @@ -995,6 +1035,7 @@ public java.lang.String getSchemaId() { return (java.lang.String) ref; } } + /** * * @@ -1002,8 +1043,8 @@ public java.lang.String getSchemaId() { * The ID to use for the schema, which will become the final component of * the schema's resource name. * - * See https://cloud.google.com/pubsub/docs/admin#resource_names for resource - * name constraints. + * See https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names for + * resource name constraints. *
* * string schema_id = 3; @@ -1021,6 +1062,7 @@ public com.google.protobuf.ByteString getSchemaIdBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -1028,8 +1070,8 @@ public com.google.protobuf.ByteString getSchemaIdBytes() { * The ID to use for the schema, which will become the final component of * the schema's resource name. * - * See https://cloud.google.com/pubsub/docs/admin#resource_names for resource - * name constraints. + * See https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names for + * resource name constraints. *
* * string schema_id = 3; @@ -1046,6 +1088,7 @@ public Builder setSchemaId(java.lang.String value) { onChanged(); return this; } + /** * * @@ -1053,8 +1096,8 @@ public Builder setSchemaId(java.lang.String value) { * The ID to use for the schema, which will become the final component of * the schema's resource name. * - * See https://cloud.google.com/pubsub/docs/admin#resource_names for resource - * name constraints. + * See https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names for + * resource name constraints. * * * string schema_id = 3; @@ -1067,6 +1110,7 @@ public Builder clearSchemaId() { onChanged(); return this; } + /** * * @@ -1074,8 +1118,8 @@ public Builder clearSchemaId() { * The ID to use for the schema, which will become the final component of * the schema's resource name. * - * See https://cloud.google.com/pubsub/docs/admin#resource_names for resource - * name constraints. + * See https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names for + * resource name constraints. * * * string schema_id = 3; diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CreateSchemaRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CreateSchemaRequestOrBuilder.java index c4cc82962..37e0d388c 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CreateSchemaRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CreateSchemaRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface CreateSchemaRequestOrBuilder @@ -38,6 +39,7 @@ public interface CreateSchemaRequestOrBuilder * @return The parent. */ java.lang.String getParent(); + /** * * @@ -70,6 +72,7 @@ public interface CreateSchemaRequestOrBuilder * @return Whether the schema field is set. */ boolean hasSchema(); + /** * * @@ -86,6 +89,7 @@ public interface CreateSchemaRequestOrBuilder * @return The schema. */ com.google.pubsub.v1.Schema getSchema(); + /** * * @@ -108,8 +112,8 @@ public interface CreateSchemaRequestOrBuilder * The ID to use for the schema, which will become the final component of * the schema's resource name. * - * See https://cloud.google.com/pubsub/docs/admin#resource_names for resource - * name constraints. + * See https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names for + * resource name constraints. * * * string schema_id = 3; @@ -117,6 +121,7 @@ public interface CreateSchemaRequestOrBuilder * @return The schemaId. */ java.lang.String getSchemaId(); + /** * * @@ -124,8 +129,8 @@ public interface CreateSchemaRequestOrBuilder * The ID to use for the schema, which will become the final component of * the schema's resource name. * - * See https://cloud.google.com/pubsub/docs/admin#resource_names for resource - * name constraints. + * See https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names for + * resource name constraints. * * * string schema_id = 3; diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CreateSnapshotRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CreateSnapshotRequest.java index 3918f5ca6..b8c5201cd 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CreateSnapshotRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CreateSnapshotRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class CreateSnapshotRequest extends com.google.protobuf.GeneratedMe // @@protoc_insertion_point(message_implements:google.pubsub.v1.CreateSnapshotRequest) CreateSnapshotRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use CreateSnapshotRequest.newBuilder() to construct. private CreateSnapshotRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -55,10 +57,13 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings({"rawtypes"}) @java.lang.Override - protected com.google.protobuf.MapField internalGetMapField(int number) { + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { switch (number) { case 3: return internalGetLabels(); + case 4: + return internalGetTags(); default: throw new RuntimeException("Invalid map field number: " + number); } @@ -78,20 +83,21 @@ protected com.google.protobuf.MapField internalGetMapField(int number) { @SuppressWarnings("serial") private volatile java.lang.Object name_ = ""; + /** * * *
-   * Required. User-provided name for this snapshot. If the name is not provided
-   * in the request, the server will assign a random name for this snapshot on
-   * the same project as the subscription. Note that for REST API requests, you
-   * must specify a name.  See the [resource name
+   * Required. Identifier. User-provided name for this snapshot. If the name is
+   * not provided in the request, the server will assign a random name for this
+   * snapshot on the same project as the subscription. Note that for REST API
+   * requests, you must specify a name.  See the [resource name
    * rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names).
    * Format is `projects/{project}/snapshots/{snap}`.
    * 
* * - * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The name. @@ -108,20 +114,21 @@ public java.lang.String getName() { return s; } } + /** * * *
-   * Required. User-provided name for this snapshot. If the name is not provided
-   * in the request, the server will assign a random name for this snapshot on
-   * the same project as the subscription. Note that for REST API requests, you
-   * must specify a name.  See the [resource name
+   * Required. Identifier. User-provided name for this snapshot. If the name is
+   * not provided in the request, the server will assign a random name for this
+   * snapshot on the same project as the subscription. Note that for REST API
+   * requests, you must specify a name.  See the [resource name
    * rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names).
    * Format is `projects/{project}/snapshots/{snap}`.
    * 
* * - * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for name. @@ -143,6 +150,7 @@ public com.google.protobuf.ByteString getNameBytes() { @SuppressWarnings("serial") private volatile java.lang.Object subscription_ = ""; + /** * * @@ -176,6 +184,7 @@ public java.lang.String getSubscription() { return s; } } + /** * * @@ -236,15 +245,16 @@ private com.google.protobuf.MapField interna public int getLabelsCount() { return internalGetLabels().getMap().size(); } + /** * * *
-   * See [Creating and managing
+   * Optional. See [Creating and managing
    * labels](https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 3; + * map<string, string> labels = 3 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public boolean containsLabels(java.lang.String key) { @@ -253,35 +263,38 @@ public boolean containsLabels(java.lang.String key) { } return internalGetLabels().getMap().containsKey(key); } + /** Use {@link #getLabelsMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getLabels() { return getLabelsMap(); } + /** * * *
-   * See [Creating and managing
+   * Optional. See [Creating and managing
    * labels](https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 3; + * map<string, string> labels = 3 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public java.util.Map getLabelsMap() { return internalGetLabels().getMap(); } + /** * * *
-   * See [Creating and managing
+   * Optional. See [Creating and managing
    * labels](https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 3; + * map<string, string> labels = 3 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public /* nullable */ java.lang.String getLabelsOrDefault( @@ -294,15 +307,16 @@ public java.util.Map getLabelsMap() { java.util.Map map = internalGetLabels().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } + /** * * *
-   * See [Creating and managing
+   * Optional. See [Creating and managing
    * labels](https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 3; + * map<string, string> labels = 3 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public java.lang.String getLabelsOrThrow(java.lang.String key) { @@ -316,6 +330,133 @@ public java.lang.String getLabelsOrThrow(java.lang.String key) { return map.get(key); } + public static final int TAGS_FIELD_NUMBER = 4; + + private static final class TagsDefaultEntryHolder { + static final com.google.protobuf.MapEntry defaultEntry = + com.google.protobuf.MapEntry.newDefaultInstance( + com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_CreateSnapshotRequest_TagsEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.STRING, + ""); + } + + @SuppressWarnings("serial") + private com.google.protobuf.MapField tags_; + + private com.google.protobuf.MapField internalGetTags() { + if (tags_ == null) { + return com.google.protobuf.MapField.emptyMapField(TagsDefaultEntryHolder.defaultEntry); + } + return tags_; + } + + public int getTagsCount() { + return internalGetTags().getMap().size(); + } + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 4 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public boolean containsTags(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetTags().getMap().containsKey(key); + } + + /** Use {@link #getTagsMap()} instead. */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getTags() { + return getTagsMap(); + } + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 4 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.util.Map getTagsMap() { + return internalGetTags().getMap(); + } + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 4 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public /* nullable */ java.lang.String getTagsOrDefault( + java.lang.String key, + /* nullable */ + java.lang.String defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetTags().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 4 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.lang.String getTagsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetTags().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -338,6 +479,8 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io } com.google.protobuf.GeneratedMessageV3.serializeStringMapTo( output, internalGetLabels(), LabelsDefaultEntryHolder.defaultEntry, 3); + com.google.protobuf.GeneratedMessageV3.serializeStringMapTo( + output, internalGetTags(), TagsDefaultEntryHolder.defaultEntry, 4); getUnknownFields().writeTo(output); } @@ -363,6 +506,16 @@ public int getSerializedSize() { .build(); size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, labels__); } + for (java.util.Map.Entry entry : + internalGetTags().getMap().entrySet()) { + com.google.protobuf.MapEntry tags__ = + TagsDefaultEntryHolder.defaultEntry + .newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, tags__); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -382,6 +535,7 @@ public boolean equals(final java.lang.Object obj) { if (!getName().equals(other.getName())) return false; if (!getSubscription().equals(other.getSubscription())) return false; if (!internalGetLabels().equals(other.internalGetLabels())) return false; + if (!internalGetTags().equals(other.internalGetTags())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -401,6 +555,10 @@ public int hashCode() { hash = (37 * hash) + LABELS_FIELD_NUMBER; hash = (53 * hash) + internalGetLabels().hashCode(); } + if (!internalGetTags().getMap().isEmpty()) { + hash = (37 * hash) + TAGS_FIELD_NUMBER; + hash = (53 * hash) + internalGetTags().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -501,6 +659,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -520,20 +679,26 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMapField(int number) { + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { switch (number) { case 3: return internalGetLabels(); + case 4: + return internalGetTags(); default: throw new RuntimeException("Invalid map field number: " + number); } } @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMutableMapField(int number) { + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { switch (number) { case 3: return internalGetMutableLabels(); + case 4: + return internalGetMutableTags(); default: throw new RuntimeException("Invalid map field number: " + number); } @@ -563,6 +728,7 @@ public Builder clear() { name_ = ""; subscription_ = ""; internalGetMutableLabels().clear(); + internalGetMutableTags().clear(); return this; } @@ -609,6 +775,10 @@ private void buildPartial0(com.google.pubsub.v1.CreateSnapshotRequest result) { result.labels_ = internalGetLabels(); result.labels_.makeImmutable(); } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.tags_ = internalGetTags(); + result.tags_.makeImmutable(); + } } @java.lang.Override @@ -668,6 +838,8 @@ public Builder mergeFrom(com.google.pubsub.v1.CreateSnapshotRequest other) { } internalGetMutableLabels().mergeFrom(other.internalGetLabels()); bitField0_ |= 0x00000004; + internalGetMutableTags().mergeFrom(other.internalGetTags()); + bitField0_ |= 0x00000008; this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -718,6 +890,15 @@ public Builder mergeFrom( bitField0_ |= 0x00000004; break; } // case 26 + case 34: + { + com.google.protobuf.MapEntry tags__ = + input.readMessage( + TagsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableTags().getMutableMap().put(tags__.getKey(), tags__.getValue()); + bitField0_ |= 0x00000008; + break; + } // case 34 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -738,20 +919,21 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object name_ = ""; + /** * * *
-     * Required. User-provided name for this snapshot. If the name is not provided
-     * in the request, the server will assign a random name for this snapshot on
-     * the same project as the subscription. Note that for REST API requests, you
-     * must specify a name.  See the [resource name
+     * Required. Identifier. User-provided name for this snapshot. If the name is
+     * not provided in the request, the server will assign a random name for this
+     * snapshot on the same project as the subscription. Note that for REST API
+     * requests, you must specify a name.  See the [resource name
      * rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names).
      * Format is `projects/{project}/snapshots/{snap}`.
      * 
* * - * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The name. @@ -767,20 +949,21 @@ public java.lang.String getName() { return (java.lang.String) ref; } } + /** * * *
-     * Required. User-provided name for this snapshot. If the name is not provided
-     * in the request, the server will assign a random name for this snapshot on
-     * the same project as the subscription. Note that for REST API requests, you
-     * must specify a name.  See the [resource name
+     * Required. Identifier. User-provided name for this snapshot. If the name is
+     * not provided in the request, the server will assign a random name for this
+     * snapshot on the same project as the subscription. Note that for REST API
+     * requests, you must specify a name.  See the [resource name
      * rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names).
      * Format is `projects/{project}/snapshots/{snap}`.
      * 
* * - * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for name. @@ -796,20 +979,21 @@ public com.google.protobuf.ByteString getNameBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * Required. User-provided name for this snapshot. If the name is not provided
-     * in the request, the server will assign a random name for this snapshot on
-     * the same project as the subscription. Note that for REST API requests, you
-     * must specify a name.  See the [resource name
+     * Required. Identifier. User-provided name for this snapshot. If the name is
+     * not provided in the request, the server will assign a random name for this
+     * snapshot on the same project as the subscription. Note that for REST API
+     * requests, you must specify a name.  See the [resource name
      * rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names).
      * Format is `projects/{project}/snapshots/{snap}`.
      * 
* * - * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The name to set. @@ -824,20 +1008,21 @@ public Builder setName(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * Required. User-provided name for this snapshot. If the name is not provided
-     * in the request, the server will assign a random name for this snapshot on
-     * the same project as the subscription. Note that for REST API requests, you
-     * must specify a name.  See the [resource name
+     * Required. Identifier. User-provided name for this snapshot. If the name is
+     * not provided in the request, the server will assign a random name for this
+     * snapshot on the same project as the subscription. Note that for REST API
+     * requests, you must specify a name.  See the [resource name
      * rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names).
      * Format is `projects/{project}/snapshots/{snap}`.
      * 
* * - * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return This builder for chaining. @@ -848,20 +1033,21 @@ public Builder clearName() { onChanged(); return this; } + /** * * *
-     * Required. User-provided name for this snapshot. If the name is not provided
-     * in the request, the server will assign a random name for this snapshot on
-     * the same project as the subscription. Note that for REST API requests, you
-     * must specify a name.  See the [resource name
+     * Required. Identifier. User-provided name for this snapshot. If the name is
+     * not provided in the request, the server will assign a random name for this
+     * snapshot on the same project as the subscription. Note that for REST API
+     * requests, you must specify a name.  See the [resource name
      * rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names).
      * Format is `projects/{project}/snapshots/{snap}`.
      * 
* * - * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The bytes for name to set. @@ -879,6 +1065,7 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) { } private java.lang.Object subscription_ = ""; + /** * * @@ -911,6 +1098,7 @@ public java.lang.String getSubscription() { return (java.lang.String) ref; } } + /** * * @@ -943,6 +1131,7 @@ public com.google.protobuf.ByteString getSubscriptionBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -974,6 +1163,7 @@ public Builder setSubscription(java.lang.String value) { onChanged(); return this; } + /** * * @@ -1001,6 +1191,7 @@ public Builder clearSubscription() { onChanged(); return this; } + /** * * @@ -1059,15 +1250,16 @@ private com.google.protobuf.MapField interna public int getLabelsCount() { return internalGetLabels().getMap().size(); } + /** * * *
-     * See [Creating and managing
+     * Optional. See [Creating and managing
      * labels](https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 3; + * map<string, string> labels = 3 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public boolean containsLabels(java.lang.String key) { @@ -1076,35 +1268,38 @@ public boolean containsLabels(java.lang.String key) { } return internalGetLabels().getMap().containsKey(key); } + /** Use {@link #getLabelsMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getLabels() { return getLabelsMap(); } + /** * * *
-     * See [Creating and managing
+     * Optional. See [Creating and managing
      * labels](https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 3; + * map<string, string> labels = 3 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public java.util.Map getLabelsMap() { return internalGetLabels().getMap(); } + /** * * *
-     * See [Creating and managing
+     * Optional. See [Creating and managing
      * labels](https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 3; + * map<string, string> labels = 3 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public /* nullable */ java.lang.String getLabelsOrDefault( @@ -1117,15 +1312,16 @@ public java.util.Map getLabelsMap() { java.util.Map map = internalGetLabels().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } + /** * * *
-     * See [Creating and managing
+     * Optional. See [Creating and managing
      * labels](https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 3; + * map<string, string> labels = 3 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public java.lang.String getLabelsOrThrow(java.lang.String key) { @@ -1144,15 +1340,16 @@ public Builder clearLabels() { internalGetMutableLabels().getMutableMap().clear(); return this; } + /** * * *
-     * See [Creating and managing
+     * Optional. See [Creating and managing
      * labels](https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 3; + * map<string, string> labels = 3 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder removeLabels(java.lang.String key) { if (key == null) { @@ -1161,21 +1358,23 @@ public Builder removeLabels(java.lang.String key) { internalGetMutableLabels().getMutableMap().remove(key); return this; } + /** Use alternate mutation accessors instead. */ @java.lang.Deprecated public java.util.Map getMutableLabels() { bitField0_ |= 0x00000004; return internalGetMutableLabels().getMutableMap(); } + /** * * *
-     * See [Creating and managing
+     * Optional. See [Creating and managing
      * labels](https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 3; + * map<string, string> labels = 3 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder putLabels(java.lang.String key, java.lang.String value) { if (key == null) { @@ -1188,15 +1387,16 @@ public Builder putLabels(java.lang.String key, java.lang.String value) { bitField0_ |= 0x00000004; return this; } + /** * * *
-     * See [Creating and managing
+     * Optional. See [Creating and managing
      * labels](https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 3; + * map<string, string> labels = 3 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder putAllLabels(java.util.Map values) { internalGetMutableLabels().getMutableMap().putAll(values); @@ -1204,6 +1404,213 @@ public Builder putAllLabels(java.util.Map va return this; } + private com.google.protobuf.MapField tags_; + + private com.google.protobuf.MapField internalGetTags() { + if (tags_ == null) { + return com.google.protobuf.MapField.emptyMapField(TagsDefaultEntryHolder.defaultEntry); + } + return tags_; + } + + private com.google.protobuf.MapField + internalGetMutableTags() { + if (tags_ == null) { + tags_ = com.google.protobuf.MapField.newMapField(TagsDefaultEntryHolder.defaultEntry); + } + if (!tags_.isMutable()) { + tags_ = tags_.copy(); + } + bitField0_ |= 0x00000008; + onChanged(); + return tags_; + } + + public int getTagsCount() { + return internalGetTags().getMap().size(); + } + + /** + * + * + *
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
+     * 
+ * + * + * map<string, string> tags = 4 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public boolean containsTags(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetTags().getMap().containsKey(key); + } + + /** Use {@link #getTagsMap()} instead. */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getTags() { + return getTagsMap(); + } + + /** + * + * + *
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
+     * 
+ * + * + * map<string, string> tags = 4 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.util.Map getTagsMap() { + return internalGetTags().getMap(); + } + + /** + * + * + *
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
+     * 
+ * + * + * map<string, string> tags = 4 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public /* nullable */ java.lang.String getTagsOrDefault( + java.lang.String key, + /* nullable */ + java.lang.String defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetTags().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + + /** + * + * + *
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
+     * 
+ * + * + * map<string, string> tags = 4 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.lang.String getTagsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetTags().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearTags() { + bitField0_ = (bitField0_ & ~0x00000008); + internalGetMutableTags().getMutableMap().clear(); + return this; + } + + /** + * + * + *
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
+     * 
+ * + * + * map<string, string> tags = 4 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder removeTags(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + internalGetMutableTags().getMutableMap().remove(key); + return this; + } + + /** Use alternate mutation accessors instead. */ + @java.lang.Deprecated + public java.util.Map getMutableTags() { + bitField0_ |= 0x00000008; + return internalGetMutableTags().getMutableMap(); + } + + /** + * + * + *
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
+     * 
+ * + * + * map<string, string> tags = 4 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder putTags(java.lang.String key, java.lang.String value) { + if (key == null) { + throw new NullPointerException("map key"); + } + if (value == null) { + throw new NullPointerException("map value"); + } + internalGetMutableTags().getMutableMap().put(key, value); + bitField0_ |= 0x00000008; + return this; + } + + /** + * + * + *
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
+     * 
+ * + * + * map<string, string> tags = 4 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder putAllTags(java.util.Map values) { + internalGetMutableTags().getMutableMap().putAll(values); + bitField0_ |= 0x00000008; + return this; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CreateSnapshotRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CreateSnapshotRequestOrBuilder.java index ee4a6d68f..0c18c014a 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CreateSnapshotRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CreateSnapshotRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface CreateSnapshotRequestOrBuilder @@ -27,35 +28,36 @@ public interface CreateSnapshotRequestOrBuilder * * *
-   * Required. User-provided name for this snapshot. If the name is not provided
-   * in the request, the server will assign a random name for this snapshot on
-   * the same project as the subscription. Note that for REST API requests, you
-   * must specify a name.  See the [resource name
+   * Required. Identifier. User-provided name for this snapshot. If the name is
+   * not provided in the request, the server will assign a random name for this
+   * snapshot on the same project as the subscription. Note that for REST API
+   * requests, you must specify a name.  See the [resource name
    * rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names).
    * Format is `projects/{project}/snapshots/{snap}`.
    * 
* * - * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The name. */ java.lang.String getName(); + /** * * *
-   * Required. User-provided name for this snapshot. If the name is not provided
-   * in the request, the server will assign a random name for this snapshot on
-   * the same project as the subscription. Note that for REST API requests, you
-   * must specify a name.  See the [resource name
+   * Required. Identifier. User-provided name for this snapshot. If the name is
+   * not provided in the request, the server will assign a random name for this
+   * snapshot on the same project as the subscription. Note that for REST API
+   * requests, you must specify a name.  See the [resource name
    * rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names).
    * Format is `projects/{project}/snapshots/{snap}`.
    * 
* * - * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for name. @@ -84,6 +86,7 @@ public interface CreateSnapshotRequestOrBuilder * @return The subscription. */ java.lang.String getSubscription(); + /** * * @@ -111,62 +114,155 @@ public interface CreateSnapshotRequestOrBuilder * * *
-   * See [Creating and managing
+   * Optional. See [Creating and managing
    * labels](https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 3; + * map<string, string> labels = 3 [(.google.api.field_behavior) = OPTIONAL]; */ int getLabelsCount(); + /** * * *
-   * See [Creating and managing
+   * Optional. See [Creating and managing
    * labels](https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 3; + * map<string, string> labels = 3 [(.google.api.field_behavior) = OPTIONAL]; */ boolean containsLabels(java.lang.String key); + /** Use {@link #getLabelsMap()} instead. */ @java.lang.Deprecated java.util.Map getLabels(); + /** * * *
-   * See [Creating and managing
+   * Optional. See [Creating and managing
    * labels](https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 3; + * map<string, string> labels = 3 [(.google.api.field_behavior) = OPTIONAL]; */ java.util.Map getLabelsMap(); + /** * * *
-   * See [Creating and managing
+   * Optional. See [Creating and managing
    * labels](https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 3; + * map<string, string> labels = 3 [(.google.api.field_behavior) = OPTIONAL]; */ /* nullable */ java.lang.String getLabelsOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue); + /** * * *
-   * See [Creating and managing
+   * Optional. See [Creating and managing
    * labels](https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 3; + * map<string, string> labels = 3 [(.google.api.field_behavior) = OPTIONAL]; */ java.lang.String getLabelsOrThrow(java.lang.String key); + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 4 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + int getTagsCount(); + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 4 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + boolean containsTags(java.lang.String key); + + /** Use {@link #getTagsMap()} instead. */ + @java.lang.Deprecated + java.util.Map getTags(); + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 4 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + java.util.Map getTagsMap(); + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 4 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + /* nullable */ + java.lang.String getTagsOrDefault( + java.lang.String key, + /* nullable */ + java.lang.String defaultValue); + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 4 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + java.lang.String getTagsOrThrow(java.lang.String key); } diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CryptoKeyName.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CryptoKeyName.java new file mode 100644 index 000000000..12a4c7312 --- /dev/null +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/CryptoKeyName.java @@ -0,0 +1,261 @@ +/* + * 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.pubsub.v1; + +import com.google.api.pathtemplate.PathTemplate; +import com.google.api.resourcenames.ResourceName; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableMap; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +@Generated("by gapic-generator-java") +public class CryptoKeyName implements ResourceName { + private static final PathTemplate PROJECT_LOCATION_KEY_RING_CRYPTO_KEY = + PathTemplate.createWithoutUrlEncoding( + "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}"); + private volatile Map fieldValuesMap; + private final String project; + private final String location; + private final String keyRing; + private final String cryptoKey; + + @Deprecated + protected CryptoKeyName() { + project = null; + location = null; + keyRing = null; + cryptoKey = null; + } + + private CryptoKeyName(Builder builder) { + project = Preconditions.checkNotNull(builder.getProject()); + location = Preconditions.checkNotNull(builder.getLocation()); + keyRing = Preconditions.checkNotNull(builder.getKeyRing()); + cryptoKey = Preconditions.checkNotNull(builder.getCryptoKey()); + } + + public String getProject() { + return project; + } + + public String getLocation() { + return location; + } + + public String getKeyRing() { + return keyRing; + } + + public String getCryptoKey() { + return cryptoKey; + } + + public static Builder newBuilder() { + return new Builder(); + } + + public Builder toBuilder() { + return new Builder(this); + } + + public static CryptoKeyName of( + String project, String location, String keyRing, String cryptoKey) { + return newBuilder() + .setProject(project) + .setLocation(location) + .setKeyRing(keyRing) + .setCryptoKey(cryptoKey) + .build(); + } + + public static String format(String project, String location, String keyRing, String cryptoKey) { + return newBuilder() + .setProject(project) + .setLocation(location) + .setKeyRing(keyRing) + .setCryptoKey(cryptoKey) + .build() + .toString(); + } + + public static CryptoKeyName parse(String formattedString) { + if (formattedString.isEmpty()) { + return null; + } + Map matchMap = + PROJECT_LOCATION_KEY_RING_CRYPTO_KEY.validatedMatch( + formattedString, "CryptoKeyName.parse: formattedString not in valid format"); + return of( + matchMap.get("project"), + matchMap.get("location"), + matchMap.get("key_ring"), + matchMap.get("crypto_key")); + } + + public static List parseList(List formattedStrings) { + List list = new ArrayList<>(formattedStrings.size()); + for (String formattedString : formattedStrings) { + list.add(parse(formattedString)); + } + return list; + } + + public static List toStringList(List values) { + List list = new ArrayList<>(values.size()); + for (CryptoKeyName value : values) { + if (value == null) { + list.add(""); + } else { + list.add(value.toString()); + } + } + return list; + } + + public static boolean isParsableFrom(String formattedString) { + return PROJECT_LOCATION_KEY_RING_CRYPTO_KEY.matches(formattedString); + } + + @Override + public Map getFieldValuesMap() { + if (fieldValuesMap == null) { + synchronized (this) { + if (fieldValuesMap == null) { + ImmutableMap.Builder fieldMapBuilder = ImmutableMap.builder(); + if (project != null) { + fieldMapBuilder.put("project", project); + } + if (location != null) { + fieldMapBuilder.put("location", location); + } + if (keyRing != null) { + fieldMapBuilder.put("key_ring", keyRing); + } + if (cryptoKey != null) { + fieldMapBuilder.put("crypto_key", cryptoKey); + } + fieldValuesMap = fieldMapBuilder.build(); + } + } + } + return fieldValuesMap; + } + + public String getFieldValue(String fieldName) { + return getFieldValuesMap().get(fieldName); + } + + @Override + public String toString() { + return PROJECT_LOCATION_KEY_RING_CRYPTO_KEY.instantiate( + "project", project, "location", location, "key_ring", keyRing, "crypto_key", cryptoKey); + } + + @Override + public boolean equals(Object o) { + if (o == this) { + return true; + } + if (o != null && getClass() == o.getClass()) { + CryptoKeyName that = ((CryptoKeyName) o); + return Objects.equals(this.project, that.project) + && Objects.equals(this.location, that.location) + && Objects.equals(this.keyRing, that.keyRing) + && Objects.equals(this.cryptoKey, that.cryptoKey); + } + return false; + } + + @Override + public int hashCode() { + int h = 1; + h *= 1000003; + h ^= Objects.hashCode(project); + h *= 1000003; + h ^= Objects.hashCode(location); + h *= 1000003; + h ^= Objects.hashCode(keyRing); + h *= 1000003; + h ^= Objects.hashCode(cryptoKey); + return h; + } + + /** + * Builder for + * projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}. + */ + public static class Builder { + private String project; + private String location; + private String keyRing; + private String cryptoKey; + + protected Builder() {} + + public String getProject() { + return project; + } + + public String getLocation() { + return location; + } + + public String getKeyRing() { + return keyRing; + } + + public String getCryptoKey() { + return cryptoKey; + } + + public Builder setProject(String project) { + this.project = project; + return this; + } + + public Builder setLocation(String location) { + this.location = location; + return this; + } + + public Builder setKeyRing(String keyRing) { + this.keyRing = keyRing; + return this; + } + + public Builder setCryptoKey(String cryptoKey) { + this.cryptoKey = cryptoKey; + return this; + } + + private Builder(CryptoKeyName cryptoKeyName) { + this.project = cryptoKeyName.project; + this.location = cryptoKeyName.location; + this.keyRing = cryptoKeyName.keyRing; + this.cryptoKey = cryptoKeyName.cryptoKey; + } + + public CryptoKeyName build() { + return new CryptoKeyName(this); + } + } +} diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeadLetterPolicy.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeadLetterPolicy.java index 08f316b30..d809e9d6b 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeadLetterPolicy.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeadLetterPolicy.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -36,6 +37,7 @@ public final class DeadLetterPolicy extends com.google.protobuf.GeneratedMessage // @@protoc_insertion_point(message_implements:google.pubsub.v1.DeadLetterPolicy) DeadLetterPolicyOrBuilder { private static final long serialVersionUID = 0L; + // Use DeadLetterPolicy.newBuilder() to construct. private DeadLetterPolicy(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -70,22 +72,25 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object deadLetterTopic_ = ""; + /** * * *
-   * The name of the topic to which dead letter messages should be published.
-   * Format is `projects/{project}/topics/{topic}`.The Cloud Pub/Sub service
-   * account associated with the enclosing subscription's parent project (i.e.,
-   * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-   * permission to Publish() to this topic.
+   * Optional. The name of the topic to which dead letter messages should be
+   * published. Format is `projects/{project}/topics/{topic}`.The Pub/Sub
+   * service account associated with the enclosing subscription's parent project
+   * (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must
+   * have permission to Publish() to this topic.
    *
    * The operation will fail if the topic does not exist.
    * Users should ensure that there is a subscription attached to this topic
    * since messages published to a topic with no subscriptions are lost.
    * 
* - * string dead_letter_topic = 1; + * + * string dead_letter_topic = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The deadLetterTopic. */ @@ -101,22 +106,25 @@ public java.lang.String getDeadLetterTopic() { return s; } } + /** * * *
-   * The name of the topic to which dead letter messages should be published.
-   * Format is `projects/{project}/topics/{topic}`.The Cloud Pub/Sub service
-   * account associated with the enclosing subscription's parent project (i.e.,
-   * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-   * permission to Publish() to this topic.
+   * Optional. The name of the topic to which dead letter messages should be
+   * published. Format is `projects/{project}/topics/{topic}`.The Pub/Sub
+   * service account associated with the enclosing subscription's parent project
+   * (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must
+   * have permission to Publish() to this topic.
    *
    * The operation will fail if the topic does not exist.
    * Users should ensure that there is a subscription attached to this topic
    * since messages published to a topic with no subscriptions are lost.
    * 
* - * string dead_letter_topic = 1; + * + * string dead_letter_topic = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The bytes for deadLetterTopic. */ @@ -135,15 +143,16 @@ public com.google.protobuf.ByteString getDeadLetterTopicBytes() { public static final int MAX_DELIVERY_ATTEMPTS_FIELD_NUMBER = 2; private int maxDeliveryAttempts_ = 0; + /** * * *
-   * The maximum number of delivery attempts for any message. The value must be
-   * between 5 and 100.
+   * Optional. The maximum number of delivery attempts for any message. The
+   * value must be between 5 and 100.
    *
    * The number of delivery attempts is defined as 1 + (the sum of number of
-   * NACKs and number of times the acknowledgement deadline has been exceeded
+   * NACKs and number of times the acknowledgment deadline has been exceeded
    * for the message).
    *
    * A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that
@@ -154,7 +163,7 @@ public com.google.protobuf.ByteString getDeadLetterTopicBytes() {
    * If this parameter is 0, a default value of 5 is used.
    * 
* - * int32 max_delivery_attempts = 2; + * int32 max_delivery_attempts = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The maxDeliveryAttempts. */ @@ -329,6 +338,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -529,22 +539,25 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object deadLetterTopic_ = ""; + /** * * *
-     * The name of the topic to which dead letter messages should be published.
-     * Format is `projects/{project}/topics/{topic}`.The Cloud Pub/Sub service
-     * account associated with the enclosing subscription's parent project (i.e.,
-     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-     * permission to Publish() to this topic.
+     * Optional. The name of the topic to which dead letter messages should be
+     * published. Format is `projects/{project}/topics/{topic}`.The Pub/Sub
+     * service account associated with the enclosing subscription's parent project
+     * (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must
+     * have permission to Publish() to this topic.
      *
      * The operation will fail if the topic does not exist.
      * Users should ensure that there is a subscription attached to this topic
      * since messages published to a topic with no subscriptions are lost.
      * 
* - * string dead_letter_topic = 1; + * + * string dead_letter_topic = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The deadLetterTopic. */ @@ -559,22 +572,25 @@ public java.lang.String getDeadLetterTopic() { return (java.lang.String) ref; } } + /** * * *
-     * The name of the topic to which dead letter messages should be published.
-     * Format is `projects/{project}/topics/{topic}`.The Cloud Pub/Sub service
-     * account associated with the enclosing subscription's parent project (i.e.,
-     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-     * permission to Publish() to this topic.
+     * Optional. The name of the topic to which dead letter messages should be
+     * published. Format is `projects/{project}/topics/{topic}`.The Pub/Sub
+     * service account associated with the enclosing subscription's parent project
+     * (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must
+     * have permission to Publish() to this topic.
      *
      * The operation will fail if the topic does not exist.
      * Users should ensure that there is a subscription attached to this topic
      * since messages published to a topic with no subscriptions are lost.
      * 
* - * string dead_letter_topic = 1; + * + * string dead_letter_topic = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The bytes for deadLetterTopic. */ @@ -589,22 +605,25 @@ public com.google.protobuf.ByteString getDeadLetterTopicBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * The name of the topic to which dead letter messages should be published.
-     * Format is `projects/{project}/topics/{topic}`.The Cloud Pub/Sub service
-     * account associated with the enclosing subscription's parent project (i.e.,
-     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-     * permission to Publish() to this topic.
+     * Optional. The name of the topic to which dead letter messages should be
+     * published. Format is `projects/{project}/topics/{topic}`.The Pub/Sub
+     * service account associated with the enclosing subscription's parent project
+     * (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must
+     * have permission to Publish() to this topic.
      *
      * The operation will fail if the topic does not exist.
      * Users should ensure that there is a subscription attached to this topic
      * since messages published to a topic with no subscriptions are lost.
      * 
* - * string dead_letter_topic = 1; + * + * string dead_letter_topic = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param value The deadLetterTopic to set. * @return This builder for chaining. @@ -618,22 +637,25 @@ public Builder setDeadLetterTopic(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The name of the topic to which dead letter messages should be published.
-     * Format is `projects/{project}/topics/{topic}`.The Cloud Pub/Sub service
-     * account associated with the enclosing subscription's parent project (i.e.,
-     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-     * permission to Publish() to this topic.
+     * Optional. The name of the topic to which dead letter messages should be
+     * published. Format is `projects/{project}/topics/{topic}`.The Pub/Sub
+     * service account associated with the enclosing subscription's parent project
+     * (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must
+     * have permission to Publish() to this topic.
      *
      * The operation will fail if the topic does not exist.
      * Users should ensure that there is a subscription attached to this topic
      * since messages published to a topic with no subscriptions are lost.
      * 
* - * string dead_letter_topic = 1; + * + * string dead_letter_topic = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return This builder for chaining. */ @@ -643,22 +665,25 @@ public Builder clearDeadLetterTopic() { onChanged(); return this; } + /** * * *
-     * The name of the topic to which dead letter messages should be published.
-     * Format is `projects/{project}/topics/{topic}`.The Cloud Pub/Sub service
-     * account associated with the enclosing subscription's parent project (i.e.,
-     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-     * permission to Publish() to this topic.
+     * Optional. The name of the topic to which dead letter messages should be
+     * published. Format is `projects/{project}/topics/{topic}`.The Pub/Sub
+     * service account associated with the enclosing subscription's parent project
+     * (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must
+     * have permission to Publish() to this topic.
      *
      * The operation will fail if the topic does not exist.
      * Users should ensure that there is a subscription attached to this topic
      * since messages published to a topic with no subscriptions are lost.
      * 
* - * string dead_letter_topic = 1; + * + * string dead_letter_topic = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param value The bytes for deadLetterTopic to set. * @return This builder for chaining. @@ -675,15 +700,16 @@ public Builder setDeadLetterTopicBytes(com.google.protobuf.ByteString value) { } private int maxDeliveryAttempts_; + /** * * *
-     * The maximum number of delivery attempts for any message. The value must be
-     * between 5 and 100.
+     * Optional. The maximum number of delivery attempts for any message. The
+     * value must be between 5 and 100.
      *
      * The number of delivery attempts is defined as 1 + (the sum of number of
-     * NACKs and number of times the acknowledgement deadline has been exceeded
+     * NACKs and number of times the acknowledgment deadline has been exceeded
      * for the message).
      *
      * A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that
@@ -694,7 +720,7 @@ public Builder setDeadLetterTopicBytes(com.google.protobuf.ByteString value) {
      * If this parameter is 0, a default value of 5 is used.
      * 
* - * int32 max_delivery_attempts = 2; + * int32 max_delivery_attempts = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The maxDeliveryAttempts. */ @@ -702,15 +728,16 @@ public Builder setDeadLetterTopicBytes(com.google.protobuf.ByteString value) { public int getMaxDeliveryAttempts() { return maxDeliveryAttempts_; } + /** * * *
-     * The maximum number of delivery attempts for any message. The value must be
-     * between 5 and 100.
+     * Optional. The maximum number of delivery attempts for any message. The
+     * value must be between 5 and 100.
      *
      * The number of delivery attempts is defined as 1 + (the sum of number of
-     * NACKs and number of times the acknowledgement deadline has been exceeded
+     * NACKs and number of times the acknowledgment deadline has been exceeded
      * for the message).
      *
      * A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that
@@ -721,7 +748,7 @@ public int getMaxDeliveryAttempts() {
      * If this parameter is 0, a default value of 5 is used.
      * 
* - * int32 max_delivery_attempts = 2; + * int32 max_delivery_attempts = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The maxDeliveryAttempts to set. * @return This builder for chaining. @@ -733,15 +760,16 @@ public Builder setMaxDeliveryAttempts(int value) { onChanged(); return this; } + /** * * *
-     * The maximum number of delivery attempts for any message. The value must be
-     * between 5 and 100.
+     * Optional. The maximum number of delivery attempts for any message. The
+     * value must be between 5 and 100.
      *
      * The number of delivery attempts is defined as 1 + (the sum of number of
-     * NACKs and number of times the acknowledgement deadline has been exceeded
+     * NACKs and number of times the acknowledgment deadline has been exceeded
      * for the message).
      *
      * A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that
@@ -752,7 +780,7 @@ public Builder setMaxDeliveryAttempts(int value) {
      * If this parameter is 0, a default value of 5 is used.
      * 
* - * int32 max_delivery_attempts = 2; + * int32 max_delivery_attempts = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeadLetterPolicyOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeadLetterPolicyOrBuilder.java index 57c34d389..83159d59d 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeadLetterPolicyOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeadLetterPolicyOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface DeadLetterPolicyOrBuilder @@ -27,38 +28,43 @@ public interface DeadLetterPolicyOrBuilder * * *
-   * The name of the topic to which dead letter messages should be published.
-   * Format is `projects/{project}/topics/{topic}`.The Cloud Pub/Sub service
-   * account associated with the enclosing subscription's parent project (i.e.,
-   * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-   * permission to Publish() to this topic.
+   * Optional. The name of the topic to which dead letter messages should be
+   * published. Format is `projects/{project}/topics/{topic}`.The Pub/Sub
+   * service account associated with the enclosing subscription's parent project
+   * (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must
+   * have permission to Publish() to this topic.
    *
    * The operation will fail if the topic does not exist.
    * Users should ensure that there is a subscription attached to this topic
    * since messages published to a topic with no subscriptions are lost.
    * 
* - * string dead_letter_topic = 1; + * + * string dead_letter_topic = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The deadLetterTopic. */ java.lang.String getDeadLetterTopic(); + /** * * *
-   * The name of the topic to which dead letter messages should be published.
-   * Format is `projects/{project}/topics/{topic}`.The Cloud Pub/Sub service
-   * account associated with the enclosing subscription's parent project (i.e.,
-   * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-   * permission to Publish() to this topic.
+   * Optional. The name of the topic to which dead letter messages should be
+   * published. Format is `projects/{project}/topics/{topic}`.The Pub/Sub
+   * service account associated with the enclosing subscription's parent project
+   * (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must
+   * have permission to Publish() to this topic.
    *
    * The operation will fail if the topic does not exist.
    * Users should ensure that there is a subscription attached to this topic
    * since messages published to a topic with no subscriptions are lost.
    * 
* - * string dead_letter_topic = 1; + * + * string dead_letter_topic = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The bytes for deadLetterTopic. */ @@ -68,11 +74,11 @@ public interface DeadLetterPolicyOrBuilder * * *
-   * The maximum number of delivery attempts for any message. The value must be
-   * between 5 and 100.
+   * Optional. The maximum number of delivery attempts for any message. The
+   * value must be between 5 and 100.
    *
    * The number of delivery attempts is defined as 1 + (the sum of number of
-   * NACKs and number of times the acknowledgement deadline has been exceeded
+   * NACKs and number of times the acknowledgment deadline has been exceeded
    * for the message).
    *
    * A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that
@@ -83,7 +89,7 @@ public interface DeadLetterPolicyOrBuilder
    * If this parameter is 0, a default value of 5 is used.
    * 
* - * int32 max_delivery_attempts = 2; + * int32 max_delivery_attempts = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The maxDeliveryAttempts. */ diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSchemaRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSchemaRequest.java index 05b705298..bd3f5758e 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSchemaRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSchemaRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class DeleteSchemaRequest extends com.google.protobuf.GeneratedMess // @@protoc_insertion_point(message_implements:google.pubsub.v1.DeleteSchemaRequest) DeleteSchemaRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use DeleteSchemaRequest.newBuilder() to construct. private DeleteSchemaRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -66,6 +68,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object name_ = ""; + /** * * @@ -92,6 +95,7 @@ public java.lang.String getName() { return s; } } + /** * * @@ -277,6 +281,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -460,6 +465,7 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object name_ = ""; + /** * * @@ -485,6 +491,7 @@ public java.lang.String getName() { return (java.lang.String) ref; } } + /** * * @@ -510,6 +517,7 @@ public com.google.protobuf.ByteString getNameBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -534,6 +542,7 @@ public Builder setName(java.lang.String value) { onChanged(); return this; } + /** * * @@ -554,6 +563,7 @@ public Builder clearName() { onChanged(); return this; } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSchemaRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSchemaRequestOrBuilder.java index 9a119b4b6..6c37bc269 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSchemaRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSchemaRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface DeleteSchemaRequestOrBuilder @@ -38,6 +39,7 @@ public interface DeleteSchemaRequestOrBuilder * @return The name. */ java.lang.String getName(); + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSchemaRevisionRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSchemaRevisionRequest.java index d057aaf47..f0e5a1f76 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSchemaRevisionRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSchemaRevisionRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class DeleteSchemaRevisionRequest extends com.google.protobuf.Gener // @@protoc_insertion_point(message_implements:google.pubsub.v1.DeleteSchemaRevisionRequest) DeleteSchemaRevisionRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use DeleteSchemaRevisionRequest.newBuilder() to construct. private DeleteSchemaRevisionRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -67,6 +69,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object name_ = ""; + /** * * @@ -95,6 +98,7 @@ public java.lang.String getName() { return s; } } + /** * * @@ -128,6 +132,7 @@ public com.google.protobuf.ByteString getNameBytes() { @SuppressWarnings("serial") private volatile java.lang.Object revisionId_ = ""; + /** * * @@ -141,7 +146,7 @@ public com.google.protobuf.ByteString getNameBytes() { * * * @deprecated google.pubsub.v1.DeleteSchemaRevisionRequest.revision_id is deprecated. See - * google/pubsub/v1/schema.proto;l=331 + * google/pubsub/v1/schema.proto;l=330 * @return The revisionId. */ @java.lang.Override @@ -157,6 +162,7 @@ public java.lang.String getRevisionId() { return s; } } + /** * * @@ -170,7 +176,7 @@ public java.lang.String getRevisionId() { * * * @deprecated google.pubsub.v1.DeleteSchemaRevisionRequest.revision_id is deprecated. See - * google/pubsub/v1/schema.proto;l=331 + * google/pubsub/v1/schema.proto;l=330 * @return The bytes for revisionId. */ @java.lang.Override @@ -355,6 +361,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -554,6 +561,7 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object name_ = ""; + /** * * @@ -581,6 +589,7 @@ public java.lang.String getName() { return (java.lang.String) ref; } } + /** * * @@ -608,6 +617,7 @@ public com.google.protobuf.ByteString getNameBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -634,6 +644,7 @@ public Builder setName(java.lang.String value) { onChanged(); return this; } + /** * * @@ -656,6 +667,7 @@ public Builder clearName() { onChanged(); return this; } + /** * * @@ -685,6 +697,7 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) { } private java.lang.Object revisionId_ = ""; + /** * * @@ -698,7 +711,7 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) { * * * @deprecated google.pubsub.v1.DeleteSchemaRevisionRequest.revision_id is deprecated. See - * google/pubsub/v1/schema.proto;l=331 + * google/pubsub/v1/schema.proto;l=330 * @return The revisionId. */ @java.lang.Deprecated @@ -713,6 +726,7 @@ public java.lang.String getRevisionId() { return (java.lang.String) ref; } } + /** * * @@ -726,7 +740,7 @@ public java.lang.String getRevisionId() { * * * @deprecated google.pubsub.v1.DeleteSchemaRevisionRequest.revision_id is deprecated. See - * google/pubsub/v1/schema.proto;l=331 + * google/pubsub/v1/schema.proto;l=330 * @return The bytes for revisionId. */ @java.lang.Deprecated @@ -741,6 +755,7 @@ public com.google.protobuf.ByteString getRevisionIdBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -754,7 +769,7 @@ public com.google.protobuf.ByteString getRevisionIdBytes() { * * * @deprecated google.pubsub.v1.DeleteSchemaRevisionRequest.revision_id is deprecated. See - * google/pubsub/v1/schema.proto;l=331 + * google/pubsub/v1/schema.proto;l=330 * @param value The revisionId to set. * @return This builder for chaining. */ @@ -768,6 +783,7 @@ public Builder setRevisionId(java.lang.String value) { onChanged(); return this; } + /** * * @@ -781,7 +797,7 @@ public Builder setRevisionId(java.lang.String value) { * * * @deprecated google.pubsub.v1.DeleteSchemaRevisionRequest.revision_id is deprecated. See - * google/pubsub/v1/schema.proto;l=331 + * google/pubsub/v1/schema.proto;l=330 * @return This builder for chaining. */ @java.lang.Deprecated @@ -791,6 +807,7 @@ public Builder clearRevisionId() { onChanged(); return this; } + /** * * @@ -804,7 +821,7 @@ public Builder clearRevisionId() { * * * @deprecated google.pubsub.v1.DeleteSchemaRevisionRequest.revision_id is deprecated. See - * google/pubsub/v1/schema.proto;l=331 + * google/pubsub/v1/schema.proto;l=330 * @param value The bytes for revisionId to set. * @return This builder for chaining. */ diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSchemaRevisionRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSchemaRevisionRequestOrBuilder.java index 1286bce9f..f3a1d7ea3 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSchemaRevisionRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSchemaRevisionRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface DeleteSchemaRevisionRequestOrBuilder @@ -40,6 +41,7 @@ public interface DeleteSchemaRevisionRequestOrBuilder * @return The name. */ java.lang.String getName(); + /** * * @@ -71,11 +73,12 @@ public interface DeleteSchemaRevisionRequestOrBuilder * * * @deprecated google.pubsub.v1.DeleteSchemaRevisionRequest.revision_id is deprecated. See - * google/pubsub/v1/schema.proto;l=331 + * google/pubsub/v1/schema.proto;l=330 * @return The revisionId. */ @java.lang.Deprecated java.lang.String getRevisionId(); + /** * * @@ -89,7 +92,7 @@ public interface DeleteSchemaRevisionRequestOrBuilder * * * @deprecated google.pubsub.v1.DeleteSchemaRevisionRequest.revision_id is deprecated. See - * google/pubsub/v1/schema.proto;l=331 + * google/pubsub/v1/schema.proto;l=330 * @return The bytes for revisionId. */ @java.lang.Deprecated diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSnapshotRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSnapshotRequest.java index 3d494f98f..47083fed1 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSnapshotRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSnapshotRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class DeleteSnapshotRequest extends com.google.protobuf.GeneratedMe // @@protoc_insertion_point(message_implements:google.pubsub.v1.DeleteSnapshotRequest) DeleteSnapshotRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use DeleteSnapshotRequest.newBuilder() to construct. private DeleteSnapshotRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -66,16 +68,17 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object snapshot_ = ""; + /** * * *
-   * Required. The name of the snapshot to delete.
+   * Required. Identifier. The name of the snapshot to delete.
    * Format is `projects/{project}/snapshots/{snap}`.
    * 
* * - * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The snapshot. @@ -92,16 +95,17 @@ public java.lang.String getSnapshot() { return s; } } + /** * * *
-   * Required. The name of the snapshot to delete.
+   * Required. Identifier. The name of the snapshot to delete.
    * Format is `projects/{project}/snapshots/{snap}`.
    * 
* * - * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for snapshot. @@ -278,6 +282,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -461,16 +466,17 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object snapshot_ = ""; + /** * * *
-     * Required. The name of the snapshot to delete.
+     * Required. Identifier. The name of the snapshot to delete.
      * Format is `projects/{project}/snapshots/{snap}`.
      * 
* * - * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The snapshot. @@ -486,16 +492,17 @@ public java.lang.String getSnapshot() { return (java.lang.String) ref; } } + /** * * *
-     * Required. The name of the snapshot to delete.
+     * Required. Identifier. The name of the snapshot to delete.
      * Format is `projects/{project}/snapshots/{snap}`.
      * 
* * - * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for snapshot. @@ -511,16 +518,17 @@ public com.google.protobuf.ByteString getSnapshotBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * Required. The name of the snapshot to delete.
+     * Required. Identifier. The name of the snapshot to delete.
      * Format is `projects/{project}/snapshots/{snap}`.
      * 
* * - * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The snapshot to set. @@ -535,16 +543,17 @@ public Builder setSnapshot(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * Required. The name of the snapshot to delete.
+     * Required. Identifier. The name of the snapshot to delete.
      * Format is `projects/{project}/snapshots/{snap}`.
      * 
* * - * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return This builder for chaining. @@ -555,16 +564,17 @@ public Builder clearSnapshot() { onChanged(); return this; } + /** * * *
-     * Required. The name of the snapshot to delete.
+     * Required. Identifier. The name of the snapshot to delete.
      * Format is `projects/{project}/snapshots/{snap}`.
      * 
* * - * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The bytes for snapshot to set. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSnapshotRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSnapshotRequestOrBuilder.java index c69c25ca8..5a4dd6337 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSnapshotRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSnapshotRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface DeleteSnapshotRequestOrBuilder @@ -27,27 +28,28 @@ public interface DeleteSnapshotRequestOrBuilder * * *
-   * Required. The name of the snapshot to delete.
+   * Required. Identifier. The name of the snapshot to delete.
    * Format is `projects/{project}/snapshots/{snap}`.
    * 
* * - * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The snapshot. */ java.lang.String getSnapshot(); + /** * * *
-   * Required. The name of the snapshot to delete.
+   * Required. Identifier. The name of the snapshot to delete.
    * Format is `projects/{project}/snapshots/{snap}`.
    * 
* * - * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for snapshot. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSubscriptionRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSubscriptionRequest.java index d91bb8783..961fdf8a6 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSubscriptionRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSubscriptionRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class DeleteSubscriptionRequest extends com.google.protobuf.Generat // @@protoc_insertion_point(message_implements:google.pubsub.v1.DeleteSubscriptionRequest) DeleteSubscriptionRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use DeleteSubscriptionRequest.newBuilder() to construct. private DeleteSubscriptionRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -66,16 +68,17 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object subscription_ = ""; + /** * * *
-   * Required. The subscription to delete.
+   * Required. Identifier. The subscription to delete.
    * Format is `projects/{project}/subscriptions/{sub}`.
    * 
* * - * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The subscription. @@ -92,16 +95,17 @@ public java.lang.String getSubscription() { return s; } } + /** * * *
-   * Required. The subscription to delete.
+   * Required. Identifier. The subscription to delete.
    * Format is `projects/{project}/subscriptions/{sub}`.
    * 
* * - * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for subscription. @@ -278,6 +282,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -461,16 +466,17 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object subscription_ = ""; + /** * * *
-     * Required. The subscription to delete.
+     * Required. Identifier. The subscription to delete.
      * Format is `projects/{project}/subscriptions/{sub}`.
      * 
* * - * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The subscription. @@ -486,16 +492,17 @@ public java.lang.String getSubscription() { return (java.lang.String) ref; } } + /** * * *
-     * Required. The subscription to delete.
+     * Required. Identifier. The subscription to delete.
      * Format is `projects/{project}/subscriptions/{sub}`.
      * 
* * - * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for subscription. @@ -511,16 +518,17 @@ public com.google.protobuf.ByteString getSubscriptionBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * Required. The subscription to delete.
+     * Required. Identifier. The subscription to delete.
      * Format is `projects/{project}/subscriptions/{sub}`.
      * 
* * - * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The subscription to set. @@ -535,16 +543,17 @@ public Builder setSubscription(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * Required. The subscription to delete.
+     * Required. Identifier. The subscription to delete.
      * Format is `projects/{project}/subscriptions/{sub}`.
      * 
* * - * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return This builder for chaining. @@ -555,16 +564,17 @@ public Builder clearSubscription() { onChanged(); return this; } + /** * * *
-     * Required. The subscription to delete.
+     * Required. Identifier. The subscription to delete.
      * Format is `projects/{project}/subscriptions/{sub}`.
      * 
* * - * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The bytes for subscription to set. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSubscriptionRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSubscriptionRequestOrBuilder.java index 53ffc2512..5ab0407d2 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSubscriptionRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteSubscriptionRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface DeleteSubscriptionRequestOrBuilder @@ -27,27 +28,28 @@ public interface DeleteSubscriptionRequestOrBuilder * * *
-   * Required. The subscription to delete.
+   * Required. Identifier. The subscription to delete.
    * Format is `projects/{project}/subscriptions/{sub}`.
    * 
* * - * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The subscription. */ java.lang.String getSubscription(); + /** * * *
-   * Required. The subscription to delete.
+   * Required. Identifier. The subscription to delete.
    * Format is `projects/{project}/subscriptions/{sub}`.
    * 
* * - * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for subscription. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteTopicRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteTopicRequest.java index a4055d287..7171ad93c 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteTopicRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteTopicRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class DeleteTopicRequest extends com.google.protobuf.GeneratedMessa // @@protoc_insertion_point(message_implements:google.pubsub.v1.DeleteTopicRequest) DeleteTopicRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use DeleteTopicRequest.newBuilder() to construct. private DeleteTopicRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -66,16 +68,17 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object topic_ = ""; + /** * * *
-   * Required. Name of the topic to delete.
+   * Required. Identifier. Name of the topic to delete.
    * Format is `projects/{project}/topics/{topic}`.
    * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The topic. @@ -92,16 +95,17 @@ public java.lang.String getTopic() { return s; } } + /** * * *
-   * Required. Name of the topic to delete.
+   * Required. Identifier. Name of the topic to delete.
    * Format is `projects/{project}/topics/{topic}`.
    * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for topic. @@ -277,6 +281,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -460,16 +465,17 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object topic_ = ""; + /** * * *
-     * Required. Name of the topic to delete.
+     * Required. Identifier. Name of the topic to delete.
      * Format is `projects/{project}/topics/{topic}`.
      * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The topic. @@ -485,16 +491,17 @@ public java.lang.String getTopic() { return (java.lang.String) ref; } } + /** * * *
-     * Required. Name of the topic to delete.
+     * Required. Identifier. Name of the topic to delete.
      * Format is `projects/{project}/topics/{topic}`.
      * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for topic. @@ -510,16 +517,17 @@ public com.google.protobuf.ByteString getTopicBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * Required. Name of the topic to delete.
+     * Required. Identifier. Name of the topic to delete.
      * Format is `projects/{project}/topics/{topic}`.
      * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The topic to set. @@ -534,16 +542,17 @@ public Builder setTopic(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * Required. Name of the topic to delete.
+     * Required. Identifier. Name of the topic to delete.
      * Format is `projects/{project}/topics/{topic}`.
      * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return This builder for chaining. @@ -554,16 +563,17 @@ public Builder clearTopic() { onChanged(); return this; } + /** * * *
-     * Required. Name of the topic to delete.
+     * Required. Identifier. Name of the topic to delete.
      * Format is `projects/{project}/topics/{topic}`.
      * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The bytes for topic to set. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteTopicRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteTopicRequestOrBuilder.java index 8360c7745..a13a646fd 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteTopicRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DeleteTopicRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface DeleteTopicRequestOrBuilder @@ -27,27 +28,28 @@ public interface DeleteTopicRequestOrBuilder * * *
-   * Required. Name of the topic to delete.
+   * Required. Identifier. Name of the topic to delete.
    * Format is `projects/{project}/topics/{topic}`.
    * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The topic. */ java.lang.String getTopic(); + /** * * *
-   * Required. Name of the topic to delete.
+   * Required. Identifier. Name of the topic to delete.
    * Format is `projects/{project}/topics/{topic}`.
    * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for topic. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DetachSubscriptionRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DetachSubscriptionRequest.java index 910c1f9e2..8e3a863ce 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DetachSubscriptionRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DetachSubscriptionRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class DetachSubscriptionRequest extends com.google.protobuf.Generat // @@protoc_insertion_point(message_implements:google.pubsub.v1.DetachSubscriptionRequest) DetachSubscriptionRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use DetachSubscriptionRequest.newBuilder() to construct. private DetachSubscriptionRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -66,6 +68,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object subscription_ = ""; + /** * * @@ -92,6 +95,7 @@ public java.lang.String getSubscription() { return s; } } + /** * * @@ -278,6 +282,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -461,6 +466,7 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object subscription_ = ""; + /** * * @@ -486,6 +492,7 @@ public java.lang.String getSubscription() { return (java.lang.String) ref; } } + /** * * @@ -511,6 +518,7 @@ public com.google.protobuf.ByteString getSubscriptionBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -535,6 +543,7 @@ public Builder setSubscription(java.lang.String value) { onChanged(); return this; } + /** * * @@ -555,6 +564,7 @@ public Builder clearSubscription() { onChanged(); return this; } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DetachSubscriptionRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DetachSubscriptionRequestOrBuilder.java index 6b348ec14..49afe0240 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DetachSubscriptionRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DetachSubscriptionRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface DetachSubscriptionRequestOrBuilder @@ -38,6 +39,7 @@ public interface DetachSubscriptionRequestOrBuilder * @return The subscription. */ java.lang.String getSubscription(); + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DetachSubscriptionResponse.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DetachSubscriptionResponse.java index 0eae1bac2..53c87d21d 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DetachSubscriptionResponse.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DetachSubscriptionResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -33,6 +34,7 @@ public final class DetachSubscriptionResponse extends com.google.protobuf.Genera // @@protoc_insertion_point(message_implements:google.pubsub.v1.DetachSubscriptionResponse) DetachSubscriptionResponseOrBuilder { private static final long serialVersionUID = 0L; + // Use DetachSubscriptionResponse.newBuilder() to construct. private DetachSubscriptionResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -211,6 +213,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DetachSubscriptionResponseOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DetachSubscriptionResponseOrBuilder.java index 4d8a60b3a..b9e42c7cd 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DetachSubscriptionResponseOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/DetachSubscriptionResponseOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface DetachSubscriptionResponseOrBuilder diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Encoding.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Encoding.java index 6f07b9ea4..12f4a8105 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Encoding.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Encoding.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -72,6 +73,7 @@ public enum Encoding implements com.google.protobuf.ProtocolMessageEnum { * ENCODING_UNSPECIFIED = 0; */ public static final int ENCODING_UNSPECIFIED_VALUE = 0; + /** * * @@ -82,6 +84,7 @@ public enum Encoding implements com.google.protobuf.ProtocolMessageEnum { * JSON = 1; */ public static final int JSON_VALUE = 1; + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ExpirationPolicy.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ExpirationPolicy.java index 89229dd47..708cc8cec 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ExpirationPolicy.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ExpirationPolicy.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -33,6 +34,7 @@ public final class ExpirationPolicy extends com.google.protobuf.GeneratedMessage // @@protoc_insertion_point(message_implements:google.pubsub.v1.ExpirationPolicy) ExpirationPolicyOrBuilder { private static final long serialVersionUID = 0L; + // Use ExpirationPolicy.newBuilder() to construct. private ExpirationPolicy(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -61,41 +63,44 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { com.google.pubsub.v1.ExpirationPolicy.Builder.class); } + private int bitField0_; public static final int TTL_FIELD_NUMBER = 1; private com.google.protobuf.Duration ttl_; + /** * * *
-   * Specifies the "time-to-live" duration for an associated resource. The
-   * resource expires if it is not active for a period of `ttl`. The definition
-   * of "activity" depends on the type of the associated resource. The minimum
-   * and maximum allowed values for `ttl` depend on the type of the associated
-   * resource, as well. If `ttl` is not set, the associated resource never
-   * expires.
+   * Optional. Specifies the "time-to-live" duration for an associated resource.
+   * The resource expires if it is not active for a period of `ttl`. The
+   * definition of "activity" depends on the type of the associated resource.
+   * The minimum and maximum allowed values for `ttl` depend on the type of the
+   * associated resource, as well. If `ttl` is not set, the associated resource
+   * never expires.
    * 
* - * .google.protobuf.Duration ttl = 1; + * .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return Whether the ttl field is set. */ @java.lang.Override public boolean hasTtl() { - return ttl_ != null; + return ((bitField0_ & 0x00000001) != 0); } + /** * * *
-   * Specifies the "time-to-live" duration for an associated resource. The
-   * resource expires if it is not active for a period of `ttl`. The definition
-   * of "activity" depends on the type of the associated resource. The minimum
-   * and maximum allowed values for `ttl` depend on the type of the associated
-   * resource, as well. If `ttl` is not set, the associated resource never
-   * expires.
+   * Optional. Specifies the "time-to-live" duration for an associated resource.
+   * The resource expires if it is not active for a period of `ttl`. The
+   * definition of "activity" depends on the type of the associated resource.
+   * The minimum and maximum allowed values for `ttl` depend on the type of the
+   * associated resource, as well. If `ttl` is not set, the associated resource
+   * never expires.
    * 
* - * .google.protobuf.Duration ttl = 1; + * .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The ttl. */ @@ -103,19 +108,20 @@ public boolean hasTtl() { public com.google.protobuf.Duration getTtl() { return ttl_ == null ? com.google.protobuf.Duration.getDefaultInstance() : ttl_; } + /** * * *
-   * Specifies the "time-to-live" duration for an associated resource. The
-   * resource expires if it is not active for a period of `ttl`. The definition
-   * of "activity" depends on the type of the associated resource. The minimum
-   * and maximum allowed values for `ttl` depend on the type of the associated
-   * resource, as well. If `ttl` is not set, the associated resource never
-   * expires.
+   * Optional. Specifies the "time-to-live" duration for an associated resource.
+   * The resource expires if it is not active for a period of `ttl`. The
+   * definition of "activity" depends on the type of the associated resource.
+   * The minimum and maximum allowed values for `ttl` depend on the type of the
+   * associated resource, as well. If `ttl` is not set, the associated resource
+   * never expires.
    * 
* - * .google.protobuf.Duration ttl = 1; + * .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getTtlOrBuilder() { @@ -136,7 +142,7 @@ public final boolean isInitialized() { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (ttl_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(1, getTtl()); } getUnknownFields().writeTo(output); @@ -148,7 +154,7 @@ public int getSerializedSize() { if (size != -1) return size; size = 0; - if (ttl_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getTtl()); } size += getUnknownFields().getSerializedSize(); @@ -284,6 +290,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -314,10 +321,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } // Construct using com.google.pubsub.v1.ExpirationPolicy.newBuilder() - private Builder() {} + private Builder() { + maybeForceBuilderInitialization(); + } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getTtlFieldBuilder(); + } } @java.lang.Override @@ -365,9 +381,12 @@ public com.google.pubsub.v1.ExpirationPolicy buildPartial() { private void buildPartial0(com.google.pubsub.v1.ExpirationPolicy result) { int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) != 0)) { result.ttl_ = ttlBuilder_ == null ? ttl_ : ttlBuilder_.build(); + to_bitField0_ |= 0x00000001; } + result.bitField0_ |= to_bitField0_; } @java.lang.Override @@ -475,38 +494,40 @@ public Builder mergeFrom( com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> ttlBuilder_; + /** * * *
-     * Specifies the "time-to-live" duration for an associated resource. The
-     * resource expires if it is not active for a period of `ttl`. The definition
-     * of "activity" depends on the type of the associated resource. The minimum
-     * and maximum allowed values for `ttl` depend on the type of the associated
-     * resource, as well. If `ttl` is not set, the associated resource never
-     * expires.
+     * Optional. Specifies the "time-to-live" duration for an associated resource.
+     * The resource expires if it is not active for a period of `ttl`. The
+     * definition of "activity" depends on the type of the associated resource.
+     * The minimum and maximum allowed values for `ttl` depend on the type of the
+     * associated resource, as well. If `ttl` is not set, the associated resource
+     * never expires.
      * 
* - * .google.protobuf.Duration ttl = 1; + * .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return Whether the ttl field is set. */ public boolean hasTtl() { return ((bitField0_ & 0x00000001) != 0); } + /** * * *
-     * Specifies the "time-to-live" duration for an associated resource. The
-     * resource expires if it is not active for a period of `ttl`. The definition
-     * of "activity" depends on the type of the associated resource. The minimum
-     * and maximum allowed values for `ttl` depend on the type of the associated
-     * resource, as well. If `ttl` is not set, the associated resource never
-     * expires.
+     * Optional. Specifies the "time-to-live" duration for an associated resource.
+     * The resource expires if it is not active for a period of `ttl`. The
+     * definition of "activity" depends on the type of the associated resource.
+     * The minimum and maximum allowed values for `ttl` depend on the type of the
+     * associated resource, as well. If `ttl` is not set, the associated resource
+     * never expires.
      * 
* - * .google.protobuf.Duration ttl = 1; + * .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The ttl. */ @@ -517,19 +538,20 @@ public com.google.protobuf.Duration getTtl() { return ttlBuilder_.getMessage(); } } + /** * * *
-     * Specifies the "time-to-live" duration for an associated resource. The
-     * resource expires if it is not active for a period of `ttl`. The definition
-     * of "activity" depends on the type of the associated resource. The minimum
-     * and maximum allowed values for `ttl` depend on the type of the associated
-     * resource, as well. If `ttl` is not set, the associated resource never
-     * expires.
+     * Optional. Specifies the "time-to-live" duration for an associated resource.
+     * The resource expires if it is not active for a period of `ttl`. The
+     * definition of "activity" depends on the type of the associated resource.
+     * The minimum and maximum allowed values for `ttl` depend on the type of the
+     * associated resource, as well. If `ttl` is not set, the associated resource
+     * never expires.
      * 
* - * .google.protobuf.Duration ttl = 1; + * .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder setTtl(com.google.protobuf.Duration value) { if (ttlBuilder_ == null) { @@ -544,19 +566,20 @@ public Builder setTtl(com.google.protobuf.Duration value) { onChanged(); return this; } + /** * * *
-     * Specifies the "time-to-live" duration for an associated resource. The
-     * resource expires if it is not active for a period of `ttl`. The definition
-     * of "activity" depends on the type of the associated resource. The minimum
-     * and maximum allowed values for `ttl` depend on the type of the associated
-     * resource, as well. If `ttl` is not set, the associated resource never
-     * expires.
+     * Optional. Specifies the "time-to-live" duration for an associated resource.
+     * The resource expires if it is not active for a period of `ttl`. The
+     * definition of "activity" depends on the type of the associated resource.
+     * The minimum and maximum allowed values for `ttl` depend on the type of the
+     * associated resource, as well. If `ttl` is not set, the associated resource
+     * never expires.
      * 
* - * .google.protobuf.Duration ttl = 1; + * .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder setTtl(com.google.protobuf.Duration.Builder builderForValue) { if (ttlBuilder_ == null) { @@ -568,19 +591,20 @@ public Builder setTtl(com.google.protobuf.Duration.Builder builderForValue) { onChanged(); return this; } + /** * * *
-     * Specifies the "time-to-live" duration for an associated resource. The
-     * resource expires if it is not active for a period of `ttl`. The definition
-     * of "activity" depends on the type of the associated resource. The minimum
-     * and maximum allowed values for `ttl` depend on the type of the associated
-     * resource, as well. If `ttl` is not set, the associated resource never
-     * expires.
+     * Optional. Specifies the "time-to-live" duration for an associated resource.
+     * The resource expires if it is not active for a period of `ttl`. The
+     * definition of "activity" depends on the type of the associated resource.
+     * The minimum and maximum allowed values for `ttl` depend on the type of the
+     * associated resource, as well. If `ttl` is not set, the associated resource
+     * never expires.
      * 
* - * .google.protobuf.Duration ttl = 1; + * .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder mergeTtl(com.google.protobuf.Duration value) { if (ttlBuilder_ == null) { @@ -594,23 +618,26 @@ public Builder mergeTtl(com.google.protobuf.Duration value) { } else { ttlBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000001; - onChanged(); + if (ttl_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } return this; } + /** * * *
-     * Specifies the "time-to-live" duration for an associated resource. The
-     * resource expires if it is not active for a period of `ttl`. The definition
-     * of "activity" depends on the type of the associated resource. The minimum
-     * and maximum allowed values for `ttl` depend on the type of the associated
-     * resource, as well. If `ttl` is not set, the associated resource never
-     * expires.
+     * Optional. Specifies the "time-to-live" duration for an associated resource.
+     * The resource expires if it is not active for a period of `ttl`. The
+     * definition of "activity" depends on the type of the associated resource.
+     * The minimum and maximum allowed values for `ttl` depend on the type of the
+     * associated resource, as well. If `ttl` is not set, the associated resource
+     * never expires.
      * 
* - * .google.protobuf.Duration ttl = 1; + * .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder clearTtl() { bitField0_ = (bitField0_ & ~0x00000001); @@ -622,38 +649,40 @@ public Builder clearTtl() { onChanged(); return this; } + /** * * *
-     * Specifies the "time-to-live" duration for an associated resource. The
-     * resource expires if it is not active for a period of `ttl`. The definition
-     * of "activity" depends on the type of the associated resource. The minimum
-     * and maximum allowed values for `ttl` depend on the type of the associated
-     * resource, as well. If `ttl` is not set, the associated resource never
-     * expires.
+     * Optional. Specifies the "time-to-live" duration for an associated resource.
+     * The resource expires if it is not active for a period of `ttl`. The
+     * definition of "activity" depends on the type of the associated resource.
+     * The minimum and maximum allowed values for `ttl` depend on the type of the
+     * associated resource, as well. If `ttl` is not set, the associated resource
+     * never expires.
      * 
* - * .google.protobuf.Duration ttl = 1; + * .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OPTIONAL]; */ public com.google.protobuf.Duration.Builder getTtlBuilder() { bitField0_ |= 0x00000001; onChanged(); return getTtlFieldBuilder().getBuilder(); } + /** * * *
-     * Specifies the "time-to-live" duration for an associated resource. The
-     * resource expires if it is not active for a period of `ttl`. The definition
-     * of "activity" depends on the type of the associated resource. The minimum
-     * and maximum allowed values for `ttl` depend on the type of the associated
-     * resource, as well. If `ttl` is not set, the associated resource never
-     * expires.
+     * Optional. Specifies the "time-to-live" duration for an associated resource.
+     * The resource expires if it is not active for a period of `ttl`. The
+     * definition of "activity" depends on the type of the associated resource.
+     * The minimum and maximum allowed values for `ttl` depend on the type of the
+     * associated resource, as well. If `ttl` is not set, the associated resource
+     * never expires.
      * 
* - * .google.protobuf.Duration ttl = 1; + * .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OPTIONAL]; */ public com.google.protobuf.DurationOrBuilder getTtlOrBuilder() { if (ttlBuilder_ != null) { @@ -662,19 +691,20 @@ public com.google.protobuf.DurationOrBuilder getTtlOrBuilder() { return ttl_ == null ? com.google.protobuf.Duration.getDefaultInstance() : ttl_; } } + /** * * *
-     * Specifies the "time-to-live" duration for an associated resource. The
-     * resource expires if it is not active for a period of `ttl`. The definition
-     * of "activity" depends on the type of the associated resource. The minimum
-     * and maximum allowed values for `ttl` depend on the type of the associated
-     * resource, as well. If `ttl` is not set, the associated resource never
-     * expires.
+     * Optional. Specifies the "time-to-live" duration for an associated resource.
+     * The resource expires if it is not active for a period of `ttl`. The
+     * definition of "activity" depends on the type of the associated resource.
+     * The minimum and maximum allowed values for `ttl` depend on the type of the
+     * associated resource, as well. If `ttl` is not set, the associated resource
+     * never expires.
      * 
* - * .google.protobuf.Duration ttl = 1; + * .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OPTIONAL]; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ExpirationPolicyOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ExpirationPolicyOrBuilder.java index 1b35de3b7..2ae8cef69 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ExpirationPolicyOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ExpirationPolicyOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ExpirationPolicyOrBuilder @@ -27,49 +28,51 @@ public interface ExpirationPolicyOrBuilder * * *
-   * Specifies the "time-to-live" duration for an associated resource. The
-   * resource expires if it is not active for a period of `ttl`. The definition
-   * of "activity" depends on the type of the associated resource. The minimum
-   * and maximum allowed values for `ttl` depend on the type of the associated
-   * resource, as well. If `ttl` is not set, the associated resource never
-   * expires.
+   * Optional. Specifies the "time-to-live" duration for an associated resource.
+   * The resource expires if it is not active for a period of `ttl`. The
+   * definition of "activity" depends on the type of the associated resource.
+   * The minimum and maximum allowed values for `ttl` depend on the type of the
+   * associated resource, as well. If `ttl` is not set, the associated resource
+   * never expires.
    * 
* - * .google.protobuf.Duration ttl = 1; + * .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return Whether the ttl field is set. */ boolean hasTtl(); + /** * * *
-   * Specifies the "time-to-live" duration for an associated resource. The
-   * resource expires if it is not active for a period of `ttl`. The definition
-   * of "activity" depends on the type of the associated resource. The minimum
-   * and maximum allowed values for `ttl` depend on the type of the associated
-   * resource, as well. If `ttl` is not set, the associated resource never
-   * expires.
+   * Optional. Specifies the "time-to-live" duration for an associated resource.
+   * The resource expires if it is not active for a period of `ttl`. The
+   * definition of "activity" depends on the type of the associated resource.
+   * The minimum and maximum allowed values for `ttl` depend on the type of the
+   * associated resource, as well. If `ttl` is not set, the associated resource
+   * never expires.
    * 
* - * .google.protobuf.Duration ttl = 1; + * .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The ttl. */ com.google.protobuf.Duration getTtl(); + /** * * *
-   * Specifies the "time-to-live" duration for an associated resource. The
-   * resource expires if it is not active for a period of `ttl`. The definition
-   * of "activity" depends on the type of the associated resource. The minimum
-   * and maximum allowed values for `ttl` depend on the type of the associated
-   * resource, as well. If `ttl` is not set, the associated resource never
-   * expires.
+   * Optional. Specifies the "time-to-live" duration for an associated resource.
+   * The resource expires if it is not active for a period of `ttl`. The
+   * definition of "activity" depends on the type of the associated resource.
+   * The minimum and maximum allowed values for `ttl` depend on the type of the
+   * associated resource, as well. If `ttl` is not set, the associated resource
+   * never expires.
    * 
* - * .google.protobuf.Duration ttl = 1; + * .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OPTIONAL]; */ com.google.protobuf.DurationOrBuilder getTtlOrBuilder(); } diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSchemaRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSchemaRequest.java index 61bf3ff17..8888f0179 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSchemaRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSchemaRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class GetSchemaRequest extends com.google.protobuf.GeneratedMessage // @@protoc_insertion_point(message_implements:google.pubsub.v1.GetSchemaRequest) GetSchemaRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use GetSchemaRequest.newBuilder() to construct. private GetSchemaRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -67,6 +69,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object name_ = ""; + /** * * @@ -93,6 +96,7 @@ public java.lang.String getName() { return s; } } + /** * * @@ -122,6 +126,7 @@ public com.google.protobuf.ByteString getNameBytes() { public static final int VIEW_FIELD_NUMBER = 2; private int view_ = 0; + /** * * @@ -138,6 +143,7 @@ public com.google.protobuf.ByteString getNameBytes() { public int getViewValue() { return view_; } + /** * * @@ -322,6 +328,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -518,6 +525,7 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object name_ = ""; + /** * * @@ -543,6 +551,7 @@ public java.lang.String getName() { return (java.lang.String) ref; } } + /** * * @@ -568,6 +577,7 @@ public com.google.protobuf.ByteString getNameBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -592,6 +602,7 @@ public Builder setName(java.lang.String value) { onChanged(); return this; } + /** * * @@ -612,6 +623,7 @@ public Builder clearName() { onChanged(); return this; } + /** * * @@ -639,6 +651,7 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) { } private int view_ = 0; + /** * * @@ -655,6 +668,7 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) { public int getViewValue() { return view_; } + /** * * @@ -674,6 +688,7 @@ public Builder setViewValue(int value) { onChanged(); return this; } + /** * * @@ -691,6 +706,7 @@ public com.google.pubsub.v1.SchemaView getView() { com.google.pubsub.v1.SchemaView result = com.google.pubsub.v1.SchemaView.forNumber(view_); return result == null ? com.google.pubsub.v1.SchemaView.UNRECOGNIZED : result; } + /** * * @@ -713,6 +729,7 @@ public Builder setView(com.google.pubsub.v1.SchemaView value) { onChanged(); return this; } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSchemaRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSchemaRequestOrBuilder.java index 2ec773994..5b662fa6c 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSchemaRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSchemaRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface GetSchemaRequestOrBuilder @@ -38,6 +39,7 @@ public interface GetSchemaRequestOrBuilder * @return The name. */ java.lang.String getName(); + /** * * @@ -67,6 +69,7 @@ public interface GetSchemaRequestOrBuilder * @return The enum numeric value on the wire for view. */ int getViewValue(); + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSnapshotRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSnapshotRequest.java index 1953ee97c..716559f8b 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSnapshotRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSnapshotRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class GetSnapshotRequest extends com.google.protobuf.GeneratedMessa // @@protoc_insertion_point(message_implements:google.pubsub.v1.GetSnapshotRequest) GetSnapshotRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use GetSnapshotRequest.newBuilder() to construct. private GetSnapshotRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -66,16 +68,17 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object snapshot_ = ""; + /** * * *
-   * Required. The name of the snapshot to get.
+   * Required. Identifier. The name of the snapshot to get.
    * Format is `projects/{project}/snapshots/{snap}`.
    * 
* * - * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The snapshot. @@ -92,16 +95,17 @@ public java.lang.String getSnapshot() { return s; } } + /** * * *
-   * Required. The name of the snapshot to get.
+   * Required. Identifier. The name of the snapshot to get.
    * Format is `projects/{project}/snapshots/{snap}`.
    * 
* * - * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for snapshot. @@ -277,6 +281,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -460,16 +465,17 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object snapshot_ = ""; + /** * * *
-     * Required. The name of the snapshot to get.
+     * Required. Identifier. The name of the snapshot to get.
      * Format is `projects/{project}/snapshots/{snap}`.
      * 
* * - * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The snapshot. @@ -485,16 +491,17 @@ public java.lang.String getSnapshot() { return (java.lang.String) ref; } } + /** * * *
-     * Required. The name of the snapshot to get.
+     * Required. Identifier. The name of the snapshot to get.
      * Format is `projects/{project}/snapshots/{snap}`.
      * 
* * - * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for snapshot. @@ -510,16 +517,17 @@ public com.google.protobuf.ByteString getSnapshotBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * Required. The name of the snapshot to get.
+     * Required. Identifier. The name of the snapshot to get.
      * Format is `projects/{project}/snapshots/{snap}`.
      * 
* * - * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The snapshot to set. @@ -534,16 +542,17 @@ public Builder setSnapshot(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * Required. The name of the snapshot to get.
+     * Required. Identifier. The name of the snapshot to get.
      * Format is `projects/{project}/snapshots/{snap}`.
      * 
* * - * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return This builder for chaining. @@ -554,16 +563,17 @@ public Builder clearSnapshot() { onChanged(); return this; } + /** * * *
-     * Required. The name of the snapshot to get.
+     * Required. Identifier. The name of the snapshot to get.
      * Format is `projects/{project}/snapshots/{snap}`.
      * 
* * - * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The bytes for snapshot to set. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSnapshotRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSnapshotRequestOrBuilder.java index 9eecf39ab..343c6867c 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSnapshotRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSnapshotRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface GetSnapshotRequestOrBuilder @@ -27,27 +28,28 @@ public interface GetSnapshotRequestOrBuilder * * *
-   * Required. The name of the snapshot to get.
+   * Required. Identifier. The name of the snapshot to get.
    * Format is `projects/{project}/snapshots/{snap}`.
    * 
* * - * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The snapshot. */ java.lang.String getSnapshot(); + /** * * *
-   * Required. The name of the snapshot to get.
+   * Required. Identifier. The name of the snapshot to get.
    * Format is `projects/{project}/snapshots/{snap}`.
    * 
* * - * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for snapshot. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSubscriptionRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSubscriptionRequest.java index 66577cd6c..7b7e00da8 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSubscriptionRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSubscriptionRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class GetSubscriptionRequest extends com.google.protobuf.GeneratedM // @@protoc_insertion_point(message_implements:google.pubsub.v1.GetSubscriptionRequest) GetSubscriptionRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use GetSubscriptionRequest.newBuilder() to construct. private GetSubscriptionRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -66,16 +68,17 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object subscription_ = ""; + /** * * *
-   * Required. The name of the subscription to get.
+   * Required. Identifier. The name of the subscription to get.
    * Format is `projects/{project}/subscriptions/{sub}`.
    * 
* * - * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The subscription. @@ -92,16 +95,17 @@ public java.lang.String getSubscription() { return s; } } + /** * * *
-   * Required. The name of the subscription to get.
+   * Required. Identifier. The name of the subscription to get.
    * Format is `projects/{project}/subscriptions/{sub}`.
    * 
* * - * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for subscription. @@ -278,6 +282,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -461,16 +466,17 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object subscription_ = ""; + /** * * *
-     * Required. The name of the subscription to get.
+     * Required. Identifier. The name of the subscription to get.
      * Format is `projects/{project}/subscriptions/{sub}`.
      * 
* * - * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The subscription. @@ -486,16 +492,17 @@ public java.lang.String getSubscription() { return (java.lang.String) ref; } } + /** * * *
-     * Required. The name of the subscription to get.
+     * Required. Identifier. The name of the subscription to get.
      * Format is `projects/{project}/subscriptions/{sub}`.
      * 
* * - * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for subscription. @@ -511,16 +518,17 @@ public com.google.protobuf.ByteString getSubscriptionBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * Required. The name of the subscription to get.
+     * Required. Identifier. The name of the subscription to get.
      * Format is `projects/{project}/subscriptions/{sub}`.
      * 
* * - * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The subscription to set. @@ -535,16 +543,17 @@ public Builder setSubscription(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * Required. The name of the subscription to get.
+     * Required. Identifier. The name of the subscription to get.
      * Format is `projects/{project}/subscriptions/{sub}`.
      * 
* * - * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return This builder for chaining. @@ -555,16 +564,17 @@ public Builder clearSubscription() { onChanged(); return this; } + /** * * *
-     * Required. The name of the subscription to get.
+     * Required. Identifier. The name of the subscription to get.
      * Format is `projects/{project}/subscriptions/{sub}`.
      * 
* * - * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The bytes for subscription to set. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSubscriptionRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSubscriptionRequestOrBuilder.java index bc2288db3..4513defa8 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSubscriptionRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetSubscriptionRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface GetSubscriptionRequestOrBuilder @@ -27,27 +28,28 @@ public interface GetSubscriptionRequestOrBuilder * * *
-   * Required. The name of the subscription to get.
+   * Required. Identifier. The name of the subscription to get.
    * Format is `projects/{project}/subscriptions/{sub}`.
    * 
* * - * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The subscription. */ java.lang.String getSubscription(); + /** * * *
-   * Required. The name of the subscription to get.
+   * Required. Identifier. The name of the subscription to get.
    * Format is `projects/{project}/subscriptions/{sub}`.
    * 
* * - * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for subscription. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetTopicRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetTopicRequest.java index 59b81305a..7d1490c14 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetTopicRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetTopicRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class GetTopicRequest extends com.google.protobuf.GeneratedMessageV // @@protoc_insertion_point(message_implements:google.pubsub.v1.GetTopicRequest) GetTopicRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use GetTopicRequest.newBuilder() to construct. private GetTopicRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -66,16 +68,17 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object topic_ = ""; + /** * * *
-   * Required. The name of the topic to get.
+   * Required. Identifier. The name of the topic to get.
    * Format is `projects/{project}/topics/{topic}`.
    * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The topic. @@ -92,16 +95,17 @@ public java.lang.String getTopic() { return s; } } + /** * * *
-   * Required. The name of the topic to get.
+   * Required. Identifier. The name of the topic to get.
    * Format is `projects/{project}/topics/{topic}`.
    * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for topic. @@ -276,6 +280,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -458,16 +463,17 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object topic_ = ""; + /** * * *
-     * Required. The name of the topic to get.
+     * Required. Identifier. The name of the topic to get.
      * Format is `projects/{project}/topics/{topic}`.
      * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The topic. @@ -483,16 +489,17 @@ public java.lang.String getTopic() { return (java.lang.String) ref; } } + /** * * *
-     * Required. The name of the topic to get.
+     * Required. Identifier. The name of the topic to get.
      * Format is `projects/{project}/topics/{topic}`.
      * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for topic. @@ -508,16 +515,17 @@ public com.google.protobuf.ByteString getTopicBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * Required. The name of the topic to get.
+     * Required. Identifier. The name of the topic to get.
      * Format is `projects/{project}/topics/{topic}`.
      * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The topic to set. @@ -532,16 +540,17 @@ public Builder setTopic(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * Required. The name of the topic to get.
+     * Required. Identifier. The name of the topic to get.
      * Format is `projects/{project}/topics/{topic}`.
      * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return This builder for chaining. @@ -552,16 +561,17 @@ public Builder clearTopic() { onChanged(); return this; } + /** * * *
-     * Required. The name of the topic to get.
+     * Required. Identifier. The name of the topic to get.
      * Format is `projects/{project}/topics/{topic}`.
      * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The bytes for topic to set. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetTopicRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetTopicRequestOrBuilder.java index 72ce889da..5b6281637 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetTopicRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/GetTopicRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface GetTopicRequestOrBuilder @@ -27,27 +28,28 @@ public interface GetTopicRequestOrBuilder * * *
-   * Required. The name of the topic to get.
+   * Required. Identifier. The name of the topic to get.
    * Format is `projects/{project}/topics/{topic}`.
    * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The topic. */ java.lang.String getTopic(); + /** * * *
-   * Required. The name of the topic to get.
+   * Required. Identifier. The name of the topic to get.
    * Format is `projects/{project}/topics/{topic}`.
    * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for topic. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/IngestionDataSourceSettings.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/IngestionDataSourceSettings.java new file mode 100644 index 000000000..d2c79575f --- /dev/null +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/IngestionDataSourceSettings.java @@ -0,0 +1,15452 @@ +/* + * 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/pubsub/v1/pubsub.proto + +// Protobuf Java Version: 3.25.8 +package com.google.pubsub.v1; + +/** + * + * + *
+ * Settings for an ingestion data source on a topic.
+ * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionDataSourceSettings} + */ +public final class IngestionDataSourceSettings extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionDataSourceSettings) + IngestionDataSourceSettingsOrBuilder { + private static final long serialVersionUID = 0L; + + // Use IngestionDataSourceSettings.newBuilder() to construct. + private IngestionDataSourceSettings(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private IngestionDataSourceSettings() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new IngestionDataSourceSettings(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionDataSourceSettings.class, + com.google.pubsub.v1.IngestionDataSourceSettings.Builder.class); + } + + public interface AwsKinesisOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the Kinesis
+     * ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + int getStateValue(); + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the Kinesis
+     * ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State getState(); + + /** + * + * + *
+     * Required. The Kinesis stream ARN to ingest data from.
+     * 
+ * + * string stream_arn = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The streamArn. + */ + java.lang.String getStreamArn(); + + /** + * + * + *
+     * Required. The Kinesis stream ARN to ingest data from.
+     * 
+ * + * string stream_arn = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for streamArn. + */ + com.google.protobuf.ByteString getStreamArnBytes(); + + /** + * + * + *
+     * Required. The Kinesis consumer ARN to used for ingestion in Enhanced
+     * Fan-Out mode. The consumer must be already created and ready to be used.
+     * 
+ * + * string consumer_arn = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The consumerArn. + */ + java.lang.String getConsumerArn(); + + /** + * + * + *
+     * Required. The Kinesis consumer ARN to used for ingestion in Enhanced
+     * Fan-Out mode. The consumer must be already created and ready to be used.
+     * 
+ * + * string consumer_arn = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for consumerArn. + */ + com.google.protobuf.ByteString getConsumerArnBytes(); + + /** + * + * + *
+     * Required. AWS role ARN to be used for Federated Identity authentication
+     * with Kinesis. Check the Pub/Sub docs for how to set up this role and the
+     * required permissions that need to be attached to it.
+     * 
+ * + * string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The awsRoleArn. + */ + java.lang.String getAwsRoleArn(); + + /** + * + * + *
+     * Required. AWS role ARN to be used for Federated Identity authentication
+     * with Kinesis. Check the Pub/Sub docs for how to set up this role and the
+     * required permissions that need to be attached to it.
+     * 
+ * + * string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for awsRoleArn. + */ + com.google.protobuf.ByteString getAwsRoleArnBytes(); + + /** + * + * + *
+     * Required. The GCP service account to be used for Federated Identity
+     * authentication with Kinesis (via a `AssumeRoleWithWebIdentity` call for
+     * the provided role). The `aws_role_arn` must be set up with
+     * `accounts.google.com:sub` equals to this service account number.
+     * 
+ * + * string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The gcpServiceAccount. + */ + java.lang.String getGcpServiceAccount(); + + /** + * + * + *
+     * Required. The GCP service account to be used for Federated Identity
+     * authentication with Kinesis (via a `AssumeRoleWithWebIdentity` call for
+     * the provided role). The `aws_role_arn` must be set up with
+     * `accounts.google.com:sub` equals to this service account number.
+     * 
+ * + * string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for gcpServiceAccount. + */ + com.google.protobuf.ByteString getGcpServiceAccountBytes(); + } + + /** + * + * + *
+   * Ingestion settings for Amazon Kinesis Data Streams.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis} + */ + public static final class AwsKinesis extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis) + AwsKinesisOrBuilder { + private static final long serialVersionUID = 0L; + + // Use AwsKinesis.newBuilder() to construct. + private AwsKinesis(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private AwsKinesis() { + state_ = 0; + streamArn_ = ""; + consumerArn_ = ""; + awsRoleArn_ = ""; + gcpServiceAccount_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new AwsKinesis(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsKinesis_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsKinesis_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.class, + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.Builder.class); + } + + /** + * + * + *
+     * Possible states for ingestion from Amazon Kinesis Data Streams.
+     * 
+ * + * Protobuf enum {@code google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State} + */ + public enum State implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+       * Default value. This value is unused.
+       * 
+ * + * STATE_UNSPECIFIED = 0; + */ + STATE_UNSPECIFIED(0), + /** + * + * + *
+       * Ingestion is active.
+       * 
+ * + * ACTIVE = 1; + */ + ACTIVE(1), + /** + * + * + *
+       * Permission denied encountered while consuming data from Kinesis.
+       * This can happen if:
+       *   - The provided `aws_role_arn` does not exist or does not have the
+       *     appropriate permissions attached.
+       *   - The provided `aws_role_arn` is not set up properly for Identity
+       *     Federation using `gcp_service_account`.
+       *   - The Pub/Sub SA is not granted the
+       *     `iam.serviceAccounts.getOpenIdToken` permission on
+       *     `gcp_service_account`.
+       * 
+ * + * KINESIS_PERMISSION_DENIED = 2; + */ + KINESIS_PERMISSION_DENIED(2), + /** + * + * + *
+       * Permission denied encountered while publishing to the topic. This can
+       * happen if the Pub/Sub SA has not been granted the [appropriate publish
+       * permissions](https://cloud.google.com/pubsub/docs/access-control#pubsub.publisher)
+       * 
+ * + * PUBLISH_PERMISSION_DENIED = 3; + */ + PUBLISH_PERMISSION_DENIED(3), + /** + * + * + *
+       * The Kinesis stream does not exist.
+       * 
+ * + * STREAM_NOT_FOUND = 4; + */ + STREAM_NOT_FOUND(4), + /** + * + * + *
+       * The Kinesis consumer does not exist.
+       * 
+ * + * CONSUMER_NOT_FOUND = 5; + */ + CONSUMER_NOT_FOUND(5), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+       * Default value. This value is unused.
+       * 
+ * + * STATE_UNSPECIFIED = 0; + */ + public static final int STATE_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+       * Ingestion is active.
+       * 
+ * + * ACTIVE = 1; + */ + public static final int ACTIVE_VALUE = 1; + + /** + * + * + *
+       * Permission denied encountered while consuming data from Kinesis.
+       * This can happen if:
+       *   - The provided `aws_role_arn` does not exist or does not have the
+       *     appropriate permissions attached.
+       *   - The provided `aws_role_arn` is not set up properly for Identity
+       *     Federation using `gcp_service_account`.
+       *   - The Pub/Sub SA is not granted the
+       *     `iam.serviceAccounts.getOpenIdToken` permission on
+       *     `gcp_service_account`.
+       * 
+ * + * KINESIS_PERMISSION_DENIED = 2; + */ + public static final int KINESIS_PERMISSION_DENIED_VALUE = 2; + + /** + * + * + *
+       * Permission denied encountered while publishing to the topic. This can
+       * happen if the Pub/Sub SA has not been granted the [appropriate publish
+       * permissions](https://cloud.google.com/pubsub/docs/access-control#pubsub.publisher)
+       * 
+ * + * PUBLISH_PERMISSION_DENIED = 3; + */ + public static final int PUBLISH_PERMISSION_DENIED_VALUE = 3; + + /** + * + * + *
+       * The Kinesis stream does not exist.
+       * 
+ * + * STREAM_NOT_FOUND = 4; + */ + public static final int STREAM_NOT_FOUND_VALUE = 4; + + /** + * + * + *
+       * The Kinesis consumer does not exist.
+       * 
+ * + * CONSUMER_NOT_FOUND = 5; + */ + public static final int CONSUMER_NOT_FOUND_VALUE = 5; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static State valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static State forNumber(int value) { + switch (value) { + case 0: + return STATE_UNSPECIFIED; + case 1: + return ACTIVE; + case 2: + return KINESIS_PERMISSION_DENIED; + case 3: + return PUBLISH_PERMISSION_DENIED; + case 4: + return STREAM_NOT_FOUND; + case 5: + return CONSUMER_NOT_FOUND; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public State findValueByNumber(int number) { + return State.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final State[] VALUES = values(); + + public static State valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private State(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State) + } + + public static final int STATE_FIELD_NUMBER = 1; + private int state_ = 0; + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the Kinesis
+     * ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override + public int getStateValue() { + return state_; + } + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the Kinesis
+     * ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State getState() { + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State result = + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State.forNumber(state_); + return result == null + ? com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State.UNRECOGNIZED + : result; + } + + public static final int STREAM_ARN_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object streamArn_ = ""; + + /** + * + * + *
+     * Required. The Kinesis stream ARN to ingest data from.
+     * 
+ * + * string stream_arn = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The streamArn. + */ + @java.lang.Override + public java.lang.String getStreamArn() { + java.lang.Object ref = streamArn_; + 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(); + streamArn_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. The Kinesis stream ARN to ingest data from.
+     * 
+ * + * string stream_arn = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for streamArn. + */ + @java.lang.Override + public com.google.protobuf.ByteString getStreamArnBytes() { + java.lang.Object ref = streamArn_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + streamArn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CONSUMER_ARN_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object consumerArn_ = ""; + + /** + * + * + *
+     * Required. The Kinesis consumer ARN to used for ingestion in Enhanced
+     * Fan-Out mode. The consumer must be already created and ready to be used.
+     * 
+ * + * string consumer_arn = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The consumerArn. + */ + @java.lang.Override + public java.lang.String getConsumerArn() { + java.lang.Object ref = consumerArn_; + 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(); + consumerArn_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. The Kinesis consumer ARN to used for ingestion in Enhanced
+     * Fan-Out mode. The consumer must be already created and ready to be used.
+     * 
+ * + * string consumer_arn = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for consumerArn. + */ + @java.lang.Override + public com.google.protobuf.ByteString getConsumerArnBytes() { + java.lang.Object ref = consumerArn_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + consumerArn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int AWS_ROLE_ARN_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object awsRoleArn_ = ""; + + /** + * + * + *
+     * Required. AWS role ARN to be used for Federated Identity authentication
+     * with Kinesis. Check the Pub/Sub docs for how to set up this role and the
+     * required permissions that need to be attached to it.
+     * 
+ * + * string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The awsRoleArn. + */ + @java.lang.Override + public java.lang.String getAwsRoleArn() { + java.lang.Object ref = awsRoleArn_; + 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(); + awsRoleArn_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. AWS role ARN to be used for Federated Identity authentication
+     * with Kinesis. Check the Pub/Sub docs for how to set up this role and the
+     * required permissions that need to be attached to it.
+     * 
+ * + * string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for awsRoleArn. + */ + @java.lang.Override + public com.google.protobuf.ByteString getAwsRoleArnBytes() { + java.lang.Object ref = awsRoleArn_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + awsRoleArn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int GCP_SERVICE_ACCOUNT_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private volatile java.lang.Object gcpServiceAccount_ = ""; + + /** + * + * + *
+     * Required. The GCP service account to be used for Federated Identity
+     * authentication with Kinesis (via a `AssumeRoleWithWebIdentity` call for
+     * the provided role). The `aws_role_arn` must be set up with
+     * `accounts.google.com:sub` equals to this service account number.
+     * 
+ * + * string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The gcpServiceAccount. + */ + @java.lang.Override + public java.lang.String getGcpServiceAccount() { + java.lang.Object ref = gcpServiceAccount_; + 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(); + gcpServiceAccount_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. The GCP service account to be used for Federated Identity
+     * authentication with Kinesis (via a `AssumeRoleWithWebIdentity` call for
+     * the provided role). The `aws_role_arn` must be set up with
+     * `accounts.google.com:sub` equals to this service account number.
+     * 
+ * + * string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for gcpServiceAccount. + */ + @java.lang.Override + public com.google.protobuf.ByteString getGcpServiceAccountBytes() { + java.lang.Object ref = gcpServiceAccount_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + gcpServiceAccount_ = 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 (state_ + != com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State.STATE_UNSPECIFIED + .getNumber()) { + output.writeEnum(1, state_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(streamArn_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, streamArn_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(consumerArn_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, consumerArn_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(awsRoleArn_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, awsRoleArn_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(gcpServiceAccount_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, gcpServiceAccount_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (state_ + != com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State.STATE_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, state_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(streamArn_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, streamArn_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(consumerArn_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, consumerArn_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(awsRoleArn_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, awsRoleArn_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(gcpServiceAccount_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, gcpServiceAccount_); + } + 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.pubsub.v1.IngestionDataSourceSettings.AwsKinesis)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis other = + (com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis) obj; + + if (state_ != other.state_) return false; + if (!getStreamArn().equals(other.getStreamArn())) return false; + if (!getConsumerArn().equals(other.getConsumerArn())) return false; + if (!getAwsRoleArn().equals(other.getAwsRoleArn())) return false; + if (!getGcpServiceAccount().equals(other.getGcpServiceAccount())) 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) + STATE_FIELD_NUMBER; + hash = (53 * hash) + state_; + hash = (37 * hash) + STREAM_ARN_FIELD_NUMBER; + hash = (53 * hash) + getStreamArn().hashCode(); + hash = (37 * hash) + CONSUMER_ARN_FIELD_NUMBER; + hash = (53 * hash) + getConsumerArn().hashCode(); + hash = (37 * hash) + AWS_ROLE_ARN_FIELD_NUMBER; + hash = (53 * hash) + getAwsRoleArn().hashCode(); + hash = (37 * hash) + GCP_SERVICE_ACCOUNT_FIELD_NUMBER; + hash = (53 * hash) + getGcpServiceAccount().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis 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.pubsub.v1.IngestionDataSourceSettings.AwsKinesis parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis 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.pubsub.v1.IngestionDataSourceSettings.AwsKinesis parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis 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.pubsub.v1.IngestionDataSourceSettings.AwsKinesis parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis 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.pubsub.v1.IngestionDataSourceSettings.AwsKinesis 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; + } + + /** + * + * + *
+     * Ingestion settings for Amazon Kinesis Data Streams.
+     * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis) + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesisOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsKinesis_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsKinesis_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.class, + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.Builder.class); + } + + // Construct using com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + state_ = 0; + streamArn_ = ""; + consumerArn_ = ""; + awsRoleArn_ = ""; + gcpServiceAccount_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsKinesis_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis + getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis build() { + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis buildPartial() { + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis result = + new com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.state_ = state_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.streamArn_ = streamArn_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.consumerArn_ = consumerArn_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.awsRoleArn_ = awsRoleArn_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.gcpServiceAccount_ = gcpServiceAccount_; + } + } + + @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.pubsub.v1.IngestionDataSourceSettings.AwsKinesis) { + return mergeFrom((com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis other) { + if (other + == com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.getDefaultInstance()) + return this; + if (other.state_ != 0) { + setStateValue(other.getStateValue()); + } + if (!other.getStreamArn().isEmpty()) { + streamArn_ = other.streamArn_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getConsumerArn().isEmpty()) { + consumerArn_ = other.consumerArn_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getAwsRoleArn().isEmpty()) { + awsRoleArn_ = other.awsRoleArn_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (!other.getGcpServiceAccount().isEmpty()) { + gcpServiceAccount_ = other.gcpServiceAccount_; + bitField0_ |= 0x00000010; + 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: + { + state_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: + { + streamArn_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + consumerArn_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + awsRoleArn_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: + { + gcpServiceAccount_ = input.readStringRequireUtf8(); + 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 int state_ = 0; + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Kinesis
+       * ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override + public int getStateValue() { + return state_; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Kinesis
+       * ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param value The enum numeric value on the wire for state to set. + * @return This builder for chaining. + */ + public Builder setStateValue(int value) { + state_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Kinesis
+       * ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State getState() { + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State result = + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State.forNumber(state_); + return result == null + ? com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State.UNRECOGNIZED + : result; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Kinesis
+       * ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param value The state to set. + * @return This builder for chaining. + */ + public Builder setState( + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + state_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Kinesis
+       * ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return This builder for chaining. + */ + public Builder clearState() { + bitField0_ = (bitField0_ & ~0x00000001); + state_ = 0; + onChanged(); + return this; + } + + private java.lang.Object streamArn_ = ""; + + /** + * + * + *
+       * Required. The Kinesis stream ARN to ingest data from.
+       * 
+ * + * string stream_arn = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The streamArn. + */ + public java.lang.String getStreamArn() { + java.lang.Object ref = streamArn_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + streamArn_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. The Kinesis stream ARN to ingest data from.
+       * 
+ * + * string stream_arn = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for streamArn. + */ + public com.google.protobuf.ByteString getStreamArnBytes() { + java.lang.Object ref = streamArn_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + streamArn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. The Kinesis stream ARN to ingest data from.
+       * 
+ * + * string stream_arn = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The streamArn to set. + * @return This builder for chaining. + */ + public Builder setStreamArn(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + streamArn_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The Kinesis stream ARN to ingest data from.
+       * 
+ * + * string stream_arn = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearStreamArn() { + streamArn_ = getDefaultInstance().getStreamArn(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The Kinesis stream ARN to ingest data from.
+       * 
+ * + * string stream_arn = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for streamArn to set. + * @return This builder for chaining. + */ + public Builder setStreamArnBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + streamArn_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object consumerArn_ = ""; + + /** + * + * + *
+       * Required. The Kinesis consumer ARN to used for ingestion in Enhanced
+       * Fan-Out mode. The consumer must be already created and ready to be used.
+       * 
+ * + * string consumer_arn = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The consumerArn. + */ + public java.lang.String getConsumerArn() { + java.lang.Object ref = consumerArn_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + consumerArn_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. The Kinesis consumer ARN to used for ingestion in Enhanced
+       * Fan-Out mode. The consumer must be already created and ready to be used.
+       * 
+ * + * string consumer_arn = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for consumerArn. + */ + public com.google.protobuf.ByteString getConsumerArnBytes() { + java.lang.Object ref = consumerArn_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + consumerArn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. The Kinesis consumer ARN to used for ingestion in Enhanced
+       * Fan-Out mode. The consumer must be already created and ready to be used.
+       * 
+ * + * string consumer_arn = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The consumerArn to set. + * @return This builder for chaining. + */ + public Builder setConsumerArn(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + consumerArn_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The Kinesis consumer ARN to used for ingestion in Enhanced
+       * Fan-Out mode. The consumer must be already created and ready to be used.
+       * 
+ * + * string consumer_arn = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearConsumerArn() { + consumerArn_ = getDefaultInstance().getConsumerArn(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The Kinesis consumer ARN to used for ingestion in Enhanced
+       * Fan-Out mode. The consumer must be already created and ready to be used.
+       * 
+ * + * string consumer_arn = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for consumerArn to set. + * @return This builder for chaining. + */ + public Builder setConsumerArnBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + consumerArn_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object awsRoleArn_ = ""; + + /** + * + * + *
+       * Required. AWS role ARN to be used for Federated Identity authentication
+       * with Kinesis. Check the Pub/Sub docs for how to set up this role and the
+       * required permissions that need to be attached to it.
+       * 
+ * + * string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The awsRoleArn. + */ + public java.lang.String getAwsRoleArn() { + java.lang.Object ref = awsRoleArn_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + awsRoleArn_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. AWS role ARN to be used for Federated Identity authentication
+       * with Kinesis. Check the Pub/Sub docs for how to set up this role and the
+       * required permissions that need to be attached to it.
+       * 
+ * + * string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for awsRoleArn. + */ + public com.google.protobuf.ByteString getAwsRoleArnBytes() { + java.lang.Object ref = awsRoleArn_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + awsRoleArn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. AWS role ARN to be used for Federated Identity authentication
+       * with Kinesis. Check the Pub/Sub docs for how to set up this role and the
+       * required permissions that need to be attached to it.
+       * 
+ * + * string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The awsRoleArn to set. + * @return This builder for chaining. + */ + public Builder setAwsRoleArn(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + awsRoleArn_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. AWS role ARN to be used for Federated Identity authentication
+       * with Kinesis. Check the Pub/Sub docs for how to set up this role and the
+       * required permissions that need to be attached to it.
+       * 
+ * + * string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearAwsRoleArn() { + awsRoleArn_ = getDefaultInstance().getAwsRoleArn(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. AWS role ARN to be used for Federated Identity authentication
+       * with Kinesis. Check the Pub/Sub docs for how to set up this role and the
+       * required permissions that need to be attached to it.
+       * 
+ * + * string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for awsRoleArn to set. + * @return This builder for chaining. + */ + public Builder setAwsRoleArnBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + awsRoleArn_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private java.lang.Object gcpServiceAccount_ = ""; + + /** + * + * + *
+       * Required. The GCP service account to be used for Federated Identity
+       * authentication with Kinesis (via a `AssumeRoleWithWebIdentity` call for
+       * the provided role). The `aws_role_arn` must be set up with
+       * `accounts.google.com:sub` equals to this service account number.
+       * 
+ * + * string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The gcpServiceAccount. + */ + public java.lang.String getGcpServiceAccount() { + java.lang.Object ref = gcpServiceAccount_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + gcpServiceAccount_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. The GCP service account to be used for Federated Identity
+       * authentication with Kinesis (via a `AssumeRoleWithWebIdentity` call for
+       * the provided role). The `aws_role_arn` must be set up with
+       * `accounts.google.com:sub` equals to this service account number.
+       * 
+ * + * string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for gcpServiceAccount. + */ + public com.google.protobuf.ByteString getGcpServiceAccountBytes() { + java.lang.Object ref = gcpServiceAccount_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + gcpServiceAccount_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. The GCP service account to be used for Federated Identity
+       * authentication with Kinesis (via a `AssumeRoleWithWebIdentity` call for
+       * the provided role). The `aws_role_arn` must be set up with
+       * `accounts.google.com:sub` equals to this service account number.
+       * 
+ * + * string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The gcpServiceAccount to set. + * @return This builder for chaining. + */ + public Builder setGcpServiceAccount(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + gcpServiceAccount_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The GCP service account to be used for Federated Identity
+       * authentication with Kinesis (via a `AssumeRoleWithWebIdentity` call for
+       * the provided role). The `aws_role_arn` must be set up with
+       * `accounts.google.com:sub` equals to this service account number.
+       * 
+ * + * string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearGcpServiceAccount() { + gcpServiceAccount_ = getDefaultInstance().getGcpServiceAccount(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The GCP service account to be used for Federated Identity
+       * authentication with Kinesis (via a `AssumeRoleWithWebIdentity` call for
+       * the provided role). The `aws_role_arn` must be set up with
+       * `accounts.google.com:sub` equals to this service account number.
+       * 
+ * + * string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for gcpServiceAccount to set. + * @return This builder for chaining. + */ + public Builder setGcpServiceAccountBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + gcpServiceAccount_ = value; + bitField0_ |= 0x00000010; + 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.pubsub.v1.IngestionDataSourceSettings.AwsKinesis) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis) + private static final com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis(); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AwsKinesis 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.pubsub.v1.IngestionDataSourceSettings.AwsKinesis getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface CloudStorageOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the Cloud
+     * Storage ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + int getStateValue(); + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the Cloud
+     * Storage ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State getState(); + + /** + * + * + *
+     * Optional. Cloud Storage bucket. The bucket name must be without any
+     * prefix like "gs://". See the [bucket naming requirements]
+     * (https://cloud.google.com/storage/docs/buckets#naming).
+     * 
+ * + * string bucket = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bucket. + */ + java.lang.String getBucket(); + + /** + * + * + *
+     * Optional. Cloud Storage bucket. The bucket name must be without any
+     * prefix like "gs://". See the [bucket naming requirements]
+     * (https://cloud.google.com/storage/docs/buckets#naming).
+     * 
+ * + * string bucket = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for bucket. + */ + com.google.protobuf.ByteString getBucketBytes(); + + /** + * + * + *
+     * Optional. Data from Cloud Storage will be interpreted as text.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat text_format = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the textFormat field is set. + */ + boolean hasTextFormat(); + + /** + * + * + *
+     * Optional. Data from Cloud Storage will be interpreted as text.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat text_format = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The textFormat. + */ + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat getTextFormat(); + + /** + * + * + *
+     * Optional. Data from Cloud Storage will be interpreted as text.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat text_format = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormatOrBuilder + getTextFormatOrBuilder(); + + /** + * + * + *
+     * Optional. Data from Cloud Storage will be interpreted in Avro format.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat avro_format = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the avroFormat field is set. + */ + boolean hasAvroFormat(); + + /** + * + * + *
+     * Optional. Data from Cloud Storage will be interpreted in Avro format.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat avro_format = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The avroFormat. + */ + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat getAvroFormat(); + + /** + * + * + *
+     * Optional. Data from Cloud Storage will be interpreted in Avro format.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat avro_format = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormatOrBuilder + getAvroFormatOrBuilder(); + + /** + * + * + *
+     * Optional. It will be assumed data from Cloud Storage was written via
+     * [Cloud Storage
+     * subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage).
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat pubsub_avro_format = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the pubsubAvroFormat field is set. + */ + boolean hasPubsubAvroFormat(); + + /** + * + * + *
+     * Optional. It will be assumed data from Cloud Storage was written via
+     * [Cloud Storage
+     * subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage).
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat pubsub_avro_format = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The pubsubAvroFormat. + */ + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + getPubsubAvroFormat(); + + /** + * + * + *
+     * Optional. It will be assumed data from Cloud Storage was written via
+     * [Cloud Storage
+     * subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage).
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat pubsub_avro_format = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormatOrBuilder + getPubsubAvroFormatOrBuilder(); + + /** + * + * + *
+     * Optional. Only objects with a larger or equal creation timestamp will be
+     * ingested.
+     * 
+ * + * + * .google.protobuf.Timestamp minimum_object_create_time = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the minimumObjectCreateTime field is set. + */ + boolean hasMinimumObjectCreateTime(); + + /** + * + * + *
+     * Optional. Only objects with a larger or equal creation timestamp will be
+     * ingested.
+     * 
+ * + * + * .google.protobuf.Timestamp minimum_object_create_time = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The minimumObjectCreateTime. + */ + com.google.protobuf.Timestamp getMinimumObjectCreateTime(); + + /** + * + * + *
+     * Optional. Only objects with a larger or equal creation timestamp will be
+     * ingested.
+     * 
+ * + * + * .google.protobuf.Timestamp minimum_object_create_time = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.protobuf.TimestampOrBuilder getMinimumObjectCreateTimeOrBuilder(); + + /** + * + * + *
+     * Optional. Glob pattern used to match objects that will be ingested. If
+     * unset, all objects will be ingested. See the [supported
+     * patterns](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob).
+     * 
+ * + * string match_glob = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The matchGlob. + */ + java.lang.String getMatchGlob(); + + /** + * + * + *
+     * Optional. Glob pattern used to match objects that will be ingested. If
+     * unset, all objects will be ingested. See the [supported
+     * patterns](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob).
+     * 
+ * + * string match_glob = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for matchGlob. + */ + com.google.protobuf.ByteString getMatchGlobBytes(); + + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.InputFormatCase + getInputFormatCase(); + } + + /** + * + * + *
+   * Ingestion settings for Cloud Storage.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionDataSourceSettings.CloudStorage} + */ + public static final class CloudStorage extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage) + CloudStorageOrBuilder { + private static final long serialVersionUID = 0L; + + // Use CloudStorage.newBuilder() to construct. + private CloudStorage(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private CloudStorage() { + state_ = 0; + bucket_ = ""; + matchGlob_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new CloudStorage(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.class, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.Builder.class); + } + + /** + * + * + *
+     * Possible states for ingestion from Cloud Storage.
+     * 
+ * + * Protobuf enum {@code google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State} + */ + public enum State implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+       * Default value. This value is unused.
+       * 
+ * + * STATE_UNSPECIFIED = 0; + */ + STATE_UNSPECIFIED(0), + /** + * + * + *
+       * Ingestion is active.
+       * 
+ * + * ACTIVE = 1; + */ + ACTIVE(1), + /** + * + * + *
+       * Permission denied encountered while calling the Cloud Storage API. This
+       * can happen if the Pub/Sub SA has not been granted the
+       * [appropriate
+       * permissions](https://cloud.google.com/storage/docs/access-control/iam-permissions):
+       * - storage.objects.list: to list the objects in a bucket.
+       * - storage.objects.get: to read the objects in a bucket.
+       * - storage.buckets.get: to verify the bucket exists.
+       * 
+ * + * CLOUD_STORAGE_PERMISSION_DENIED = 2; + */ + CLOUD_STORAGE_PERMISSION_DENIED(2), + /** + * + * + *
+       * Permission denied encountered while publishing to the topic. This can
+       * happen if the Pub/Sub SA has not been granted the [appropriate publish
+       * permissions](https://cloud.google.com/pubsub/docs/access-control#pubsub.publisher)
+       * 
+ * + * PUBLISH_PERMISSION_DENIED = 3; + */ + PUBLISH_PERMISSION_DENIED(3), + /** + * + * + *
+       * The provided Cloud Storage bucket doesn't exist.
+       * 
+ * + * BUCKET_NOT_FOUND = 4; + */ + BUCKET_NOT_FOUND(4), + /** + * + * + *
+       * The Cloud Storage bucket has too many objects, ingestion will be
+       * paused.
+       * 
+ * + * TOO_MANY_OBJECTS = 5; + */ + TOO_MANY_OBJECTS(5), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+       * Default value. This value is unused.
+       * 
+ * + * STATE_UNSPECIFIED = 0; + */ + public static final int STATE_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+       * Ingestion is active.
+       * 
+ * + * ACTIVE = 1; + */ + public static final int ACTIVE_VALUE = 1; + + /** + * + * + *
+       * Permission denied encountered while calling the Cloud Storage API. This
+       * can happen if the Pub/Sub SA has not been granted the
+       * [appropriate
+       * permissions](https://cloud.google.com/storage/docs/access-control/iam-permissions):
+       * - storage.objects.list: to list the objects in a bucket.
+       * - storage.objects.get: to read the objects in a bucket.
+       * - storage.buckets.get: to verify the bucket exists.
+       * 
+ * + * CLOUD_STORAGE_PERMISSION_DENIED = 2; + */ + public static final int CLOUD_STORAGE_PERMISSION_DENIED_VALUE = 2; + + /** + * + * + *
+       * Permission denied encountered while publishing to the topic. This can
+       * happen if the Pub/Sub SA has not been granted the [appropriate publish
+       * permissions](https://cloud.google.com/pubsub/docs/access-control#pubsub.publisher)
+       * 
+ * + * PUBLISH_PERMISSION_DENIED = 3; + */ + public static final int PUBLISH_PERMISSION_DENIED_VALUE = 3; + + /** + * + * + *
+       * The provided Cloud Storage bucket doesn't exist.
+       * 
+ * + * BUCKET_NOT_FOUND = 4; + */ + public static final int BUCKET_NOT_FOUND_VALUE = 4; + + /** + * + * + *
+       * The Cloud Storage bucket has too many objects, ingestion will be
+       * paused.
+       * 
+ * + * TOO_MANY_OBJECTS = 5; + */ + public static final int TOO_MANY_OBJECTS_VALUE = 5; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static State valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static State forNumber(int value) { + switch (value) { + case 0: + return STATE_UNSPECIFIED; + case 1: + return ACTIVE; + case 2: + return CLOUD_STORAGE_PERMISSION_DENIED; + case 3: + return PUBLISH_PERMISSION_DENIED; + case 4: + return BUCKET_NOT_FOUND; + case 5: + return TOO_MANY_OBJECTS; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public State findValueByNumber(int number) { + return State.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final State[] VALUES = values(); + + public static State valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private State(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State) + } + + public interface TextFormatOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+       * Optional. When unset, '\n' is used.
+       * 
+ * + * optional string delimiter = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the delimiter field is set. + */ + boolean hasDelimiter(); + + /** + * + * + *
+       * Optional. When unset, '\n' is used.
+       * 
+ * + * optional string delimiter = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The delimiter. + */ + java.lang.String getDelimiter(); + + /** + * + * + *
+       * Optional. When unset, '\n' is used.
+       * 
+ * + * optional string delimiter = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for delimiter. + */ + com.google.protobuf.ByteString getDelimiterBytes(); + } + + /** + * + * + *
+     * Configuration for reading Cloud Storage data in text format. Each line of
+     * text as specified by the delimiter will be set to the `data` field of a
+     * Pub/Sub message.
+     * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat} + */ + public static final class TextFormat extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat) + TextFormatOrBuilder { + private static final long serialVersionUID = 0L; + + // Use TextFormat.newBuilder() to construct. + private TextFormat(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private TextFormat() { + delimiter_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new TextFormat(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_TextFormat_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_TextFormat_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat.class, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat.Builder + .class); + } + + private int bitField0_; + public static final int DELIMITER_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object delimiter_ = ""; + + /** + * + * + *
+       * Optional. When unset, '\n' is used.
+       * 
+ * + * optional string delimiter = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the delimiter field is set. + */ + @java.lang.Override + public boolean hasDelimiter() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+       * Optional. When unset, '\n' is used.
+       * 
+ * + * optional string delimiter = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The delimiter. + */ + @java.lang.Override + public java.lang.String getDelimiter() { + java.lang.Object ref = delimiter_; + 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(); + delimiter_ = s; + return s; + } + } + + /** + * + * + *
+       * Optional. When unset, '\n' is used.
+       * 
+ * + * optional string delimiter = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for delimiter. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDelimiterBytes() { + java.lang.Object ref = delimiter_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + delimiter_ = 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)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, delimiter_); + } + 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.GeneratedMessageV3.computeStringSize(1, delimiter_); + } + 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat other = + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat) obj; + + if (hasDelimiter() != other.hasDelimiter()) return false; + if (hasDelimiter()) { + if (!getDelimiter().equals(other.getDelimiter())) 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 (hasDelimiter()) { + hash = (37 * hash) + DELIMITER_FIELD_NUMBER; + hash = (53 * hash) + getDelimiter().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat 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; + } + + /** + * + * + *
+       * Configuration for reading Cloud Storage data in text format. Each line of
+       * text as specified by the delimiter will be set to the `data` field of a
+       * Pub/Sub message.
+       * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat) + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormatOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_TextFormat_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_TextFormat_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat.class, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat.Builder + .class); + } + + // Construct using + // com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + delimiter_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_TextFormat_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat build() { + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + buildPartial() { + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat result = + new com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.delimiter_ = delimiter_; + to_bitField0_ |= 0x00000001; + } + 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat) { + return mergeFrom( + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat other) { + if (other + == com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + .getDefaultInstance()) return this; + if (other.hasDelimiter()) { + delimiter_ = other.delimiter_; + bitField0_ |= 0x00000001; + 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: + { + delimiter_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + 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.lang.Object delimiter_ = ""; + + /** + * + * + *
+         * Optional. When unset, '\n' is used.
+         * 
+ * + * optional string delimiter = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the delimiter field is set. + */ + public boolean hasDelimiter() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+         * Optional. When unset, '\n' is used.
+         * 
+ * + * optional string delimiter = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The delimiter. + */ + public java.lang.String getDelimiter() { + java.lang.Object ref = delimiter_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + delimiter_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+         * Optional. When unset, '\n' is used.
+         * 
+ * + * optional string delimiter = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for delimiter. + */ + public com.google.protobuf.ByteString getDelimiterBytes() { + java.lang.Object ref = delimiter_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + delimiter_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+         * Optional. When unset, '\n' is used.
+         * 
+ * + * optional string delimiter = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The delimiter to set. + * @return This builder for chaining. + */ + public Builder setDelimiter(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + delimiter_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+         * Optional. When unset, '\n' is used.
+         * 
+ * + * optional string delimiter = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearDelimiter() { + delimiter_ = getDefaultInstance().getDelimiter(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+         * Optional. When unset, '\n' is used.
+         * 
+ * + * optional string delimiter = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for delimiter to set. + * @return This builder for chaining. + */ + public Builder setDelimiterBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + delimiter_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat) + private static final com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat(); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TextFormat 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface AvroFormatOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat) + com.google.protobuf.MessageOrBuilder {} + + /** + * + * + *
+     * Configuration for reading Cloud Storage data in Avro binary format. The
+     * bytes of each object will be set to the `data` field of a Pub/Sub
+     * message.
+     * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat} + */ + public static final class AvroFormat extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat) + AvroFormatOrBuilder { + private static final long serialVersionUID = 0L; + + // Use AvroFormat.newBuilder() to construct. + private AvroFormat(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private AvroFormat() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new AvroFormat(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_AvroFormat_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_AvroFormat_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat.class, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat.Builder + .class); + } + + 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 { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat other = + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat) obj; + + 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 = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat 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; + } + + /** + * + * + *
+       * Configuration for reading Cloud Storage data in Avro binary format. The
+       * bytes of each object will be set to the `data` field of a Pub/Sub
+       * message.
+       * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat) + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormatOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_AvroFormat_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_AvroFormat_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat.class, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat.Builder + .class); + } + + // Construct using + // com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_AvroFormat_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat build() { + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + buildPartial() { + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat result = + new com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other + instanceof com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat) { + return mergeFrom( + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat other) { + if (other + == com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + .getDefaultInstance()) return this; + 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; + 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; + } + + @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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat) + private static final com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat(); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AvroFormat 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface PubSubAvroFormatOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat) + com.google.protobuf.MessageOrBuilder {} + + /** + * + * + *
+     * Configuration for reading Cloud Storage data written via [Cloud Storage
+     * subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage). The
+     * data and attributes fields of the originally exported Pub/Sub message
+     * will be restored when publishing.
+     * 
+ * + * Protobuf type {@code + * google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat} + */ + public static final class PubSubAvroFormat extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat) + PubSubAvroFormatOrBuilder { + private static final long serialVersionUID = 0L; + + // Use PubSubAvroFormat.newBuilder() to construct. + private PubSubAvroFormat(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private PubSubAvroFormat() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new PubSubAvroFormat(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + .class, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + .Builder.class); + } + + 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 { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat other = + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat) obj; + + 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 = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + 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; + } + + /** + * + * + *
+       * Configuration for reading Cloud Storage data written via [Cloud Storage
+       * subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage). The
+       * data and attributes fields of the originally exported Pub/Sub message
+       * will be restored when publishing.
+       * 
+ * + * Protobuf type {@code + * google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat) + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormatOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + .class, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + .Builder.class); + } + + // Construct using + // com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + build() { + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + buildPartial() { + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat result = + new com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat( + this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other + instanceof + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat) { + return mergeFrom( + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat) + other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat other) { + if (other + == com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + .getDefaultInstance()) return this; + 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; + 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; + } + + @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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat) + private static final com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage + .PubSubAvroFormat + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat(); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PubSubAvroFormat 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + private int bitField0_; + private int inputFormatCase_ = 0; + + @SuppressWarnings("serial") + private java.lang.Object inputFormat_; + + public enum InputFormatCase + implements + com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + TEXT_FORMAT(3), + AVRO_FORMAT(4), + PUBSUB_AVRO_FORMAT(5), + INPUTFORMAT_NOT_SET(0); + private final int value; + + private InputFormatCase(int value) { + this.value = value; + } + + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static InputFormatCase valueOf(int value) { + return forNumber(value); + } + + public static InputFormatCase forNumber(int value) { + switch (value) { + case 3: + return TEXT_FORMAT; + case 4: + return AVRO_FORMAT; + case 5: + return PUBSUB_AVRO_FORMAT; + case 0: + return INPUTFORMAT_NOT_SET; + default: + return null; + } + } + + public int getNumber() { + return this.value; + } + }; + + public InputFormatCase getInputFormatCase() { + return InputFormatCase.forNumber(inputFormatCase_); + } + + public static final int STATE_FIELD_NUMBER = 1; + private int state_ = 0; + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the Cloud
+     * Storage ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override + public int getStateValue() { + return state_; + } + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the Cloud
+     * Storage ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State getState() { + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State result = + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State.forNumber(state_); + return result == null + ? com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State.UNRECOGNIZED + : result; + } + + public static final int BUCKET_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object bucket_ = ""; + + /** + * + * + *
+     * Optional. Cloud Storage bucket. The bucket name must be without any
+     * prefix like "gs://". See the [bucket naming requirements]
+     * (https://cloud.google.com/storage/docs/buckets#naming).
+     * 
+ * + * string bucket = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bucket. + */ + @java.lang.Override + public java.lang.String getBucket() { + java.lang.Object ref = bucket_; + 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(); + bucket_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. Cloud Storage bucket. The bucket name must be without any
+     * prefix like "gs://". See the [bucket naming requirements]
+     * (https://cloud.google.com/storage/docs/buckets#naming).
+     * 
+ * + * string bucket = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for bucket. + */ + @java.lang.Override + public com.google.protobuf.ByteString getBucketBytes() { + java.lang.Object ref = bucket_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + bucket_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TEXT_FORMAT_FIELD_NUMBER = 3; + + /** + * + * + *
+     * Optional. Data from Cloud Storage will be interpreted as text.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat text_format = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the textFormat field is set. + */ + @java.lang.Override + public boolean hasTextFormat() { + return inputFormatCase_ == 3; + } + + /** + * + * + *
+     * Optional. Data from Cloud Storage will be interpreted as text.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat text_format = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The textFormat. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + getTextFormat() { + if (inputFormatCase_ == 3) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat) + inputFormat_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + .getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. Data from Cloud Storage will be interpreted as text.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat text_format = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormatOrBuilder + getTextFormatOrBuilder() { + if (inputFormatCase_ == 3) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat) + inputFormat_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + .getDefaultInstance(); + } + + public static final int AVRO_FORMAT_FIELD_NUMBER = 4; + + /** + * + * + *
+     * Optional. Data from Cloud Storage will be interpreted in Avro format.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat avro_format = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the avroFormat field is set. + */ + @java.lang.Override + public boolean hasAvroFormat() { + return inputFormatCase_ == 4; + } + + /** + * + * + *
+     * Optional. Data from Cloud Storage will be interpreted in Avro format.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat avro_format = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The avroFormat. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + getAvroFormat() { + if (inputFormatCase_ == 4) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat) + inputFormat_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + .getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. Data from Cloud Storage will be interpreted in Avro format.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat avro_format = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormatOrBuilder + getAvroFormatOrBuilder() { + if (inputFormatCase_ == 4) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat) + inputFormat_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + .getDefaultInstance(); + } + + public static final int PUBSUB_AVRO_FORMAT_FIELD_NUMBER = 5; + + /** + * + * + *
+     * Optional. It will be assumed data from Cloud Storage was written via
+     * [Cloud Storage
+     * subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage).
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat pubsub_avro_format = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the pubsubAvroFormat field is set. + */ + @java.lang.Override + public boolean hasPubsubAvroFormat() { + return inputFormatCase_ == 5; + } + + /** + * + * + *
+     * Optional. It will be assumed data from Cloud Storage was written via
+     * [Cloud Storage
+     * subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage).
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat pubsub_avro_format = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The pubsubAvroFormat. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + getPubsubAvroFormat() { + if (inputFormatCase_ == 5) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat) + inputFormat_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + .getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. It will be assumed data from Cloud Storage was written via
+     * [Cloud Storage
+     * subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage).
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat pubsub_avro_format = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormatOrBuilder + getPubsubAvroFormatOrBuilder() { + if (inputFormatCase_ == 5) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat) + inputFormat_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + .getDefaultInstance(); + } + + public static final int MINIMUM_OBJECT_CREATE_TIME_FIELD_NUMBER = 6; + private com.google.protobuf.Timestamp minimumObjectCreateTime_; + + /** + * + * + *
+     * Optional. Only objects with a larger or equal creation timestamp will be
+     * ingested.
+     * 
+ * + * + * .google.protobuf.Timestamp minimum_object_create_time = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the minimumObjectCreateTime field is set. + */ + @java.lang.Override + public boolean hasMinimumObjectCreateTime() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Optional. Only objects with a larger or equal creation timestamp will be
+     * ingested.
+     * 
+ * + * + * .google.protobuf.Timestamp minimum_object_create_time = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The minimumObjectCreateTime. + */ + @java.lang.Override + public com.google.protobuf.Timestamp getMinimumObjectCreateTime() { + return minimumObjectCreateTime_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : minimumObjectCreateTime_; + } + + /** + * + * + *
+     * Optional. Only objects with a larger or equal creation timestamp will be
+     * ingested.
+     * 
+ * + * + * .google.protobuf.Timestamp minimum_object_create_time = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.protobuf.TimestampOrBuilder getMinimumObjectCreateTimeOrBuilder() { + return minimumObjectCreateTime_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : minimumObjectCreateTime_; + } + + public static final int MATCH_GLOB_FIELD_NUMBER = 9; + + @SuppressWarnings("serial") + private volatile java.lang.Object matchGlob_ = ""; + + /** + * + * + *
+     * Optional. Glob pattern used to match objects that will be ingested. If
+     * unset, all objects will be ingested. See the [supported
+     * patterns](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob).
+     * 
+ * + * string match_glob = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The matchGlob. + */ + @java.lang.Override + public java.lang.String getMatchGlob() { + java.lang.Object ref = matchGlob_; + 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(); + matchGlob_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. Glob pattern used to match objects that will be ingested. If
+     * unset, all objects will be ingested. See the [supported
+     * patterns](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob).
+     * 
+ * + * string match_glob = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for matchGlob. + */ + @java.lang.Override + public com.google.protobuf.ByteString getMatchGlobBytes() { + java.lang.Object ref = matchGlob_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + matchGlob_ = 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 (state_ + != com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State.STATE_UNSPECIFIED + .getNumber()) { + output.writeEnum(1, state_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(bucket_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, bucket_); + } + if (inputFormatCase_ == 3) { + output.writeMessage( + 3, + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat) + inputFormat_); + } + if (inputFormatCase_ == 4) { + output.writeMessage( + 4, + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat) + inputFormat_); + } + if (inputFormatCase_ == 5) { + output.writeMessage( + 5, + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat) + inputFormat_); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(6, getMinimumObjectCreateTime()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(matchGlob_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 9, matchGlob_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (state_ + != com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State.STATE_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, state_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(bucket_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, bucket_); + } + if (inputFormatCase_ == 3) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 3, + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat) + inputFormat_); + } + if (inputFormatCase_ == 4) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 4, + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat) + inputFormat_); + } + if (inputFormatCase_ == 5) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 5, + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat) + inputFormat_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 6, getMinimumObjectCreateTime()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(matchGlob_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, matchGlob_); + } + 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage other = + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage) obj; + + if (state_ != other.state_) return false; + if (!getBucket().equals(other.getBucket())) return false; + if (hasMinimumObjectCreateTime() != other.hasMinimumObjectCreateTime()) return false; + if (hasMinimumObjectCreateTime()) { + if (!getMinimumObjectCreateTime().equals(other.getMinimumObjectCreateTime())) return false; + } + if (!getMatchGlob().equals(other.getMatchGlob())) return false; + if (!getInputFormatCase().equals(other.getInputFormatCase())) return false; + switch (inputFormatCase_) { + case 3: + if (!getTextFormat().equals(other.getTextFormat())) return false; + break; + case 4: + if (!getAvroFormat().equals(other.getAvroFormat())) return false; + break; + case 5: + if (!getPubsubAvroFormat().equals(other.getPubsubAvroFormat())) return false; + break; + case 0: + default: + } + 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) + STATE_FIELD_NUMBER; + hash = (53 * hash) + state_; + hash = (37 * hash) + BUCKET_FIELD_NUMBER; + hash = (53 * hash) + getBucket().hashCode(); + if (hasMinimumObjectCreateTime()) { + hash = (37 * hash) + MINIMUM_OBJECT_CREATE_TIME_FIELD_NUMBER; + hash = (53 * hash) + getMinimumObjectCreateTime().hashCode(); + } + hash = (37 * hash) + MATCH_GLOB_FIELD_NUMBER; + hash = (53 * hash) + getMatchGlob().hashCode(); + switch (inputFormatCase_) { + case 3: + hash = (37 * hash) + TEXT_FORMAT_FIELD_NUMBER; + hash = (53 * hash) + getTextFormat().hashCode(); + break; + case 4: + hash = (37 * hash) + AVRO_FORMAT_FIELD_NUMBER; + hash = (53 * hash) + getAvroFormat().hashCode(); + break; + case 5: + hash = (37 * hash) + PUBSUB_AVRO_FORMAT_FIELD_NUMBER; + hash = (53 * hash) + getPubsubAvroFormat().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage 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; + } + + /** + * + * + *
+     * Ingestion settings for Cloud Storage.
+     * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionDataSourceSettings.CloudStorage} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage) + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorageOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.class, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.Builder.class); + } + + // Construct using com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getMinimumObjectCreateTimeFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + state_ = 0; + bucket_ = ""; + if (textFormatBuilder_ != null) { + textFormatBuilder_.clear(); + } + if (avroFormatBuilder_ != null) { + avroFormatBuilder_.clear(); + } + if (pubsubAvroFormatBuilder_ != null) { + pubsubAvroFormatBuilder_.clear(); + } + minimumObjectCreateTime_ = null; + if (minimumObjectCreateTimeBuilder_ != null) { + minimumObjectCreateTimeBuilder_.dispose(); + minimumObjectCreateTimeBuilder_ = null; + } + matchGlob_ = ""; + inputFormatCase_ = 0; + inputFormat_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage + getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage build() { + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage buildPartial() { + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage result = + new com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.state_ = state_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.bucket_ = bucket_; + } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000020) != 0)) { + result.minimumObjectCreateTime_ = + minimumObjectCreateTimeBuilder_ == null + ? minimumObjectCreateTime_ + : minimumObjectCreateTimeBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.matchGlob_ = matchGlob_; + } + result.bitField0_ |= to_bitField0_; + } + + private void buildPartialOneofs( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage result) { + result.inputFormatCase_ = inputFormatCase_; + result.inputFormat_ = this.inputFormat_; + if (inputFormatCase_ == 3 && textFormatBuilder_ != null) { + result.inputFormat_ = textFormatBuilder_.build(); + } + if (inputFormatCase_ == 4 && avroFormatBuilder_ != null) { + result.inputFormat_ = avroFormatBuilder_.build(); + } + if (inputFormatCase_ == 5 && pubsubAvroFormatBuilder_ != null) { + result.inputFormat_ = pubsubAvroFormatBuilder_.build(); + } + } + + @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.pubsub.v1.IngestionDataSourceSettings.CloudStorage) { + return mergeFrom((com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage other) { + if (other + == com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.getDefaultInstance()) + return this; + if (other.state_ != 0) { + setStateValue(other.getStateValue()); + } + if (!other.getBucket().isEmpty()) { + bucket_ = other.bucket_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.hasMinimumObjectCreateTime()) { + mergeMinimumObjectCreateTime(other.getMinimumObjectCreateTime()); + } + if (!other.getMatchGlob().isEmpty()) { + matchGlob_ = other.matchGlob_; + bitField0_ |= 0x00000040; + onChanged(); + } + switch (other.getInputFormatCase()) { + case TEXT_FORMAT: + { + mergeTextFormat(other.getTextFormat()); + break; + } + case AVRO_FORMAT: + { + mergeAvroFormat(other.getAvroFormat()); + break; + } + case PUBSUB_AVRO_FORMAT: + { + mergePubsubAvroFormat(other.getPubsubAvroFormat()); + break; + } + case INPUTFORMAT_NOT_SET: + { + break; + } + } + 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: + { + state_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: + { + bucket_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + input.readMessage(getTextFormatFieldBuilder().getBuilder(), extensionRegistry); + inputFormatCase_ = 3; + break; + } // case 26 + case 34: + { + input.readMessage(getAvroFormatFieldBuilder().getBuilder(), extensionRegistry); + inputFormatCase_ = 4; + break; + } // case 34 + case 42: + { + input.readMessage( + getPubsubAvroFormatFieldBuilder().getBuilder(), extensionRegistry); + inputFormatCase_ = 5; + break; + } // case 42 + case 50: + { + input.readMessage( + getMinimumObjectCreateTimeFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 74: + { + matchGlob_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 74 + 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 inputFormatCase_ = 0; + private java.lang.Object inputFormat_; + + public InputFormatCase getInputFormatCase() { + return InputFormatCase.forNumber(inputFormatCase_); + } + + public Builder clearInputFormat() { + inputFormatCase_ = 0; + inputFormat_ = null; + onChanged(); + return this; + } + + private int bitField0_; + + private int state_ = 0; + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Cloud
+       * Storage ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override + public int getStateValue() { + return state_; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Cloud
+       * Storage ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param value The enum numeric value on the wire for state to set. + * @return This builder for chaining. + */ + public Builder setStateValue(int value) { + state_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Cloud
+       * Storage ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State getState() { + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State result = + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State.forNumber(state_); + return result == null + ? com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State.UNRECOGNIZED + : result; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Cloud
+       * Storage ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param value The state to set. + * @return This builder for chaining. + */ + public Builder setState( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + state_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Cloud
+       * Storage ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return This builder for chaining. + */ + public Builder clearState() { + bitField0_ = (bitField0_ & ~0x00000001); + state_ = 0; + onChanged(); + return this; + } + + private java.lang.Object bucket_ = ""; + + /** + * + * + *
+       * Optional. Cloud Storage bucket. The bucket name must be without any
+       * prefix like "gs://". See the [bucket naming requirements]
+       * (https://cloud.google.com/storage/docs/buckets#naming).
+       * 
+ * + * string bucket = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bucket. + */ + public java.lang.String getBucket() { + java.lang.Object ref = bucket_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + bucket_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. Cloud Storage bucket. The bucket name must be without any
+       * prefix like "gs://". See the [bucket naming requirements]
+       * (https://cloud.google.com/storage/docs/buckets#naming).
+       * 
+ * + * string bucket = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for bucket. + */ + public com.google.protobuf.ByteString getBucketBytes() { + java.lang.Object ref = bucket_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + bucket_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. Cloud Storage bucket. The bucket name must be without any
+       * prefix like "gs://". See the [bucket naming requirements]
+       * (https://cloud.google.com/storage/docs/buckets#naming).
+       * 
+ * + * string bucket = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bucket to set. + * @return This builder for chaining. + */ + public Builder setBucket(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bucket_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. Cloud Storage bucket. The bucket name must be without any
+       * prefix like "gs://". See the [bucket naming requirements]
+       * (https://cloud.google.com/storage/docs/buckets#naming).
+       * 
+ * + * string bucket = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearBucket() { + bucket_ = getDefaultInstance().getBucket(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. Cloud Storage bucket. The bucket name must be without any
+       * prefix like "gs://". See the [bucket naming requirements]
+       * (https://cloud.google.com/storage/docs/buckets#naming).
+       * 
+ * + * string bucket = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for bucket to set. + * @return This builder for chaining. + */ + public Builder setBucketBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + bucket_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormatOrBuilder> + textFormatBuilder_; + + /** + * + * + *
+       * Optional. Data from Cloud Storage will be interpreted as text.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat text_format = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the textFormat field is set. + */ + @java.lang.Override + public boolean hasTextFormat() { + return inputFormatCase_ == 3; + } + + /** + * + * + *
+       * Optional. Data from Cloud Storage will be interpreted as text.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat text_format = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The textFormat. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + getTextFormat() { + if (textFormatBuilder_ == null) { + if (inputFormatCase_ == 3) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat) + inputFormat_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + .getDefaultInstance(); + } else { + if (inputFormatCase_ == 3) { + return textFormatBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. Data from Cloud Storage will be interpreted as text.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat text_format = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setTextFormat( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat value) { + if (textFormatBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + inputFormat_ = value; + onChanged(); + } else { + textFormatBuilder_.setMessage(value); + } + inputFormatCase_ = 3; + return this; + } + + /** + * + * + *
+       * Optional. Data from Cloud Storage will be interpreted as text.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat text_format = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setTextFormat( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat.Builder + builderForValue) { + if (textFormatBuilder_ == null) { + inputFormat_ = builderForValue.build(); + onChanged(); + } else { + textFormatBuilder_.setMessage(builderForValue.build()); + } + inputFormatCase_ = 3; + return this; + } + + /** + * + * + *
+       * Optional. Data from Cloud Storage will be interpreted as text.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat text_format = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeTextFormat( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat value) { + if (textFormatBuilder_ == null) { + if (inputFormatCase_ == 3 + && inputFormat_ + != com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + .getDefaultInstance()) { + inputFormat_ = + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat.newBuilder( + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat) + inputFormat_) + .mergeFrom(value) + .buildPartial(); + } else { + inputFormat_ = value; + } + onChanged(); + } else { + if (inputFormatCase_ == 3) { + textFormatBuilder_.mergeFrom(value); + } else { + textFormatBuilder_.setMessage(value); + } + } + inputFormatCase_ = 3; + return this; + } + + /** + * + * + *
+       * Optional. Data from Cloud Storage will be interpreted as text.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat text_format = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearTextFormat() { + if (textFormatBuilder_ == null) { + if (inputFormatCase_ == 3) { + inputFormatCase_ = 0; + inputFormat_ = null; + onChanged(); + } + } else { + if (inputFormatCase_ == 3) { + inputFormatCase_ = 0; + inputFormat_ = null; + } + textFormatBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. Data from Cloud Storage will be interpreted as text.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat text_format = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat.Builder + getTextFormatBuilder() { + return getTextFormatFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. Data from Cloud Storage will be interpreted as text.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat text_format = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormatOrBuilder + getTextFormatOrBuilder() { + if ((inputFormatCase_ == 3) && (textFormatBuilder_ != null)) { + return textFormatBuilder_.getMessageOrBuilder(); + } else { + if (inputFormatCase_ == 3) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat) + inputFormat_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. Data from Cloud Storage will be interpreted as text.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat text_format = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormatOrBuilder> + getTextFormatFieldBuilder() { + if (textFormatBuilder_ == null) { + if (!(inputFormatCase_ == 3)) { + inputFormat_ = + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat + .getDefaultInstance(); + } + textFormatBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage + .TextFormatOrBuilder>( + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat) + inputFormat_, + getParentForChildren(), + isClean()); + inputFormat_ = null; + } + inputFormatCase_ = 3; + onChanged(); + return textFormatBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormatOrBuilder> + avroFormatBuilder_; + + /** + * + * + *
+       * Optional. Data from Cloud Storage will be interpreted in Avro format.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat avro_format = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the avroFormat field is set. + */ + @java.lang.Override + public boolean hasAvroFormat() { + return inputFormatCase_ == 4; + } + + /** + * + * + *
+       * Optional. Data from Cloud Storage will be interpreted in Avro format.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat avro_format = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The avroFormat. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + getAvroFormat() { + if (avroFormatBuilder_ == null) { + if (inputFormatCase_ == 4) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat) + inputFormat_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + .getDefaultInstance(); + } else { + if (inputFormatCase_ == 4) { + return avroFormatBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. Data from Cloud Storage will be interpreted in Avro format.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat avro_format = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setAvroFormat( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat value) { + if (avroFormatBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + inputFormat_ = value; + onChanged(); + } else { + avroFormatBuilder_.setMessage(value); + } + inputFormatCase_ = 4; + return this; + } + + /** + * + * + *
+       * Optional. Data from Cloud Storage will be interpreted in Avro format.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat avro_format = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setAvroFormat( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat.Builder + builderForValue) { + if (avroFormatBuilder_ == null) { + inputFormat_ = builderForValue.build(); + onChanged(); + } else { + avroFormatBuilder_.setMessage(builderForValue.build()); + } + inputFormatCase_ = 4; + return this; + } + + /** + * + * + *
+       * Optional. Data from Cloud Storage will be interpreted in Avro format.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat avro_format = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeAvroFormat( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat value) { + if (avroFormatBuilder_ == null) { + if (inputFormatCase_ == 4 + && inputFormat_ + != com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + .getDefaultInstance()) { + inputFormat_ = + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat.newBuilder( + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat) + inputFormat_) + .mergeFrom(value) + .buildPartial(); + } else { + inputFormat_ = value; + } + onChanged(); + } else { + if (inputFormatCase_ == 4) { + avroFormatBuilder_.mergeFrom(value); + } else { + avroFormatBuilder_.setMessage(value); + } + } + inputFormatCase_ = 4; + return this; + } + + /** + * + * + *
+       * Optional. Data from Cloud Storage will be interpreted in Avro format.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat avro_format = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearAvroFormat() { + if (avroFormatBuilder_ == null) { + if (inputFormatCase_ == 4) { + inputFormatCase_ = 0; + inputFormat_ = null; + onChanged(); + } + } else { + if (inputFormatCase_ == 4) { + inputFormatCase_ = 0; + inputFormat_ = null; + } + avroFormatBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. Data from Cloud Storage will be interpreted in Avro format.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat avro_format = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat.Builder + getAvroFormatBuilder() { + return getAvroFormatFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. Data from Cloud Storage will be interpreted in Avro format.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat avro_format = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormatOrBuilder + getAvroFormatOrBuilder() { + if ((inputFormatCase_ == 4) && (avroFormatBuilder_ != null)) { + return avroFormatBuilder_.getMessageOrBuilder(); + } else { + if (inputFormatCase_ == 4) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat) + inputFormat_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. Data from Cloud Storage will be interpreted in Avro format.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat avro_format = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormatOrBuilder> + getAvroFormatFieldBuilder() { + if (avroFormatBuilder_ == null) { + if (!(inputFormatCase_ == 4)) { + inputFormat_ = + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat + .getDefaultInstance(); + } + avroFormatBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage + .AvroFormatOrBuilder>( + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat) + inputFormat_, + getParentForChildren(), + isClean()); + inputFormat_ = null; + } + inputFormatCase_ = 4; + onChanged(); + return avroFormatBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + .Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage + .PubSubAvroFormatOrBuilder> + pubsubAvroFormatBuilder_; + + /** + * + * + *
+       * Optional. It will be assumed data from Cloud Storage was written via
+       * [Cloud Storage
+       * subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage).
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat pubsub_avro_format = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the pubsubAvroFormat field is set. + */ + @java.lang.Override + public boolean hasPubsubAvroFormat() { + return inputFormatCase_ == 5; + } + + /** + * + * + *
+       * Optional. It will be assumed data from Cloud Storage was written via
+       * [Cloud Storage
+       * subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage).
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat pubsub_avro_format = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The pubsubAvroFormat. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + getPubsubAvroFormat() { + if (pubsubAvroFormatBuilder_ == null) { + if (inputFormatCase_ == 5) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat) + inputFormat_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + .getDefaultInstance(); + } else { + if (inputFormatCase_ == 5) { + return pubsubAvroFormatBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. It will be assumed data from Cloud Storage was written via
+       * [Cloud Storage
+       * subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage).
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat pubsub_avro_format = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setPubsubAvroFormat( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat value) { + if (pubsubAvroFormatBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + inputFormat_ = value; + onChanged(); + } else { + pubsubAvroFormatBuilder_.setMessage(value); + } + inputFormatCase_ = 5; + return this; + } + + /** + * + * + *
+       * Optional. It will be assumed data from Cloud Storage was written via
+       * [Cloud Storage
+       * subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage).
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat pubsub_avro_format = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setPubsubAvroFormat( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat.Builder + builderForValue) { + if (pubsubAvroFormatBuilder_ == null) { + inputFormat_ = builderForValue.build(); + onChanged(); + } else { + pubsubAvroFormatBuilder_.setMessage(builderForValue.build()); + } + inputFormatCase_ = 5; + return this; + } + + /** + * + * + *
+       * Optional. It will be assumed data from Cloud Storage was written via
+       * [Cloud Storage
+       * subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage).
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat pubsub_avro_format = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergePubsubAvroFormat( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat value) { + if (pubsubAvroFormatBuilder_ == null) { + if (inputFormatCase_ == 5 + && inputFormat_ + != com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + .getDefaultInstance()) { + inputFormat_ = + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + .newBuilder( + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage + .PubSubAvroFormat) + inputFormat_) + .mergeFrom(value) + .buildPartial(); + } else { + inputFormat_ = value; + } + onChanged(); + } else { + if (inputFormatCase_ == 5) { + pubsubAvroFormatBuilder_.mergeFrom(value); + } else { + pubsubAvroFormatBuilder_.setMessage(value); + } + } + inputFormatCase_ = 5; + return this; + } + + /** + * + * + *
+       * Optional. It will be assumed data from Cloud Storage was written via
+       * [Cloud Storage
+       * subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage).
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat pubsub_avro_format = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearPubsubAvroFormat() { + if (pubsubAvroFormatBuilder_ == null) { + if (inputFormatCase_ == 5) { + inputFormatCase_ = 0; + inputFormat_ = null; + onChanged(); + } + } else { + if (inputFormatCase_ == 5) { + inputFormatCase_ = 0; + inputFormat_ = null; + } + pubsubAvroFormatBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. It will be assumed data from Cloud Storage was written via
+       * [Cloud Storage
+       * subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage).
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat pubsub_avro_format = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat.Builder + getPubsubAvroFormatBuilder() { + return getPubsubAvroFormatFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. It will be assumed data from Cloud Storage was written via
+       * [Cloud Storage
+       * subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage).
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat pubsub_avro_format = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormatOrBuilder + getPubsubAvroFormatOrBuilder() { + if ((inputFormatCase_ == 5) && (pubsubAvroFormatBuilder_ != null)) { + return pubsubAvroFormatBuilder_.getMessageOrBuilder(); + } else { + if (inputFormatCase_ == 5) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat) + inputFormat_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. It will be assumed data from Cloud Storage was written via
+       * [Cloud Storage
+       * subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage).
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat pubsub_avro_format = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + .Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage + .PubSubAvroFormatOrBuilder> + getPubsubAvroFormatFieldBuilder() { + if (pubsubAvroFormatBuilder_ == null) { + if (!(inputFormatCase_ == 5)) { + inputFormat_ = + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + .getDefaultInstance(); + } + pubsubAvroFormatBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat + .Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage + .PubSubAvroFormatOrBuilder>( + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat) + inputFormat_, + getParentForChildren(), + isClean()); + inputFormat_ = null; + } + inputFormatCase_ = 5; + onChanged(); + return pubsubAvroFormatBuilder_; + } + + private com.google.protobuf.Timestamp minimumObjectCreateTime_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder> + minimumObjectCreateTimeBuilder_; + + /** + * + * + *
+       * Optional. Only objects with a larger or equal creation timestamp will be
+       * ingested.
+       * 
+ * + * + * .google.protobuf.Timestamp minimum_object_create_time = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the minimumObjectCreateTime field is set. + */ + public boolean hasMinimumObjectCreateTime() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+       * Optional. Only objects with a larger or equal creation timestamp will be
+       * ingested.
+       * 
+ * + * + * .google.protobuf.Timestamp minimum_object_create_time = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The minimumObjectCreateTime. + */ + public com.google.protobuf.Timestamp getMinimumObjectCreateTime() { + if (minimumObjectCreateTimeBuilder_ == null) { + return minimumObjectCreateTime_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : minimumObjectCreateTime_; + } else { + return minimumObjectCreateTimeBuilder_.getMessage(); + } + } + + /** + * + * + *
+       * Optional. Only objects with a larger or equal creation timestamp will be
+       * ingested.
+       * 
+ * + * + * .google.protobuf.Timestamp minimum_object_create_time = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setMinimumObjectCreateTime(com.google.protobuf.Timestamp value) { + if (minimumObjectCreateTimeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + minimumObjectCreateTime_ = value; + } else { + minimumObjectCreateTimeBuilder_.setMessage(value); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. Only objects with a larger or equal creation timestamp will be
+       * ingested.
+       * 
+ * + * + * .google.protobuf.Timestamp minimum_object_create_time = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setMinimumObjectCreateTime( + com.google.protobuf.Timestamp.Builder builderForValue) { + if (minimumObjectCreateTimeBuilder_ == null) { + minimumObjectCreateTime_ = builderForValue.build(); + } else { + minimumObjectCreateTimeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. Only objects with a larger or equal creation timestamp will be
+       * ingested.
+       * 
+ * + * + * .google.protobuf.Timestamp minimum_object_create_time = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeMinimumObjectCreateTime(com.google.protobuf.Timestamp value) { + if (minimumObjectCreateTimeBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0) + && minimumObjectCreateTime_ != null + && minimumObjectCreateTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) { + getMinimumObjectCreateTimeBuilder().mergeFrom(value); + } else { + minimumObjectCreateTime_ = value; + } + } else { + minimumObjectCreateTimeBuilder_.mergeFrom(value); + } + if (minimumObjectCreateTime_ != null) { + bitField0_ |= 0x00000020; + onChanged(); + } + return this; + } + + /** + * + * + *
+       * Optional. Only objects with a larger or equal creation timestamp will be
+       * ingested.
+       * 
+ * + * + * .google.protobuf.Timestamp minimum_object_create_time = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearMinimumObjectCreateTime() { + bitField0_ = (bitField0_ & ~0x00000020); + minimumObjectCreateTime_ = null; + if (minimumObjectCreateTimeBuilder_ != null) { + minimumObjectCreateTimeBuilder_.dispose(); + minimumObjectCreateTimeBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. Only objects with a larger or equal creation timestamp will be
+       * ingested.
+       * 
+ * + * + * .google.protobuf.Timestamp minimum_object_create_time = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.protobuf.Timestamp.Builder getMinimumObjectCreateTimeBuilder() { + bitField0_ |= 0x00000020; + onChanged(); + return getMinimumObjectCreateTimeFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. Only objects with a larger or equal creation timestamp will be
+       * ingested.
+       * 
+ * + * + * .google.protobuf.Timestamp minimum_object_create_time = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.protobuf.TimestampOrBuilder getMinimumObjectCreateTimeOrBuilder() { + if (minimumObjectCreateTimeBuilder_ != null) { + return minimumObjectCreateTimeBuilder_.getMessageOrBuilder(); + } else { + return minimumObjectCreateTime_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : minimumObjectCreateTime_; + } + } + + /** + * + * + *
+       * Optional. Only objects with a larger or equal creation timestamp will be
+       * ingested.
+       * 
+ * + * + * .google.protobuf.Timestamp minimum_object_create_time = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder> + getMinimumObjectCreateTimeFieldBuilder() { + if (minimumObjectCreateTimeBuilder_ == null) { + minimumObjectCreateTimeBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder>( + getMinimumObjectCreateTime(), getParentForChildren(), isClean()); + minimumObjectCreateTime_ = null; + } + return minimumObjectCreateTimeBuilder_; + } + + private java.lang.Object matchGlob_ = ""; + + /** + * + * + *
+       * Optional. Glob pattern used to match objects that will be ingested. If
+       * unset, all objects will be ingested. See the [supported
+       * patterns](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob).
+       * 
+ * + * string match_glob = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The matchGlob. + */ + public java.lang.String getMatchGlob() { + java.lang.Object ref = matchGlob_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + matchGlob_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. Glob pattern used to match objects that will be ingested. If
+       * unset, all objects will be ingested. See the [supported
+       * patterns](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob).
+       * 
+ * + * string match_glob = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for matchGlob. + */ + public com.google.protobuf.ByteString getMatchGlobBytes() { + java.lang.Object ref = matchGlob_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + matchGlob_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. Glob pattern used to match objects that will be ingested. If
+       * unset, all objects will be ingested. See the [supported
+       * patterns](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob).
+       * 
+ * + * string match_glob = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The matchGlob to set. + * @return This builder for chaining. + */ + public Builder setMatchGlob(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + matchGlob_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. Glob pattern used to match objects that will be ingested. If
+       * unset, all objects will be ingested. See the [supported
+       * patterns](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob).
+       * 
+ * + * string match_glob = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearMatchGlob() { + matchGlob_ = getDefaultInstance().getMatchGlob(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. Glob pattern used to match objects that will be ingested. If
+       * unset, all objects will be ingested. See the [supported
+       * patterns](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob).
+       * 
+ * + * string match_glob = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for matchGlob to set. + * @return This builder for chaining. + */ + public Builder setMatchGlobBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + matchGlob_ = value; + bitField0_ |= 0x00000040; + 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage) + private static final com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage(); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CloudStorage 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.pubsub.v1.IngestionDataSourceSettings.CloudStorage + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface AzureEventHubsOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the Event
+     * Hubs ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + int getStateValue(); + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the Event
+     * Hubs ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State getState(); + + /** + * + * + *
+     * Optional. Name of the resource group within the azure subscription.
+     * 
+ * + * string resource_group = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The resourceGroup. + */ + java.lang.String getResourceGroup(); + + /** + * + * + *
+     * Optional. Name of the resource group within the azure subscription.
+     * 
+ * + * string resource_group = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for resourceGroup. + */ + com.google.protobuf.ByteString getResourceGroupBytes(); + + /** + * + * + *
+     * Optional. The name of the Event Hubs namespace.
+     * 
+ * + * string namespace = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The namespace. + */ + java.lang.String getNamespace(); + + /** + * + * + *
+     * Optional. The name of the Event Hubs namespace.
+     * 
+ * + * string namespace = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for namespace. + */ + com.google.protobuf.ByteString getNamespaceBytes(); + + /** + * + * + *
+     * Optional. The name of the Event Hub.
+     * 
+ * + * string event_hub = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The eventHub. + */ + java.lang.String getEventHub(); + + /** + * + * + *
+     * Optional. The name of the Event Hub.
+     * 
+ * + * string event_hub = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for eventHub. + */ + com.google.protobuf.ByteString getEventHubBytes(); + + /** + * + * + *
+     * Optional. The client id of the Azure application that is being used to
+     * authenticate Pub/Sub.
+     * 
+ * + * string client_id = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The clientId. + */ + java.lang.String getClientId(); + + /** + * + * + *
+     * Optional. The client id of the Azure application that is being used to
+     * authenticate Pub/Sub.
+     * 
+ * + * string client_id = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for clientId. + */ + com.google.protobuf.ByteString getClientIdBytes(); + + /** + * + * + *
+     * Optional. The tenant id of the Azure application that is being used to
+     * authenticate Pub/Sub.
+     * 
+ * + * string tenant_id = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The tenantId. + */ + java.lang.String getTenantId(); + + /** + * + * + *
+     * Optional. The tenant id of the Azure application that is being used to
+     * authenticate Pub/Sub.
+     * 
+ * + * string tenant_id = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for tenantId. + */ + com.google.protobuf.ByteString getTenantIdBytes(); + + /** + * + * + *
+     * Optional. The Azure subscription id.
+     * 
+ * + * string subscription_id = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The subscriptionId. + */ + java.lang.String getSubscriptionId(); + + /** + * + * + *
+     * Optional. The Azure subscription id.
+     * 
+ * + * string subscription_id = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for subscriptionId. + */ + com.google.protobuf.ByteString getSubscriptionIdBytes(); + + /** + * + * + *
+     * Optional. The GCP service account to be used for Federated Identity
+     * authentication.
+     * 
+ * + * string gcp_service_account = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The gcpServiceAccount. + */ + java.lang.String getGcpServiceAccount(); + + /** + * + * + *
+     * Optional. The GCP service account to be used for Federated Identity
+     * authentication.
+     * 
+ * + * string gcp_service_account = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for gcpServiceAccount. + */ + com.google.protobuf.ByteString getGcpServiceAccountBytes(); + } + + /** + * + * + *
+   * Ingestion settings for Azure Event Hubs.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs} + */ + public static final class AzureEventHubs extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs) + AzureEventHubsOrBuilder { + private static final long serialVersionUID = 0L; + + // Use AzureEventHubs.newBuilder() to construct. + private AzureEventHubs(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private AzureEventHubs() { + state_ = 0; + resourceGroup_ = ""; + namespace_ = ""; + eventHub_ = ""; + clientId_ = ""; + tenantId_ = ""; + subscriptionId_ = ""; + gcpServiceAccount_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new AzureEventHubs(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_AzureEventHubs_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_AzureEventHubs_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.class, + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.Builder.class); + } + + /** + * + * + *
+     * Possible states for managed ingestion from Event Hubs.
+     * 
+ * + * Protobuf enum {@code google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State} + */ + public enum State implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+       * Default value. This value is unused.
+       * 
+ * + * STATE_UNSPECIFIED = 0; + */ + STATE_UNSPECIFIED(0), + /** + * + * + *
+       * Ingestion is active.
+       * 
+ * + * ACTIVE = 1; + */ + ACTIVE(1), + /** + * + * + *
+       * Permission denied encountered while consuming data from Event Hubs.
+       * This can happen when `client_id`, or `tenant_id` are invalid. Or the
+       * right permissions haven't been granted.
+       * 
+ * + * EVENT_HUBS_PERMISSION_DENIED = 2; + */ + EVENT_HUBS_PERMISSION_DENIED(2), + /** + * + * + *
+       * Permission denied encountered while publishing to the topic.
+       * 
+ * + * PUBLISH_PERMISSION_DENIED = 3; + */ + PUBLISH_PERMISSION_DENIED(3), + /** + * + * + *
+       * The provided Event Hubs namespace couldn't be found.
+       * 
+ * + * NAMESPACE_NOT_FOUND = 4; + */ + NAMESPACE_NOT_FOUND(4), + /** + * + * + *
+       * The provided Event Hub couldn't be found.
+       * 
+ * + * EVENT_HUB_NOT_FOUND = 5; + */ + EVENT_HUB_NOT_FOUND(5), + /** + * + * + *
+       * The provided Event Hubs subscription couldn't be found.
+       * 
+ * + * SUBSCRIPTION_NOT_FOUND = 6; + */ + SUBSCRIPTION_NOT_FOUND(6), + /** + * + * + *
+       * The provided Event Hubs resource group couldn't be found.
+       * 
+ * + * RESOURCE_GROUP_NOT_FOUND = 7; + */ + RESOURCE_GROUP_NOT_FOUND(7), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+       * Default value. This value is unused.
+       * 
+ * + * STATE_UNSPECIFIED = 0; + */ + public static final int STATE_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+       * Ingestion is active.
+       * 
+ * + * ACTIVE = 1; + */ + public static final int ACTIVE_VALUE = 1; + + /** + * + * + *
+       * Permission denied encountered while consuming data from Event Hubs.
+       * This can happen when `client_id`, or `tenant_id` are invalid. Or the
+       * right permissions haven't been granted.
+       * 
+ * + * EVENT_HUBS_PERMISSION_DENIED = 2; + */ + public static final int EVENT_HUBS_PERMISSION_DENIED_VALUE = 2; + + /** + * + * + *
+       * Permission denied encountered while publishing to the topic.
+       * 
+ * + * PUBLISH_PERMISSION_DENIED = 3; + */ + public static final int PUBLISH_PERMISSION_DENIED_VALUE = 3; + + /** + * + * + *
+       * The provided Event Hubs namespace couldn't be found.
+       * 
+ * + * NAMESPACE_NOT_FOUND = 4; + */ + public static final int NAMESPACE_NOT_FOUND_VALUE = 4; + + /** + * + * + *
+       * The provided Event Hub couldn't be found.
+       * 
+ * + * EVENT_HUB_NOT_FOUND = 5; + */ + public static final int EVENT_HUB_NOT_FOUND_VALUE = 5; + + /** + * + * + *
+       * The provided Event Hubs subscription couldn't be found.
+       * 
+ * + * SUBSCRIPTION_NOT_FOUND = 6; + */ + public static final int SUBSCRIPTION_NOT_FOUND_VALUE = 6; + + /** + * + * + *
+       * The provided Event Hubs resource group couldn't be found.
+       * 
+ * + * RESOURCE_GROUP_NOT_FOUND = 7; + */ + public static final int RESOURCE_GROUP_NOT_FOUND_VALUE = 7; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static State valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static State forNumber(int value) { + switch (value) { + case 0: + return STATE_UNSPECIFIED; + case 1: + return ACTIVE; + case 2: + return EVENT_HUBS_PERMISSION_DENIED; + case 3: + return PUBLISH_PERMISSION_DENIED; + case 4: + return NAMESPACE_NOT_FOUND; + case 5: + return EVENT_HUB_NOT_FOUND; + case 6: + return SUBSCRIPTION_NOT_FOUND; + case 7: + return RESOURCE_GROUP_NOT_FOUND; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public State findValueByNumber(int number) { + return State.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final State[] VALUES = values(); + + public static State valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private State(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State) + } + + public static final int STATE_FIELD_NUMBER = 1; + private int state_ = 0; + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the Event
+     * Hubs ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override + public int getStateValue() { + return state_; + } + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the Event
+     * Hubs ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State getState() { + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State result = + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State.forNumber(state_); + return result == null + ? com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State.UNRECOGNIZED + : result; + } + + public static final int RESOURCE_GROUP_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object resourceGroup_ = ""; + + /** + * + * + *
+     * Optional. Name of the resource group within the azure subscription.
+     * 
+ * + * string resource_group = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The resourceGroup. + */ + @java.lang.Override + public java.lang.String getResourceGroup() { + java.lang.Object ref = resourceGroup_; + 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(); + resourceGroup_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. Name of the resource group within the azure subscription.
+     * 
+ * + * string resource_group = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for resourceGroup. + */ + @java.lang.Override + public com.google.protobuf.ByteString getResourceGroupBytes() { + java.lang.Object ref = resourceGroup_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + resourceGroup_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int NAMESPACE_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object namespace_ = ""; + + /** + * + * + *
+     * Optional. The name of the Event Hubs namespace.
+     * 
+ * + * string namespace = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The namespace. + */ + @java.lang.Override + public java.lang.String getNamespace() { + java.lang.Object ref = namespace_; + 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(); + namespace_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. The name of the Event Hubs namespace.
+     * 
+ * + * string namespace = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for namespace. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNamespaceBytes() { + java.lang.Object ref = namespace_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + namespace_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EVENT_HUB_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object eventHub_ = ""; + + /** + * + * + *
+     * Optional. The name of the Event Hub.
+     * 
+ * + * string event_hub = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The eventHub. + */ + @java.lang.Override + public java.lang.String getEventHub() { + java.lang.Object ref = eventHub_; + 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(); + eventHub_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. The name of the Event Hub.
+     * 
+ * + * string event_hub = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for eventHub. + */ + @java.lang.Override + public com.google.protobuf.ByteString getEventHubBytes() { + java.lang.Object ref = eventHub_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + eventHub_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CLIENT_ID_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private volatile java.lang.Object clientId_ = ""; + + /** + * + * + *
+     * Optional. The client id of the Azure application that is being used to
+     * authenticate Pub/Sub.
+     * 
+ * + * string client_id = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The clientId. + */ + @java.lang.Override + public java.lang.String getClientId() { + java.lang.Object ref = clientId_; + 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(); + clientId_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. The client id of the Azure application that is being used to
+     * authenticate Pub/Sub.
+     * 
+ * + * string client_id = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for clientId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getClientIdBytes() { + java.lang.Object ref = clientId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + clientId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TENANT_ID_FIELD_NUMBER = 6; + + @SuppressWarnings("serial") + private volatile java.lang.Object tenantId_ = ""; + + /** + * + * + *
+     * Optional. The tenant id of the Azure application that is being used to
+     * authenticate Pub/Sub.
+     * 
+ * + * string tenant_id = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The tenantId. + */ + @java.lang.Override + public java.lang.String getTenantId() { + java.lang.Object ref = tenantId_; + 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(); + tenantId_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. The tenant id of the Azure application that is being used to
+     * authenticate Pub/Sub.
+     * 
+ * + * string tenant_id = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for tenantId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTenantIdBytes() { + java.lang.Object ref = tenantId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + tenantId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SUBSCRIPTION_ID_FIELD_NUMBER = 7; + + @SuppressWarnings("serial") + private volatile java.lang.Object subscriptionId_ = ""; + + /** + * + * + *
+     * Optional. The Azure subscription id.
+     * 
+ * + * string subscription_id = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The subscriptionId. + */ + @java.lang.Override + public java.lang.String getSubscriptionId() { + java.lang.Object ref = subscriptionId_; + 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(); + subscriptionId_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. The Azure subscription id.
+     * 
+ * + * string subscription_id = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for subscriptionId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getSubscriptionIdBytes() { + java.lang.Object ref = subscriptionId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + subscriptionId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int GCP_SERVICE_ACCOUNT_FIELD_NUMBER = 8; + + @SuppressWarnings("serial") + private volatile java.lang.Object gcpServiceAccount_ = ""; + + /** + * + * + *
+     * Optional. The GCP service account to be used for Federated Identity
+     * authentication.
+     * 
+ * + * string gcp_service_account = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The gcpServiceAccount. + */ + @java.lang.Override + public java.lang.String getGcpServiceAccount() { + java.lang.Object ref = gcpServiceAccount_; + 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(); + gcpServiceAccount_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. The GCP service account to be used for Federated Identity
+     * authentication.
+     * 
+ * + * string gcp_service_account = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for gcpServiceAccount. + */ + @java.lang.Override + public com.google.protobuf.ByteString getGcpServiceAccountBytes() { + java.lang.Object ref = gcpServiceAccount_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + gcpServiceAccount_ = 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 (state_ + != com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State.STATE_UNSPECIFIED + .getNumber()) { + output.writeEnum(1, state_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resourceGroup_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, resourceGroup_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(namespace_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, namespace_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(eventHub_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, eventHub_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clientId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, clientId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(tenantId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, tenantId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(subscriptionId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 7, subscriptionId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(gcpServiceAccount_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 8, gcpServiceAccount_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (state_ + != com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State.STATE_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, state_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resourceGroup_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, resourceGroup_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(namespace_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, namespace_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(eventHub_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, eventHub_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clientId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, clientId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(tenantId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, tenantId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(subscriptionId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, subscriptionId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(gcpServiceAccount_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, gcpServiceAccount_); + } + 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.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs other = + (com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs) obj; + + if (state_ != other.state_) return false; + if (!getResourceGroup().equals(other.getResourceGroup())) return false; + if (!getNamespace().equals(other.getNamespace())) return false; + if (!getEventHub().equals(other.getEventHub())) return false; + if (!getClientId().equals(other.getClientId())) return false; + if (!getTenantId().equals(other.getTenantId())) return false; + if (!getSubscriptionId().equals(other.getSubscriptionId())) return false; + if (!getGcpServiceAccount().equals(other.getGcpServiceAccount())) 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) + STATE_FIELD_NUMBER; + hash = (53 * hash) + state_; + hash = (37 * hash) + RESOURCE_GROUP_FIELD_NUMBER; + hash = (53 * hash) + getResourceGroup().hashCode(); + hash = (37 * hash) + NAMESPACE_FIELD_NUMBER; + hash = (53 * hash) + getNamespace().hashCode(); + hash = (37 * hash) + EVENT_HUB_FIELD_NUMBER; + hash = (53 * hash) + getEventHub().hashCode(); + hash = (37 * hash) + CLIENT_ID_FIELD_NUMBER; + hash = (53 * hash) + getClientId().hashCode(); + hash = (37 * hash) + TENANT_ID_FIELD_NUMBER; + hash = (53 * hash) + getTenantId().hashCode(); + hash = (37 * hash) + SUBSCRIPTION_ID_FIELD_NUMBER; + hash = (53 * hash) + getSubscriptionId().hashCode(); + hash = (37 * hash) + GCP_SERVICE_ACCOUNT_FIELD_NUMBER; + hash = (53 * hash) + getGcpServiceAccount().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs 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.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs 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.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs + 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.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs 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.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs 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; + } + + /** + * + * + *
+     * Ingestion settings for Azure Event Hubs.
+     * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs) + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_AzureEventHubs_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_AzureEventHubs_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.class, + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.Builder.class); + } + + // Construct using + // com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + state_ = 0; + resourceGroup_ = ""; + namespace_ = ""; + eventHub_ = ""; + clientId_ = ""; + tenantId_ = ""; + subscriptionId_ = ""; + gcpServiceAccount_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_AzureEventHubs_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs + getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs build() { + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs buildPartial() { + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs result = + new com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.state_ = state_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.resourceGroup_ = resourceGroup_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.namespace_ = namespace_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.eventHub_ = eventHub_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.clientId_ = clientId_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.tenantId_ = tenantId_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.subscriptionId_ = subscriptionId_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.gcpServiceAccount_ = gcpServiceAccount_; + } + } + + @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.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs) { + return mergeFrom((com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs other) { + if (other + == com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.getDefaultInstance()) + return this; + if (other.state_ != 0) { + setStateValue(other.getStateValue()); + } + if (!other.getResourceGroup().isEmpty()) { + resourceGroup_ = other.resourceGroup_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getNamespace().isEmpty()) { + namespace_ = other.namespace_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getEventHub().isEmpty()) { + eventHub_ = other.eventHub_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (!other.getClientId().isEmpty()) { + clientId_ = other.clientId_; + bitField0_ |= 0x00000010; + onChanged(); + } + if (!other.getTenantId().isEmpty()) { + tenantId_ = other.tenantId_; + bitField0_ |= 0x00000020; + onChanged(); + } + if (!other.getSubscriptionId().isEmpty()) { + subscriptionId_ = other.subscriptionId_; + bitField0_ |= 0x00000040; + onChanged(); + } + if (!other.getGcpServiceAccount().isEmpty()) { + gcpServiceAccount_ = other.gcpServiceAccount_; + bitField0_ |= 0x00000080; + 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: + { + state_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: + { + resourceGroup_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + namespace_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + eventHub_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: + { + clientId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 50: + { + tenantId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 58: + { + subscriptionId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 66: + { + gcpServiceAccount_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000080; + break; + } // case 66 + 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 state_ = 0; + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Event
+       * Hubs ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override + public int getStateValue() { + return state_; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Event
+       * Hubs ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param value The enum numeric value on the wire for state to set. + * @return This builder for chaining. + */ + public Builder setStateValue(int value) { + state_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Event
+       * Hubs ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State getState() { + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State result = + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State.forNumber(state_); + return result == null + ? com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State.UNRECOGNIZED + : result; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Event
+       * Hubs ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param value The state to set. + * @return This builder for chaining. + */ + public Builder setState( + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + state_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Event
+       * Hubs ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return This builder for chaining. + */ + public Builder clearState() { + bitField0_ = (bitField0_ & ~0x00000001); + state_ = 0; + onChanged(); + return this; + } + + private java.lang.Object resourceGroup_ = ""; + + /** + * + * + *
+       * Optional. Name of the resource group within the azure subscription.
+       * 
+ * + * string resource_group = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The resourceGroup. + */ + public java.lang.String getResourceGroup() { + java.lang.Object ref = resourceGroup_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + resourceGroup_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. Name of the resource group within the azure subscription.
+       * 
+ * + * string resource_group = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for resourceGroup. + */ + public com.google.protobuf.ByteString getResourceGroupBytes() { + java.lang.Object ref = resourceGroup_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + resourceGroup_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. Name of the resource group within the azure subscription.
+       * 
+ * + * string resource_group = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The resourceGroup to set. + * @return This builder for chaining. + */ + public Builder setResourceGroup(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + resourceGroup_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. Name of the resource group within the azure subscription.
+       * 
+ * + * string resource_group = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearResourceGroup() { + resourceGroup_ = getDefaultInstance().getResourceGroup(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. Name of the resource group within the azure subscription.
+       * 
+ * + * string resource_group = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for resourceGroup to set. + * @return This builder for chaining. + */ + public Builder setResourceGroupBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + resourceGroup_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object namespace_ = ""; + + /** + * + * + *
+       * Optional. The name of the Event Hubs namespace.
+       * 
+ * + * string namespace = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The namespace. + */ + public java.lang.String getNamespace() { + java.lang.Object ref = namespace_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + namespace_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. The name of the Event Hubs namespace.
+       * 
+ * + * string namespace = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for namespace. + */ + public com.google.protobuf.ByteString getNamespaceBytes() { + java.lang.Object ref = namespace_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + namespace_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. The name of the Event Hubs namespace.
+       * 
+ * + * string namespace = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The namespace to set. + * @return This builder for chaining. + */ + public Builder setNamespace(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + namespace_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The name of the Event Hubs namespace.
+       * 
+ * + * string namespace = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearNamespace() { + namespace_ = getDefaultInstance().getNamespace(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The name of the Event Hubs namespace.
+       * 
+ * + * string namespace = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for namespace to set. + * @return This builder for chaining. + */ + public Builder setNamespaceBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + namespace_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object eventHub_ = ""; + + /** + * + * + *
+       * Optional. The name of the Event Hub.
+       * 
+ * + * string event_hub = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The eventHub. + */ + public java.lang.String getEventHub() { + java.lang.Object ref = eventHub_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + eventHub_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. The name of the Event Hub.
+       * 
+ * + * string event_hub = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for eventHub. + */ + public com.google.protobuf.ByteString getEventHubBytes() { + java.lang.Object ref = eventHub_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + eventHub_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. The name of the Event Hub.
+       * 
+ * + * string event_hub = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The eventHub to set. + * @return This builder for chaining. + */ + public Builder setEventHub(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + eventHub_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The name of the Event Hub.
+       * 
+ * + * string event_hub = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearEventHub() { + eventHub_ = getDefaultInstance().getEventHub(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The name of the Event Hub.
+       * 
+ * + * string event_hub = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for eventHub to set. + * @return This builder for chaining. + */ + public Builder setEventHubBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + eventHub_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private java.lang.Object clientId_ = ""; + + /** + * + * + *
+       * Optional. The client id of the Azure application that is being used to
+       * authenticate Pub/Sub.
+       * 
+ * + * string client_id = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The clientId. + */ + public java.lang.String getClientId() { + java.lang.Object ref = clientId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + clientId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. The client id of the Azure application that is being used to
+       * authenticate Pub/Sub.
+       * 
+ * + * string client_id = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for clientId. + */ + public com.google.protobuf.ByteString getClientIdBytes() { + java.lang.Object ref = clientId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + clientId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. The client id of the Azure application that is being used to
+       * authenticate Pub/Sub.
+       * 
+ * + * string client_id = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The clientId to set. + * @return This builder for chaining. + */ + public Builder setClientId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + clientId_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The client id of the Azure application that is being used to
+       * authenticate Pub/Sub.
+       * 
+ * + * string client_id = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearClientId() { + clientId_ = getDefaultInstance().getClientId(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The client id of the Azure application that is being used to
+       * authenticate Pub/Sub.
+       * 
+ * + * string client_id = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for clientId to set. + * @return This builder for chaining. + */ + public Builder setClientIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + clientId_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + private java.lang.Object tenantId_ = ""; + + /** + * + * + *
+       * Optional. The tenant id of the Azure application that is being used to
+       * authenticate Pub/Sub.
+       * 
+ * + * string tenant_id = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The tenantId. + */ + public java.lang.String getTenantId() { + java.lang.Object ref = tenantId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + tenantId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. The tenant id of the Azure application that is being used to
+       * authenticate Pub/Sub.
+       * 
+ * + * string tenant_id = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for tenantId. + */ + public com.google.protobuf.ByteString getTenantIdBytes() { + java.lang.Object ref = tenantId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + tenantId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. The tenant id of the Azure application that is being used to
+       * authenticate Pub/Sub.
+       * 
+ * + * string tenant_id = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The tenantId to set. + * @return This builder for chaining. + */ + public Builder setTenantId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + tenantId_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The tenant id of the Azure application that is being used to
+       * authenticate Pub/Sub.
+       * 
+ * + * string tenant_id = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearTenantId() { + tenantId_ = getDefaultInstance().getTenantId(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The tenant id of the Azure application that is being used to
+       * authenticate Pub/Sub.
+       * 
+ * + * string tenant_id = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for tenantId to set. + * @return This builder for chaining. + */ + public Builder setTenantIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + tenantId_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + private java.lang.Object subscriptionId_ = ""; + + /** + * + * + *
+       * Optional. The Azure subscription id.
+       * 
+ * + * string subscription_id = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The subscriptionId. + */ + public java.lang.String getSubscriptionId() { + java.lang.Object ref = subscriptionId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + subscriptionId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. The Azure subscription id.
+       * 
+ * + * string subscription_id = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for subscriptionId. + */ + public com.google.protobuf.ByteString getSubscriptionIdBytes() { + java.lang.Object ref = subscriptionId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + subscriptionId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. The Azure subscription id.
+       * 
+ * + * string subscription_id = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The subscriptionId to set. + * @return This builder for chaining. + */ + public Builder setSubscriptionId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + subscriptionId_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The Azure subscription id.
+       * 
+ * + * string subscription_id = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearSubscriptionId() { + subscriptionId_ = getDefaultInstance().getSubscriptionId(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The Azure subscription id.
+       * 
+ * + * string subscription_id = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for subscriptionId to set. + * @return This builder for chaining. + */ + public Builder setSubscriptionIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + subscriptionId_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + private java.lang.Object gcpServiceAccount_ = ""; + + /** + * + * + *
+       * Optional. The GCP service account to be used for Federated Identity
+       * authentication.
+       * 
+ * + * string gcp_service_account = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The gcpServiceAccount. + */ + public java.lang.String getGcpServiceAccount() { + java.lang.Object ref = gcpServiceAccount_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + gcpServiceAccount_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. The GCP service account to be used for Federated Identity
+       * authentication.
+       * 
+ * + * string gcp_service_account = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for gcpServiceAccount. + */ + public com.google.protobuf.ByteString getGcpServiceAccountBytes() { + java.lang.Object ref = gcpServiceAccount_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + gcpServiceAccount_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. The GCP service account to be used for Federated Identity
+       * authentication.
+       * 
+ * + * string gcp_service_account = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The gcpServiceAccount to set. + * @return This builder for chaining. + */ + public Builder setGcpServiceAccount(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + gcpServiceAccount_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The GCP service account to be used for Federated Identity
+       * authentication.
+       * 
+ * + * string gcp_service_account = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearGcpServiceAccount() { + gcpServiceAccount_ = getDefaultInstance().getGcpServiceAccount(); + bitField0_ = (bitField0_ & ~0x00000080); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The GCP service account to be used for Federated Identity
+       * authentication.
+       * 
+ * + * string gcp_service_account = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for gcpServiceAccount to set. + * @return This builder for chaining. + */ + public Builder setGcpServiceAccountBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + gcpServiceAccount_ = value; + bitField0_ |= 0x00000080; + 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.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs) + private static final com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs(); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AzureEventHubs 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.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface AwsMskOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionDataSourceSettings.AwsMsk) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the Amazon
+     * MSK ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + int getStateValue(); + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the Amazon
+     * MSK ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State getState(); + + /** + * + * + *
+     * Required. The Amazon Resource Name (ARN) that uniquely identifies the
+     * cluster.
+     * 
+ * + * string cluster_arn = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The clusterArn. + */ + java.lang.String getClusterArn(); + + /** + * + * + *
+     * Required. The Amazon Resource Name (ARN) that uniquely identifies the
+     * cluster.
+     * 
+ * + * string cluster_arn = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for clusterArn. + */ + com.google.protobuf.ByteString getClusterArnBytes(); + + /** + * + * + *
+     * Required. The name of the topic in the Amazon MSK cluster that Pub/Sub
+     * will import from.
+     * 
+ * + * + * string topic = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The topic. + */ + java.lang.String getTopic(); + + /** + * + * + *
+     * Required. The name of the topic in the Amazon MSK cluster that Pub/Sub
+     * will import from.
+     * 
+ * + * + * string topic = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The bytes for topic. + */ + com.google.protobuf.ByteString getTopicBytes(); + + /** + * + * + *
+     * Required. AWS role ARN to be used for Federated Identity authentication
+     * with Amazon MSK. Check the Pub/Sub docs for how to set up this role and
+     * the required permissions that need to be attached to it.
+     * 
+ * + * string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The awsRoleArn. + */ + java.lang.String getAwsRoleArn(); + + /** + * + * + *
+     * Required. AWS role ARN to be used for Federated Identity authentication
+     * with Amazon MSK. Check the Pub/Sub docs for how to set up this role and
+     * the required permissions that need to be attached to it.
+     * 
+ * + * string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for awsRoleArn. + */ + com.google.protobuf.ByteString getAwsRoleArnBytes(); + + /** + * + * + *
+     * Required. The GCP service account to be used for Federated Identity
+     * authentication with Amazon MSK (via a `AssumeRoleWithWebIdentity` call
+     * for the provided role). The `aws_role_arn` must be set up with
+     * `accounts.google.com:sub` equals to this service account number.
+     * 
+ * + * string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The gcpServiceAccount. + */ + java.lang.String getGcpServiceAccount(); + + /** + * + * + *
+     * Required. The GCP service account to be used for Federated Identity
+     * authentication with Amazon MSK (via a `AssumeRoleWithWebIdentity` call
+     * for the provided role). The `aws_role_arn` must be set up with
+     * `accounts.google.com:sub` equals to this service account number.
+     * 
+ * + * string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for gcpServiceAccount. + */ + com.google.protobuf.ByteString getGcpServiceAccountBytes(); + } + + /** + * + * + *
+   * Ingestion settings for Amazon MSK.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionDataSourceSettings.AwsMsk} + */ + public static final class AwsMsk extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionDataSourceSettings.AwsMsk) + AwsMskOrBuilder { + private static final long serialVersionUID = 0L; + + // Use AwsMsk.newBuilder() to construct. + private AwsMsk(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private AwsMsk() { + state_ = 0; + clusterArn_ = ""; + topic_ = ""; + awsRoleArn_ = ""; + gcpServiceAccount_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new AwsMsk(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsMsk_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsMsk_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.class, + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.Builder.class); + } + + /** + * + * + *
+     * Possible states for managed ingestion from Amazon MSK.
+     * 
+ * + * Protobuf enum {@code google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State} + */ + public enum State implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+       * Default value. This value is unused.
+       * 
+ * + * STATE_UNSPECIFIED = 0; + */ + STATE_UNSPECIFIED(0), + /** + * + * + *
+       * Ingestion is active.
+       * 
+ * + * ACTIVE = 1; + */ + ACTIVE(1), + /** + * + * + *
+       * Permission denied encountered while consuming data from Amazon MSK.
+       * 
+ * + * MSK_PERMISSION_DENIED = 2; + */ + MSK_PERMISSION_DENIED(2), + /** + * + * + *
+       * Permission denied encountered while publishing to the topic.
+       * 
+ * + * PUBLISH_PERMISSION_DENIED = 3; + */ + PUBLISH_PERMISSION_DENIED(3), + /** + * + * + *
+       * The provided MSK cluster wasn't found.
+       * 
+ * + * CLUSTER_NOT_FOUND = 4; + */ + CLUSTER_NOT_FOUND(4), + /** + * + * + *
+       * The provided topic wasn't found.
+       * 
+ * + * TOPIC_NOT_FOUND = 5; + */ + TOPIC_NOT_FOUND(5), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+       * Default value. This value is unused.
+       * 
+ * + * STATE_UNSPECIFIED = 0; + */ + public static final int STATE_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+       * Ingestion is active.
+       * 
+ * + * ACTIVE = 1; + */ + public static final int ACTIVE_VALUE = 1; + + /** + * + * + *
+       * Permission denied encountered while consuming data from Amazon MSK.
+       * 
+ * + * MSK_PERMISSION_DENIED = 2; + */ + public static final int MSK_PERMISSION_DENIED_VALUE = 2; + + /** + * + * + *
+       * Permission denied encountered while publishing to the topic.
+       * 
+ * + * PUBLISH_PERMISSION_DENIED = 3; + */ + public static final int PUBLISH_PERMISSION_DENIED_VALUE = 3; + + /** + * + * + *
+       * The provided MSK cluster wasn't found.
+       * 
+ * + * CLUSTER_NOT_FOUND = 4; + */ + public static final int CLUSTER_NOT_FOUND_VALUE = 4; + + /** + * + * + *
+       * The provided topic wasn't found.
+       * 
+ * + * TOPIC_NOT_FOUND = 5; + */ + public static final int TOPIC_NOT_FOUND_VALUE = 5; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static State valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static State forNumber(int value) { + switch (value) { + case 0: + return STATE_UNSPECIFIED; + case 1: + return ACTIVE; + case 2: + return MSK_PERMISSION_DENIED; + case 3: + return PUBLISH_PERMISSION_DENIED; + case 4: + return CLUSTER_NOT_FOUND; + case 5: + return TOPIC_NOT_FOUND; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public State findValueByNumber(int number) { + return State.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final State[] VALUES = values(); + + public static State valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private State(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State) + } + + public static final int STATE_FIELD_NUMBER = 1; + private int state_ = 0; + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the Amazon
+     * MSK ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override + public int getStateValue() { + return state_; + } + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the Amazon
+     * MSK ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State getState() { + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State result = + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State.forNumber(state_); + return result == null + ? com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State.UNRECOGNIZED + : result; + } + + public static final int CLUSTER_ARN_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object clusterArn_ = ""; + + /** + * + * + *
+     * Required. The Amazon Resource Name (ARN) that uniquely identifies the
+     * cluster.
+     * 
+ * + * string cluster_arn = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The clusterArn. + */ + @java.lang.Override + public java.lang.String getClusterArn() { + java.lang.Object ref = clusterArn_; + 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(); + clusterArn_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. The Amazon Resource Name (ARN) that uniquely identifies the
+     * cluster.
+     * 
+ * + * string cluster_arn = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for clusterArn. + */ + @java.lang.Override + public com.google.protobuf.ByteString getClusterArnBytes() { + java.lang.Object ref = clusterArn_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + clusterArn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TOPIC_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object topic_ = ""; + + /** + * + * + *
+     * Required. The name of the topic in the Amazon MSK cluster that Pub/Sub
+     * will import from.
+     * 
+ * + * + * string topic = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The topic. + */ + @java.lang.Override + public java.lang.String getTopic() { + java.lang.Object ref = topic_; + 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(); + topic_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. The name of the topic in the Amazon MSK cluster that Pub/Sub
+     * will import from.
+     * 
+ * + * + * string topic = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The bytes for topic. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTopicBytes() { + java.lang.Object ref = topic_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + topic_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int AWS_ROLE_ARN_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object awsRoleArn_ = ""; + + /** + * + * + *
+     * Required. AWS role ARN to be used for Federated Identity authentication
+     * with Amazon MSK. Check the Pub/Sub docs for how to set up this role and
+     * the required permissions that need to be attached to it.
+     * 
+ * + * string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The awsRoleArn. + */ + @java.lang.Override + public java.lang.String getAwsRoleArn() { + java.lang.Object ref = awsRoleArn_; + 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(); + awsRoleArn_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. AWS role ARN to be used for Federated Identity authentication
+     * with Amazon MSK. Check the Pub/Sub docs for how to set up this role and
+     * the required permissions that need to be attached to it.
+     * 
+ * + * string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for awsRoleArn. + */ + @java.lang.Override + public com.google.protobuf.ByteString getAwsRoleArnBytes() { + java.lang.Object ref = awsRoleArn_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + awsRoleArn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int GCP_SERVICE_ACCOUNT_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private volatile java.lang.Object gcpServiceAccount_ = ""; + + /** + * + * + *
+     * Required. The GCP service account to be used for Federated Identity
+     * authentication with Amazon MSK (via a `AssumeRoleWithWebIdentity` call
+     * for the provided role). The `aws_role_arn` must be set up with
+     * `accounts.google.com:sub` equals to this service account number.
+     * 
+ * + * string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The gcpServiceAccount. + */ + @java.lang.Override + public java.lang.String getGcpServiceAccount() { + java.lang.Object ref = gcpServiceAccount_; + 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(); + gcpServiceAccount_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. The GCP service account to be used for Federated Identity
+     * authentication with Amazon MSK (via a `AssumeRoleWithWebIdentity` call
+     * for the provided role). The `aws_role_arn` must be set up with
+     * `accounts.google.com:sub` equals to this service account number.
+     * 
+ * + * string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for gcpServiceAccount. + */ + @java.lang.Override + public com.google.protobuf.ByteString getGcpServiceAccountBytes() { + java.lang.Object ref = gcpServiceAccount_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + gcpServiceAccount_ = 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 (state_ + != com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State.STATE_UNSPECIFIED + .getNumber()) { + output.writeEnum(1, state_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterArn_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, clusterArn_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(topic_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, topic_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(awsRoleArn_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, awsRoleArn_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(gcpServiceAccount_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, gcpServiceAccount_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (state_ + != com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State.STATE_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, state_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterArn_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, clusterArn_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(topic_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, topic_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(awsRoleArn_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, awsRoleArn_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(gcpServiceAccount_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, gcpServiceAccount_); + } + 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.pubsub.v1.IngestionDataSourceSettings.AwsMsk)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk other = + (com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk) obj; + + if (state_ != other.state_) return false; + if (!getClusterArn().equals(other.getClusterArn())) return false; + if (!getTopic().equals(other.getTopic())) return false; + if (!getAwsRoleArn().equals(other.getAwsRoleArn())) return false; + if (!getGcpServiceAccount().equals(other.getGcpServiceAccount())) 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) + STATE_FIELD_NUMBER; + hash = (53 * hash) + state_; + hash = (37 * hash) + CLUSTER_ARN_FIELD_NUMBER; + hash = (53 * hash) + getClusterArn().hashCode(); + hash = (37 * hash) + TOPIC_FIELD_NUMBER; + hash = (53 * hash) + getTopic().hashCode(); + hash = (37 * hash) + AWS_ROLE_ARN_FIELD_NUMBER; + hash = (53 * hash) + getAwsRoleArn().hashCode(); + hash = (37 * hash) + GCP_SERVICE_ACCOUNT_FIELD_NUMBER; + hash = (53 * hash) + getGcpServiceAccount().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk 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.pubsub.v1.IngestionDataSourceSettings.AwsMsk parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk 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.pubsub.v1.IngestionDataSourceSettings.AwsMsk parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk 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.pubsub.v1.IngestionDataSourceSettings.AwsMsk parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk 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.pubsub.v1.IngestionDataSourceSettings.AwsMsk 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; + } + + /** + * + * + *
+     * Ingestion settings for Amazon MSK.
+     * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionDataSourceSettings.AwsMsk} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionDataSourceSettings.AwsMsk) + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMskOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsMsk_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsMsk_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.class, + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.Builder.class); + } + + // Construct using com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + state_ = 0; + clusterArn_ = ""; + topic_ = ""; + awsRoleArn_ = ""; + gcpServiceAccount_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsMsk_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk build() { + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk buildPartial() { + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk result = + new com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.state_ = state_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.clusterArn_ = clusterArn_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.topic_ = topic_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.awsRoleArn_ = awsRoleArn_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.gcpServiceAccount_ = gcpServiceAccount_; + } + } + + @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.pubsub.v1.IngestionDataSourceSettings.AwsMsk) { + return mergeFrom((com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk other) { + if (other == com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.getDefaultInstance()) + return this; + if (other.state_ != 0) { + setStateValue(other.getStateValue()); + } + if (!other.getClusterArn().isEmpty()) { + clusterArn_ = other.clusterArn_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getTopic().isEmpty()) { + topic_ = other.topic_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getAwsRoleArn().isEmpty()) { + awsRoleArn_ = other.awsRoleArn_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (!other.getGcpServiceAccount().isEmpty()) { + gcpServiceAccount_ = other.gcpServiceAccount_; + bitField0_ |= 0x00000010; + 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: + { + state_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: + { + clusterArn_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + topic_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + awsRoleArn_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: + { + gcpServiceAccount_ = input.readStringRequireUtf8(); + 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 int state_ = 0; + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Amazon
+       * MSK ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override + public int getStateValue() { + return state_; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Amazon
+       * MSK ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param value The enum numeric value on the wire for state to set. + * @return This builder for chaining. + */ + public Builder setStateValue(int value) { + state_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Amazon
+       * MSK ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State getState() { + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State result = + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State.forNumber(state_); + return result == null + ? com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State.UNRECOGNIZED + : result; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Amazon
+       * MSK ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param value The state to set. + * @return This builder for chaining. + */ + public Builder setState(com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + state_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the Amazon
+       * MSK ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return This builder for chaining. + */ + public Builder clearState() { + bitField0_ = (bitField0_ & ~0x00000001); + state_ = 0; + onChanged(); + return this; + } + + private java.lang.Object clusterArn_ = ""; + + /** + * + * + *
+       * Required. The Amazon Resource Name (ARN) that uniquely identifies the
+       * cluster.
+       * 
+ * + * string cluster_arn = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The clusterArn. + */ + public java.lang.String getClusterArn() { + java.lang.Object ref = clusterArn_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + clusterArn_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. The Amazon Resource Name (ARN) that uniquely identifies the
+       * cluster.
+       * 
+ * + * string cluster_arn = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for clusterArn. + */ + public com.google.protobuf.ByteString getClusterArnBytes() { + java.lang.Object ref = clusterArn_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + clusterArn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. The Amazon Resource Name (ARN) that uniquely identifies the
+       * cluster.
+       * 
+ * + * string cluster_arn = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The clusterArn to set. + * @return This builder for chaining. + */ + public Builder setClusterArn(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + clusterArn_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The Amazon Resource Name (ARN) that uniquely identifies the
+       * cluster.
+       * 
+ * + * string cluster_arn = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearClusterArn() { + clusterArn_ = getDefaultInstance().getClusterArn(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The Amazon Resource Name (ARN) that uniquely identifies the
+       * cluster.
+       * 
+ * + * string cluster_arn = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for clusterArn to set. + * @return This builder for chaining. + */ + public Builder setClusterArnBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + clusterArn_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object topic_ = ""; + + /** + * + * + *
+       * Required. The name of the topic in the Amazon MSK cluster that Pub/Sub
+       * will import from.
+       * 
+ * + * + * string topic = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The topic. + */ + public java.lang.String getTopic() { + java.lang.Object ref = topic_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + topic_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. The name of the topic in the Amazon MSK cluster that Pub/Sub
+       * will import from.
+       * 
+ * + * + * string topic = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The bytes for topic. + */ + public com.google.protobuf.ByteString getTopicBytes() { + java.lang.Object ref = topic_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + topic_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. The name of the topic in the Amazon MSK cluster that Pub/Sub
+       * will import from.
+       * 
+ * + * + * string topic = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @param value The topic to set. + * @return This builder for chaining. + */ + public Builder setTopic(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + topic_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The name of the topic in the Amazon MSK cluster that Pub/Sub
+       * will import from.
+       * 
+ * + * + * string topic = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return This builder for chaining. + */ + public Builder clearTopic() { + topic_ = getDefaultInstance().getTopic(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The name of the topic in the Amazon MSK cluster that Pub/Sub
+       * will import from.
+       * 
+ * + * + * string topic = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @param value The bytes for topic to set. + * @return This builder for chaining. + */ + public Builder setTopicBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + topic_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object awsRoleArn_ = ""; + + /** + * + * + *
+       * Required. AWS role ARN to be used for Federated Identity authentication
+       * with Amazon MSK. Check the Pub/Sub docs for how to set up this role and
+       * the required permissions that need to be attached to it.
+       * 
+ * + * string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The awsRoleArn. + */ + public java.lang.String getAwsRoleArn() { + java.lang.Object ref = awsRoleArn_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + awsRoleArn_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. AWS role ARN to be used for Federated Identity authentication
+       * with Amazon MSK. Check the Pub/Sub docs for how to set up this role and
+       * the required permissions that need to be attached to it.
+       * 
+ * + * string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for awsRoleArn. + */ + public com.google.protobuf.ByteString getAwsRoleArnBytes() { + java.lang.Object ref = awsRoleArn_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + awsRoleArn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. AWS role ARN to be used for Federated Identity authentication
+       * with Amazon MSK. Check the Pub/Sub docs for how to set up this role and
+       * the required permissions that need to be attached to it.
+       * 
+ * + * string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The awsRoleArn to set. + * @return This builder for chaining. + */ + public Builder setAwsRoleArn(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + awsRoleArn_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. AWS role ARN to be used for Federated Identity authentication
+       * with Amazon MSK. Check the Pub/Sub docs for how to set up this role and
+       * the required permissions that need to be attached to it.
+       * 
+ * + * string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearAwsRoleArn() { + awsRoleArn_ = getDefaultInstance().getAwsRoleArn(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. AWS role ARN to be used for Federated Identity authentication
+       * with Amazon MSK. Check the Pub/Sub docs for how to set up this role and
+       * the required permissions that need to be attached to it.
+       * 
+ * + * string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for awsRoleArn to set. + * @return This builder for chaining. + */ + public Builder setAwsRoleArnBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + awsRoleArn_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private java.lang.Object gcpServiceAccount_ = ""; + + /** + * + * + *
+       * Required. The GCP service account to be used for Federated Identity
+       * authentication with Amazon MSK (via a `AssumeRoleWithWebIdentity` call
+       * for the provided role). The `aws_role_arn` must be set up with
+       * `accounts.google.com:sub` equals to this service account number.
+       * 
+ * + * string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The gcpServiceAccount. + */ + public java.lang.String getGcpServiceAccount() { + java.lang.Object ref = gcpServiceAccount_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + gcpServiceAccount_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. The GCP service account to be used for Federated Identity
+       * authentication with Amazon MSK (via a `AssumeRoleWithWebIdentity` call
+       * for the provided role). The `aws_role_arn` must be set up with
+       * `accounts.google.com:sub` equals to this service account number.
+       * 
+ * + * string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for gcpServiceAccount. + */ + public com.google.protobuf.ByteString getGcpServiceAccountBytes() { + java.lang.Object ref = gcpServiceAccount_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + gcpServiceAccount_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. The GCP service account to be used for Federated Identity
+       * authentication with Amazon MSK (via a `AssumeRoleWithWebIdentity` call
+       * for the provided role). The `aws_role_arn` must be set up with
+       * `accounts.google.com:sub` equals to this service account number.
+       * 
+ * + * string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The gcpServiceAccount to set. + * @return This builder for chaining. + */ + public Builder setGcpServiceAccount(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + gcpServiceAccount_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The GCP service account to be used for Federated Identity
+       * authentication with Amazon MSK (via a `AssumeRoleWithWebIdentity` call
+       * for the provided role). The `aws_role_arn` must be set up with
+       * `accounts.google.com:sub` equals to this service account number.
+       * 
+ * + * string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearGcpServiceAccount() { + gcpServiceAccount_ = getDefaultInstance().getGcpServiceAccount(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The GCP service account to be used for Federated Identity
+       * authentication with Amazon MSK (via a `AssumeRoleWithWebIdentity` call
+       * for the provided role). The `aws_role_arn` must be set up with
+       * `accounts.google.com:sub` equals to this service account number.
+       * 
+ * + * string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for gcpServiceAccount to set. + * @return This builder for chaining. + */ + public Builder setGcpServiceAccountBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + gcpServiceAccount_ = value; + bitField0_ |= 0x00000010; + 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.pubsub.v1.IngestionDataSourceSettings.AwsMsk) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionDataSourceSettings.AwsMsk) + private static final com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk(); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AwsMsk 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.pubsub.v1.IngestionDataSourceSettings.AwsMsk getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ConfluentCloudOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the
+     * Confluent Cloud ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + int getStateValue(); + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the
+     * Confluent Cloud ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State getState(); + + /** + * + * + *
+     * Required. The address of the bootstrap server. The format is url:port.
+     * 
+ * + * string bootstrap_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bootstrapServer. + */ + java.lang.String getBootstrapServer(); + + /** + * + * + *
+     * Required. The address of the bootstrap server. The format is url:port.
+     * 
+ * + * string bootstrap_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for bootstrapServer. + */ + com.google.protobuf.ByteString getBootstrapServerBytes(); + + /** + * + * + *
+     * Required. The id of the cluster.
+     * 
+ * + * string cluster_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The clusterId. + */ + java.lang.String getClusterId(); + + /** + * + * + *
+     * Required. The id of the cluster.
+     * 
+ * + * string cluster_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for clusterId. + */ + com.google.protobuf.ByteString getClusterIdBytes(); + + /** + * + * + *
+     * Required. The name of the topic in the Confluent Cloud cluster that
+     * Pub/Sub will import from.
+     * 
+ * + * string topic = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The topic. + */ + java.lang.String getTopic(); + + /** + * + * + *
+     * Required. The name of the topic in the Confluent Cloud cluster that
+     * Pub/Sub will import from.
+     * 
+ * + * string topic = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for topic. + */ + com.google.protobuf.ByteString getTopicBytes(); + + /** + * + * + *
+     * Required. The id of the identity pool to be used for Federated Identity
+     * authentication with Confluent Cloud. See
+     * https://docs.confluent.io/cloud/current/security/authenticate/workload-identities/identity-providers/oauth/identity-pools.html#add-oauth-identity-pools.
+     * 
+ * + * string identity_pool_id = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The identityPoolId. + */ + java.lang.String getIdentityPoolId(); + + /** + * + * + *
+     * Required. The id of the identity pool to be used for Federated Identity
+     * authentication with Confluent Cloud. See
+     * https://docs.confluent.io/cloud/current/security/authenticate/workload-identities/identity-providers/oauth/identity-pools.html#add-oauth-identity-pools.
+     * 
+ * + * string identity_pool_id = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for identityPoolId. + */ + com.google.protobuf.ByteString getIdentityPoolIdBytes(); + + /** + * + * + *
+     * Required. The GCP service account to be used for Federated Identity
+     * authentication with `identity_pool_id`.
+     * 
+ * + * string gcp_service_account = 6 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The gcpServiceAccount. + */ + java.lang.String getGcpServiceAccount(); + + /** + * + * + *
+     * Required. The GCP service account to be used for Federated Identity
+     * authentication with `identity_pool_id`.
+     * 
+ * + * string gcp_service_account = 6 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for gcpServiceAccount. + */ + com.google.protobuf.ByteString getGcpServiceAccountBytes(); + } + + /** + * + * + *
+   * Ingestion settings for Confluent Cloud.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud} + */ + public static final class ConfluentCloud extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud) + ConfluentCloudOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ConfluentCloud.newBuilder() to construct. + private ConfluentCloud(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ConfluentCloud() { + state_ = 0; + bootstrapServer_ = ""; + clusterId_ = ""; + topic_ = ""; + identityPoolId_ = ""; + gcpServiceAccount_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ConfluentCloud(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_ConfluentCloud_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_ConfluentCloud_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.class, + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.Builder.class); + } + + /** + * + * + *
+     * Possible states for managed ingestion from Confluent Cloud.
+     * 
+ * + * Protobuf enum {@code google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State} + */ + public enum State implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+       * Default value. This value is unused.
+       * 
+ * + * STATE_UNSPECIFIED = 0; + */ + STATE_UNSPECIFIED(0), + /** + * + * + *
+       * Ingestion is active.
+       * 
+ * + * ACTIVE = 1; + */ + ACTIVE(1), + /** + * + * + *
+       * Permission denied encountered while consuming data from Confluent
+       * Cloud.
+       * 
+ * + * CONFLUENT_CLOUD_PERMISSION_DENIED = 2; + */ + CONFLUENT_CLOUD_PERMISSION_DENIED(2), + /** + * + * + *
+       * Permission denied encountered while publishing to the topic.
+       * 
+ * + * PUBLISH_PERMISSION_DENIED = 3; + */ + PUBLISH_PERMISSION_DENIED(3), + /** + * + * + *
+       * The provided bootstrap server address is unreachable.
+       * 
+ * + * UNREACHABLE_BOOTSTRAP_SERVER = 4; + */ + UNREACHABLE_BOOTSTRAP_SERVER(4), + /** + * + * + *
+       * The provided cluster wasn't found.
+       * 
+ * + * CLUSTER_NOT_FOUND = 5; + */ + CLUSTER_NOT_FOUND(5), + /** + * + * + *
+       * The provided topic wasn't found.
+       * 
+ * + * TOPIC_NOT_FOUND = 6; + */ + TOPIC_NOT_FOUND(6), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+       * Default value. This value is unused.
+       * 
+ * + * STATE_UNSPECIFIED = 0; + */ + public static final int STATE_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+       * Ingestion is active.
+       * 
+ * + * ACTIVE = 1; + */ + public static final int ACTIVE_VALUE = 1; + + /** + * + * + *
+       * Permission denied encountered while consuming data from Confluent
+       * Cloud.
+       * 
+ * + * CONFLUENT_CLOUD_PERMISSION_DENIED = 2; + */ + public static final int CONFLUENT_CLOUD_PERMISSION_DENIED_VALUE = 2; + + /** + * + * + *
+       * Permission denied encountered while publishing to the topic.
+       * 
+ * + * PUBLISH_PERMISSION_DENIED = 3; + */ + public static final int PUBLISH_PERMISSION_DENIED_VALUE = 3; + + /** + * + * + *
+       * The provided bootstrap server address is unreachable.
+       * 
+ * + * UNREACHABLE_BOOTSTRAP_SERVER = 4; + */ + public static final int UNREACHABLE_BOOTSTRAP_SERVER_VALUE = 4; + + /** + * + * + *
+       * The provided cluster wasn't found.
+       * 
+ * + * CLUSTER_NOT_FOUND = 5; + */ + public static final int CLUSTER_NOT_FOUND_VALUE = 5; + + /** + * + * + *
+       * The provided topic wasn't found.
+       * 
+ * + * TOPIC_NOT_FOUND = 6; + */ + public static final int TOPIC_NOT_FOUND_VALUE = 6; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static State valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static State forNumber(int value) { + switch (value) { + case 0: + return STATE_UNSPECIFIED; + case 1: + return ACTIVE; + case 2: + return CONFLUENT_CLOUD_PERMISSION_DENIED; + case 3: + return PUBLISH_PERMISSION_DENIED; + case 4: + return UNREACHABLE_BOOTSTRAP_SERVER; + case 5: + return CLUSTER_NOT_FOUND; + case 6: + return TOPIC_NOT_FOUND; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public State findValueByNumber(int number) { + return State.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final State[] VALUES = values(); + + public static State valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private State(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State) + } + + public static final int STATE_FIELD_NUMBER = 1; + private int state_ = 0; + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the
+     * Confluent Cloud ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override + public int getStateValue() { + return state_; + } + + /** + * + * + *
+     * Output only. An output-only field that indicates the state of the
+     * Confluent Cloud ingestion source.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State getState() { + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State result = + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State.forNumber(state_); + return result == null + ? com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State.UNRECOGNIZED + : result; + } + + public static final int BOOTSTRAP_SERVER_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object bootstrapServer_ = ""; + + /** + * + * + *
+     * Required. The address of the bootstrap server. The format is url:port.
+     * 
+ * + * string bootstrap_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bootstrapServer. + */ + @java.lang.Override + public java.lang.String getBootstrapServer() { + java.lang.Object ref = bootstrapServer_; + 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(); + bootstrapServer_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. The address of the bootstrap server. The format is url:port.
+     * 
+ * + * string bootstrap_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for bootstrapServer. + */ + @java.lang.Override + public com.google.protobuf.ByteString getBootstrapServerBytes() { + java.lang.Object ref = bootstrapServer_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + bootstrapServer_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CLUSTER_ID_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object clusterId_ = ""; + + /** + * + * + *
+     * Required. The id of the cluster.
+     * 
+ * + * string cluster_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The clusterId. + */ + @java.lang.Override + public java.lang.String getClusterId() { + java.lang.Object ref = clusterId_; + 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(); + clusterId_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. The id of the cluster.
+     * 
+ * + * string cluster_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for clusterId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getClusterIdBytes() { + java.lang.Object ref = clusterId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + clusterId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TOPIC_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object topic_ = ""; + + /** + * + * + *
+     * Required. The name of the topic in the Confluent Cloud cluster that
+     * Pub/Sub will import from.
+     * 
+ * + * string topic = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The topic. + */ + @java.lang.Override + public java.lang.String getTopic() { + java.lang.Object ref = topic_; + 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(); + topic_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. The name of the topic in the Confluent Cloud cluster that
+     * Pub/Sub will import from.
+     * 
+ * + * string topic = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for topic. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTopicBytes() { + java.lang.Object ref = topic_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + topic_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int IDENTITY_POOL_ID_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private volatile java.lang.Object identityPoolId_ = ""; + + /** + * + * + *
+     * Required. The id of the identity pool to be used for Federated Identity
+     * authentication with Confluent Cloud. See
+     * https://docs.confluent.io/cloud/current/security/authenticate/workload-identities/identity-providers/oauth/identity-pools.html#add-oauth-identity-pools.
+     * 
+ * + * string identity_pool_id = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The identityPoolId. + */ + @java.lang.Override + public java.lang.String getIdentityPoolId() { + java.lang.Object ref = identityPoolId_; + 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(); + identityPoolId_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. The id of the identity pool to be used for Federated Identity
+     * authentication with Confluent Cloud. See
+     * https://docs.confluent.io/cloud/current/security/authenticate/workload-identities/identity-providers/oauth/identity-pools.html#add-oauth-identity-pools.
+     * 
+ * + * string identity_pool_id = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for identityPoolId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getIdentityPoolIdBytes() { + java.lang.Object ref = identityPoolId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + identityPoolId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int GCP_SERVICE_ACCOUNT_FIELD_NUMBER = 6; + + @SuppressWarnings("serial") + private volatile java.lang.Object gcpServiceAccount_ = ""; + + /** + * + * + *
+     * Required. The GCP service account to be used for Federated Identity
+     * authentication with `identity_pool_id`.
+     * 
+ * + * string gcp_service_account = 6 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The gcpServiceAccount. + */ + @java.lang.Override + public java.lang.String getGcpServiceAccount() { + java.lang.Object ref = gcpServiceAccount_; + 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(); + gcpServiceAccount_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. The GCP service account to be used for Federated Identity
+     * authentication with `identity_pool_id`.
+     * 
+ * + * string gcp_service_account = 6 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for gcpServiceAccount. + */ + @java.lang.Override + public com.google.protobuf.ByteString getGcpServiceAccountBytes() { + java.lang.Object ref = gcpServiceAccount_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + gcpServiceAccount_ = 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 (state_ + != com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State.STATE_UNSPECIFIED + .getNumber()) { + output.writeEnum(1, state_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(bootstrapServer_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, bootstrapServer_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, clusterId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(topic_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, topic_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(identityPoolId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, identityPoolId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(gcpServiceAccount_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, gcpServiceAccount_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (state_ + != com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State.STATE_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, state_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(bootstrapServer_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, bootstrapServer_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, clusterId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(topic_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, topic_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(identityPoolId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, identityPoolId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(gcpServiceAccount_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, gcpServiceAccount_); + } + 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.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud other = + (com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud) obj; + + if (state_ != other.state_) return false; + if (!getBootstrapServer().equals(other.getBootstrapServer())) return false; + if (!getClusterId().equals(other.getClusterId())) return false; + if (!getTopic().equals(other.getTopic())) return false; + if (!getIdentityPoolId().equals(other.getIdentityPoolId())) return false; + if (!getGcpServiceAccount().equals(other.getGcpServiceAccount())) 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) + STATE_FIELD_NUMBER; + hash = (53 * hash) + state_; + hash = (37 * hash) + BOOTSTRAP_SERVER_FIELD_NUMBER; + hash = (53 * hash) + getBootstrapServer().hashCode(); + hash = (37 * hash) + CLUSTER_ID_FIELD_NUMBER; + hash = (53 * hash) + getClusterId().hashCode(); + hash = (37 * hash) + TOPIC_FIELD_NUMBER; + hash = (53 * hash) + getTopic().hashCode(); + hash = (37 * hash) + IDENTITY_POOL_ID_FIELD_NUMBER; + hash = (53 * hash) + getIdentityPoolId().hashCode(); + hash = (37 * hash) + GCP_SERVICE_ACCOUNT_FIELD_NUMBER; + hash = (53 * hash) + getGcpServiceAccount().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud 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.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud 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.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud + 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.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud 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.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud 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; + } + + /** + * + * + *
+     * Ingestion settings for Confluent Cloud.
+     * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud) + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloudOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_ConfluentCloud_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_ConfluentCloud_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.class, + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.Builder.class); + } + + // Construct using + // com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + state_ = 0; + bootstrapServer_ = ""; + clusterId_ = ""; + topic_ = ""; + identityPoolId_ = ""; + gcpServiceAccount_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_ConfluentCloud_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud + getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud build() { + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud buildPartial() { + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud result = + new com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.state_ = state_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.bootstrapServer_ = bootstrapServer_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.clusterId_ = clusterId_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.topic_ = topic_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.identityPoolId_ = identityPoolId_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.gcpServiceAccount_ = gcpServiceAccount_; + } + } + + @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.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud) { + return mergeFrom((com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud other) { + if (other + == com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.getDefaultInstance()) + return this; + if (other.state_ != 0) { + setStateValue(other.getStateValue()); + } + if (!other.getBootstrapServer().isEmpty()) { + bootstrapServer_ = other.bootstrapServer_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getClusterId().isEmpty()) { + clusterId_ = other.clusterId_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getTopic().isEmpty()) { + topic_ = other.topic_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (!other.getIdentityPoolId().isEmpty()) { + identityPoolId_ = other.identityPoolId_; + bitField0_ |= 0x00000010; + onChanged(); + } + if (!other.getGcpServiceAccount().isEmpty()) { + gcpServiceAccount_ = other.gcpServiceAccount_; + 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 8: + { + state_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: + { + bootstrapServer_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + clusterId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + topic_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: + { + identityPoolId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 50: + { + gcpServiceAccount_ = 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 int state_ = 0; + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the
+       * Confluent Cloud ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override + public int getStateValue() { + return state_; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the
+       * Confluent Cloud ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param value The enum numeric value on the wire for state to set. + * @return This builder for chaining. + */ + public Builder setStateValue(int value) { + state_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the
+       * Confluent Cloud ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State getState() { + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State result = + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State.forNumber(state_); + return result == null + ? com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State.UNRECOGNIZED + : result; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the
+       * Confluent Cloud ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param value The state to set. + * @return This builder for chaining. + */ + public Builder setState( + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + state_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+       * Output only. An output-only field that indicates the state of the
+       * Confluent Cloud ingestion source.
+       * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return This builder for chaining. + */ + public Builder clearState() { + bitField0_ = (bitField0_ & ~0x00000001); + state_ = 0; + onChanged(); + return this; + } + + private java.lang.Object bootstrapServer_ = ""; + + /** + * + * + *
+       * Required. The address of the bootstrap server. The format is url:port.
+       * 
+ * + * string bootstrap_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bootstrapServer. + */ + public java.lang.String getBootstrapServer() { + java.lang.Object ref = bootstrapServer_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + bootstrapServer_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. The address of the bootstrap server. The format is url:port.
+       * 
+ * + * string bootstrap_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for bootstrapServer. + */ + public com.google.protobuf.ByteString getBootstrapServerBytes() { + java.lang.Object ref = bootstrapServer_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + bootstrapServer_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. The address of the bootstrap server. The format is url:port.
+       * 
+ * + * string bootstrap_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bootstrapServer to set. + * @return This builder for chaining. + */ + public Builder setBootstrapServer(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bootstrapServer_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The address of the bootstrap server. The format is url:port.
+       * 
+ * + * string bootstrap_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearBootstrapServer() { + bootstrapServer_ = getDefaultInstance().getBootstrapServer(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The address of the bootstrap server. The format is url:port.
+       * 
+ * + * string bootstrap_server = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for bootstrapServer to set. + * @return This builder for chaining. + */ + public Builder setBootstrapServerBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + bootstrapServer_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object clusterId_ = ""; + + /** + * + * + *
+       * Required. The id of the cluster.
+       * 
+ * + * string cluster_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The clusterId. + */ + public java.lang.String getClusterId() { + java.lang.Object ref = clusterId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + clusterId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. The id of the cluster.
+       * 
+ * + * string cluster_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for clusterId. + */ + public com.google.protobuf.ByteString getClusterIdBytes() { + java.lang.Object ref = clusterId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + clusterId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. The id of the cluster.
+       * 
+ * + * string cluster_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The clusterId to set. + * @return This builder for chaining. + */ + public Builder setClusterId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + clusterId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The id of the cluster.
+       * 
+ * + * string cluster_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearClusterId() { + clusterId_ = getDefaultInstance().getClusterId(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The id of the cluster.
+       * 
+ * + * string cluster_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for clusterId to set. + * @return This builder for chaining. + */ + public Builder setClusterIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + clusterId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object topic_ = ""; + + /** + * + * + *
+       * Required. The name of the topic in the Confluent Cloud cluster that
+       * Pub/Sub will import from.
+       * 
+ * + * string topic = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The topic. + */ + public java.lang.String getTopic() { + java.lang.Object ref = topic_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + topic_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. The name of the topic in the Confluent Cloud cluster that
+       * Pub/Sub will import from.
+       * 
+ * + * string topic = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for topic. + */ + public com.google.protobuf.ByteString getTopicBytes() { + java.lang.Object ref = topic_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + topic_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. The name of the topic in the Confluent Cloud cluster that
+       * Pub/Sub will import from.
+       * 
+ * + * string topic = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The topic to set. + * @return This builder for chaining. + */ + public Builder setTopic(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + topic_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The name of the topic in the Confluent Cloud cluster that
+       * Pub/Sub will import from.
+       * 
+ * + * string topic = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearTopic() { + topic_ = getDefaultInstance().getTopic(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The name of the topic in the Confluent Cloud cluster that
+       * Pub/Sub will import from.
+       * 
+ * + * string topic = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for topic to set. + * @return This builder for chaining. + */ + public Builder setTopicBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + topic_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private java.lang.Object identityPoolId_ = ""; + + /** + * + * + *
+       * Required. The id of the identity pool to be used for Federated Identity
+       * authentication with Confluent Cloud. See
+       * https://docs.confluent.io/cloud/current/security/authenticate/workload-identities/identity-providers/oauth/identity-pools.html#add-oauth-identity-pools.
+       * 
+ * + * string identity_pool_id = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The identityPoolId. + */ + public java.lang.String getIdentityPoolId() { + java.lang.Object ref = identityPoolId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + identityPoolId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. The id of the identity pool to be used for Federated Identity
+       * authentication with Confluent Cloud. See
+       * https://docs.confluent.io/cloud/current/security/authenticate/workload-identities/identity-providers/oauth/identity-pools.html#add-oauth-identity-pools.
+       * 
+ * + * string identity_pool_id = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for identityPoolId. + */ + public com.google.protobuf.ByteString getIdentityPoolIdBytes() { + java.lang.Object ref = identityPoolId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + identityPoolId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. The id of the identity pool to be used for Federated Identity
+       * authentication with Confluent Cloud. See
+       * https://docs.confluent.io/cloud/current/security/authenticate/workload-identities/identity-providers/oauth/identity-pools.html#add-oauth-identity-pools.
+       * 
+ * + * string identity_pool_id = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The identityPoolId to set. + * @return This builder for chaining. + */ + public Builder setIdentityPoolId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + identityPoolId_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The id of the identity pool to be used for Federated Identity
+       * authentication with Confluent Cloud. See
+       * https://docs.confluent.io/cloud/current/security/authenticate/workload-identities/identity-providers/oauth/identity-pools.html#add-oauth-identity-pools.
+       * 
+ * + * string identity_pool_id = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearIdentityPoolId() { + identityPoolId_ = getDefaultInstance().getIdentityPoolId(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The id of the identity pool to be used for Federated Identity
+       * authentication with Confluent Cloud. See
+       * https://docs.confluent.io/cloud/current/security/authenticate/workload-identities/identity-providers/oauth/identity-pools.html#add-oauth-identity-pools.
+       * 
+ * + * string identity_pool_id = 5 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for identityPoolId to set. + * @return This builder for chaining. + */ + public Builder setIdentityPoolIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + identityPoolId_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + private java.lang.Object gcpServiceAccount_ = ""; + + /** + * + * + *
+       * Required. The GCP service account to be used for Federated Identity
+       * authentication with `identity_pool_id`.
+       * 
+ * + * string gcp_service_account = 6 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The gcpServiceAccount. + */ + public java.lang.String getGcpServiceAccount() { + java.lang.Object ref = gcpServiceAccount_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + gcpServiceAccount_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. The GCP service account to be used for Federated Identity
+       * authentication with `identity_pool_id`.
+       * 
+ * + * string gcp_service_account = 6 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for gcpServiceAccount. + */ + public com.google.protobuf.ByteString getGcpServiceAccountBytes() { + java.lang.Object ref = gcpServiceAccount_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + gcpServiceAccount_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. The GCP service account to be used for Federated Identity
+       * authentication with `identity_pool_id`.
+       * 
+ * + * string gcp_service_account = 6 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The gcpServiceAccount to set. + * @return This builder for chaining. + */ + public Builder setGcpServiceAccount(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + gcpServiceAccount_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The GCP service account to be used for Federated Identity
+       * authentication with `identity_pool_id`.
+       * 
+ * + * string gcp_service_account = 6 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearGcpServiceAccount() { + gcpServiceAccount_ = getDefaultInstance().getGcpServiceAccount(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The GCP service account to be used for Federated Identity
+       * authentication with `identity_pool_id`.
+       * 
+ * + * string gcp_service_account = 6 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for gcpServiceAccount to set. + * @return This builder for chaining. + */ + public Builder setGcpServiceAccountBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + gcpServiceAccount_ = 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.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud) + private static final com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud(); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ConfluentCloud 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.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + private int bitField0_; + private int sourceCase_ = 0; + + @SuppressWarnings("serial") + private java.lang.Object source_; + + public enum SourceCase + implements + com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + AWS_KINESIS(1), + CLOUD_STORAGE(2), + AZURE_EVENT_HUBS(3), + AWS_MSK(5), + CONFLUENT_CLOUD(6), + SOURCE_NOT_SET(0); + private final int value; + + private SourceCase(int value) { + this.value = value; + } + + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static SourceCase valueOf(int value) { + return forNumber(value); + } + + public static SourceCase forNumber(int value) { + switch (value) { + case 1: + return AWS_KINESIS; + case 2: + return CLOUD_STORAGE; + case 3: + return AZURE_EVENT_HUBS; + case 5: + return AWS_MSK; + case 6: + return CONFLUENT_CLOUD; + case 0: + return SOURCE_NOT_SET; + default: + return null; + } + } + + public int getNumber() { + return this.value; + } + }; + + public SourceCase getSourceCase() { + return SourceCase.forNumber(sourceCase_); + } + + public static final int AWS_KINESIS_FIELD_NUMBER = 1; + + /** + * + * + *
+   * Optional. Amazon Kinesis Data Streams.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis aws_kinesis = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the awsKinesis field is set. + */ + @java.lang.Override + public boolean hasAwsKinesis() { + return sourceCase_ == 1; + } + + /** + * + * + *
+   * Optional. Amazon Kinesis Data Streams.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis aws_kinesis = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The awsKinesis. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis getAwsKinesis() { + if (sourceCase_ == 1) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.getDefaultInstance(); + } + + /** + * + * + *
+   * Optional. Amazon Kinesis Data Streams.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis aws_kinesis = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesisOrBuilder + getAwsKinesisOrBuilder() { + if (sourceCase_ == 1) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.getDefaultInstance(); + } + + public static final int CLOUD_STORAGE_FIELD_NUMBER = 2; + + /** + * + * + *
+   * Optional. Cloud Storage.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage cloud_storage = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the cloudStorage field is set. + */ + @java.lang.Override + public boolean hasCloudStorage() { + return sourceCase_ == 2; + } + + /** + * + * + *
+   * Optional. Cloud Storage.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage cloud_storage = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The cloudStorage. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage getCloudStorage() { + if (sourceCase_ == 2) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.getDefaultInstance(); + } + + /** + * + * + *
+   * Optional. Cloud Storage.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage cloud_storage = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorageOrBuilder + getCloudStorageOrBuilder() { + if (sourceCase_ == 2) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.getDefaultInstance(); + } + + public static final int AZURE_EVENT_HUBS_FIELD_NUMBER = 3; + + /** + * + * + *
+   * Optional. Azure Event Hubs.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs azure_event_hubs = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the azureEventHubs field is set. + */ + @java.lang.Override + public boolean hasAzureEventHubs() { + return sourceCase_ == 3; + } + + /** + * + * + *
+   * Optional. Azure Event Hubs.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs azure_event_hubs = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The azureEventHubs. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs getAzureEventHubs() { + if (sourceCase_ == 3) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.getDefaultInstance(); + } + + /** + * + * + *
+   * Optional. Azure Event Hubs.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs azure_event_hubs = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubsOrBuilder + getAzureEventHubsOrBuilder() { + if (sourceCase_ == 3) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.getDefaultInstance(); + } + + public static final int AWS_MSK_FIELD_NUMBER = 5; + + /** + * + * + *
+   * Optional. Amazon MSK.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk aws_msk = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the awsMsk field is set. + */ + @java.lang.Override + public boolean hasAwsMsk() { + return sourceCase_ == 5; + } + + /** + * + * + *
+   * Optional. Amazon MSK.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk aws_msk = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The awsMsk. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk getAwsMsk() { + if (sourceCase_ == 5) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.getDefaultInstance(); + } + + /** + * + * + *
+   * Optional. Amazon MSK.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk aws_msk = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsMskOrBuilder getAwsMskOrBuilder() { + if (sourceCase_ == 5) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.getDefaultInstance(); + } + + public static final int CONFLUENT_CLOUD_FIELD_NUMBER = 6; + + /** + * + * + *
+   * Optional. Confluent Cloud.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud confluent_cloud = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the confluentCloud field is set. + */ + @java.lang.Override + public boolean hasConfluentCloud() { + return sourceCase_ == 6; + } + + /** + * + * + *
+   * Optional. Confluent Cloud.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud confluent_cloud = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The confluentCloud. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud getConfluentCloud() { + if (sourceCase_ == 6) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.getDefaultInstance(); + } + + /** + * + * + *
+   * Optional. Confluent Cloud.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud confluent_cloud = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloudOrBuilder + getConfluentCloudOrBuilder() { + if (sourceCase_ == 6) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.getDefaultInstance(); + } + + public static final int PLATFORM_LOGS_SETTINGS_FIELD_NUMBER = 4; + private com.google.pubsub.v1.PlatformLogsSettings platformLogsSettings_; + + /** + * + * + *
+   * Optional. Platform Logs settings. If unset, no Platform Logs will be
+   * generated.
+   * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings platform_logs_settings = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the platformLogsSettings field is set. + */ + @java.lang.Override + public boolean hasPlatformLogsSettings() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Optional. Platform Logs settings. If unset, no Platform Logs will be
+   * generated.
+   * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings platform_logs_settings = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The platformLogsSettings. + */ + @java.lang.Override + public com.google.pubsub.v1.PlatformLogsSettings getPlatformLogsSettings() { + return platformLogsSettings_ == null + ? com.google.pubsub.v1.PlatformLogsSettings.getDefaultInstance() + : platformLogsSettings_; + } + + /** + * + * + *
+   * Optional. Platform Logs settings. If unset, no Platform Logs will be
+   * generated.
+   * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings platform_logs_settings = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.PlatformLogsSettingsOrBuilder getPlatformLogsSettingsOrBuilder() { + return platformLogsSettings_ == null + ? com.google.pubsub.v1.PlatformLogsSettings.getDefaultInstance() + : platformLogsSettings_; + } + + 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 (sourceCase_ == 1) { + output.writeMessage(1, (com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis) source_); + } + if (sourceCase_ == 2) { + output.writeMessage( + 2, (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage) source_); + } + if (sourceCase_ == 3) { + output.writeMessage( + 3, (com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs) source_); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(4, getPlatformLogsSettings()); + } + if (sourceCase_ == 5) { + output.writeMessage(5, (com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk) source_); + } + if (sourceCase_ == 6) { + output.writeMessage( + 6, (com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud) source_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sourceCase_ == 1) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 1, (com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis) source_); + } + if (sourceCase_ == 2) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 2, (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage) source_); + } + if (sourceCase_ == 3) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 3, (com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs) source_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(4, getPlatformLogsSettings()); + } + if (sourceCase_ == 5) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 5, (com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk) source_); + } + if (sourceCase_ == 6) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 6, (com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud) source_); + } + 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.pubsub.v1.IngestionDataSourceSettings)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionDataSourceSettings other = + (com.google.pubsub.v1.IngestionDataSourceSettings) obj; + + if (hasPlatformLogsSettings() != other.hasPlatformLogsSettings()) return false; + if (hasPlatformLogsSettings()) { + if (!getPlatformLogsSettings().equals(other.getPlatformLogsSettings())) return false; + } + if (!getSourceCase().equals(other.getSourceCase())) return false; + switch (sourceCase_) { + case 1: + if (!getAwsKinesis().equals(other.getAwsKinesis())) return false; + break; + case 2: + if (!getCloudStorage().equals(other.getCloudStorage())) return false; + break; + case 3: + if (!getAzureEventHubs().equals(other.getAzureEventHubs())) return false; + break; + case 5: + if (!getAwsMsk().equals(other.getAwsMsk())) return false; + break; + case 6: + if (!getConfluentCloud().equals(other.getConfluentCloud())) return false; + break; + case 0: + default: + } + 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 (hasPlatformLogsSettings()) { + hash = (37 * hash) + PLATFORM_LOGS_SETTINGS_FIELD_NUMBER; + hash = (53 * hash) + getPlatformLogsSettings().hashCode(); + } + switch (sourceCase_) { + case 1: + hash = (37 * hash) + AWS_KINESIS_FIELD_NUMBER; + hash = (53 * hash) + getAwsKinesis().hashCode(); + break; + case 2: + hash = (37 * hash) + CLOUD_STORAGE_FIELD_NUMBER; + hash = (53 * hash) + getCloudStorage().hashCode(); + break; + case 3: + hash = (37 * hash) + AZURE_EVENT_HUBS_FIELD_NUMBER; + hash = (53 * hash) + getAzureEventHubs().hashCode(); + break; + case 5: + hash = (37 * hash) + AWS_MSK_FIELD_NUMBER; + hash = (53 * hash) + getAwsMsk().hashCode(); + break; + case 6: + hash = (37 * hash) + CONFLUENT_CLOUD_FIELD_NUMBER; + hash = (53 * hash) + getConfluentCloud().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings 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.pubsub.v1.IngestionDataSourceSettings parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings 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.pubsub.v1.IngestionDataSourceSettings parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings 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.pubsub.v1.IngestionDataSourceSettings parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings 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.pubsub.v1.IngestionDataSourceSettings 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; + } + + /** + * + * + *
+   * Settings for an ingestion data source on a topic.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionDataSourceSettings} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionDataSourceSettings) + com.google.pubsub.v1.IngestionDataSourceSettingsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionDataSourceSettings.class, + com.google.pubsub.v1.IngestionDataSourceSettings.Builder.class); + } + + // Construct using com.google.pubsub.v1.IngestionDataSourceSettings.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getPlatformLogsSettingsFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (awsKinesisBuilder_ != null) { + awsKinesisBuilder_.clear(); + } + if (cloudStorageBuilder_ != null) { + cloudStorageBuilder_.clear(); + } + if (azureEventHubsBuilder_ != null) { + azureEventHubsBuilder_.clear(); + } + if (awsMskBuilder_ != null) { + awsMskBuilder_.clear(); + } + if (confluentCloudBuilder_ != null) { + confluentCloudBuilder_.clear(); + } + platformLogsSettings_ = null; + if (platformLogsSettingsBuilder_ != null) { + platformLogsSettingsBuilder_.dispose(); + platformLogsSettingsBuilder_ = null; + } + sourceCase_ = 0; + source_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionDataSourceSettings_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionDataSourceSettings.getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings build() { + com.google.pubsub.v1.IngestionDataSourceSettings result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings buildPartial() { + com.google.pubsub.v1.IngestionDataSourceSettings result = + new com.google.pubsub.v1.IngestionDataSourceSettings(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0(com.google.pubsub.v1.IngestionDataSourceSettings result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000020) != 0)) { + result.platformLogsSettings_ = + platformLogsSettingsBuilder_ == null + ? platformLogsSettings_ + : platformLogsSettingsBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + result.bitField0_ |= to_bitField0_; + } + + private void buildPartialOneofs(com.google.pubsub.v1.IngestionDataSourceSettings result) { + result.sourceCase_ = sourceCase_; + result.source_ = this.source_; + if (sourceCase_ == 1 && awsKinesisBuilder_ != null) { + result.source_ = awsKinesisBuilder_.build(); + } + if (sourceCase_ == 2 && cloudStorageBuilder_ != null) { + result.source_ = cloudStorageBuilder_.build(); + } + if (sourceCase_ == 3 && azureEventHubsBuilder_ != null) { + result.source_ = azureEventHubsBuilder_.build(); + } + if (sourceCase_ == 5 && awsMskBuilder_ != null) { + result.source_ = awsMskBuilder_.build(); + } + if (sourceCase_ == 6 && confluentCloudBuilder_ != null) { + result.source_ = confluentCloudBuilder_.build(); + } + } + + @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.pubsub.v1.IngestionDataSourceSettings) { + return mergeFrom((com.google.pubsub.v1.IngestionDataSourceSettings) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.pubsub.v1.IngestionDataSourceSettings other) { + if (other == com.google.pubsub.v1.IngestionDataSourceSettings.getDefaultInstance()) + return this; + if (other.hasPlatformLogsSettings()) { + mergePlatformLogsSettings(other.getPlatformLogsSettings()); + } + switch (other.getSourceCase()) { + case AWS_KINESIS: + { + mergeAwsKinesis(other.getAwsKinesis()); + break; + } + case CLOUD_STORAGE: + { + mergeCloudStorage(other.getCloudStorage()); + break; + } + case AZURE_EVENT_HUBS: + { + mergeAzureEventHubs(other.getAzureEventHubs()); + break; + } + case AWS_MSK: + { + mergeAwsMsk(other.getAwsMsk()); + break; + } + case CONFLUENT_CLOUD: + { + mergeConfluentCloud(other.getConfluentCloud()); + break; + } + case SOURCE_NOT_SET: + { + break; + } + } + 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(getAwsKinesisFieldBuilder().getBuilder(), extensionRegistry); + sourceCase_ = 1; + break; + } // case 10 + case 18: + { + input.readMessage(getCloudStorageFieldBuilder().getBuilder(), extensionRegistry); + sourceCase_ = 2; + break; + } // case 18 + case 26: + { + input.readMessage(getAzureEventHubsFieldBuilder().getBuilder(), extensionRegistry); + sourceCase_ = 3; + break; + } // case 26 + case 34: + { + input.readMessage( + getPlatformLogsSettingsFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000020; + break; + } // case 34 + case 42: + { + input.readMessage(getAwsMskFieldBuilder().getBuilder(), extensionRegistry); + sourceCase_ = 5; + break; + } // case 42 + case 50: + { + input.readMessage(getConfluentCloudFieldBuilder().getBuilder(), extensionRegistry); + sourceCase_ = 6; + 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 sourceCase_ = 0; + private java.lang.Object source_; + + public SourceCase getSourceCase() { + return SourceCase.forNumber(sourceCase_); + } + + public Builder clearSource() { + sourceCase_ = 0; + source_ = null; + onChanged(); + return this; + } + + private int bitField0_; + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis, + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesisOrBuilder> + awsKinesisBuilder_; + + /** + * + * + *
+     * Optional. Amazon Kinesis Data Streams.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis aws_kinesis = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the awsKinesis field is set. + */ + @java.lang.Override + public boolean hasAwsKinesis() { + return sourceCase_ == 1; + } + + /** + * + * + *
+     * Optional. Amazon Kinesis Data Streams.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis aws_kinesis = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The awsKinesis. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis getAwsKinesis() { + if (awsKinesisBuilder_ == null) { + if (sourceCase_ == 1) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.getDefaultInstance(); + } else { + if (sourceCase_ == 1) { + return awsKinesisBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Amazon Kinesis Data Streams.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis aws_kinesis = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setAwsKinesis( + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis value) { + if (awsKinesisBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + source_ = value; + onChanged(); + } else { + awsKinesisBuilder_.setMessage(value); + } + sourceCase_ = 1; + return this; + } + + /** + * + * + *
+     * Optional. Amazon Kinesis Data Streams.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis aws_kinesis = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setAwsKinesis( + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.Builder builderForValue) { + if (awsKinesisBuilder_ == null) { + source_ = builderForValue.build(); + onChanged(); + } else { + awsKinesisBuilder_.setMessage(builderForValue.build()); + } + sourceCase_ = 1; + return this; + } + + /** + * + * + *
+     * Optional. Amazon Kinesis Data Streams.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis aws_kinesis = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeAwsKinesis( + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis value) { + if (awsKinesisBuilder_ == null) { + if (sourceCase_ == 1 + && source_ + != com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis + .getDefaultInstance()) { + source_ = + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.newBuilder( + (com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis) source_) + .mergeFrom(value) + .buildPartial(); + } else { + source_ = value; + } + onChanged(); + } else { + if (sourceCase_ == 1) { + awsKinesisBuilder_.mergeFrom(value); + } else { + awsKinesisBuilder_.setMessage(value); + } + } + sourceCase_ = 1; + return this; + } + + /** + * + * + *
+     * Optional. Amazon Kinesis Data Streams.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis aws_kinesis = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearAwsKinesis() { + if (awsKinesisBuilder_ == null) { + if (sourceCase_ == 1) { + sourceCase_ = 0; + source_ = null; + onChanged(); + } + } else { + if (sourceCase_ == 1) { + sourceCase_ = 0; + source_ = null; + } + awsKinesisBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Optional. Amazon Kinesis Data Streams.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis aws_kinesis = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.Builder + getAwsKinesisBuilder() { + return getAwsKinesisFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. Amazon Kinesis Data Streams.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis aws_kinesis = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesisOrBuilder + getAwsKinesisOrBuilder() { + if ((sourceCase_ == 1) && (awsKinesisBuilder_ != null)) { + return awsKinesisBuilder_.getMessageOrBuilder(); + } else { + if (sourceCase_ == 1) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Amazon Kinesis Data Streams.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis aws_kinesis = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis, + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesisOrBuilder> + getAwsKinesisFieldBuilder() { + if (awsKinesisBuilder_ == null) { + if (!(sourceCase_ == 1)) { + source_ = + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.getDefaultInstance(); + } + awsKinesisBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis, + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesisOrBuilder>( + (com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis) source_, + getParentForChildren(), + isClean()); + source_ = null; + } + sourceCase_ = 1; + onChanged(); + return awsKinesisBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorageOrBuilder> + cloudStorageBuilder_; + + /** + * + * + *
+     * Optional. Cloud Storage.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage cloud_storage = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the cloudStorage field is set. + */ + @java.lang.Override + public boolean hasCloudStorage() { + return sourceCase_ == 2; + } + + /** + * + * + *
+     * Optional. Cloud Storage.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage cloud_storage = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The cloudStorage. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage getCloudStorage() { + if (cloudStorageBuilder_ == null) { + if (sourceCase_ == 2) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.getDefaultInstance(); + } else { + if (sourceCase_ == 2) { + return cloudStorageBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Cloud Storage.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage cloud_storage = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setCloudStorage( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage value) { + if (cloudStorageBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + source_ = value; + onChanged(); + } else { + cloudStorageBuilder_.setMessage(value); + } + sourceCase_ = 2; + return this; + } + + /** + * + * + *
+     * Optional. Cloud Storage.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage cloud_storage = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setCloudStorage( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.Builder builderForValue) { + if (cloudStorageBuilder_ == null) { + source_ = builderForValue.build(); + onChanged(); + } else { + cloudStorageBuilder_.setMessage(builderForValue.build()); + } + sourceCase_ = 2; + return this; + } + + /** + * + * + *
+     * Optional. Cloud Storage.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage cloud_storage = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeCloudStorage( + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage value) { + if (cloudStorageBuilder_ == null) { + if (sourceCase_ == 2 + && source_ + != com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage + .getDefaultInstance()) { + source_ = + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.newBuilder( + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage) source_) + .mergeFrom(value) + .buildPartial(); + } else { + source_ = value; + } + onChanged(); + } else { + if (sourceCase_ == 2) { + cloudStorageBuilder_.mergeFrom(value); + } else { + cloudStorageBuilder_.setMessage(value); + } + } + sourceCase_ = 2; + return this; + } + + /** + * + * + *
+     * Optional. Cloud Storage.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage cloud_storage = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearCloudStorage() { + if (cloudStorageBuilder_ == null) { + if (sourceCase_ == 2) { + sourceCase_ = 0; + source_ = null; + onChanged(); + } + } else { + if (sourceCase_ == 2) { + sourceCase_ = 0; + source_ = null; + } + cloudStorageBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Optional. Cloud Storage.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage cloud_storage = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.Builder + getCloudStorageBuilder() { + return getCloudStorageFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. Cloud Storage.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage cloud_storage = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorageOrBuilder + getCloudStorageOrBuilder() { + if ((sourceCase_ == 2) && (cloudStorageBuilder_ != null)) { + return cloudStorageBuilder_.getMessageOrBuilder(); + } else { + if (sourceCase_ == 2) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Cloud Storage.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage cloud_storage = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorageOrBuilder> + getCloudStorageFieldBuilder() { + if (cloudStorageBuilder_ == null) { + if (!(sourceCase_ == 2)) { + source_ = + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.getDefaultInstance(); + } + cloudStorageBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorageOrBuilder>( + (com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage) source_, + getParentForChildren(), + isClean()); + source_ = null; + } + sourceCase_ = 2; + onChanged(); + return cloudStorageBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs, + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubsOrBuilder> + azureEventHubsBuilder_; + + /** + * + * + *
+     * Optional. Azure Event Hubs.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs azure_event_hubs = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the azureEventHubs field is set. + */ + @java.lang.Override + public boolean hasAzureEventHubs() { + return sourceCase_ == 3; + } + + /** + * + * + *
+     * Optional. Azure Event Hubs.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs azure_event_hubs = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The azureEventHubs. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs getAzureEventHubs() { + if (azureEventHubsBuilder_ == null) { + if (sourceCase_ == 3) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.getDefaultInstance(); + } else { + if (sourceCase_ == 3) { + return azureEventHubsBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Azure Event Hubs.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs azure_event_hubs = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setAzureEventHubs( + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs value) { + if (azureEventHubsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + source_ = value; + onChanged(); + } else { + azureEventHubsBuilder_.setMessage(value); + } + sourceCase_ = 3; + return this; + } + + /** + * + * + *
+     * Optional. Azure Event Hubs.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs azure_event_hubs = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setAzureEventHubs( + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.Builder builderForValue) { + if (azureEventHubsBuilder_ == null) { + source_ = builderForValue.build(); + onChanged(); + } else { + azureEventHubsBuilder_.setMessage(builderForValue.build()); + } + sourceCase_ = 3; + return this; + } + + /** + * + * + *
+     * Optional. Azure Event Hubs.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs azure_event_hubs = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeAzureEventHubs( + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs value) { + if (azureEventHubsBuilder_ == null) { + if (sourceCase_ == 3 + && source_ + != com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs + .getDefaultInstance()) { + source_ = + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.newBuilder( + (com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs) source_) + .mergeFrom(value) + .buildPartial(); + } else { + source_ = value; + } + onChanged(); + } else { + if (sourceCase_ == 3) { + azureEventHubsBuilder_.mergeFrom(value); + } else { + azureEventHubsBuilder_.setMessage(value); + } + } + sourceCase_ = 3; + return this; + } + + /** + * + * + *
+     * Optional. Azure Event Hubs.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs azure_event_hubs = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearAzureEventHubs() { + if (azureEventHubsBuilder_ == null) { + if (sourceCase_ == 3) { + sourceCase_ = 0; + source_ = null; + onChanged(); + } + } else { + if (sourceCase_ == 3) { + sourceCase_ = 0; + source_ = null; + } + azureEventHubsBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Optional. Azure Event Hubs.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs azure_event_hubs = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.Builder + getAzureEventHubsBuilder() { + return getAzureEventHubsFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. Azure Event Hubs.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs azure_event_hubs = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubsOrBuilder + getAzureEventHubsOrBuilder() { + if ((sourceCase_ == 3) && (azureEventHubsBuilder_ != null)) { + return azureEventHubsBuilder_.getMessageOrBuilder(); + } else { + if (sourceCase_ == 3) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Azure Event Hubs.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs azure_event_hubs = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs, + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubsOrBuilder> + getAzureEventHubsFieldBuilder() { + if (azureEventHubsBuilder_ == null) { + if (!(sourceCase_ == 3)) { + source_ = + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.getDefaultInstance(); + } + azureEventHubsBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs, + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubsOrBuilder>( + (com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs) source_, + getParentForChildren(), + isClean()); + source_ = null; + } + sourceCase_ = 3; + onChanged(); + return azureEventHubsBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk, + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMskOrBuilder> + awsMskBuilder_; + + /** + * + * + *
+     * Optional. Amazon MSK.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk aws_msk = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the awsMsk field is set. + */ + @java.lang.Override + public boolean hasAwsMsk() { + return sourceCase_ == 5; + } + + /** + * + * + *
+     * Optional. Amazon MSK.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk aws_msk = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The awsMsk. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk getAwsMsk() { + if (awsMskBuilder_ == null) { + if (sourceCase_ == 5) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.getDefaultInstance(); + } else { + if (sourceCase_ == 5) { + return awsMskBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Amazon MSK.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk aws_msk = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setAwsMsk(com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk value) { + if (awsMskBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + source_ = value; + onChanged(); + } else { + awsMskBuilder_.setMessage(value); + } + sourceCase_ = 5; + return this; + } + + /** + * + * + *
+     * Optional. Amazon MSK.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk aws_msk = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setAwsMsk( + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.Builder builderForValue) { + if (awsMskBuilder_ == null) { + source_ = builderForValue.build(); + onChanged(); + } else { + awsMskBuilder_.setMessage(builderForValue.build()); + } + sourceCase_ = 5; + return this; + } + + /** + * + * + *
+     * Optional. Amazon MSK.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk aws_msk = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeAwsMsk(com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk value) { + if (awsMskBuilder_ == null) { + if (sourceCase_ == 5 + && source_ + != com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.getDefaultInstance()) { + source_ = + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.newBuilder( + (com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk) source_) + .mergeFrom(value) + .buildPartial(); + } else { + source_ = value; + } + onChanged(); + } else { + if (sourceCase_ == 5) { + awsMskBuilder_.mergeFrom(value); + } else { + awsMskBuilder_.setMessage(value); + } + } + sourceCase_ = 5; + return this; + } + + /** + * + * + *
+     * Optional. Amazon MSK.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk aws_msk = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearAwsMsk() { + if (awsMskBuilder_ == null) { + if (sourceCase_ == 5) { + sourceCase_ = 0; + source_ = null; + onChanged(); + } + } else { + if (sourceCase_ == 5) { + sourceCase_ = 0; + source_ = null; + } + awsMskBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Optional. Amazon MSK.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk aws_msk = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.Builder getAwsMskBuilder() { + return getAwsMskFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. Amazon MSK.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk aws_msk = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.AwsMskOrBuilder getAwsMskOrBuilder() { + if ((sourceCase_ == 5) && (awsMskBuilder_ != null)) { + return awsMskBuilder_.getMessageOrBuilder(); + } else { + if (sourceCase_ == 5) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Amazon MSK.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk aws_msk = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk, + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMskOrBuilder> + getAwsMskFieldBuilder() { + if (awsMskBuilder_ == null) { + if (!(sourceCase_ == 5)) { + source_ = com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.getDefaultInstance(); + } + awsMskBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk, + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMskOrBuilder>( + (com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk) source_, + getParentForChildren(), + isClean()); + source_ = null; + } + sourceCase_ = 5; + onChanged(); + return awsMskBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud, + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloudOrBuilder> + confluentCloudBuilder_; + + /** + * + * + *
+     * Optional. Confluent Cloud.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud confluent_cloud = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the confluentCloud field is set. + */ + @java.lang.Override + public boolean hasConfluentCloud() { + return sourceCase_ == 6; + } + + /** + * + * + *
+     * Optional. Confluent Cloud.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud confluent_cloud = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The confluentCloud. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud getConfluentCloud() { + if (confluentCloudBuilder_ == null) { + if (sourceCase_ == 6) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.getDefaultInstance(); + } else { + if (sourceCase_ == 6) { + return confluentCloudBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Confluent Cloud.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud confluent_cloud = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setConfluentCloud( + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud value) { + if (confluentCloudBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + source_ = value; + onChanged(); + } else { + confluentCloudBuilder_.setMessage(value); + } + sourceCase_ = 6; + return this; + } + + /** + * + * + *
+     * Optional. Confluent Cloud.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud confluent_cloud = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setConfluentCloud( + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.Builder builderForValue) { + if (confluentCloudBuilder_ == null) { + source_ = builderForValue.build(); + onChanged(); + } else { + confluentCloudBuilder_.setMessage(builderForValue.build()); + } + sourceCase_ = 6; + return this; + } + + /** + * + * + *
+     * Optional. Confluent Cloud.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud confluent_cloud = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeConfluentCloud( + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud value) { + if (confluentCloudBuilder_ == null) { + if (sourceCase_ == 6 + && source_ + != com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud + .getDefaultInstance()) { + source_ = + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.newBuilder( + (com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud) source_) + .mergeFrom(value) + .buildPartial(); + } else { + source_ = value; + } + onChanged(); + } else { + if (sourceCase_ == 6) { + confluentCloudBuilder_.mergeFrom(value); + } else { + confluentCloudBuilder_.setMessage(value); + } + } + sourceCase_ = 6; + return this; + } + + /** + * + * + *
+     * Optional. Confluent Cloud.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud confluent_cloud = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearConfluentCloud() { + if (confluentCloudBuilder_ == null) { + if (sourceCase_ == 6) { + sourceCase_ = 0; + source_ = null; + onChanged(); + } + } else { + if (sourceCase_ == 6) { + sourceCase_ = 0; + source_ = null; + } + confluentCloudBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Optional. Confluent Cloud.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud confluent_cloud = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.Builder + getConfluentCloudBuilder() { + return getConfluentCloudFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. Confluent Cloud.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud confluent_cloud = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloudOrBuilder + getConfluentCloudOrBuilder() { + if ((sourceCase_ == 6) && (confluentCloudBuilder_ != null)) { + return confluentCloudBuilder_.getMessageOrBuilder(); + } else { + if (sourceCase_ == 6) { + return (com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud) source_; + } + return com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Confluent Cloud.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud confluent_cloud = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud, + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloudOrBuilder> + getConfluentCloudFieldBuilder() { + if (confluentCloudBuilder_ == null) { + if (!(sourceCase_ == 6)) { + source_ = + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.getDefaultInstance(); + } + confluentCloudBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud, + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.Builder, + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloudOrBuilder>( + (com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud) source_, + getParentForChildren(), + isClean()); + source_ = null; + } + sourceCase_ = 6; + onChanged(); + return confluentCloudBuilder_; + } + + private com.google.pubsub.v1.PlatformLogsSettings platformLogsSettings_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.PlatformLogsSettings, + com.google.pubsub.v1.PlatformLogsSettings.Builder, + com.google.pubsub.v1.PlatformLogsSettingsOrBuilder> + platformLogsSettingsBuilder_; + + /** + * + * + *
+     * Optional. Platform Logs settings. If unset, no Platform Logs will be
+     * generated.
+     * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings platform_logs_settings = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the platformLogsSettings field is set. + */ + public boolean hasPlatformLogsSettings() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+     * Optional. Platform Logs settings. If unset, no Platform Logs will be
+     * generated.
+     * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings platform_logs_settings = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The platformLogsSettings. + */ + public com.google.pubsub.v1.PlatformLogsSettings getPlatformLogsSettings() { + if (platformLogsSettingsBuilder_ == null) { + return platformLogsSettings_ == null + ? com.google.pubsub.v1.PlatformLogsSettings.getDefaultInstance() + : platformLogsSettings_; + } else { + return platformLogsSettingsBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Optional. Platform Logs settings. If unset, no Platform Logs will be
+     * generated.
+     * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings platform_logs_settings = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setPlatformLogsSettings(com.google.pubsub.v1.PlatformLogsSettings value) { + if (platformLogsSettingsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + platformLogsSettings_ = value; + } else { + platformLogsSettingsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Platform Logs settings. If unset, no Platform Logs will be
+     * generated.
+     * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings platform_logs_settings = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setPlatformLogsSettings( + com.google.pubsub.v1.PlatformLogsSettings.Builder builderForValue) { + if (platformLogsSettingsBuilder_ == null) { + platformLogsSettings_ = builderForValue.build(); + } else { + platformLogsSettingsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Platform Logs settings. If unset, no Platform Logs will be
+     * generated.
+     * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings platform_logs_settings = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergePlatformLogsSettings(com.google.pubsub.v1.PlatformLogsSettings value) { + if (platformLogsSettingsBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0) + && platformLogsSettings_ != null + && platformLogsSettings_ + != com.google.pubsub.v1.PlatformLogsSettings.getDefaultInstance()) { + getPlatformLogsSettingsBuilder().mergeFrom(value); + } else { + platformLogsSettings_ = value; + } + } else { + platformLogsSettingsBuilder_.mergeFrom(value); + } + if (platformLogsSettings_ != null) { + bitField0_ |= 0x00000020; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Optional. Platform Logs settings. If unset, no Platform Logs will be
+     * generated.
+     * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings platform_logs_settings = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearPlatformLogsSettings() { + bitField0_ = (bitField0_ & ~0x00000020); + platformLogsSettings_ = null; + if (platformLogsSettingsBuilder_ != null) { + platformLogsSettingsBuilder_.dispose(); + platformLogsSettingsBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Platform Logs settings. If unset, no Platform Logs will be
+     * generated.
+     * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings platform_logs_settings = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.PlatformLogsSettings.Builder getPlatformLogsSettingsBuilder() { + bitField0_ |= 0x00000020; + onChanged(); + return getPlatformLogsSettingsFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. Platform Logs settings. If unset, no Platform Logs will be
+     * generated.
+     * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings platform_logs_settings = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.PlatformLogsSettingsOrBuilder getPlatformLogsSettingsOrBuilder() { + if (platformLogsSettingsBuilder_ != null) { + return platformLogsSettingsBuilder_.getMessageOrBuilder(); + } else { + return platformLogsSettings_ == null + ? com.google.pubsub.v1.PlatformLogsSettings.getDefaultInstance() + : platformLogsSettings_; + } + } + + /** + * + * + *
+     * Optional. Platform Logs settings. If unset, no Platform Logs will be
+     * generated.
+     * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings platform_logs_settings = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.PlatformLogsSettings, + com.google.pubsub.v1.PlatformLogsSettings.Builder, + com.google.pubsub.v1.PlatformLogsSettingsOrBuilder> + getPlatformLogsSettingsFieldBuilder() { + if (platformLogsSettingsBuilder_ == null) { + platformLogsSettingsBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.PlatformLogsSettings, + com.google.pubsub.v1.PlatformLogsSettings.Builder, + com.google.pubsub.v1.PlatformLogsSettingsOrBuilder>( + getPlatformLogsSettings(), getParentForChildren(), isClean()); + platformLogsSettings_ = null; + } + return platformLogsSettingsBuilder_; + } + + @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.pubsub.v1.IngestionDataSourceSettings) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionDataSourceSettings) + private static final com.google.pubsub.v1.IngestionDataSourceSettings DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.pubsub.v1.IngestionDataSourceSettings(); + } + + public static com.google.pubsub.v1.IngestionDataSourceSettings getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public IngestionDataSourceSettings 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.pubsub.v1.IngestionDataSourceSettings getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/IngestionDataSourceSettingsOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/IngestionDataSourceSettingsOrBuilder.java new file mode 100644 index 000000000..68377e256 --- /dev/null +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/IngestionDataSourceSettingsOrBuilder.java @@ -0,0 +1,291 @@ +/* + * 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/pubsub/v1/pubsub.proto + +// Protobuf Java Version: 3.25.8 +package com.google.pubsub.v1; + +public interface IngestionDataSourceSettingsOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionDataSourceSettings) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Optional. Amazon Kinesis Data Streams.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis aws_kinesis = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the awsKinesis field is set. + */ + boolean hasAwsKinesis(); + + /** + * + * + *
+   * Optional. Amazon Kinesis Data Streams.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis aws_kinesis = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The awsKinesis. + */ + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis getAwsKinesis(); + + /** + * + * + *
+   * Optional. Amazon Kinesis Data Streams.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis aws_kinesis = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionDataSourceSettings.AwsKinesisOrBuilder getAwsKinesisOrBuilder(); + + /** + * + * + *
+   * Optional. Cloud Storage.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage cloud_storage = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the cloudStorage field is set. + */ + boolean hasCloudStorage(); + + /** + * + * + *
+   * Optional. Cloud Storage.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage cloud_storage = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The cloudStorage. + */ + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorage getCloudStorage(); + + /** + * + * + *
+   * Optional. Cloud Storage.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage cloud_storage = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionDataSourceSettings.CloudStorageOrBuilder getCloudStorageOrBuilder(); + + /** + * + * + *
+   * Optional. Azure Event Hubs.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs azure_event_hubs = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the azureEventHubs field is set. + */ + boolean hasAzureEventHubs(); + + /** + * + * + *
+   * Optional. Azure Event Hubs.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs azure_event_hubs = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The azureEventHubs. + */ + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs getAzureEventHubs(); + + /** + * + * + *
+   * Optional. Azure Event Hubs.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs azure_event_hubs = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubsOrBuilder + getAzureEventHubsOrBuilder(); + + /** + * + * + *
+   * Optional. Amazon MSK.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk aws_msk = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the awsMsk field is set. + */ + boolean hasAwsMsk(); + + /** + * + * + *
+   * Optional. Amazon MSK.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk aws_msk = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The awsMsk. + */ + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMsk getAwsMsk(); + + /** + * + * + *
+   * Optional. Amazon MSK.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.AwsMsk aws_msk = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionDataSourceSettings.AwsMskOrBuilder getAwsMskOrBuilder(); + + /** + * + * + *
+   * Optional. Confluent Cloud.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud confluent_cloud = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the confluentCloud field is set. + */ + boolean hasConfluentCloud(); + + /** + * + * + *
+   * Optional. Confluent Cloud.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud confluent_cloud = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The confluentCloud. + */ + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud getConfluentCloud(); + + /** + * + * + *
+   * Optional. Confluent Cloud.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud confluent_cloud = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloudOrBuilder + getConfluentCloudOrBuilder(); + + /** + * + * + *
+   * Optional. Platform Logs settings. If unset, no Platform Logs will be
+   * generated.
+   * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings platform_logs_settings = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the platformLogsSettings field is set. + */ + boolean hasPlatformLogsSettings(); + + /** + * + * + *
+   * Optional. Platform Logs settings. If unset, no Platform Logs will be
+   * generated.
+   * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings platform_logs_settings = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The platformLogsSettings. + */ + com.google.pubsub.v1.PlatformLogsSettings getPlatformLogsSettings(); + + /** + * + * + *
+   * Optional. Platform Logs settings. If unset, no Platform Logs will be
+   * generated.
+   * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings platform_logs_settings = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.PlatformLogsSettingsOrBuilder getPlatformLogsSettingsOrBuilder(); + + com.google.pubsub.v1.IngestionDataSourceSettings.SourceCase getSourceCase(); +} diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/IngestionFailureEvent.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/IngestionFailureEvent.java new file mode 100644 index 000000000..6f1455a19 --- /dev/null +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/IngestionFailureEvent.java @@ -0,0 +1,16770 @@ +/* + * 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/pubsub/v1/pubsub.proto + +// Protobuf Java Version: 3.25.8 +package com.google.pubsub.v1; + +/** + * + * + *
+ * Payload of the Platform Log entry sent when a failure is encountered while
+ * ingesting.
+ * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent} + */ +public final class IngestionFailureEvent extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionFailureEvent) + IngestionFailureEventOrBuilder { + private static final long serialVersionUID = 0L; + + // Use IngestionFailureEvent.newBuilder() to construct. + private IngestionFailureEvent(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private IngestionFailureEvent() { + topic_ = ""; + errorMessage_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new IngestionFailureEvent(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.class, + com.google.pubsub.v1.IngestionFailureEvent.Builder.class); + } + + public interface ApiViolationReasonOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) + com.google.protobuf.MessageOrBuilder {} + + /** + * + * + *
+   * Specifies the reason why some data may have been left out of
+   * the desired Pub/Sub message due to the API message limits
+   * (https://cloud.google.com/pubsub/quotas#resource_limits). For example,
+   * when the number of attributes is larger than 100, the number of
+   * attributes is truncated to 100 to respect the limit on the attribute count.
+   * Other attribute limits are treated similarly. When the size of the desired
+   * message would've been larger than 10MB, the message won't be published at
+   * all, and ingestion of the subsequent messages will proceed as normal.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent.ApiViolationReason} + */ + public static final class ApiViolationReason extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) + ApiViolationReasonOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ApiViolationReason.newBuilder() to construct. + private ApiViolationReason(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ApiViolationReason() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ApiViolationReason(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_ApiViolationReason_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_ApiViolationReason_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.class, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder.class); + } + + 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 { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + 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.pubsub.v1.IngestionFailureEvent.ApiViolationReason)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason other = + (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) obj; + + 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 = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason 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.pubsub.v1.IngestionFailureEvent.ApiViolationReason parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason 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.pubsub.v1.IngestionFailureEvent.ApiViolationReason parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason 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.pubsub.v1.IngestionFailureEvent.ApiViolationReason parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason 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.pubsub.v1.IngestionFailureEvent.ApiViolationReason 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; + } + + /** + * + * + *
+     * Specifies the reason why some data may have been left out of
+     * the desired Pub/Sub message due to the API message limits
+     * (https://cloud.google.com/pubsub/quotas#resource_limits). For example,
+     * when the number of attributes is larger than 100, the number of
+     * attributes is truncated to 100 to respect the limit on the attribute count.
+     * Other attribute limits are treated similarly. When the size of the desired
+     * message would've been larger than 10MB, the message won't be published at
+     * all, and ingestion of the subsequent messages will proceed as normal.
+     * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent.ApiViolationReason} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_ApiViolationReason_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_ApiViolationReason_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.class, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder.class); + } + + // Construct using com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_ApiViolationReason_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason + getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason build() { + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason buildPartial() { + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason result = + new com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) { + return mergeFrom((com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason other) { + if (other + == com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance()) + return this; + 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; + 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; + } + + @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.pubsub.v1.IngestionFailureEvent.ApiViolationReason) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) + private static final com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason(); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ApiViolationReason 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.pubsub.v1.IngestionFailureEvent.ApiViolationReason + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface AvroFailureReasonOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionFailureEvent.AvroFailureReason) + com.google.protobuf.MessageOrBuilder {} + + /** + * + * + *
+   * Set when an Avro file is unsupported or its format is not valid. When this
+   * occurs, one or more Avro objects won't be ingested.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent.AvroFailureReason} + */ + public static final class AvroFailureReason extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionFailureEvent.AvroFailureReason) + AvroFailureReasonOrBuilder { + private static final long serialVersionUID = 0L; + + // Use AvroFailureReason.newBuilder() to construct. + private AvroFailureReason(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private AvroFailureReason() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new AvroFailureReason(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AvroFailureReason_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AvroFailureReason_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.class, + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.Builder.class); + } + + 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 { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + 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.pubsub.v1.IngestionFailureEvent.AvroFailureReason)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason other = + (com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason) obj; + + 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 = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason 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.pubsub.v1.IngestionFailureEvent.AvroFailureReason parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason 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.pubsub.v1.IngestionFailureEvent.AvroFailureReason parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason 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.pubsub.v1.IngestionFailureEvent.AvroFailureReason parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason 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.pubsub.v1.IngestionFailureEvent.AvroFailureReason 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; + } + + /** + * + * + *
+     * Set when an Avro file is unsupported or its format is not valid. When this
+     * occurs, one or more Avro objects won't be ingested.
+     * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent.AvroFailureReason} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionFailureEvent.AvroFailureReason) + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReasonOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AvroFailureReason_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AvroFailureReason_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.class, + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.Builder.class); + } + + // Construct using com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AvroFailureReason_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason + getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason build() { + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason buildPartial() { + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason result = + new com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason) { + return mergeFrom((com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason other) { + if (other + == com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.getDefaultInstance()) + return this; + 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; + 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; + } + + @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.pubsub.v1.IngestionFailureEvent.AvroFailureReason) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionFailureEvent.AvroFailureReason) + private static final com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason(); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AvroFailureReason 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.pubsub.v1.IngestionFailureEvent.AvroFailureReason + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface SchemaViolationReasonOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) + com.google.protobuf.MessageOrBuilder {} + + /** + * + * + *
+   * Set when a Pub/Sub message fails to get published due to a schema
+   * validation violation.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason} + */ + public static final class SchemaViolationReason extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) + SchemaViolationReasonOrBuilder { + private static final long serialVersionUID = 0L; + + // Use SchemaViolationReason.newBuilder() to construct. + private SchemaViolationReason(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private SchemaViolationReason() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new SchemaViolationReason(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_SchemaViolationReason_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_SchemaViolationReason_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.class, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder.class); + } + + 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 { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + 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.pubsub.v1.IngestionFailureEvent.SchemaViolationReason)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason other = + (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) obj; + + 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 = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason 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.pubsub.v1.IngestionFailureEvent.SchemaViolationReason parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason 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.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + 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.pubsub.v1.IngestionFailureEvent.SchemaViolationReason parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason 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.pubsub.v1.IngestionFailureEvent.SchemaViolationReason 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; + } + + /** + * + * + *
+     * Set when a Pub/Sub message fails to get published due to a schema
+     * validation violation.
+     * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_SchemaViolationReason_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_SchemaViolationReason_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.class, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder.class); + } + + // Construct using + // com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_SchemaViolationReason_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason build() { + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason buildPartial() { + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason result = + new com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) { + return mergeFrom( + (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason other) { + if (other + == com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance()) return this; + 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; + 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; + } + + @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.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) + private static final com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason(); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SchemaViolationReason 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.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface MessageTransformationFailureReasonOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + com.google.protobuf.MessageOrBuilder {} + + /** + * + * + *
+   * Set when a Pub/Sub message fails to get published due to a message
+   * transformation error.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason} + */ + public static final class MessageTransformationFailureReason + extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + MessageTransformationFailureReasonOrBuilder { + private static final long serialVersionUID = 0L; + + // Use MessageTransformationFailureReason.newBuilder() to construct. + private MessageTransformationFailureReason( + com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private MessageTransformationFailureReason() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new MessageTransformationFailureReason(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_MessageTransformationFailureReason_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_MessageTransformationFailureReason_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.class, + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder + .class); + } + + 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 { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + 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.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason other = + (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) obj; + + 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 = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + 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.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + 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.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + 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.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + 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.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason 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; + } + + /** + * + * + *
+     * Set when a Pub/Sub message fails to get published due to a message
+     * transformation error.
+     * 
+ * + * Protobuf type {@code + * google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReasonOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_MessageTransformationFailureReason_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_MessageTransformationFailureReason_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.class, + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .Builder.class); + } + + // Construct using + // com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_MessageTransformationFailureReason_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason build() { + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + buildPartial() { + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason result = + new com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, + java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other + instanceof + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) { + return mergeFrom( + (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason other) { + if (other + == com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance()) return this; + 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; + 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; + } + + @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.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + private static final com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReason + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason(); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MessageTransformationFailureReason 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.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface CloudStorageFailureOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Optional. Name of the Cloud Storage bucket used for ingestion.
+     * 
+ * + * string bucket = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bucket. + */ + java.lang.String getBucket(); + + /** + * + * + *
+     * Optional. Name of the Cloud Storage bucket used for ingestion.
+     * 
+ * + * string bucket = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for bucket. + */ + com.google.protobuf.ByteString getBucketBytes(); + + /** + * + * + *
+     * Optional. Name of the Cloud Storage object which contained the section
+     * that couldn't be ingested.
+     * 
+ * + * string object_name = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The objectName. + */ + java.lang.String getObjectName(); + + /** + * + * + *
+     * Optional. Name of the Cloud Storage object which contained the section
+     * that couldn't be ingested.
+     * 
+ * + * string object_name = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for objectName. + */ + com.google.protobuf.ByteString getObjectNameBytes(); + + /** + * + * + *
+     * Optional. Generation of the Cloud Storage object which contained the
+     * section that couldn't be ingested.
+     * 
+ * + * int64 object_generation = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The objectGeneration. + */ + long getObjectGeneration(); + + /** + * + * + *
+     * Optional. Failure encountered when parsing an Avro file.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AvroFailureReason avro_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the avroFailureReason field is set. + */ + boolean hasAvroFailureReason(); + + /** + * + * + *
+     * Optional. Failure encountered when parsing an Avro file.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AvroFailureReason avro_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The avroFailureReason. + */ + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason getAvroFailureReason(); + + /** + * + * + *
+     * Optional. Failure encountered when parsing an Avro file.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AvroFailureReason avro_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReasonOrBuilder + getAvroFailureReasonOrBuilder(); + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the apiViolationReason field is set. + */ + boolean hasApiViolationReason(); + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The apiViolationReason. + */ + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason getApiViolationReason(); + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder + getApiViolationReasonOrBuilder(); + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the schemaViolationReason field is set. + */ + boolean hasSchemaViolationReason(); + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The schemaViolationReason. + */ + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason getSchemaViolationReason(); + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder + getSchemaViolationReasonOrBuilder(); + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the messageTransformationFailureReason field is set. + */ + boolean hasMessageTransformationFailureReason(); + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The messageTransformationFailureReason. + */ + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + getMessageTransformationFailureReason(); + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReasonOrBuilder + getMessageTransformationFailureReasonOrBuilder(); + + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.ReasonCase getReasonCase(); + } + + /** + * + * + *
+   * Failure when ingesting from a Cloud Storage source.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure} + */ + public static final class CloudStorageFailure extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure) + CloudStorageFailureOrBuilder { + private static final long serialVersionUID = 0L; + + // Use CloudStorageFailure.newBuilder() to construct. + private CloudStorageFailure(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private CloudStorageFailure() { + bucket_ = ""; + objectName_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new CloudStorageFailure(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_CloudStorageFailure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_CloudStorageFailure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.class, + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.Builder.class); + } + + private int reasonCase_ = 0; + + @SuppressWarnings("serial") + private java.lang.Object reason_; + + public enum ReasonCase + implements + com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + AVRO_FAILURE_REASON(5), + API_VIOLATION_REASON(6), + SCHEMA_VIOLATION_REASON(7), + MESSAGE_TRANSFORMATION_FAILURE_REASON(8), + REASON_NOT_SET(0); + private final int value; + + private ReasonCase(int value) { + this.value = value; + } + + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ReasonCase valueOf(int value) { + return forNumber(value); + } + + public static ReasonCase forNumber(int value) { + switch (value) { + case 5: + return AVRO_FAILURE_REASON; + case 6: + return API_VIOLATION_REASON; + case 7: + return SCHEMA_VIOLATION_REASON; + case 8: + return MESSAGE_TRANSFORMATION_FAILURE_REASON; + case 0: + return REASON_NOT_SET; + default: + return null; + } + } + + public int getNumber() { + return this.value; + } + }; + + public ReasonCase getReasonCase() { + return ReasonCase.forNumber(reasonCase_); + } + + public static final int BUCKET_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object bucket_ = ""; + + /** + * + * + *
+     * Optional. Name of the Cloud Storage bucket used for ingestion.
+     * 
+ * + * string bucket = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bucket. + */ + @java.lang.Override + public java.lang.String getBucket() { + java.lang.Object ref = bucket_; + 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(); + bucket_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. Name of the Cloud Storage bucket used for ingestion.
+     * 
+ * + * string bucket = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for bucket. + */ + @java.lang.Override + public com.google.protobuf.ByteString getBucketBytes() { + java.lang.Object ref = bucket_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + bucket_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int OBJECT_NAME_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object objectName_ = ""; + + /** + * + * + *
+     * Optional. Name of the Cloud Storage object which contained the section
+     * that couldn't be ingested.
+     * 
+ * + * string object_name = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The objectName. + */ + @java.lang.Override + public java.lang.String getObjectName() { + java.lang.Object ref = objectName_; + 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(); + objectName_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. Name of the Cloud Storage object which contained the section
+     * that couldn't be ingested.
+     * 
+ * + * string object_name = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for objectName. + */ + @java.lang.Override + public com.google.protobuf.ByteString getObjectNameBytes() { + java.lang.Object ref = objectName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + objectName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int OBJECT_GENERATION_FIELD_NUMBER = 3; + private long objectGeneration_ = 0L; + + /** + * + * + *
+     * Optional. Generation of the Cloud Storage object which contained the
+     * section that couldn't be ingested.
+     * 
+ * + * int64 object_generation = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The objectGeneration. + */ + @java.lang.Override + public long getObjectGeneration() { + return objectGeneration_; + } + + public static final int AVRO_FAILURE_REASON_FIELD_NUMBER = 5; + + /** + * + * + *
+     * Optional. Failure encountered when parsing an Avro file.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AvroFailureReason avro_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the avroFailureReason field is set. + */ + @java.lang.Override + public boolean hasAvroFailureReason() { + return reasonCase_ == 5; + } + + /** + * + * + *
+     * Optional. Failure encountered when parsing an Avro file.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AvroFailureReason avro_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The avroFailureReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason getAvroFailureReason() { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. Failure encountered when parsing an Avro file.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AvroFailureReason avro_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReasonOrBuilder + getAvroFailureReasonOrBuilder() { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.getDefaultInstance(); + } + + public static final int API_VIOLATION_REASON_FIELD_NUMBER = 6; + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the apiViolationReason field is set. + */ + @java.lang.Override + public boolean hasApiViolationReason() { + return reasonCase_ == 6; + } + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The apiViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason getApiViolationReason() { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder + getApiViolationReasonOrBuilder() { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + + public static final int SCHEMA_VIOLATION_REASON_FIELD_NUMBER = 7; + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the schemaViolationReason field is set. + */ + @java.lang.Override + public boolean hasSchemaViolationReason() { + return reasonCase_ == 7; + } + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The schemaViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + getSchemaViolationReason() { + if (reasonCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder + getSchemaViolationReasonOrBuilder() { + if (reasonCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.getDefaultInstance(); + } + + public static final int MESSAGE_TRANSFORMATION_FAILURE_REASON_FIELD_NUMBER = 8; + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the messageTransformationFailureReason field is set. + */ + @java.lang.Override + public boolean hasMessageTransformationFailureReason() { + return reasonCase_ == 8; + } + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The messageTransformationFailureReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + getMessageTransformationFailureReason() { + if (reasonCase_ == 8) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReasonOrBuilder + getMessageTransformationFailureReasonOrBuilder() { + if (reasonCase_ == 8) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + + 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(bucket_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, bucket_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(objectName_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, objectName_); + } + if (objectGeneration_ != 0L) { + output.writeInt64(3, objectGeneration_); + } + if (reasonCase_ == 5) { + output.writeMessage( + 5, (com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason) reason_); + } + if (reasonCase_ == 6) { + output.writeMessage( + 6, (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_); + } + if (reasonCase_ == 7) { + output.writeMessage( + 7, (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_); + } + if (reasonCase_ == 8) { + output.writeMessage( + 8, + (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_); + } + 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(bucket_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, bucket_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(objectName_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, objectName_); + } + if (objectGeneration_ != 0L) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(3, objectGeneration_); + } + if (reasonCase_ == 5) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 5, (com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason) reason_); + } + if (reasonCase_ == 6) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 6, (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_); + } + if (reasonCase_ == 7) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 7, (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_); + } + if (reasonCase_ == 8) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 8, + (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_); + } + 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.pubsub.v1.IngestionFailureEvent.CloudStorageFailure)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure other = + (com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure) obj; + + if (!getBucket().equals(other.getBucket())) return false; + if (!getObjectName().equals(other.getObjectName())) return false; + if (getObjectGeneration() != other.getObjectGeneration()) return false; + if (!getReasonCase().equals(other.getReasonCase())) return false; + switch (reasonCase_) { + case 5: + if (!getAvroFailureReason().equals(other.getAvroFailureReason())) return false; + break; + case 6: + if (!getApiViolationReason().equals(other.getApiViolationReason())) return false; + break; + case 7: + if (!getSchemaViolationReason().equals(other.getSchemaViolationReason())) return false; + break; + case 8: + if (!getMessageTransformationFailureReason() + .equals(other.getMessageTransformationFailureReason())) return false; + break; + case 0: + default: + } + 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) + BUCKET_FIELD_NUMBER; + hash = (53 * hash) + getBucket().hashCode(); + hash = (37 * hash) + OBJECT_NAME_FIELD_NUMBER; + hash = (53 * hash) + getObjectName().hashCode(); + hash = (37 * hash) + OBJECT_GENERATION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getObjectGeneration()); + switch (reasonCase_) { + case 5: + hash = (37 * hash) + AVRO_FAILURE_REASON_FIELD_NUMBER; + hash = (53 * hash) + getAvroFailureReason().hashCode(); + break; + case 6: + hash = (37 * hash) + API_VIOLATION_REASON_FIELD_NUMBER; + hash = (53 * hash) + getApiViolationReason().hashCode(); + break; + case 7: + hash = (37 * hash) + SCHEMA_VIOLATION_REASON_FIELD_NUMBER; + hash = (53 * hash) + getSchemaViolationReason().hashCode(); + break; + case 8: + hash = (37 * hash) + MESSAGE_TRANSFORMATION_FAILURE_REASON_FIELD_NUMBER; + hash = (53 * hash) + getMessageTransformationFailureReason().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure 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.pubsub.v1.IngestionFailureEvent.CloudStorageFailure parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure 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.pubsub.v1.IngestionFailureEvent.CloudStorageFailure parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure 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.pubsub.v1.IngestionFailureEvent.CloudStorageFailure parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure 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.pubsub.v1.IngestionFailureEvent.CloudStorageFailure 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; + } + + /** + * + * + *
+     * Failure when ingesting from a Cloud Storage source.
+     * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure) + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailureOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_CloudStorageFailure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_CloudStorageFailure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.class, + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.Builder.class); + } + + // Construct using com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + bucket_ = ""; + objectName_ = ""; + objectGeneration_ = 0L; + if (avroFailureReasonBuilder_ != null) { + avroFailureReasonBuilder_.clear(); + } + if (apiViolationReasonBuilder_ != null) { + apiViolationReasonBuilder_.clear(); + } + if (schemaViolationReasonBuilder_ != null) { + schemaViolationReasonBuilder_.clear(); + } + if (messageTransformationFailureReasonBuilder_ != null) { + messageTransformationFailureReasonBuilder_.clear(); + } + reasonCase_ = 0; + reason_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_CloudStorageFailure_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure + getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure build() { + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure buildPartial() { + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure result = + new com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.bucket_ = bucket_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.objectName_ = objectName_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.objectGeneration_ = objectGeneration_; + } + } + + private void buildPartialOneofs( + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure result) { + result.reasonCase_ = reasonCase_; + result.reason_ = this.reason_; + if (reasonCase_ == 5 && avroFailureReasonBuilder_ != null) { + result.reason_ = avroFailureReasonBuilder_.build(); + } + if (reasonCase_ == 6 && apiViolationReasonBuilder_ != null) { + result.reason_ = apiViolationReasonBuilder_.build(); + } + if (reasonCase_ == 7 && schemaViolationReasonBuilder_ != null) { + result.reason_ = schemaViolationReasonBuilder_.build(); + } + if (reasonCase_ == 8 && messageTransformationFailureReasonBuilder_ != null) { + result.reason_ = messageTransformationFailureReasonBuilder_.build(); + } + } + + @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.pubsub.v1.IngestionFailureEvent.CloudStorageFailure) { + return mergeFrom((com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure other) { + if (other + == com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.getDefaultInstance()) + return this; + if (!other.getBucket().isEmpty()) { + bucket_ = other.bucket_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getObjectName().isEmpty()) { + objectName_ = other.objectName_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getObjectGeneration() != 0L) { + setObjectGeneration(other.getObjectGeneration()); + } + switch (other.getReasonCase()) { + case AVRO_FAILURE_REASON: + { + mergeAvroFailureReason(other.getAvroFailureReason()); + break; + } + case API_VIOLATION_REASON: + { + mergeApiViolationReason(other.getApiViolationReason()); + break; + } + case SCHEMA_VIOLATION_REASON: + { + mergeSchemaViolationReason(other.getSchemaViolationReason()); + break; + } + case MESSAGE_TRANSFORMATION_FAILURE_REASON: + { + mergeMessageTransformationFailureReason( + other.getMessageTransformationFailureReason()); + break; + } + case REASON_NOT_SET: + { + break; + } + } + 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: + { + bucket_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + objectName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: + { + objectGeneration_ = input.readInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 42: + { + input.readMessage( + getAvroFailureReasonFieldBuilder().getBuilder(), extensionRegistry); + reasonCase_ = 5; + break; + } // case 42 + case 50: + { + input.readMessage( + getApiViolationReasonFieldBuilder().getBuilder(), extensionRegistry); + reasonCase_ = 6; + break; + } // case 50 + case 58: + { + input.readMessage( + getSchemaViolationReasonFieldBuilder().getBuilder(), extensionRegistry); + reasonCase_ = 7; + break; + } // case 58 + case 66: + { + input.readMessage( + getMessageTransformationFailureReasonFieldBuilder().getBuilder(), + extensionRegistry); + reasonCase_ = 8; + break; + } // case 66 + 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 reasonCase_ = 0; + private java.lang.Object reason_; + + public ReasonCase getReasonCase() { + return ReasonCase.forNumber(reasonCase_); + } + + public Builder clearReason() { + reasonCase_ = 0; + reason_ = null; + onChanged(); + return this; + } + + private int bitField0_; + + private java.lang.Object bucket_ = ""; + + /** + * + * + *
+       * Optional. Name of the Cloud Storage bucket used for ingestion.
+       * 
+ * + * string bucket = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bucket. + */ + public java.lang.String getBucket() { + java.lang.Object ref = bucket_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + bucket_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. Name of the Cloud Storage bucket used for ingestion.
+       * 
+ * + * string bucket = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for bucket. + */ + public com.google.protobuf.ByteString getBucketBytes() { + java.lang.Object ref = bucket_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + bucket_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. Name of the Cloud Storage bucket used for ingestion.
+       * 
+ * + * string bucket = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bucket to set. + * @return This builder for chaining. + */ + public Builder setBucket(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bucket_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. Name of the Cloud Storage bucket used for ingestion.
+       * 
+ * + * string bucket = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearBucket() { + bucket_ = getDefaultInstance().getBucket(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. Name of the Cloud Storage bucket used for ingestion.
+       * 
+ * + * string bucket = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for bucket to set. + * @return This builder for chaining. + */ + public Builder setBucketBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + bucket_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object objectName_ = ""; + + /** + * + * + *
+       * Optional. Name of the Cloud Storage object which contained the section
+       * that couldn't be ingested.
+       * 
+ * + * string object_name = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The objectName. + */ + public java.lang.String getObjectName() { + java.lang.Object ref = objectName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + objectName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. Name of the Cloud Storage object which contained the section
+       * that couldn't be ingested.
+       * 
+ * + * string object_name = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for objectName. + */ + public com.google.protobuf.ByteString getObjectNameBytes() { + java.lang.Object ref = objectName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + objectName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. Name of the Cloud Storage object which contained the section
+       * that couldn't be ingested.
+       * 
+ * + * string object_name = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The objectName to set. + * @return This builder for chaining. + */ + public Builder setObjectName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + objectName_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. Name of the Cloud Storage object which contained the section
+       * that couldn't be ingested.
+       * 
+ * + * string object_name = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearObjectName() { + objectName_ = getDefaultInstance().getObjectName(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. Name of the Cloud Storage object which contained the section
+       * that couldn't be ingested.
+       * 
+ * + * string object_name = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for objectName to set. + * @return This builder for chaining. + */ + public Builder setObjectNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + objectName_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private long objectGeneration_; + + /** + * + * + *
+       * Optional. Generation of the Cloud Storage object which contained the
+       * section that couldn't be ingested.
+       * 
+ * + * int64 object_generation = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The objectGeneration. + */ + @java.lang.Override + public long getObjectGeneration() { + return objectGeneration_; + } + + /** + * + * + *
+       * Optional. Generation of the Cloud Storage object which contained the
+       * section that couldn't be ingested.
+       * 
+ * + * int64 object_generation = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The objectGeneration to set. + * @return This builder for chaining. + */ + public Builder setObjectGeneration(long value) { + + objectGeneration_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. Generation of the Cloud Storage object which contained the
+       * section that couldn't be ingested.
+       * 
+ * + * int64 object_generation = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearObjectGeneration() { + bitField0_ = (bitField0_ & ~0x00000004); + objectGeneration_ = 0L; + onChanged(); + return this; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReasonOrBuilder> + avroFailureReasonBuilder_; + + /** + * + * + *
+       * Optional. Failure encountered when parsing an Avro file.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AvroFailureReason avro_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the avroFailureReason field is set. + */ + @java.lang.Override + public boolean hasAvroFailureReason() { + return reasonCase_ == 5; + } + + /** + * + * + *
+       * Optional. Failure encountered when parsing an Avro file.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AvroFailureReason avro_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The avroFailureReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason getAvroFailureReason() { + if (avroFailureReasonBuilder_ == null) { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.getDefaultInstance(); + } else { + if (reasonCase_ == 5) { + return avroFailureReasonBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. Failure encountered when parsing an Avro file.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AvroFailureReason avro_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setAvroFailureReason( + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason value) { + if (avroFailureReasonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + reason_ = value; + onChanged(); + } else { + avroFailureReasonBuilder_.setMessage(value); + } + reasonCase_ = 5; + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when parsing an Avro file.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AvroFailureReason avro_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setAvroFailureReason( + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.Builder builderForValue) { + if (avroFailureReasonBuilder_ == null) { + reason_ = builderForValue.build(); + onChanged(); + } else { + avroFailureReasonBuilder_.setMessage(builderForValue.build()); + } + reasonCase_ = 5; + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when parsing an Avro file.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AvroFailureReason avro_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeAvroFailureReason( + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason value) { + if (avroFailureReasonBuilder_ == null) { + if (reasonCase_ == 5 + && reason_ + != com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason + .getDefaultInstance()) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason) reason_) + .mergeFrom(value) + .buildPartial(); + } else { + reason_ = value; + } + onChanged(); + } else { + if (reasonCase_ == 5) { + avroFailureReasonBuilder_.mergeFrom(value); + } else { + avroFailureReasonBuilder_.setMessage(value); + } + } + reasonCase_ = 5; + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when parsing an Avro file.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AvroFailureReason avro_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearAvroFailureReason() { + if (avroFailureReasonBuilder_ == null) { + if (reasonCase_ == 5) { + reasonCase_ = 0; + reason_ = null; + onChanged(); + } + } else { + if (reasonCase_ == 5) { + reasonCase_ = 0; + reason_ = null; + } + avroFailureReasonBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when parsing an Avro file.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AvroFailureReason avro_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.Builder + getAvroFailureReasonBuilder() { + return getAvroFailureReasonFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. Failure encountered when parsing an Avro file.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AvroFailureReason avro_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReasonOrBuilder + getAvroFailureReasonOrBuilder() { + if ((reasonCase_ == 5) && (avroFailureReasonBuilder_ != null)) { + return avroFailureReasonBuilder_.getMessageOrBuilder(); + } else { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. Failure encountered when parsing an Avro file.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AvroFailureReason avro_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReasonOrBuilder> + getAvroFailureReasonFieldBuilder() { + if (avroFailureReasonBuilder_ == null) { + if (!(reasonCase_ == 5)) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.getDefaultInstance(); + } + avroFailureReasonBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.AvroFailureReason) reason_, + getParentForChildren(), + isClean()); + reason_ = null; + } + reasonCase_ = 5; + onChanged(); + return avroFailureReasonBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder> + apiViolationReasonBuilder_; + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the apiViolationReason field is set. + */ + @java.lang.Override + public boolean hasApiViolationReason() { + return reasonCase_ == 6; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The apiViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason getApiViolationReason() { + if (apiViolationReasonBuilder_ == null) { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } else { + if (reasonCase_ == 6) { + return apiViolationReasonBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setApiViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason value) { + if (apiViolationReasonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + reason_ = value; + onChanged(); + } else { + apiViolationReasonBuilder_.setMessage(value); + } + reasonCase_ = 6; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setApiViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder builderForValue) { + if (apiViolationReasonBuilder_ == null) { + reason_ = builderForValue.build(); + onChanged(); + } else { + apiViolationReasonBuilder_.setMessage(builderForValue.build()); + } + reasonCase_ = 6; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeApiViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason value) { + if (apiViolationReasonBuilder_ == null) { + if (reasonCase_ == 6 + && reason_ + != com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason + .getDefaultInstance()) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_) + .mergeFrom(value) + .buildPartial(); + } else { + reason_ = value; + } + onChanged(); + } else { + if (reasonCase_ == 6) { + apiViolationReasonBuilder_.mergeFrom(value); + } else { + apiViolationReasonBuilder_.setMessage(value); + } + } + reasonCase_ = 6; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearApiViolationReason() { + if (apiViolationReasonBuilder_ == null) { + if (reasonCase_ == 6) { + reasonCase_ = 0; + reason_ = null; + onChanged(); + } + } else { + if (reasonCase_ == 6) { + reasonCase_ = 0; + reason_ = null; + } + apiViolationReasonBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder + getApiViolationReasonBuilder() { + return getApiViolationReasonFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder + getApiViolationReasonOrBuilder() { + if ((reasonCase_ == 6) && (apiViolationReasonBuilder_ != null)) { + return apiViolationReasonBuilder_.getMessageOrBuilder(); + } else { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder> + getApiViolationReasonFieldBuilder() { + if (apiViolationReasonBuilder_ == null) { + if (!(reasonCase_ == 6)) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + apiViolationReasonBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_, + getParentForChildren(), + isClean()); + reason_ = null; + } + reasonCase_ = 6; + onChanged(); + return apiViolationReasonBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder> + schemaViolationReasonBuilder_; + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the schemaViolationReason field is set. + */ + @java.lang.Override + public boolean hasSchemaViolationReason() { + return reasonCase_ == 7; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The schemaViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + getSchemaViolationReason() { + if (schemaViolationReasonBuilder_ == null) { + if (reasonCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } else { + if (reasonCase_ == 7) { + return schemaViolationReasonBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setSchemaViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason value) { + if (schemaViolationReasonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + reason_ = value; + onChanged(); + } else { + schemaViolationReasonBuilder_.setMessage(value); + } + reasonCase_ = 7; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setSchemaViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder + builderForValue) { + if (schemaViolationReasonBuilder_ == null) { + reason_ = builderForValue.build(); + onChanged(); + } else { + schemaViolationReasonBuilder_.setMessage(builderForValue.build()); + } + reasonCase_ = 7; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeSchemaViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason value) { + if (schemaViolationReasonBuilder_ == null) { + if (reasonCase_ == 7 + && reason_ + != com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance()) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_) + .mergeFrom(value) + .buildPartial(); + } else { + reason_ = value; + } + onChanged(); + } else { + if (reasonCase_ == 7) { + schemaViolationReasonBuilder_.mergeFrom(value); + } else { + schemaViolationReasonBuilder_.setMessage(value); + } + } + reasonCase_ = 7; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearSchemaViolationReason() { + if (schemaViolationReasonBuilder_ == null) { + if (reasonCase_ == 7) { + reasonCase_ = 0; + reason_ = null; + onChanged(); + } + } else { + if (reasonCase_ == 7) { + reasonCase_ = 0; + reason_ = null; + } + schemaViolationReasonBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder + getSchemaViolationReasonBuilder() { + return getSchemaViolationReasonFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder + getSchemaViolationReasonOrBuilder() { + if ((reasonCase_ == 7) && (schemaViolationReasonBuilder_ != null)) { + return schemaViolationReasonBuilder_.getMessageOrBuilder(); + } else { + if (reasonCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder> + getSchemaViolationReasonFieldBuilder() { + if (schemaViolationReasonBuilder_ == null) { + if (!(reasonCase_ == 7)) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } + schemaViolationReasonBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_, + getParentForChildren(), + isClean()); + reason_ = null; + } + reasonCase_ = 7; + onChanged(); + return schemaViolationReasonBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReasonOrBuilder> + messageTransformationFailureReasonBuilder_; + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the messageTransformationFailureReason field is set. + */ + @java.lang.Override + public boolean hasMessageTransformationFailureReason() { + return reasonCase_ == 8; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The messageTransformationFailureReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + getMessageTransformationFailureReason() { + if (messageTransformationFailureReasonBuilder_ == null) { + if (reasonCase_ == 8) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } else { + if (reasonCase_ == 8) { + return messageTransformationFailureReasonBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setMessageTransformationFailureReason( + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason value) { + if (messageTransformationFailureReasonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + reason_ = value; + onChanged(); + } else { + messageTransformationFailureReasonBuilder_.setMessage(value); + } + reasonCase_ = 8; + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setMessageTransformationFailureReason( + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder + builderForValue) { + if (messageTransformationFailureReasonBuilder_ == null) { + reason_ = builderForValue.build(); + onChanged(); + } else { + messageTransformationFailureReasonBuilder_.setMessage(builderForValue.build()); + } + reasonCase_ = 8; + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeMessageTransformationFailureReason( + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason value) { + if (messageTransformationFailureReasonBuilder_ == null) { + if (reasonCase_ == 8 + && reason_ + != com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance()) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReason) + reason_) + .mergeFrom(value) + .buildPartial(); + } else { + reason_ = value; + } + onChanged(); + } else { + if (reasonCase_ == 8) { + messageTransformationFailureReasonBuilder_.mergeFrom(value); + } else { + messageTransformationFailureReasonBuilder_.setMessage(value); + } + } + reasonCase_ = 8; + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearMessageTransformationFailureReason() { + if (messageTransformationFailureReasonBuilder_ == null) { + if (reasonCase_ == 8) { + reasonCase_ = 0; + reason_ = null; + onChanged(); + } + } else { + if (reasonCase_ == 8) { + reasonCase_ = 0; + reason_ = null; + } + messageTransformationFailureReasonBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder + getMessageTransformationFailureReasonBuilder() { + return getMessageTransformationFailureReasonFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReasonOrBuilder + getMessageTransformationFailureReasonOrBuilder() { + if ((reasonCase_ == 8) && (messageTransformationFailureReasonBuilder_ != null)) { + return messageTransformationFailureReasonBuilder_.getMessageOrBuilder(); + } else { + if (reasonCase_ == 8) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 8 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReasonOrBuilder> + getMessageTransformationFailureReasonFieldBuilder() { + if (messageTransformationFailureReasonBuilder_ == null) { + if (!(reasonCase_ == 8)) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + messageTransformationFailureReasonBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .Builder, + com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_, + getParentForChildren(), + isClean()); + reason_ = null; + } + reasonCase_ = 8; + onChanged(); + return messageTransformationFailureReasonBuilder_; + } + + @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.pubsub.v1.IngestionFailureEvent.CloudStorageFailure) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure) + private static final com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure(); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CloudStorageFailure 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.pubsub.v1.IngestionFailureEvent.CloudStorageFailure + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface AwsMskFailureReasonOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Optional. The ARN of the cluster of the topic being ingested from.
+     * 
+ * + * string cluster_arn = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The clusterArn. + */ + java.lang.String getClusterArn(); + + /** + * + * + *
+     * Optional. The ARN of the cluster of the topic being ingested from.
+     * 
+ * + * string cluster_arn = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for clusterArn. + */ + com.google.protobuf.ByteString getClusterArnBytes(); + + /** + * + * + *
+     * Optional. The name of the Kafka topic being ingested from.
+     * 
+ * + * string kafka_topic = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The kafkaTopic. + */ + java.lang.String getKafkaTopic(); + + /** + * + * + *
+     * Optional. The name of the Kafka topic being ingested from.
+     * 
+ * + * string kafka_topic = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for kafkaTopic. + */ + com.google.protobuf.ByteString getKafkaTopicBytes(); + + /** + * + * + *
+     * Optional. The partition ID of the message that failed to be ingested.
+     * 
+ * + * int64 partition_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The partitionId. + */ + long getPartitionId(); + + /** + * + * + *
+     * Optional. The offset within the partition of the message that failed to
+     * be ingested.
+     * 
+ * + * int64 offset = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The offset. + */ + long getOffset(); + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the apiViolationReason field is set. + */ + boolean hasApiViolationReason(); + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The apiViolationReason. + */ + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason getApiViolationReason(); + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder + getApiViolationReasonOrBuilder(); + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the schemaViolationReason field is set. + */ + boolean hasSchemaViolationReason(); + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The schemaViolationReason. + */ + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason getSchemaViolationReason(); + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder + getSchemaViolationReasonOrBuilder(); + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the messageTransformationFailureReason field is set. + */ + boolean hasMessageTransformationFailureReason(); + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The messageTransformationFailureReason. + */ + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + getMessageTransformationFailureReason(); + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReasonOrBuilder + getMessageTransformationFailureReasonOrBuilder(); + + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.ReasonCase getReasonCase(); + } + + /** + * + * + *
+   * Failure when ingesting from an Amazon MSK source.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason} + */ + public static final class AwsMskFailureReason extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason) + AwsMskFailureReasonOrBuilder { + private static final long serialVersionUID = 0L; + + // Use AwsMskFailureReason.newBuilder() to construct. + private AwsMskFailureReason(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private AwsMskFailureReason() { + clusterArn_ = ""; + kafkaTopic_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new AwsMskFailureReason(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AwsMskFailureReason_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AwsMskFailureReason_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.class, + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.Builder.class); + } + + private int reasonCase_ = 0; + + @SuppressWarnings("serial") + private java.lang.Object reason_; + + public enum ReasonCase + implements + com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + API_VIOLATION_REASON(5), + SCHEMA_VIOLATION_REASON(6), + MESSAGE_TRANSFORMATION_FAILURE_REASON(7), + REASON_NOT_SET(0); + private final int value; + + private ReasonCase(int value) { + this.value = value; + } + + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ReasonCase valueOf(int value) { + return forNumber(value); + } + + public static ReasonCase forNumber(int value) { + switch (value) { + case 5: + return API_VIOLATION_REASON; + case 6: + return SCHEMA_VIOLATION_REASON; + case 7: + return MESSAGE_TRANSFORMATION_FAILURE_REASON; + case 0: + return REASON_NOT_SET; + default: + return null; + } + } + + public int getNumber() { + return this.value; + } + }; + + public ReasonCase getReasonCase() { + return ReasonCase.forNumber(reasonCase_); + } + + public static final int CLUSTER_ARN_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object clusterArn_ = ""; + + /** + * + * + *
+     * Optional. The ARN of the cluster of the topic being ingested from.
+     * 
+ * + * string cluster_arn = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The clusterArn. + */ + @java.lang.Override + public java.lang.String getClusterArn() { + java.lang.Object ref = clusterArn_; + 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(); + clusterArn_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. The ARN of the cluster of the topic being ingested from.
+     * 
+ * + * string cluster_arn = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for clusterArn. + */ + @java.lang.Override + public com.google.protobuf.ByteString getClusterArnBytes() { + java.lang.Object ref = clusterArn_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + clusterArn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int KAFKA_TOPIC_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object kafkaTopic_ = ""; + + /** + * + * + *
+     * Optional. The name of the Kafka topic being ingested from.
+     * 
+ * + * string kafka_topic = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The kafkaTopic. + */ + @java.lang.Override + public java.lang.String getKafkaTopic() { + java.lang.Object ref = kafkaTopic_; + 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(); + kafkaTopic_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. The name of the Kafka topic being ingested from.
+     * 
+ * + * string kafka_topic = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for kafkaTopic. + */ + @java.lang.Override + public com.google.protobuf.ByteString getKafkaTopicBytes() { + java.lang.Object ref = kafkaTopic_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + kafkaTopic_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PARTITION_ID_FIELD_NUMBER = 3; + private long partitionId_ = 0L; + + /** + * + * + *
+     * Optional. The partition ID of the message that failed to be ingested.
+     * 
+ * + * int64 partition_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The partitionId. + */ + @java.lang.Override + public long getPartitionId() { + return partitionId_; + } + + public static final int OFFSET_FIELD_NUMBER = 4; + private long offset_ = 0L; + + /** + * + * + *
+     * Optional. The offset within the partition of the message that failed to
+     * be ingested.
+     * 
+ * + * int64 offset = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The offset. + */ + @java.lang.Override + public long getOffset() { + return offset_; + } + + public static final int API_VIOLATION_REASON_FIELD_NUMBER = 5; + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the apiViolationReason field is set. + */ + @java.lang.Override + public boolean hasApiViolationReason() { + return reasonCase_ == 5; + } + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The apiViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason getApiViolationReason() { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder + getApiViolationReasonOrBuilder() { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + + public static final int SCHEMA_VIOLATION_REASON_FIELD_NUMBER = 6; + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the schemaViolationReason field is set. + */ + @java.lang.Override + public boolean hasSchemaViolationReason() { + return reasonCase_ == 6; + } + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The schemaViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + getSchemaViolationReason() { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder + getSchemaViolationReasonOrBuilder() { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.getDefaultInstance(); + } + + public static final int MESSAGE_TRANSFORMATION_FAILURE_REASON_FIELD_NUMBER = 7; + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the messageTransformationFailureReason field is set. + */ + @java.lang.Override + public boolean hasMessageTransformationFailureReason() { + return reasonCase_ == 7; + } + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The messageTransformationFailureReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + getMessageTransformationFailureReason() { + if (reasonCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReasonOrBuilder + getMessageTransformationFailureReasonOrBuilder() { + if (reasonCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + + 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(clusterArn_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterArn_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kafkaTopic_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, kafkaTopic_); + } + if (partitionId_ != 0L) { + output.writeInt64(3, partitionId_); + } + if (offset_ != 0L) { + output.writeInt64(4, offset_); + } + if (reasonCase_ == 5) { + output.writeMessage( + 5, (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_); + } + if (reasonCase_ == 6) { + output.writeMessage( + 6, (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_); + } + if (reasonCase_ == 7) { + output.writeMessage( + 7, + (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_); + } + 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(clusterArn_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterArn_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kafkaTopic_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, kafkaTopic_); + } + if (partitionId_ != 0L) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(3, partitionId_); + } + if (offset_ != 0L) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(4, offset_); + } + if (reasonCase_ == 5) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 5, (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_); + } + if (reasonCase_ == 6) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 6, (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_); + } + if (reasonCase_ == 7) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 7, + (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_); + } + 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.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason other = + (com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason) obj; + + if (!getClusterArn().equals(other.getClusterArn())) return false; + if (!getKafkaTopic().equals(other.getKafkaTopic())) return false; + if (getPartitionId() != other.getPartitionId()) return false; + if (getOffset() != other.getOffset()) return false; + if (!getReasonCase().equals(other.getReasonCase())) return false; + switch (reasonCase_) { + case 5: + if (!getApiViolationReason().equals(other.getApiViolationReason())) return false; + break; + case 6: + if (!getSchemaViolationReason().equals(other.getSchemaViolationReason())) return false; + break; + case 7: + if (!getMessageTransformationFailureReason() + .equals(other.getMessageTransformationFailureReason())) return false; + break; + case 0: + default: + } + 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) + CLUSTER_ARN_FIELD_NUMBER; + hash = (53 * hash) + getClusterArn().hashCode(); + hash = (37 * hash) + KAFKA_TOPIC_FIELD_NUMBER; + hash = (53 * hash) + getKafkaTopic().hashCode(); + hash = (37 * hash) + PARTITION_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getPartitionId()); + hash = (37 * hash) + OFFSET_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getOffset()); + switch (reasonCase_) { + case 5: + hash = (37 * hash) + API_VIOLATION_REASON_FIELD_NUMBER; + hash = (53 * hash) + getApiViolationReason().hashCode(); + break; + case 6: + hash = (37 * hash) + SCHEMA_VIOLATION_REASON_FIELD_NUMBER; + hash = (53 * hash) + getSchemaViolationReason().hashCode(); + break; + case 7: + hash = (37 * hash) + MESSAGE_TRANSFORMATION_FAILURE_REASON_FIELD_NUMBER; + hash = (53 * hash) + getMessageTransformationFailureReason().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason 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.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason 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.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason 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.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason 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.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason 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; + } + + /** + * + * + *
+     * Failure when ingesting from an Amazon MSK source.
+     * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason) + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReasonOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AwsMskFailureReason_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AwsMskFailureReason_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.class, + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.Builder.class); + } + + // Construct using com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + clusterArn_ = ""; + kafkaTopic_ = ""; + partitionId_ = 0L; + offset_ = 0L; + if (apiViolationReasonBuilder_ != null) { + apiViolationReasonBuilder_.clear(); + } + if (schemaViolationReasonBuilder_ != null) { + schemaViolationReasonBuilder_.clear(); + } + if (messageTransformationFailureReasonBuilder_ != null) { + messageTransformationFailureReasonBuilder_.clear(); + } + reasonCase_ = 0; + reason_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AwsMskFailureReason_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason + getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason build() { + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason buildPartial() { + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason result = + new com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.clusterArn_ = clusterArn_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.kafkaTopic_ = kafkaTopic_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.partitionId_ = partitionId_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.offset_ = offset_; + } + } + + private void buildPartialOneofs( + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason result) { + result.reasonCase_ = reasonCase_; + result.reason_ = this.reason_; + if (reasonCase_ == 5 && apiViolationReasonBuilder_ != null) { + result.reason_ = apiViolationReasonBuilder_.build(); + } + if (reasonCase_ == 6 && schemaViolationReasonBuilder_ != null) { + result.reason_ = schemaViolationReasonBuilder_.build(); + } + if (reasonCase_ == 7 && messageTransformationFailureReasonBuilder_ != null) { + result.reason_ = messageTransformationFailureReasonBuilder_.build(); + } + } + + @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.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason) { + return mergeFrom((com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason other) { + if (other + == com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.getDefaultInstance()) + return this; + if (!other.getClusterArn().isEmpty()) { + clusterArn_ = other.clusterArn_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getKafkaTopic().isEmpty()) { + kafkaTopic_ = other.kafkaTopic_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getPartitionId() != 0L) { + setPartitionId(other.getPartitionId()); + } + if (other.getOffset() != 0L) { + setOffset(other.getOffset()); + } + switch (other.getReasonCase()) { + case API_VIOLATION_REASON: + { + mergeApiViolationReason(other.getApiViolationReason()); + break; + } + case SCHEMA_VIOLATION_REASON: + { + mergeSchemaViolationReason(other.getSchemaViolationReason()); + break; + } + case MESSAGE_TRANSFORMATION_FAILURE_REASON: + { + mergeMessageTransformationFailureReason( + other.getMessageTransformationFailureReason()); + break; + } + case REASON_NOT_SET: + { + break; + } + } + 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: + { + clusterArn_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + kafkaTopic_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: + { + partitionId_ = input.readInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: + { + offset_ = input.readInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 42: + { + input.readMessage( + getApiViolationReasonFieldBuilder().getBuilder(), extensionRegistry); + reasonCase_ = 5; + break; + } // case 42 + case 50: + { + input.readMessage( + getSchemaViolationReasonFieldBuilder().getBuilder(), extensionRegistry); + reasonCase_ = 6; + break; + } // case 50 + case 58: + { + input.readMessage( + getMessageTransformationFailureReasonFieldBuilder().getBuilder(), + extensionRegistry); + reasonCase_ = 7; + break; + } // case 58 + 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 reasonCase_ = 0; + private java.lang.Object reason_; + + public ReasonCase getReasonCase() { + return ReasonCase.forNumber(reasonCase_); + } + + public Builder clearReason() { + reasonCase_ = 0; + reason_ = null; + onChanged(); + return this; + } + + private int bitField0_; + + private java.lang.Object clusterArn_ = ""; + + /** + * + * + *
+       * Optional. The ARN of the cluster of the topic being ingested from.
+       * 
+ * + * string cluster_arn = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The clusterArn. + */ + public java.lang.String getClusterArn() { + java.lang.Object ref = clusterArn_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + clusterArn_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. The ARN of the cluster of the topic being ingested from.
+       * 
+ * + * string cluster_arn = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for clusterArn. + */ + public com.google.protobuf.ByteString getClusterArnBytes() { + java.lang.Object ref = clusterArn_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + clusterArn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. The ARN of the cluster of the topic being ingested from.
+       * 
+ * + * string cluster_arn = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The clusterArn to set. + * @return This builder for chaining. + */ + public Builder setClusterArn(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + clusterArn_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The ARN of the cluster of the topic being ingested from.
+       * 
+ * + * string cluster_arn = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearClusterArn() { + clusterArn_ = getDefaultInstance().getClusterArn(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The ARN of the cluster of the topic being ingested from.
+       * 
+ * + * string cluster_arn = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for clusterArn to set. + * @return This builder for chaining. + */ + public Builder setClusterArnBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + clusterArn_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object kafkaTopic_ = ""; + + /** + * + * + *
+       * Optional. The name of the Kafka topic being ingested from.
+       * 
+ * + * string kafka_topic = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The kafkaTopic. + */ + public java.lang.String getKafkaTopic() { + java.lang.Object ref = kafkaTopic_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + kafkaTopic_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. The name of the Kafka topic being ingested from.
+       * 
+ * + * string kafka_topic = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for kafkaTopic. + */ + public com.google.protobuf.ByteString getKafkaTopicBytes() { + java.lang.Object ref = kafkaTopic_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + kafkaTopic_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. The name of the Kafka topic being ingested from.
+       * 
+ * + * string kafka_topic = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The kafkaTopic to set. + * @return This builder for chaining. + */ + public Builder setKafkaTopic(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + kafkaTopic_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The name of the Kafka topic being ingested from.
+       * 
+ * + * string kafka_topic = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearKafkaTopic() { + kafkaTopic_ = getDefaultInstance().getKafkaTopic(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The name of the Kafka topic being ingested from.
+       * 
+ * + * string kafka_topic = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for kafkaTopic to set. + * @return This builder for chaining. + */ + public Builder setKafkaTopicBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + kafkaTopic_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private long partitionId_; + + /** + * + * + *
+       * Optional. The partition ID of the message that failed to be ingested.
+       * 
+ * + * int64 partition_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The partitionId. + */ + @java.lang.Override + public long getPartitionId() { + return partitionId_; + } + + /** + * + * + *
+       * Optional. The partition ID of the message that failed to be ingested.
+       * 
+ * + * int64 partition_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The partitionId to set. + * @return This builder for chaining. + */ + public Builder setPartitionId(long value) { + + partitionId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The partition ID of the message that failed to be ingested.
+       * 
+ * + * int64 partition_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearPartitionId() { + bitField0_ = (bitField0_ & ~0x00000004); + partitionId_ = 0L; + onChanged(); + return this; + } + + private long offset_; + + /** + * + * + *
+       * Optional. The offset within the partition of the message that failed to
+       * be ingested.
+       * 
+ * + * int64 offset = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The offset. + */ + @java.lang.Override + public long getOffset() { + return offset_; + } + + /** + * + * + *
+       * Optional. The offset within the partition of the message that failed to
+       * be ingested.
+       * 
+ * + * int64 offset = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The offset to set. + * @return This builder for chaining. + */ + public Builder setOffset(long value) { + + offset_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The offset within the partition of the message that failed to
+       * be ingested.
+       * 
+ * + * int64 offset = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearOffset() { + bitField0_ = (bitField0_ & ~0x00000008); + offset_ = 0L; + onChanged(); + return this; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder> + apiViolationReasonBuilder_; + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the apiViolationReason field is set. + */ + @java.lang.Override + public boolean hasApiViolationReason() { + return reasonCase_ == 5; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The apiViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason getApiViolationReason() { + if (apiViolationReasonBuilder_ == null) { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } else { + if (reasonCase_ == 5) { + return apiViolationReasonBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setApiViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason value) { + if (apiViolationReasonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + reason_ = value; + onChanged(); + } else { + apiViolationReasonBuilder_.setMessage(value); + } + reasonCase_ = 5; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setApiViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder builderForValue) { + if (apiViolationReasonBuilder_ == null) { + reason_ = builderForValue.build(); + onChanged(); + } else { + apiViolationReasonBuilder_.setMessage(builderForValue.build()); + } + reasonCase_ = 5; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeApiViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason value) { + if (apiViolationReasonBuilder_ == null) { + if (reasonCase_ == 5 + && reason_ + != com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason + .getDefaultInstance()) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_) + .mergeFrom(value) + .buildPartial(); + } else { + reason_ = value; + } + onChanged(); + } else { + if (reasonCase_ == 5) { + apiViolationReasonBuilder_.mergeFrom(value); + } else { + apiViolationReasonBuilder_.setMessage(value); + } + } + reasonCase_ = 5; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearApiViolationReason() { + if (apiViolationReasonBuilder_ == null) { + if (reasonCase_ == 5) { + reasonCase_ = 0; + reason_ = null; + onChanged(); + } + } else { + if (reasonCase_ == 5) { + reasonCase_ = 0; + reason_ = null; + } + apiViolationReasonBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder + getApiViolationReasonBuilder() { + return getApiViolationReasonFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder + getApiViolationReasonOrBuilder() { + if ((reasonCase_ == 5) && (apiViolationReasonBuilder_ != null)) { + return apiViolationReasonBuilder_.getMessageOrBuilder(); + } else { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder> + getApiViolationReasonFieldBuilder() { + if (apiViolationReasonBuilder_ == null) { + if (!(reasonCase_ == 5)) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + apiViolationReasonBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_, + getParentForChildren(), + isClean()); + reason_ = null; + } + reasonCase_ = 5; + onChanged(); + return apiViolationReasonBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder> + schemaViolationReasonBuilder_; + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the schemaViolationReason field is set. + */ + @java.lang.Override + public boolean hasSchemaViolationReason() { + return reasonCase_ == 6; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The schemaViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + getSchemaViolationReason() { + if (schemaViolationReasonBuilder_ == null) { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } else { + if (reasonCase_ == 6) { + return schemaViolationReasonBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setSchemaViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason value) { + if (schemaViolationReasonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + reason_ = value; + onChanged(); + } else { + schemaViolationReasonBuilder_.setMessage(value); + } + reasonCase_ = 6; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setSchemaViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder + builderForValue) { + if (schemaViolationReasonBuilder_ == null) { + reason_ = builderForValue.build(); + onChanged(); + } else { + schemaViolationReasonBuilder_.setMessage(builderForValue.build()); + } + reasonCase_ = 6; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeSchemaViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason value) { + if (schemaViolationReasonBuilder_ == null) { + if (reasonCase_ == 6 + && reason_ + != com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance()) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_) + .mergeFrom(value) + .buildPartial(); + } else { + reason_ = value; + } + onChanged(); + } else { + if (reasonCase_ == 6) { + schemaViolationReasonBuilder_.mergeFrom(value); + } else { + schemaViolationReasonBuilder_.setMessage(value); + } + } + reasonCase_ = 6; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearSchemaViolationReason() { + if (schemaViolationReasonBuilder_ == null) { + if (reasonCase_ == 6) { + reasonCase_ = 0; + reason_ = null; + onChanged(); + } + } else { + if (reasonCase_ == 6) { + reasonCase_ = 0; + reason_ = null; + } + schemaViolationReasonBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder + getSchemaViolationReasonBuilder() { + return getSchemaViolationReasonFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder + getSchemaViolationReasonOrBuilder() { + if ((reasonCase_ == 6) && (schemaViolationReasonBuilder_ != null)) { + return schemaViolationReasonBuilder_.getMessageOrBuilder(); + } else { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder> + getSchemaViolationReasonFieldBuilder() { + if (schemaViolationReasonBuilder_ == null) { + if (!(reasonCase_ == 6)) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } + schemaViolationReasonBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_, + getParentForChildren(), + isClean()); + reason_ = null; + } + reasonCase_ = 6; + onChanged(); + return schemaViolationReasonBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReasonOrBuilder> + messageTransformationFailureReasonBuilder_; + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the messageTransformationFailureReason field is set. + */ + @java.lang.Override + public boolean hasMessageTransformationFailureReason() { + return reasonCase_ == 7; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The messageTransformationFailureReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + getMessageTransformationFailureReason() { + if (messageTransformationFailureReasonBuilder_ == null) { + if (reasonCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } else { + if (reasonCase_ == 7) { + return messageTransformationFailureReasonBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setMessageTransformationFailureReason( + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason value) { + if (messageTransformationFailureReasonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + reason_ = value; + onChanged(); + } else { + messageTransformationFailureReasonBuilder_.setMessage(value); + } + reasonCase_ = 7; + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setMessageTransformationFailureReason( + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder + builderForValue) { + if (messageTransformationFailureReasonBuilder_ == null) { + reason_ = builderForValue.build(); + onChanged(); + } else { + messageTransformationFailureReasonBuilder_.setMessage(builderForValue.build()); + } + reasonCase_ = 7; + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeMessageTransformationFailureReason( + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason value) { + if (messageTransformationFailureReasonBuilder_ == null) { + if (reasonCase_ == 7 + && reason_ + != com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance()) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReason) + reason_) + .mergeFrom(value) + .buildPartial(); + } else { + reason_ = value; + } + onChanged(); + } else { + if (reasonCase_ == 7) { + messageTransformationFailureReasonBuilder_.mergeFrom(value); + } else { + messageTransformationFailureReasonBuilder_.setMessage(value); + } + } + reasonCase_ = 7; + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearMessageTransformationFailureReason() { + if (messageTransformationFailureReasonBuilder_ == null) { + if (reasonCase_ == 7) { + reasonCase_ = 0; + reason_ = null; + onChanged(); + } + } else { + if (reasonCase_ == 7) { + reasonCase_ = 0; + reason_ = null; + } + messageTransformationFailureReasonBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder + getMessageTransformationFailureReasonBuilder() { + return getMessageTransformationFailureReasonFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReasonOrBuilder + getMessageTransformationFailureReasonOrBuilder() { + if ((reasonCase_ == 7) && (messageTransformationFailureReasonBuilder_ != null)) { + return messageTransformationFailureReasonBuilder_.getMessageOrBuilder(); + } else { + if (reasonCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReasonOrBuilder> + getMessageTransformationFailureReasonFieldBuilder() { + if (messageTransformationFailureReasonBuilder_ == null) { + if (!(reasonCase_ == 7)) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + messageTransformationFailureReasonBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .Builder, + com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_, + getParentForChildren(), + isClean()); + reason_ = null; + } + reasonCase_ = 7; + onChanged(); + return messageTransformationFailureReasonBuilder_; + } + + @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.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason) + private static final com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason(); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AwsMskFailureReason 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.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface AzureEventHubsFailureReasonOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Optional. The namespace containing the event hub being ingested from.
+     * 
+ * + * string namespace = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The namespace. + */ + java.lang.String getNamespace(); + + /** + * + * + *
+     * Optional. The namespace containing the event hub being ingested from.
+     * 
+ * + * string namespace = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for namespace. + */ + com.google.protobuf.ByteString getNamespaceBytes(); + + /** + * + * + *
+     * Optional. The name of the event hub being ingested from.
+     * 
+ * + * string event_hub = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The eventHub. + */ + java.lang.String getEventHub(); + + /** + * + * + *
+     * Optional. The name of the event hub being ingested from.
+     * 
+ * + * string event_hub = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for eventHub. + */ + com.google.protobuf.ByteString getEventHubBytes(); + + /** + * + * + *
+     * Optional. The partition ID of the message that failed to be ingested.
+     * 
+ * + * int64 partition_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The partitionId. + */ + long getPartitionId(); + + /** + * + * + *
+     * Optional. The offset within the partition of the message that failed to
+     * be ingested.
+     * 
+ * + * int64 offset = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The offset. + */ + long getOffset(); + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the apiViolationReason field is set. + */ + boolean hasApiViolationReason(); + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The apiViolationReason. + */ + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason getApiViolationReason(); + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder + getApiViolationReasonOrBuilder(); + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the schemaViolationReason field is set. + */ + boolean hasSchemaViolationReason(); + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The schemaViolationReason. + */ + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason getSchemaViolationReason(); + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder + getSchemaViolationReasonOrBuilder(); + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the messageTransformationFailureReason field is set. + */ + boolean hasMessageTransformationFailureReason(); + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The messageTransformationFailureReason. + */ + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + getMessageTransformationFailureReason(); + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReasonOrBuilder + getMessageTransformationFailureReasonOrBuilder(); + + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason.ReasonCase + getReasonCase(); + } + + /** + * + * + *
+   * Failure when ingesting from an Azure Event Hubs source.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason} + */ + public static final class AzureEventHubsFailureReason + extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason) + AzureEventHubsFailureReasonOrBuilder { + private static final long serialVersionUID = 0L; + + // Use AzureEventHubsFailureReason.newBuilder() to construct. + private AzureEventHubsFailureReason(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private AzureEventHubsFailureReason() { + namespace_ = ""; + eventHub_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new AzureEventHubsFailureReason(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AzureEventHubsFailureReason_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AzureEventHubsFailureReason_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason.class, + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason.Builder.class); + } + + private int reasonCase_ = 0; + + @SuppressWarnings("serial") + private java.lang.Object reason_; + + public enum ReasonCase + implements + com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + API_VIOLATION_REASON(5), + SCHEMA_VIOLATION_REASON(6), + MESSAGE_TRANSFORMATION_FAILURE_REASON(7), + REASON_NOT_SET(0); + private final int value; + + private ReasonCase(int value) { + this.value = value; + } + + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ReasonCase valueOf(int value) { + return forNumber(value); + } + + public static ReasonCase forNumber(int value) { + switch (value) { + case 5: + return API_VIOLATION_REASON; + case 6: + return SCHEMA_VIOLATION_REASON; + case 7: + return MESSAGE_TRANSFORMATION_FAILURE_REASON; + case 0: + return REASON_NOT_SET; + default: + return null; + } + } + + public int getNumber() { + return this.value; + } + }; + + public ReasonCase getReasonCase() { + return ReasonCase.forNumber(reasonCase_); + } + + public static final int NAMESPACE_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object namespace_ = ""; + + /** + * + * + *
+     * Optional. The namespace containing the event hub being ingested from.
+     * 
+ * + * string namespace = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The namespace. + */ + @java.lang.Override + public java.lang.String getNamespace() { + java.lang.Object ref = namespace_; + 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(); + namespace_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. The namespace containing the event hub being ingested from.
+     * 
+ * + * string namespace = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for namespace. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNamespaceBytes() { + java.lang.Object ref = namespace_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + namespace_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EVENT_HUB_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object eventHub_ = ""; + + /** + * + * + *
+     * Optional. The name of the event hub being ingested from.
+     * 
+ * + * string event_hub = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The eventHub. + */ + @java.lang.Override + public java.lang.String getEventHub() { + java.lang.Object ref = eventHub_; + 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(); + eventHub_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. The name of the event hub being ingested from.
+     * 
+ * + * string event_hub = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for eventHub. + */ + @java.lang.Override + public com.google.protobuf.ByteString getEventHubBytes() { + java.lang.Object ref = eventHub_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + eventHub_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PARTITION_ID_FIELD_NUMBER = 3; + private long partitionId_ = 0L; + + /** + * + * + *
+     * Optional. The partition ID of the message that failed to be ingested.
+     * 
+ * + * int64 partition_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The partitionId. + */ + @java.lang.Override + public long getPartitionId() { + return partitionId_; + } + + public static final int OFFSET_FIELD_NUMBER = 4; + private long offset_ = 0L; + + /** + * + * + *
+     * Optional. The offset within the partition of the message that failed to
+     * be ingested.
+     * 
+ * + * int64 offset = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The offset. + */ + @java.lang.Override + public long getOffset() { + return offset_; + } + + public static final int API_VIOLATION_REASON_FIELD_NUMBER = 5; + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the apiViolationReason field is set. + */ + @java.lang.Override + public boolean hasApiViolationReason() { + return reasonCase_ == 5; + } + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The apiViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason getApiViolationReason() { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder + getApiViolationReasonOrBuilder() { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + + public static final int SCHEMA_VIOLATION_REASON_FIELD_NUMBER = 6; + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the schemaViolationReason field is set. + */ + @java.lang.Override + public boolean hasSchemaViolationReason() { + return reasonCase_ == 6; + } + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The schemaViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + getSchemaViolationReason() { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder + getSchemaViolationReasonOrBuilder() { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.getDefaultInstance(); + } + + public static final int MESSAGE_TRANSFORMATION_FAILURE_REASON_FIELD_NUMBER = 7; + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the messageTransformationFailureReason field is set. + */ + @java.lang.Override + public boolean hasMessageTransformationFailureReason() { + return reasonCase_ == 7; + } + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The messageTransformationFailureReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + getMessageTransformationFailureReason() { + if (reasonCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReasonOrBuilder + getMessageTransformationFailureReasonOrBuilder() { + if (reasonCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + + 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(namespace_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, namespace_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(eventHub_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, eventHub_); + } + if (partitionId_ != 0L) { + output.writeInt64(3, partitionId_); + } + if (offset_ != 0L) { + output.writeInt64(4, offset_); + } + if (reasonCase_ == 5) { + output.writeMessage( + 5, (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_); + } + if (reasonCase_ == 6) { + output.writeMessage( + 6, (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_); + } + if (reasonCase_ == 7) { + output.writeMessage( + 7, + (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_); + } + 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(namespace_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, namespace_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(eventHub_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, eventHub_); + } + if (partitionId_ != 0L) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(3, partitionId_); + } + if (offset_ != 0L) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(4, offset_); + } + if (reasonCase_ == 5) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 5, (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_); + } + if (reasonCase_ == 6) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 6, (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_); + } + if (reasonCase_ == 7) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 7, + (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_); + } + 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.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason other = + (com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason) obj; + + if (!getNamespace().equals(other.getNamespace())) return false; + if (!getEventHub().equals(other.getEventHub())) return false; + if (getPartitionId() != other.getPartitionId()) return false; + if (getOffset() != other.getOffset()) return false; + if (!getReasonCase().equals(other.getReasonCase())) return false; + switch (reasonCase_) { + case 5: + if (!getApiViolationReason().equals(other.getApiViolationReason())) return false; + break; + case 6: + if (!getSchemaViolationReason().equals(other.getSchemaViolationReason())) return false; + break; + case 7: + if (!getMessageTransformationFailureReason() + .equals(other.getMessageTransformationFailureReason())) return false; + break; + case 0: + default: + } + 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) + NAMESPACE_FIELD_NUMBER; + hash = (53 * hash) + getNamespace().hashCode(); + hash = (37 * hash) + EVENT_HUB_FIELD_NUMBER; + hash = (53 * hash) + getEventHub().hashCode(); + hash = (37 * hash) + PARTITION_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getPartitionId()); + hash = (37 * hash) + OFFSET_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getOffset()); + switch (reasonCase_) { + case 5: + hash = (37 * hash) + API_VIOLATION_REASON_FIELD_NUMBER; + hash = (53 * hash) + getApiViolationReason().hashCode(); + break; + case 6: + hash = (37 * hash) + SCHEMA_VIOLATION_REASON_FIELD_NUMBER; + hash = (53 * hash) + getSchemaViolationReason().hashCode(); + break; + case 7: + hash = (37 * hash) + MESSAGE_TRANSFORMATION_FAILURE_REASON_FIELD_NUMBER; + hash = (53 * hash) + getMessageTransformationFailureReason().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason 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.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason 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.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason + 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.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason 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.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason 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; + } + + /** + * + * + *
+     * Failure when ingesting from an Azure Event Hubs source.
+     * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason) + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReasonOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AzureEventHubsFailureReason_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AzureEventHubsFailureReason_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason.class, + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason.Builder + .class); + } + + // Construct using + // com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + namespace_ = ""; + eventHub_ = ""; + partitionId_ = 0L; + offset_ = 0L; + if (apiViolationReasonBuilder_ != null) { + apiViolationReasonBuilder_.clear(); + } + if (schemaViolationReasonBuilder_ != null) { + schemaViolationReasonBuilder_.clear(); + } + if (messageTransformationFailureReasonBuilder_ != null) { + messageTransformationFailureReasonBuilder_.clear(); + } + reasonCase_ = 0; + reason_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AzureEventHubsFailureReason_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason + getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason build() { + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason buildPartial() { + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason result = + new com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.namespace_ = namespace_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.eventHub_ = eventHub_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.partitionId_ = partitionId_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.offset_ = offset_; + } + } + + private void buildPartialOneofs( + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason result) { + result.reasonCase_ = reasonCase_; + result.reason_ = this.reason_; + if (reasonCase_ == 5 && apiViolationReasonBuilder_ != null) { + result.reason_ = apiViolationReasonBuilder_.build(); + } + if (reasonCase_ == 6 && schemaViolationReasonBuilder_ != null) { + result.reason_ = schemaViolationReasonBuilder_.build(); + } + if (reasonCase_ == 7 && messageTransformationFailureReasonBuilder_ != null) { + result.reason_ = messageTransformationFailureReasonBuilder_.build(); + } + } + + @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.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason) { + return mergeFrom( + (com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason other) { + if (other + == com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason + .getDefaultInstance()) return this; + if (!other.getNamespace().isEmpty()) { + namespace_ = other.namespace_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getEventHub().isEmpty()) { + eventHub_ = other.eventHub_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getPartitionId() != 0L) { + setPartitionId(other.getPartitionId()); + } + if (other.getOffset() != 0L) { + setOffset(other.getOffset()); + } + switch (other.getReasonCase()) { + case API_VIOLATION_REASON: + { + mergeApiViolationReason(other.getApiViolationReason()); + break; + } + case SCHEMA_VIOLATION_REASON: + { + mergeSchemaViolationReason(other.getSchemaViolationReason()); + break; + } + case MESSAGE_TRANSFORMATION_FAILURE_REASON: + { + mergeMessageTransformationFailureReason( + other.getMessageTransformationFailureReason()); + break; + } + case REASON_NOT_SET: + { + break; + } + } + 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: + { + namespace_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + eventHub_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: + { + partitionId_ = input.readInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: + { + offset_ = input.readInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 42: + { + input.readMessage( + getApiViolationReasonFieldBuilder().getBuilder(), extensionRegistry); + reasonCase_ = 5; + break; + } // case 42 + case 50: + { + input.readMessage( + getSchemaViolationReasonFieldBuilder().getBuilder(), extensionRegistry); + reasonCase_ = 6; + break; + } // case 50 + case 58: + { + input.readMessage( + getMessageTransformationFailureReasonFieldBuilder().getBuilder(), + extensionRegistry); + reasonCase_ = 7; + break; + } // case 58 + 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 reasonCase_ = 0; + private java.lang.Object reason_; + + public ReasonCase getReasonCase() { + return ReasonCase.forNumber(reasonCase_); + } + + public Builder clearReason() { + reasonCase_ = 0; + reason_ = null; + onChanged(); + return this; + } + + private int bitField0_; + + private java.lang.Object namespace_ = ""; + + /** + * + * + *
+       * Optional. The namespace containing the event hub being ingested from.
+       * 
+ * + * string namespace = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The namespace. + */ + public java.lang.String getNamespace() { + java.lang.Object ref = namespace_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + namespace_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. The namespace containing the event hub being ingested from.
+       * 
+ * + * string namespace = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for namespace. + */ + public com.google.protobuf.ByteString getNamespaceBytes() { + java.lang.Object ref = namespace_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + namespace_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. The namespace containing the event hub being ingested from.
+       * 
+ * + * string namespace = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The namespace to set. + * @return This builder for chaining. + */ + public Builder setNamespace(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + namespace_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The namespace containing the event hub being ingested from.
+       * 
+ * + * string namespace = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearNamespace() { + namespace_ = getDefaultInstance().getNamespace(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The namespace containing the event hub being ingested from.
+       * 
+ * + * string namespace = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for namespace to set. + * @return This builder for chaining. + */ + public Builder setNamespaceBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + namespace_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object eventHub_ = ""; + + /** + * + * + *
+       * Optional. The name of the event hub being ingested from.
+       * 
+ * + * string event_hub = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The eventHub. + */ + public java.lang.String getEventHub() { + java.lang.Object ref = eventHub_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + eventHub_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. The name of the event hub being ingested from.
+       * 
+ * + * string event_hub = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for eventHub. + */ + public com.google.protobuf.ByteString getEventHubBytes() { + java.lang.Object ref = eventHub_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + eventHub_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. The name of the event hub being ingested from.
+       * 
+ * + * string event_hub = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The eventHub to set. + * @return This builder for chaining. + */ + public Builder setEventHub(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + eventHub_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The name of the event hub being ingested from.
+       * 
+ * + * string event_hub = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearEventHub() { + eventHub_ = getDefaultInstance().getEventHub(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The name of the event hub being ingested from.
+       * 
+ * + * string event_hub = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for eventHub to set. + * @return This builder for chaining. + */ + public Builder setEventHubBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + eventHub_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private long partitionId_; + + /** + * + * + *
+       * Optional. The partition ID of the message that failed to be ingested.
+       * 
+ * + * int64 partition_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The partitionId. + */ + @java.lang.Override + public long getPartitionId() { + return partitionId_; + } + + /** + * + * + *
+       * Optional. The partition ID of the message that failed to be ingested.
+       * 
+ * + * int64 partition_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The partitionId to set. + * @return This builder for chaining. + */ + public Builder setPartitionId(long value) { + + partitionId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The partition ID of the message that failed to be ingested.
+       * 
+ * + * int64 partition_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearPartitionId() { + bitField0_ = (bitField0_ & ~0x00000004); + partitionId_ = 0L; + onChanged(); + return this; + } + + private long offset_; + + /** + * + * + *
+       * Optional. The offset within the partition of the message that failed to
+       * be ingested.
+       * 
+ * + * int64 offset = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The offset. + */ + @java.lang.Override + public long getOffset() { + return offset_; + } + + /** + * + * + *
+       * Optional. The offset within the partition of the message that failed to
+       * be ingested.
+       * 
+ * + * int64 offset = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The offset to set. + * @return This builder for chaining. + */ + public Builder setOffset(long value) { + + offset_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The offset within the partition of the message that failed to
+       * be ingested.
+       * 
+ * + * int64 offset = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearOffset() { + bitField0_ = (bitField0_ & ~0x00000008); + offset_ = 0L; + onChanged(); + return this; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder> + apiViolationReasonBuilder_; + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the apiViolationReason field is set. + */ + @java.lang.Override + public boolean hasApiViolationReason() { + return reasonCase_ == 5; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The apiViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason getApiViolationReason() { + if (apiViolationReasonBuilder_ == null) { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } else { + if (reasonCase_ == 5) { + return apiViolationReasonBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setApiViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason value) { + if (apiViolationReasonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + reason_ = value; + onChanged(); + } else { + apiViolationReasonBuilder_.setMessage(value); + } + reasonCase_ = 5; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setApiViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder builderForValue) { + if (apiViolationReasonBuilder_ == null) { + reason_ = builderForValue.build(); + onChanged(); + } else { + apiViolationReasonBuilder_.setMessage(builderForValue.build()); + } + reasonCase_ = 5; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeApiViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason value) { + if (apiViolationReasonBuilder_ == null) { + if (reasonCase_ == 5 + && reason_ + != com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason + .getDefaultInstance()) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_) + .mergeFrom(value) + .buildPartial(); + } else { + reason_ = value; + } + onChanged(); + } else { + if (reasonCase_ == 5) { + apiViolationReasonBuilder_.mergeFrom(value); + } else { + apiViolationReasonBuilder_.setMessage(value); + } + } + reasonCase_ = 5; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearApiViolationReason() { + if (apiViolationReasonBuilder_ == null) { + if (reasonCase_ == 5) { + reasonCase_ = 0; + reason_ = null; + onChanged(); + } + } else { + if (reasonCase_ == 5) { + reasonCase_ = 0; + reason_ = null; + } + apiViolationReasonBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder + getApiViolationReasonBuilder() { + return getApiViolationReasonFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder + getApiViolationReasonOrBuilder() { + if ((reasonCase_ == 5) && (apiViolationReasonBuilder_ != null)) { + return apiViolationReasonBuilder_.getMessageOrBuilder(); + } else { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder> + getApiViolationReasonFieldBuilder() { + if (apiViolationReasonBuilder_ == null) { + if (!(reasonCase_ == 5)) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + apiViolationReasonBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_, + getParentForChildren(), + isClean()); + reason_ = null; + } + reasonCase_ = 5; + onChanged(); + return apiViolationReasonBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder> + schemaViolationReasonBuilder_; + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the schemaViolationReason field is set. + */ + @java.lang.Override + public boolean hasSchemaViolationReason() { + return reasonCase_ == 6; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The schemaViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + getSchemaViolationReason() { + if (schemaViolationReasonBuilder_ == null) { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } else { + if (reasonCase_ == 6) { + return schemaViolationReasonBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setSchemaViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason value) { + if (schemaViolationReasonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + reason_ = value; + onChanged(); + } else { + schemaViolationReasonBuilder_.setMessage(value); + } + reasonCase_ = 6; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setSchemaViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder + builderForValue) { + if (schemaViolationReasonBuilder_ == null) { + reason_ = builderForValue.build(); + onChanged(); + } else { + schemaViolationReasonBuilder_.setMessage(builderForValue.build()); + } + reasonCase_ = 6; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeSchemaViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason value) { + if (schemaViolationReasonBuilder_ == null) { + if (reasonCase_ == 6 + && reason_ + != com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance()) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_) + .mergeFrom(value) + .buildPartial(); + } else { + reason_ = value; + } + onChanged(); + } else { + if (reasonCase_ == 6) { + schemaViolationReasonBuilder_.mergeFrom(value); + } else { + schemaViolationReasonBuilder_.setMessage(value); + } + } + reasonCase_ = 6; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearSchemaViolationReason() { + if (schemaViolationReasonBuilder_ == null) { + if (reasonCase_ == 6) { + reasonCase_ = 0; + reason_ = null; + onChanged(); + } + } else { + if (reasonCase_ == 6) { + reasonCase_ = 0; + reason_ = null; + } + schemaViolationReasonBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder + getSchemaViolationReasonBuilder() { + return getSchemaViolationReasonFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder + getSchemaViolationReasonOrBuilder() { + if ((reasonCase_ == 6) && (schemaViolationReasonBuilder_ != null)) { + return schemaViolationReasonBuilder_.getMessageOrBuilder(); + } else { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder> + getSchemaViolationReasonFieldBuilder() { + if (schemaViolationReasonBuilder_ == null) { + if (!(reasonCase_ == 6)) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } + schemaViolationReasonBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_, + getParentForChildren(), + isClean()); + reason_ = null; + } + reasonCase_ = 6; + onChanged(); + return schemaViolationReasonBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReasonOrBuilder> + messageTransformationFailureReasonBuilder_; + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the messageTransformationFailureReason field is set. + */ + @java.lang.Override + public boolean hasMessageTransformationFailureReason() { + return reasonCase_ == 7; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The messageTransformationFailureReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + getMessageTransformationFailureReason() { + if (messageTransformationFailureReasonBuilder_ == null) { + if (reasonCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } else { + if (reasonCase_ == 7) { + return messageTransformationFailureReasonBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setMessageTransformationFailureReason( + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason value) { + if (messageTransformationFailureReasonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + reason_ = value; + onChanged(); + } else { + messageTransformationFailureReasonBuilder_.setMessage(value); + } + reasonCase_ = 7; + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setMessageTransformationFailureReason( + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder + builderForValue) { + if (messageTransformationFailureReasonBuilder_ == null) { + reason_ = builderForValue.build(); + onChanged(); + } else { + messageTransformationFailureReasonBuilder_.setMessage(builderForValue.build()); + } + reasonCase_ = 7; + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeMessageTransformationFailureReason( + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason value) { + if (messageTransformationFailureReasonBuilder_ == null) { + if (reasonCase_ == 7 + && reason_ + != com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance()) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReason) + reason_) + .mergeFrom(value) + .buildPartial(); + } else { + reason_ = value; + } + onChanged(); + } else { + if (reasonCase_ == 7) { + messageTransformationFailureReasonBuilder_.mergeFrom(value); + } else { + messageTransformationFailureReasonBuilder_.setMessage(value); + } + } + reasonCase_ = 7; + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearMessageTransformationFailureReason() { + if (messageTransformationFailureReasonBuilder_ == null) { + if (reasonCase_ == 7) { + reasonCase_ = 0; + reason_ = null; + onChanged(); + } + } else { + if (reasonCase_ == 7) { + reasonCase_ = 0; + reason_ = null; + } + messageTransformationFailureReasonBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder + getMessageTransformationFailureReasonBuilder() { + return getMessageTransformationFailureReasonFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReasonOrBuilder + getMessageTransformationFailureReasonOrBuilder() { + if ((reasonCase_ == 7) && (messageTransformationFailureReasonBuilder_ != null)) { + return messageTransformationFailureReasonBuilder_.getMessageOrBuilder(); + } else { + if (reasonCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReasonOrBuilder> + getMessageTransformationFailureReasonFieldBuilder() { + if (messageTransformationFailureReasonBuilder_ == null) { + if (!(reasonCase_ == 7)) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + messageTransformationFailureReasonBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .Builder, + com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_, + getParentForChildren(), + isClean()); + reason_ = null; + } + reasonCase_ = 7; + onChanged(); + return messageTransformationFailureReasonBuilder_; + } + + @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.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason) + private static final com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason(); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AzureEventHubsFailureReason 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.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ConfluentCloudFailureReasonOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Optional. The cluster ID containing the topic being ingested from.
+     * 
+ * + * string cluster_id = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The clusterId. + */ + java.lang.String getClusterId(); + + /** + * + * + *
+     * Optional. The cluster ID containing the topic being ingested from.
+     * 
+ * + * string cluster_id = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for clusterId. + */ + com.google.protobuf.ByteString getClusterIdBytes(); + + /** + * + * + *
+     * Optional. The name of the Kafka topic being ingested from.
+     * 
+ * + * string kafka_topic = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The kafkaTopic. + */ + java.lang.String getKafkaTopic(); + + /** + * + * + *
+     * Optional. The name of the Kafka topic being ingested from.
+     * 
+ * + * string kafka_topic = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for kafkaTopic. + */ + com.google.protobuf.ByteString getKafkaTopicBytes(); + + /** + * + * + *
+     * Optional. The partition ID of the message that failed to be ingested.
+     * 
+ * + * int64 partition_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The partitionId. + */ + long getPartitionId(); + + /** + * + * + *
+     * Optional. The offset within the partition of the message that failed to
+     * be ingested.
+     * 
+ * + * int64 offset = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The offset. + */ + long getOffset(); + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the apiViolationReason field is set. + */ + boolean hasApiViolationReason(); + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The apiViolationReason. + */ + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason getApiViolationReason(); + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder + getApiViolationReasonOrBuilder(); + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the schemaViolationReason field is set. + */ + boolean hasSchemaViolationReason(); + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The schemaViolationReason. + */ + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason getSchemaViolationReason(); + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder + getSchemaViolationReasonOrBuilder(); + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the messageTransformationFailureReason field is set. + */ + boolean hasMessageTransformationFailureReason(); + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The messageTransformationFailureReason. + */ + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + getMessageTransformationFailureReason(); + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReasonOrBuilder + getMessageTransformationFailureReasonOrBuilder(); + + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason.ReasonCase + getReasonCase(); + } + + /** + * + * + *
+   * Failure when ingesting from a Confluent Cloud source.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason} + */ + public static final class ConfluentCloudFailureReason + extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason) + ConfluentCloudFailureReasonOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ConfluentCloudFailureReason.newBuilder() to construct. + private ConfluentCloudFailureReason(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ConfluentCloudFailureReason() { + clusterId_ = ""; + kafkaTopic_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ConfluentCloudFailureReason(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_ConfluentCloudFailureReason_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_ConfluentCloudFailureReason_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason.class, + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason.Builder.class); + } + + private int reasonCase_ = 0; + + @SuppressWarnings("serial") + private java.lang.Object reason_; + + public enum ReasonCase + implements + com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + API_VIOLATION_REASON(5), + SCHEMA_VIOLATION_REASON(6), + MESSAGE_TRANSFORMATION_FAILURE_REASON(7), + REASON_NOT_SET(0); + private final int value; + + private ReasonCase(int value) { + this.value = value; + } + + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ReasonCase valueOf(int value) { + return forNumber(value); + } + + public static ReasonCase forNumber(int value) { + switch (value) { + case 5: + return API_VIOLATION_REASON; + case 6: + return SCHEMA_VIOLATION_REASON; + case 7: + return MESSAGE_TRANSFORMATION_FAILURE_REASON; + case 0: + return REASON_NOT_SET; + default: + return null; + } + } + + public int getNumber() { + return this.value; + } + }; + + public ReasonCase getReasonCase() { + return ReasonCase.forNumber(reasonCase_); + } + + public static final int CLUSTER_ID_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object clusterId_ = ""; + + /** + * + * + *
+     * Optional. The cluster ID containing the topic being ingested from.
+     * 
+ * + * string cluster_id = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The clusterId. + */ + @java.lang.Override + public java.lang.String getClusterId() { + java.lang.Object ref = clusterId_; + 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(); + clusterId_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. The cluster ID containing the topic being ingested from.
+     * 
+ * + * string cluster_id = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for clusterId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getClusterIdBytes() { + java.lang.Object ref = clusterId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + clusterId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int KAFKA_TOPIC_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object kafkaTopic_ = ""; + + /** + * + * + *
+     * Optional. The name of the Kafka topic being ingested from.
+     * 
+ * + * string kafka_topic = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The kafkaTopic. + */ + @java.lang.Override + public java.lang.String getKafkaTopic() { + java.lang.Object ref = kafkaTopic_; + 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(); + kafkaTopic_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. The name of the Kafka topic being ingested from.
+     * 
+ * + * string kafka_topic = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for kafkaTopic. + */ + @java.lang.Override + public com.google.protobuf.ByteString getKafkaTopicBytes() { + java.lang.Object ref = kafkaTopic_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + kafkaTopic_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PARTITION_ID_FIELD_NUMBER = 3; + private long partitionId_ = 0L; + + /** + * + * + *
+     * Optional. The partition ID of the message that failed to be ingested.
+     * 
+ * + * int64 partition_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The partitionId. + */ + @java.lang.Override + public long getPartitionId() { + return partitionId_; + } + + public static final int OFFSET_FIELD_NUMBER = 4; + private long offset_ = 0L; + + /** + * + * + *
+     * Optional. The offset within the partition of the message that failed to
+     * be ingested.
+     * 
+ * + * int64 offset = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The offset. + */ + @java.lang.Override + public long getOffset() { + return offset_; + } + + public static final int API_VIOLATION_REASON_FIELD_NUMBER = 5; + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the apiViolationReason field is set. + */ + @java.lang.Override + public boolean hasApiViolationReason() { + return reasonCase_ == 5; + } + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The apiViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason getApiViolationReason() { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. The Pub/Sub API limits prevented the desired message from
+     * being published.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder + getApiViolationReasonOrBuilder() { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + + public static final int SCHEMA_VIOLATION_REASON_FIELD_NUMBER = 6; + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the schemaViolationReason field is set. + */ + @java.lang.Override + public boolean hasSchemaViolationReason() { + return reasonCase_ == 6; + } + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The schemaViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + getSchemaViolationReason() { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder + getSchemaViolationReasonOrBuilder() { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.getDefaultInstance(); + } + + public static final int MESSAGE_TRANSFORMATION_FAILURE_REASON_FIELD_NUMBER = 7; + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the messageTransformationFailureReason field is set. + */ + @java.lang.Override + public boolean hasMessageTransformationFailureReason() { + return reasonCase_ == 7; + } + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The messageTransformationFailureReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + getMessageTransformationFailureReason() { + if (reasonCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReasonOrBuilder + getMessageTransformationFailureReasonOrBuilder() { + if (reasonCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + + 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(clusterId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kafkaTopic_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, kafkaTopic_); + } + if (partitionId_ != 0L) { + output.writeInt64(3, partitionId_); + } + if (offset_ != 0L) { + output.writeInt64(4, offset_); + } + if (reasonCase_ == 5) { + output.writeMessage( + 5, (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_); + } + if (reasonCase_ == 6) { + output.writeMessage( + 6, (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_); + } + if (reasonCase_ == 7) { + output.writeMessage( + 7, + (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_); + } + 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(clusterId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kafkaTopic_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, kafkaTopic_); + } + if (partitionId_ != 0L) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(3, partitionId_); + } + if (offset_ != 0L) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(4, offset_); + } + if (reasonCase_ == 5) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 5, (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_); + } + if (reasonCase_ == 6) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 6, (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_); + } + if (reasonCase_ == 7) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 7, + (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_); + } + 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.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason other = + (com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason) obj; + + if (!getClusterId().equals(other.getClusterId())) return false; + if (!getKafkaTopic().equals(other.getKafkaTopic())) return false; + if (getPartitionId() != other.getPartitionId()) return false; + if (getOffset() != other.getOffset()) return false; + if (!getReasonCase().equals(other.getReasonCase())) return false; + switch (reasonCase_) { + case 5: + if (!getApiViolationReason().equals(other.getApiViolationReason())) return false; + break; + case 6: + if (!getSchemaViolationReason().equals(other.getSchemaViolationReason())) return false; + break; + case 7: + if (!getMessageTransformationFailureReason() + .equals(other.getMessageTransformationFailureReason())) return false; + break; + case 0: + default: + } + 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) + CLUSTER_ID_FIELD_NUMBER; + hash = (53 * hash) + getClusterId().hashCode(); + hash = (37 * hash) + KAFKA_TOPIC_FIELD_NUMBER; + hash = (53 * hash) + getKafkaTopic().hashCode(); + hash = (37 * hash) + PARTITION_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getPartitionId()); + hash = (37 * hash) + OFFSET_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getOffset()); + switch (reasonCase_) { + case 5: + hash = (37 * hash) + API_VIOLATION_REASON_FIELD_NUMBER; + hash = (53 * hash) + getApiViolationReason().hashCode(); + break; + case 6: + hash = (37 * hash) + SCHEMA_VIOLATION_REASON_FIELD_NUMBER; + hash = (53 * hash) + getSchemaViolationReason().hashCode(); + break; + case 7: + hash = (37 * hash) + MESSAGE_TRANSFORMATION_FAILURE_REASON_FIELD_NUMBER; + hash = (53 * hash) + getMessageTransformationFailureReason().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason 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.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason 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.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason + 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.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason 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.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason 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; + } + + /** + * + * + *
+     * Failure when ingesting from a Confluent Cloud source.
+     * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason) + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReasonOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_ConfluentCloudFailureReason_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_ConfluentCloudFailureReason_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason.class, + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason.Builder + .class); + } + + // Construct using + // com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + clusterId_ = ""; + kafkaTopic_ = ""; + partitionId_ = 0L; + offset_ = 0L; + if (apiViolationReasonBuilder_ != null) { + apiViolationReasonBuilder_.clear(); + } + if (schemaViolationReasonBuilder_ != null) { + schemaViolationReasonBuilder_.clear(); + } + if (messageTransformationFailureReasonBuilder_ != null) { + messageTransformationFailureReasonBuilder_.clear(); + } + reasonCase_ = 0; + reason_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_ConfluentCloudFailureReason_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason + getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason build() { + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason buildPartial() { + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason result = + new com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.clusterId_ = clusterId_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.kafkaTopic_ = kafkaTopic_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.partitionId_ = partitionId_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.offset_ = offset_; + } + } + + private void buildPartialOneofs( + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason result) { + result.reasonCase_ = reasonCase_; + result.reason_ = this.reason_; + if (reasonCase_ == 5 && apiViolationReasonBuilder_ != null) { + result.reason_ = apiViolationReasonBuilder_.build(); + } + if (reasonCase_ == 6 && schemaViolationReasonBuilder_ != null) { + result.reason_ = schemaViolationReasonBuilder_.build(); + } + if (reasonCase_ == 7 && messageTransformationFailureReasonBuilder_ != null) { + result.reason_ = messageTransformationFailureReasonBuilder_.build(); + } + } + + @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.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason) { + return mergeFrom( + (com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason other) { + if (other + == com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason + .getDefaultInstance()) return this; + if (!other.getClusterId().isEmpty()) { + clusterId_ = other.clusterId_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getKafkaTopic().isEmpty()) { + kafkaTopic_ = other.kafkaTopic_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getPartitionId() != 0L) { + setPartitionId(other.getPartitionId()); + } + if (other.getOffset() != 0L) { + setOffset(other.getOffset()); + } + switch (other.getReasonCase()) { + case API_VIOLATION_REASON: + { + mergeApiViolationReason(other.getApiViolationReason()); + break; + } + case SCHEMA_VIOLATION_REASON: + { + mergeSchemaViolationReason(other.getSchemaViolationReason()); + break; + } + case MESSAGE_TRANSFORMATION_FAILURE_REASON: + { + mergeMessageTransformationFailureReason( + other.getMessageTransformationFailureReason()); + break; + } + case REASON_NOT_SET: + { + break; + } + } + 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: + { + clusterId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + kafkaTopic_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: + { + partitionId_ = input.readInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: + { + offset_ = input.readInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 42: + { + input.readMessage( + getApiViolationReasonFieldBuilder().getBuilder(), extensionRegistry); + reasonCase_ = 5; + break; + } // case 42 + case 50: + { + input.readMessage( + getSchemaViolationReasonFieldBuilder().getBuilder(), extensionRegistry); + reasonCase_ = 6; + break; + } // case 50 + case 58: + { + input.readMessage( + getMessageTransformationFailureReasonFieldBuilder().getBuilder(), + extensionRegistry); + reasonCase_ = 7; + break; + } // case 58 + 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 reasonCase_ = 0; + private java.lang.Object reason_; + + public ReasonCase getReasonCase() { + return ReasonCase.forNumber(reasonCase_); + } + + public Builder clearReason() { + reasonCase_ = 0; + reason_ = null; + onChanged(); + return this; + } + + private int bitField0_; + + private java.lang.Object clusterId_ = ""; + + /** + * + * + *
+       * Optional. The cluster ID containing the topic being ingested from.
+       * 
+ * + * string cluster_id = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The clusterId. + */ + public java.lang.String getClusterId() { + java.lang.Object ref = clusterId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + clusterId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. The cluster ID containing the topic being ingested from.
+       * 
+ * + * string cluster_id = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for clusterId. + */ + public com.google.protobuf.ByteString getClusterIdBytes() { + java.lang.Object ref = clusterId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + clusterId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. The cluster ID containing the topic being ingested from.
+       * 
+ * + * string cluster_id = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The clusterId to set. + * @return This builder for chaining. + */ + public Builder setClusterId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + clusterId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The cluster ID containing the topic being ingested from.
+       * 
+ * + * string cluster_id = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearClusterId() { + clusterId_ = getDefaultInstance().getClusterId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The cluster ID containing the topic being ingested from.
+       * 
+ * + * string cluster_id = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for clusterId to set. + * @return This builder for chaining. + */ + public Builder setClusterIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + clusterId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object kafkaTopic_ = ""; + + /** + * + * + *
+       * Optional. The name of the Kafka topic being ingested from.
+       * 
+ * + * string kafka_topic = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The kafkaTopic. + */ + public java.lang.String getKafkaTopic() { + java.lang.Object ref = kafkaTopic_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + kafkaTopic_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. The name of the Kafka topic being ingested from.
+       * 
+ * + * string kafka_topic = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for kafkaTopic. + */ + public com.google.protobuf.ByteString getKafkaTopicBytes() { + java.lang.Object ref = kafkaTopic_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + kafkaTopic_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. The name of the Kafka topic being ingested from.
+       * 
+ * + * string kafka_topic = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The kafkaTopic to set. + * @return This builder for chaining. + */ + public Builder setKafkaTopic(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + kafkaTopic_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The name of the Kafka topic being ingested from.
+       * 
+ * + * string kafka_topic = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearKafkaTopic() { + kafkaTopic_ = getDefaultInstance().getKafkaTopic(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The name of the Kafka topic being ingested from.
+       * 
+ * + * string kafka_topic = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for kafkaTopic to set. + * @return This builder for chaining. + */ + public Builder setKafkaTopicBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + kafkaTopic_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private long partitionId_; + + /** + * + * + *
+       * Optional. The partition ID of the message that failed to be ingested.
+       * 
+ * + * int64 partition_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The partitionId. + */ + @java.lang.Override + public long getPartitionId() { + return partitionId_; + } + + /** + * + * + *
+       * Optional. The partition ID of the message that failed to be ingested.
+       * 
+ * + * int64 partition_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The partitionId to set. + * @return This builder for chaining. + */ + public Builder setPartitionId(long value) { + + partitionId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The partition ID of the message that failed to be ingested.
+       * 
+ * + * int64 partition_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearPartitionId() { + bitField0_ = (bitField0_ & ~0x00000004); + partitionId_ = 0L; + onChanged(); + return this; + } + + private long offset_; + + /** + * + * + *
+       * Optional. The offset within the partition of the message that failed to
+       * be ingested.
+       * 
+ * + * int64 offset = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The offset. + */ + @java.lang.Override + public long getOffset() { + return offset_; + } + + /** + * + * + *
+       * Optional. The offset within the partition of the message that failed to
+       * be ingested.
+       * 
+ * + * int64 offset = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The offset to set. + * @return This builder for chaining. + */ + public Builder setOffset(long value) { + + offset_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The offset within the partition of the message that failed to
+       * be ingested.
+       * 
+ * + * int64 offset = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearOffset() { + bitField0_ = (bitField0_ & ~0x00000008); + offset_ = 0L; + onChanged(); + return this; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder> + apiViolationReasonBuilder_; + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the apiViolationReason field is set. + */ + @java.lang.Override + public boolean hasApiViolationReason() { + return reasonCase_ == 5; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The apiViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason getApiViolationReason() { + if (apiViolationReasonBuilder_ == null) { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } else { + if (reasonCase_ == 5) { + return apiViolationReasonBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setApiViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason value) { + if (apiViolationReasonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + reason_ = value; + onChanged(); + } else { + apiViolationReasonBuilder_.setMessage(value); + } + reasonCase_ = 5; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setApiViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder builderForValue) { + if (apiViolationReasonBuilder_ == null) { + reason_ = builderForValue.build(); + onChanged(); + } else { + apiViolationReasonBuilder_.setMessage(builderForValue.build()); + } + reasonCase_ = 5; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeApiViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason value) { + if (apiViolationReasonBuilder_ == null) { + if (reasonCase_ == 5 + && reason_ + != com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason + .getDefaultInstance()) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_) + .mergeFrom(value) + .buildPartial(); + } else { + reason_ = value; + } + onChanged(); + } else { + if (reasonCase_ == 5) { + apiViolationReasonBuilder_.mergeFrom(value); + } else { + apiViolationReasonBuilder_.setMessage(value); + } + } + reasonCase_ = 5; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearApiViolationReason() { + if (apiViolationReasonBuilder_ == null) { + if (reasonCase_ == 5) { + reasonCase_ = 0; + reason_ = null; + onChanged(); + } + } else { + if (reasonCase_ == 5) { + reasonCase_ = 0; + reason_ = null; + } + apiViolationReasonBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder + getApiViolationReasonBuilder() { + return getApiViolationReasonFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder + getApiViolationReasonOrBuilder() { + if ((reasonCase_ == 5) && (apiViolationReasonBuilder_ != null)) { + return apiViolationReasonBuilder_.getMessageOrBuilder(); + } else { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The Pub/Sub API limits prevented the desired message from
+       * being published.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder> + getApiViolationReasonFieldBuilder() { + if (apiViolationReasonBuilder_ == null) { + if (!(reasonCase_ == 5)) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + apiViolationReasonBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_, + getParentForChildren(), + isClean()); + reason_ = null; + } + reasonCase_ = 5; + onChanged(); + return apiViolationReasonBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder> + schemaViolationReasonBuilder_; + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the schemaViolationReason field is set. + */ + @java.lang.Override + public boolean hasSchemaViolationReason() { + return reasonCase_ == 6; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The schemaViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + getSchemaViolationReason() { + if (schemaViolationReasonBuilder_ == null) { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } else { + if (reasonCase_ == 6) { + return schemaViolationReasonBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setSchemaViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason value) { + if (schemaViolationReasonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + reason_ = value; + onChanged(); + } else { + schemaViolationReasonBuilder_.setMessage(value); + } + reasonCase_ = 6; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setSchemaViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder + builderForValue) { + if (schemaViolationReasonBuilder_ == null) { + reason_ = builderForValue.build(); + onChanged(); + } else { + schemaViolationReasonBuilder_.setMessage(builderForValue.build()); + } + reasonCase_ = 6; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeSchemaViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason value) { + if (schemaViolationReasonBuilder_ == null) { + if (reasonCase_ == 6 + && reason_ + != com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance()) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_) + .mergeFrom(value) + .buildPartial(); + } else { + reason_ = value; + } + onChanged(); + } else { + if (reasonCase_ == 6) { + schemaViolationReasonBuilder_.mergeFrom(value); + } else { + schemaViolationReasonBuilder_.setMessage(value); + } + } + reasonCase_ = 6; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearSchemaViolationReason() { + if (schemaViolationReasonBuilder_ == null) { + if (reasonCase_ == 6) { + reasonCase_ = 0; + reason_ = null; + onChanged(); + } + } else { + if (reasonCase_ == 6) { + reasonCase_ = 0; + reason_ = null; + } + schemaViolationReasonBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder + getSchemaViolationReasonBuilder() { + return getSchemaViolationReasonFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder + getSchemaViolationReasonOrBuilder() { + if ((reasonCase_ == 6) && (schemaViolationReasonBuilder_ != null)) { + return schemaViolationReasonBuilder_.getMessageOrBuilder(); + } else { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder> + getSchemaViolationReasonFieldBuilder() { + if (schemaViolationReasonBuilder_ == null) { + if (!(reasonCase_ == 6)) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } + schemaViolationReasonBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_, + getParentForChildren(), + isClean()); + reason_ = null; + } + reasonCase_ = 6; + onChanged(); + return schemaViolationReasonBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReasonOrBuilder> + messageTransformationFailureReasonBuilder_; + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the messageTransformationFailureReason field is set. + */ + @java.lang.Override + public boolean hasMessageTransformationFailureReason() { + return reasonCase_ == 7; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The messageTransformationFailureReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + getMessageTransformationFailureReason() { + if (messageTransformationFailureReasonBuilder_ == null) { + if (reasonCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } else { + if (reasonCase_ == 7) { + return messageTransformationFailureReasonBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setMessageTransformationFailureReason( + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason value) { + if (messageTransformationFailureReasonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + reason_ = value; + onChanged(); + } else { + messageTransformationFailureReasonBuilder_.setMessage(value); + } + reasonCase_ = 7; + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setMessageTransformationFailureReason( + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder + builderForValue) { + if (messageTransformationFailureReasonBuilder_ == null) { + reason_ = builderForValue.build(); + onChanged(); + } else { + messageTransformationFailureReasonBuilder_.setMessage(builderForValue.build()); + } + reasonCase_ = 7; + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeMessageTransformationFailureReason( + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason value) { + if (messageTransformationFailureReasonBuilder_ == null) { + if (reasonCase_ == 7 + && reason_ + != com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance()) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReason) + reason_) + .mergeFrom(value) + .buildPartial(); + } else { + reason_ = value; + } + onChanged(); + } else { + if (reasonCase_ == 7) { + messageTransformationFailureReasonBuilder_.mergeFrom(value); + } else { + messageTransformationFailureReasonBuilder_.setMessage(value); + } + } + reasonCase_ = 7; + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearMessageTransformationFailureReason() { + if (messageTransformationFailureReasonBuilder_ == null) { + if (reasonCase_ == 7) { + reasonCase_ = 0; + reason_ = null; + onChanged(); + } + } else { + if (reasonCase_ == 7) { + reasonCase_ = 0; + reason_ = null; + } + messageTransformationFailureReasonBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder + getMessageTransformationFailureReasonBuilder() { + return getMessageTransformationFailureReasonFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReasonOrBuilder + getMessageTransformationFailureReasonOrBuilder() { + if ((reasonCase_ == 7) && (messageTransformationFailureReasonBuilder_ != null)) { + return messageTransformationFailureReasonBuilder_.getMessageOrBuilder(); + } else { + if (reasonCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReasonOrBuilder> + getMessageTransformationFailureReasonFieldBuilder() { + if (messageTransformationFailureReasonBuilder_ == null) { + if (!(reasonCase_ == 7)) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + messageTransformationFailureReasonBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .Builder, + com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_, + getParentForChildren(), + isClean()); + reason_ = null; + } + reasonCase_ = 7; + onChanged(); + return messageTransformationFailureReasonBuilder_; + } + + @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.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason) + private static final com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason(); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ConfluentCloudFailureReason 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.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface AwsKinesisFailureReasonOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Optional. The stream ARN of the Kinesis stream being ingested from.
+     * 
+ * + * string stream_arn = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The streamArn. + */ + java.lang.String getStreamArn(); + + /** + * + * + *
+     * Optional. The stream ARN of the Kinesis stream being ingested from.
+     * 
+ * + * string stream_arn = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for streamArn. + */ + com.google.protobuf.ByteString getStreamArnBytes(); + + /** + * + * + *
+     * Optional. The partition key of the message that failed to be ingested.
+     * 
+ * + * string partition_key = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The partitionKey. + */ + java.lang.String getPartitionKey(); + + /** + * + * + *
+     * Optional. The partition key of the message that failed to be ingested.
+     * 
+ * + * string partition_key = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for partitionKey. + */ + com.google.protobuf.ByteString getPartitionKeyBytes(); + + /** + * + * + *
+     * Optional. The sequence number of the message that failed to be ingested.
+     * 
+ * + * string sequence_number = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The sequenceNumber. + */ + java.lang.String getSequenceNumber(); + + /** + * + * + *
+     * Optional. The sequence number of the message that failed to be ingested.
+     * 
+ * + * string sequence_number = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for sequenceNumber. + */ + com.google.protobuf.ByteString getSequenceNumberBytes(); + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the schemaViolationReason field is set. + */ + boolean hasSchemaViolationReason(); + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The schemaViolationReason. + */ + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason getSchemaViolationReason(); + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder + getSchemaViolationReasonOrBuilder(); + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the messageTransformationFailureReason field is set. + */ + boolean hasMessageTransformationFailureReason(); + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The messageTransformationFailureReason. + */ + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + getMessageTransformationFailureReason(); + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReasonOrBuilder + getMessageTransformationFailureReasonOrBuilder(); + + /** + * + * + *
+     * Optional. The message failed to be published due to an API violation.
+     * This is only set when the size of the data field of the Kinesis record
+     * is zero.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the apiViolationReason field is set. + */ + boolean hasApiViolationReason(); + + /** + * + * + *
+     * Optional. The message failed to be published due to an API violation.
+     * This is only set when the size of the data field of the Kinesis record
+     * is zero.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The apiViolationReason. + */ + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason getApiViolationReason(); + + /** + * + * + *
+     * Optional. The message failed to be published due to an API violation.
+     * This is only set when the size of the data field of the Kinesis record
+     * is zero.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder + getApiViolationReasonOrBuilder(); + + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason.ReasonCase getReasonCase(); + } + + /** + * + * + *
+   * Failure when ingesting from an AWS Kinesis source.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason} + */ + public static final class AwsKinesisFailureReason extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason) + AwsKinesisFailureReasonOrBuilder { + private static final long serialVersionUID = 0L; + + // Use AwsKinesisFailureReason.newBuilder() to construct. + private AwsKinesisFailureReason(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private AwsKinesisFailureReason() { + streamArn_ = ""; + partitionKey_ = ""; + sequenceNumber_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new AwsKinesisFailureReason(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AwsKinesisFailureReason_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AwsKinesisFailureReason_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason.class, + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason.Builder.class); + } + + private int reasonCase_ = 0; + + @SuppressWarnings("serial") + private java.lang.Object reason_; + + public enum ReasonCase + implements + com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + SCHEMA_VIOLATION_REASON(4), + MESSAGE_TRANSFORMATION_FAILURE_REASON(5), + API_VIOLATION_REASON(6), + REASON_NOT_SET(0); + private final int value; + + private ReasonCase(int value) { + this.value = value; + } + + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ReasonCase valueOf(int value) { + return forNumber(value); + } + + public static ReasonCase forNumber(int value) { + switch (value) { + case 4: + return SCHEMA_VIOLATION_REASON; + case 5: + return MESSAGE_TRANSFORMATION_FAILURE_REASON; + case 6: + return API_VIOLATION_REASON; + case 0: + return REASON_NOT_SET; + default: + return null; + } + } + + public int getNumber() { + return this.value; + } + }; + + public ReasonCase getReasonCase() { + return ReasonCase.forNumber(reasonCase_); + } + + public static final int STREAM_ARN_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object streamArn_ = ""; + + /** + * + * + *
+     * Optional. The stream ARN of the Kinesis stream being ingested from.
+     * 
+ * + * string stream_arn = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The streamArn. + */ + @java.lang.Override + public java.lang.String getStreamArn() { + java.lang.Object ref = streamArn_; + 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(); + streamArn_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. The stream ARN of the Kinesis stream being ingested from.
+     * 
+ * + * string stream_arn = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for streamArn. + */ + @java.lang.Override + public com.google.protobuf.ByteString getStreamArnBytes() { + java.lang.Object ref = streamArn_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + streamArn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PARTITION_KEY_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object partitionKey_ = ""; + + /** + * + * + *
+     * Optional. The partition key of the message that failed to be ingested.
+     * 
+ * + * string partition_key = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The partitionKey. + */ + @java.lang.Override + public java.lang.String getPartitionKey() { + java.lang.Object ref = partitionKey_; + 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(); + partitionKey_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. The partition key of the message that failed to be ingested.
+     * 
+ * + * string partition_key = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for partitionKey. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPartitionKeyBytes() { + java.lang.Object ref = partitionKey_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + partitionKey_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object sequenceNumber_ = ""; + + /** + * + * + *
+     * Optional. The sequence number of the message that failed to be ingested.
+     * 
+ * + * string sequence_number = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The sequenceNumber. + */ + @java.lang.Override + public java.lang.String getSequenceNumber() { + java.lang.Object ref = sequenceNumber_; + 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(); + sequenceNumber_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. The sequence number of the message that failed to be ingested.
+     * 
+ * + * string sequence_number = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for sequenceNumber. + */ + @java.lang.Override + public com.google.protobuf.ByteString getSequenceNumberBytes() { + java.lang.Object ref = sequenceNumber_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + sequenceNumber_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SCHEMA_VIOLATION_REASON_FIELD_NUMBER = 4; + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the schemaViolationReason field is set. + */ + @java.lang.Override + public boolean hasSchemaViolationReason() { + return reasonCase_ == 4; + } + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The schemaViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + getSchemaViolationReason() { + if (reasonCase_ == 4) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. The Pub/Sub message failed schema validation.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder + getSchemaViolationReasonOrBuilder() { + if (reasonCase_ == 4) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.getDefaultInstance(); + } + + public static final int MESSAGE_TRANSFORMATION_FAILURE_REASON_FIELD_NUMBER = 5; + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the messageTransformationFailureReason field is set. + */ + @java.lang.Override + public boolean hasMessageTransformationFailureReason() { + return reasonCase_ == 5; + } + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The messageTransformationFailureReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + getMessageTransformationFailureReason() { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. Failure encountered when applying a message transformation to
+     * the Pub/Sub message.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReasonOrBuilder + getMessageTransformationFailureReasonOrBuilder() { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + + public static final int API_VIOLATION_REASON_FIELD_NUMBER = 6; + + /** + * + * + *
+     * Optional. The message failed to be published due to an API violation.
+     * This is only set when the size of the data field of the Kinesis record
+     * is zero.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the apiViolationReason field is set. + */ + @java.lang.Override + public boolean hasApiViolationReason() { + return reasonCase_ == 6; + } + + /** + * + * + *
+     * Optional. The message failed to be published due to an API violation.
+     * This is only set when the size of the data field of the Kinesis record
+     * is zero.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The apiViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason getApiViolationReason() { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + + /** + * + * + *
+     * Optional. The message failed to be published due to an API violation.
+     * This is only set when the size of the data field of the Kinesis record
+     * is zero.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder + getApiViolationReasonOrBuilder() { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + + 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(streamArn_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, streamArn_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(partitionKey_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, partitionKey_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sequenceNumber_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, sequenceNumber_); + } + if (reasonCase_ == 4) { + output.writeMessage( + 4, (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_); + } + if (reasonCase_ == 5) { + output.writeMessage( + 5, + (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_); + } + if (reasonCase_ == 6) { + output.writeMessage( + 6, (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_); + } + 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(streamArn_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, streamArn_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(partitionKey_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, partitionKey_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sequenceNumber_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, sequenceNumber_); + } + if (reasonCase_ == 4) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 4, (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_); + } + if (reasonCase_ == 5) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 5, + (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_); + } + if (reasonCase_ == 6) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 6, (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_); + } + 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.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason other = + (com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason) obj; + + if (!getStreamArn().equals(other.getStreamArn())) return false; + if (!getPartitionKey().equals(other.getPartitionKey())) return false; + if (!getSequenceNumber().equals(other.getSequenceNumber())) return false; + if (!getReasonCase().equals(other.getReasonCase())) return false; + switch (reasonCase_) { + case 4: + if (!getSchemaViolationReason().equals(other.getSchemaViolationReason())) return false; + break; + case 5: + if (!getMessageTransformationFailureReason() + .equals(other.getMessageTransformationFailureReason())) return false; + break; + case 6: + if (!getApiViolationReason().equals(other.getApiViolationReason())) return false; + break; + case 0: + default: + } + 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) + STREAM_ARN_FIELD_NUMBER; + hash = (53 * hash) + getStreamArn().hashCode(); + hash = (37 * hash) + PARTITION_KEY_FIELD_NUMBER; + hash = (53 * hash) + getPartitionKey().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber().hashCode(); + switch (reasonCase_) { + case 4: + hash = (37 * hash) + SCHEMA_VIOLATION_REASON_FIELD_NUMBER; + hash = (53 * hash) + getSchemaViolationReason().hashCode(); + break; + case 5: + hash = (37 * hash) + MESSAGE_TRANSFORMATION_FAILURE_REASON_FIELD_NUMBER; + hash = (53 * hash) + getMessageTransformationFailureReason().hashCode(); + break; + case 6: + hash = (37 * hash) + API_VIOLATION_REASON_FIELD_NUMBER; + hash = (53 * hash) + getApiViolationReason().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason 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.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason 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.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason + 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.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason 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.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason 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; + } + + /** + * + * + *
+     * Failure when ingesting from an AWS Kinesis source.
+     * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason) + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReasonOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AwsKinesisFailureReason_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AwsKinesisFailureReason_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason.class, + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason.Builder.class); + } + + // Construct using + // com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + streamArn_ = ""; + partitionKey_ = ""; + sequenceNumber_ = ""; + if (schemaViolationReasonBuilder_ != null) { + schemaViolationReasonBuilder_.clear(); + } + if (messageTransformationFailureReasonBuilder_ != null) { + messageTransformationFailureReasonBuilder_.clear(); + } + if (apiViolationReasonBuilder_ != null) { + apiViolationReasonBuilder_.clear(); + } + reasonCase_ = 0; + reason_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_AwsKinesisFailureReason_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason + getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason build() { + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason buildPartial() { + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason result = + new com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.streamArn_ = streamArn_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.partitionKey_ = partitionKey_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + } + + private void buildPartialOneofs( + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason result) { + result.reasonCase_ = reasonCase_; + result.reason_ = this.reason_; + if (reasonCase_ == 4 && schemaViolationReasonBuilder_ != null) { + result.reason_ = schemaViolationReasonBuilder_.build(); + } + if (reasonCase_ == 5 && messageTransformationFailureReasonBuilder_ != null) { + result.reason_ = messageTransformationFailureReasonBuilder_.build(); + } + if (reasonCase_ == 6 && apiViolationReasonBuilder_ != null) { + result.reason_ = apiViolationReasonBuilder_.build(); + } + } + + @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.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason) { + return mergeFrom( + (com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason other) { + if (other + == com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason + .getDefaultInstance()) return this; + if (!other.getStreamArn().isEmpty()) { + streamArn_ = other.streamArn_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getPartitionKey().isEmpty()) { + partitionKey_ = other.partitionKey_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getSequenceNumber().isEmpty()) { + sequenceNumber_ = other.sequenceNumber_; + bitField0_ |= 0x00000004; + onChanged(); + } + switch (other.getReasonCase()) { + case SCHEMA_VIOLATION_REASON: + { + mergeSchemaViolationReason(other.getSchemaViolationReason()); + break; + } + case MESSAGE_TRANSFORMATION_FAILURE_REASON: + { + mergeMessageTransformationFailureReason( + other.getMessageTransformationFailureReason()); + break; + } + case API_VIOLATION_REASON: + { + mergeApiViolationReason(other.getApiViolationReason()); + break; + } + case REASON_NOT_SET: + { + break; + } + } + 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: + { + streamArn_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + partitionKey_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + sequenceNumber_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + input.readMessage( + getSchemaViolationReasonFieldBuilder().getBuilder(), extensionRegistry); + reasonCase_ = 4; + break; + } // case 34 + case 42: + { + input.readMessage( + getMessageTransformationFailureReasonFieldBuilder().getBuilder(), + extensionRegistry); + reasonCase_ = 5; + break; + } // case 42 + case 50: + { + input.readMessage( + getApiViolationReasonFieldBuilder().getBuilder(), extensionRegistry); + reasonCase_ = 6; + 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 reasonCase_ = 0; + private java.lang.Object reason_; + + public ReasonCase getReasonCase() { + return ReasonCase.forNumber(reasonCase_); + } + + public Builder clearReason() { + reasonCase_ = 0; + reason_ = null; + onChanged(); + return this; + } + + private int bitField0_; + + private java.lang.Object streamArn_ = ""; + + /** + * + * + *
+       * Optional. The stream ARN of the Kinesis stream being ingested from.
+       * 
+ * + * string stream_arn = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The streamArn. + */ + public java.lang.String getStreamArn() { + java.lang.Object ref = streamArn_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + streamArn_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. The stream ARN of the Kinesis stream being ingested from.
+       * 
+ * + * string stream_arn = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for streamArn. + */ + public com.google.protobuf.ByteString getStreamArnBytes() { + java.lang.Object ref = streamArn_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + streamArn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. The stream ARN of the Kinesis stream being ingested from.
+       * 
+ * + * string stream_arn = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The streamArn to set. + * @return This builder for chaining. + */ + public Builder setStreamArn(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + streamArn_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The stream ARN of the Kinesis stream being ingested from.
+       * 
+ * + * string stream_arn = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearStreamArn() { + streamArn_ = getDefaultInstance().getStreamArn(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The stream ARN of the Kinesis stream being ingested from.
+       * 
+ * + * string stream_arn = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for streamArn to set. + * @return This builder for chaining. + */ + public Builder setStreamArnBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + streamArn_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object partitionKey_ = ""; + + /** + * + * + *
+       * Optional. The partition key of the message that failed to be ingested.
+       * 
+ * + * string partition_key = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The partitionKey. + */ + public java.lang.String getPartitionKey() { + java.lang.Object ref = partitionKey_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + partitionKey_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. The partition key of the message that failed to be ingested.
+       * 
+ * + * string partition_key = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for partitionKey. + */ + public com.google.protobuf.ByteString getPartitionKeyBytes() { + java.lang.Object ref = partitionKey_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + partitionKey_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. The partition key of the message that failed to be ingested.
+       * 
+ * + * string partition_key = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The partitionKey to set. + * @return This builder for chaining. + */ + public Builder setPartitionKey(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + partitionKey_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The partition key of the message that failed to be ingested.
+       * 
+ * + * string partition_key = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearPartitionKey() { + partitionKey_ = getDefaultInstance().getPartitionKey(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The partition key of the message that failed to be ingested.
+       * 
+ * + * string partition_key = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for partitionKey to set. + * @return This builder for chaining. + */ + public Builder setPartitionKeyBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + partitionKey_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object sequenceNumber_ = ""; + + /** + * + * + *
+       * Optional. The sequence number of the message that failed to be ingested.
+       * 
+ * + * string sequence_number = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The sequenceNumber. + */ + public java.lang.String getSequenceNumber() { + java.lang.Object ref = sequenceNumber_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sequenceNumber_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. The sequence number of the message that failed to be ingested.
+       * 
+ * + * string sequence_number = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for sequenceNumber. + */ + public com.google.protobuf.ByteString getSequenceNumberBytes() { + java.lang.Object ref = sequenceNumber_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + sequenceNumber_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. The sequence number of the message that failed to be ingested.
+       * 
+ * + * string sequence_number = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + sequenceNumber_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The sequence number of the message that failed to be ingested.
+       * 
+ * + * string sequence_number = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + sequenceNumber_ = getDefaultInstance().getSequenceNumber(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The sequence number of the message that failed to be ingested.
+       * 
+ * + * string sequence_number = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumberBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + sequenceNumber_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder> + schemaViolationReasonBuilder_; + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the schemaViolationReason field is set. + */ + @java.lang.Override + public boolean hasSchemaViolationReason() { + return reasonCase_ == 4; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The schemaViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + getSchemaViolationReason() { + if (schemaViolationReasonBuilder_ == null) { + if (reasonCase_ == 4) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } else { + if (reasonCase_ == 4) { + return schemaViolationReasonBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setSchemaViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason value) { + if (schemaViolationReasonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + reason_ = value; + onChanged(); + } else { + schemaViolationReasonBuilder_.setMessage(value); + } + reasonCase_ = 4; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setSchemaViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder + builderForValue) { + if (schemaViolationReasonBuilder_ == null) { + reason_ = builderForValue.build(); + onChanged(); + } else { + schemaViolationReasonBuilder_.setMessage(builderForValue.build()); + } + reasonCase_ = 4; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeSchemaViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason value) { + if (schemaViolationReasonBuilder_ == null) { + if (reasonCase_ == 4 + && reason_ + != com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance()) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_) + .mergeFrom(value) + .buildPartial(); + } else { + reason_ = value; + } + onChanged(); + } else { + if (reasonCase_ == 4) { + schemaViolationReasonBuilder_.mergeFrom(value); + } else { + schemaViolationReasonBuilder_.setMessage(value); + } + } + reasonCase_ = 4; + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearSchemaViolationReason() { + if (schemaViolationReasonBuilder_ == null) { + if (reasonCase_ == 4) { + reasonCase_ = 0; + reason_ = null; + onChanged(); + } + } else { + if (reasonCase_ == 4) { + reasonCase_ = 0; + reason_ = null; + } + schemaViolationReasonBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder + getSchemaViolationReasonBuilder() { + return getSchemaViolationReasonFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder + getSchemaViolationReasonOrBuilder() { + if ((reasonCase_ == 4) && (schemaViolationReasonBuilder_ != null)) { + return schemaViolationReasonBuilder_.getMessageOrBuilder(); + } else { + if (reasonCase_ == 4) { + return (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The Pub/Sub message failed schema validation.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason schema_violation_reason = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder> + getSchemaViolationReasonFieldBuilder() { + if (schemaViolationReasonBuilder_ == null) { + if (!(reasonCase_ == 4)) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason + .getDefaultInstance(); + } + schemaViolationReasonBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason) reason_, + getParentForChildren(), + isClean()); + reason_ = null; + } + reasonCase_ = 4; + onChanged(); + return schemaViolationReasonBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReasonOrBuilder> + messageTransformationFailureReasonBuilder_; + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the messageTransformationFailureReason field is set. + */ + @java.lang.Override + public boolean hasMessageTransformationFailureReason() { + return reasonCase_ == 5; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The messageTransformationFailureReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + getMessageTransformationFailureReason() { + if (messageTransformationFailureReasonBuilder_ == null) { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } else { + if (reasonCase_ == 5) { + return messageTransformationFailureReasonBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setMessageTransformationFailureReason( + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason value) { + if (messageTransformationFailureReasonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + reason_ = value; + onChanged(); + } else { + messageTransformationFailureReasonBuilder_.setMessage(value); + } + reasonCase_ = 5; + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setMessageTransformationFailureReason( + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder + builderForValue) { + if (messageTransformationFailureReasonBuilder_ == null) { + reason_ = builderForValue.build(); + onChanged(); + } else { + messageTransformationFailureReasonBuilder_.setMessage(builderForValue.build()); + } + reasonCase_ = 5; + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeMessageTransformationFailureReason( + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason value) { + if (messageTransformationFailureReasonBuilder_ == null) { + if (reasonCase_ == 5 + && reason_ + != com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance()) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReason) + reason_) + .mergeFrom(value) + .buildPartial(); + } else { + reason_ = value; + } + onChanged(); + } else { + if (reasonCase_ == 5) { + messageTransformationFailureReasonBuilder_.mergeFrom(value); + } else { + messageTransformationFailureReasonBuilder_.setMessage(value); + } + } + reasonCase_ = 5; + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearMessageTransformationFailureReason() { + if (messageTransformationFailureReasonBuilder_ == null) { + if (reasonCase_ == 5) { + reasonCase_ = 0; + reason_ = null; + onChanged(); + } + } else { + if (reasonCase_ == 5) { + reasonCase_ = 0; + reason_ = null; + } + messageTransformationFailureReasonBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder + getMessageTransformationFailureReasonBuilder() { + return getMessageTransformationFailureReasonFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReasonOrBuilder + getMessageTransformationFailureReasonOrBuilder() { + if ((reasonCase_ == 5) && (messageTransformationFailureReasonBuilder_ != null)) { + return messageTransformationFailureReasonBuilder_.getMessageOrBuilder(); + } else { + if (reasonCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. Failure encountered when applying a message transformation to
+       * the Pub/Sub message.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason message_transformation_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReasonOrBuilder> + getMessageTransformationFailureReasonFieldBuilder() { + if (messageTransformationFailureReasonBuilder_ == null) { + if (!(reasonCase_ == 5)) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .getDefaultInstance(); + } + messageTransformationFailureReasonBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason + .Builder, + com.google.pubsub.v1.IngestionFailureEvent + .MessageTransformationFailureReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason) + reason_, + getParentForChildren(), + isClean()); + reason_ = null; + } + reasonCase_ = 5; + onChanged(); + return messageTransformationFailureReasonBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder> + apiViolationReasonBuilder_; + + /** + * + * + *
+       * Optional. The message failed to be published due to an API violation.
+       * This is only set when the size of the data field of the Kinesis record
+       * is zero.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the apiViolationReason field is set. + */ + @java.lang.Override + public boolean hasApiViolationReason() { + return reasonCase_ == 6; + } + + /** + * + * + *
+       * Optional. The message failed to be published due to an API violation.
+       * This is only set when the size of the data field of the Kinesis record
+       * is zero.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The apiViolationReason. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason getApiViolationReason() { + if (apiViolationReasonBuilder_ == null) { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } else { + if (reasonCase_ == 6) { + return apiViolationReasonBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The message failed to be published due to an API violation.
+       * This is only set when the size of the data field of the Kinesis record
+       * is zero.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setApiViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason value) { + if (apiViolationReasonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + reason_ = value; + onChanged(); + } else { + apiViolationReasonBuilder_.setMessage(value); + } + reasonCase_ = 6; + return this; + } + + /** + * + * + *
+       * Optional. The message failed to be published due to an API violation.
+       * This is only set when the size of the data field of the Kinesis record
+       * is zero.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setApiViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder builderForValue) { + if (apiViolationReasonBuilder_ == null) { + reason_ = builderForValue.build(); + onChanged(); + } else { + apiViolationReasonBuilder_.setMessage(builderForValue.build()); + } + reasonCase_ = 6; + return this; + } + + /** + * + * + *
+       * Optional. The message failed to be published due to an API violation.
+       * This is only set when the size of the data field of the Kinesis record
+       * is zero.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeApiViolationReason( + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason value) { + if (apiViolationReasonBuilder_ == null) { + if (reasonCase_ == 6 + && reason_ + != com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason + .getDefaultInstance()) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_) + .mergeFrom(value) + .buildPartial(); + } else { + reason_ = value; + } + onChanged(); + } else { + if (reasonCase_ == 6) { + apiViolationReasonBuilder_.mergeFrom(value); + } else { + apiViolationReasonBuilder_.setMessage(value); + } + } + reasonCase_ = 6; + return this; + } + + /** + * + * + *
+       * Optional. The message failed to be published due to an API violation.
+       * This is only set when the size of the data field of the Kinesis record
+       * is zero.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearApiViolationReason() { + if (apiViolationReasonBuilder_ == null) { + if (reasonCase_ == 6) { + reasonCase_ = 0; + reason_ = null; + onChanged(); + } + } else { + if (reasonCase_ == 6) { + reasonCase_ = 0; + reason_ = null; + } + apiViolationReasonBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Optional. The message failed to be published due to an API violation.
+       * This is only set when the size of the data field of the Kinesis record
+       * is zero.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder + getApiViolationReasonBuilder() { + return getApiViolationReasonFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Optional. The message failed to be published due to an API violation.
+       * This is only set when the size of the data field of the Kinesis record
+       * is zero.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder + getApiViolationReasonOrBuilder() { + if ((reasonCase_ == 6) && (apiViolationReasonBuilder_ != null)) { + return apiViolationReasonBuilder_.getMessageOrBuilder(); + } else { + if (reasonCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + } + + /** + * + * + *
+       * Optional. The message failed to be published due to an API violation.
+       * This is only set when the size of the data field of the Kinesis record
+       * is zero.
+       * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder> + getApiViolationReasonFieldBuilder() { + if (apiViolationReasonBuilder_ == null) { + if (!(reasonCase_ == 6)) { + reason_ = + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.getDefaultInstance(); + } + apiViolationReasonBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) reason_, + getParentForChildren(), + isClean()); + reason_ = null; + } + reasonCase_ = 6; + onChanged(); + return apiViolationReasonBuilder_; + } + + @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.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason) + private static final com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason(); + } + + public static com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AwsKinesisFailureReason 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.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + private int failureCase_ = 0; + + @SuppressWarnings("serial") + private java.lang.Object failure_; + + public enum FailureCase + implements + com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + CLOUD_STORAGE_FAILURE(3), + AWS_MSK_FAILURE(4), + AZURE_EVENT_HUBS_FAILURE(5), + CONFLUENT_CLOUD_FAILURE(6), + AWS_KINESIS_FAILURE(7), + FAILURE_NOT_SET(0); + private final int value; + + private FailureCase(int value) { + this.value = value; + } + + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static FailureCase valueOf(int value) { + return forNumber(value); + } + + public static FailureCase forNumber(int value) { + switch (value) { + case 3: + return CLOUD_STORAGE_FAILURE; + case 4: + return AWS_MSK_FAILURE; + case 5: + return AZURE_EVENT_HUBS_FAILURE; + case 6: + return CONFLUENT_CLOUD_FAILURE; + case 7: + return AWS_KINESIS_FAILURE; + case 0: + return FAILURE_NOT_SET; + default: + return null; + } + } + + public int getNumber() { + return this.value; + } + }; + + public FailureCase getFailureCase() { + return FailureCase.forNumber(failureCase_); + } + + public static final int TOPIC_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object topic_ = ""; + + /** + * + * + *
+   * Required. Name of the import topic. Format is:
+   * projects/{project_name}/topics/{topic_name}.
+   * 
+ * + * + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The topic. + */ + @java.lang.Override + public java.lang.String getTopic() { + java.lang.Object ref = topic_; + 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(); + topic_ = s; + return s; + } + } + + /** + * + * + *
+   * Required. Name of the import topic. Format is:
+   * projects/{project_name}/topics/{topic_name}.
+   * 
+ * + * + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The bytes for topic. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTopicBytes() { + java.lang.Object ref = topic_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + topic_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ERROR_MESSAGE_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object errorMessage_ = ""; + + /** + * + * + *
+   * Required. Error details explaining why ingestion to Pub/Sub has failed.
+   * 
+ * + * string error_message = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The errorMessage. + */ + @java.lang.Override + public java.lang.String getErrorMessage() { + java.lang.Object ref = errorMessage_; + 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(); + errorMessage_ = s; + return s; + } + } + + /** + * + * + *
+   * Required. Error details explaining why ingestion to Pub/Sub has failed.
+   * 
+ * + * string error_message = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for errorMessage. + */ + @java.lang.Override + public com.google.protobuf.ByteString getErrorMessageBytes() { + java.lang.Object ref = errorMessage_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + errorMessage_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CLOUD_STORAGE_FAILURE_FIELD_NUMBER = 3; + + /** + * + * + *
+   * Optional. Failure when ingesting from Cloud Storage.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure cloud_storage_failure = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the cloudStorageFailure field is set. + */ + @java.lang.Override + public boolean hasCloudStorageFailure() { + return failureCase_ == 3; + } + + /** + * + * + *
+   * Optional. Failure when ingesting from Cloud Storage.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure cloud_storage_failure = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The cloudStorageFailure. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure getCloudStorageFailure() { + if (failureCase_ == 3) { + return (com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.getDefaultInstance(); + } + + /** + * + * + *
+   * Optional. Failure when ingesting from Cloud Storage.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure cloud_storage_failure = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailureOrBuilder + getCloudStorageFailureOrBuilder() { + if (failureCase_ == 3) { + return (com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.getDefaultInstance(); + } + + public static final int AWS_MSK_FAILURE_FIELD_NUMBER = 4; + + /** + * + * + *
+   * Optional. Failure when ingesting from Amazon MSK.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason aws_msk_failure = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the awsMskFailure field is set. + */ + @java.lang.Override + public boolean hasAwsMskFailure() { + return failureCase_ == 4; + } + + /** + * + * + *
+   * Optional. Failure when ingesting from Amazon MSK.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason aws_msk_failure = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The awsMskFailure. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason getAwsMskFailure() { + if (failureCase_ == 4) { + return (com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.getDefaultInstance(); + } + + /** + * + * + *
+   * Optional. Failure when ingesting from Amazon MSK.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason aws_msk_failure = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReasonOrBuilder + getAwsMskFailureOrBuilder() { + if (failureCase_ == 4) { + return (com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.getDefaultInstance(); + } + + public static final int AZURE_EVENT_HUBS_FAILURE_FIELD_NUMBER = 5; + + /** + * + * + *
+   * Optional. Failure when ingesting from Azure Event Hubs.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason azure_event_hubs_failure = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the azureEventHubsFailure field is set. + */ + @java.lang.Override + public boolean hasAzureEventHubsFailure() { + return failureCase_ == 5; + } + + /** + * + * + *
+   * Optional. Failure when ingesting from Azure Event Hubs.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason azure_event_hubs_failure = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The azureEventHubsFailure. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason + getAzureEventHubsFailure() { + if (failureCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason + .getDefaultInstance(); + } + + /** + * + * + *
+   * Optional. Failure when ingesting from Azure Event Hubs.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason azure_event_hubs_failure = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReasonOrBuilder + getAzureEventHubsFailureOrBuilder() { + if (failureCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason + .getDefaultInstance(); + } + + public static final int CONFLUENT_CLOUD_FAILURE_FIELD_NUMBER = 6; + + /** + * + * + *
+   * Optional. Failure when ingesting from Confluent Cloud.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason confluent_cloud_failure = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the confluentCloudFailure field is set. + */ + @java.lang.Override + public boolean hasConfluentCloudFailure() { + return failureCase_ == 6; + } + + /** + * + * + *
+   * Optional. Failure when ingesting from Confluent Cloud.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason confluent_cloud_failure = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The confluentCloudFailure. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason + getConfluentCloudFailure() { + if (failureCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason + .getDefaultInstance(); + } + + /** + * + * + *
+   * Optional. Failure when ingesting from Confluent Cloud.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason confluent_cloud_failure = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReasonOrBuilder + getConfluentCloudFailureOrBuilder() { + if (failureCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason + .getDefaultInstance(); + } + + public static final int AWS_KINESIS_FAILURE_FIELD_NUMBER = 7; + + /** + * + * + *
+   * Optional. Failure when ingesting from AWS Kinesis.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason aws_kinesis_failure = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the awsKinesisFailure field is set. + */ + @java.lang.Override + public boolean hasAwsKinesisFailure() { + return failureCase_ == 7; + } + + /** + * + * + *
+   * Optional. Failure when ingesting from AWS Kinesis.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason aws_kinesis_failure = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The awsKinesisFailure. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason getAwsKinesisFailure() { + if (failureCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason.getDefaultInstance(); + } + + /** + * + * + *
+   * Optional. Failure when ingesting from AWS Kinesis.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason aws_kinesis_failure = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReasonOrBuilder + getAwsKinesisFailureOrBuilder() { + if (failureCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason.getDefaultInstance(); + } + + 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(topic_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, topic_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errorMessage_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, errorMessage_); + } + if (failureCase_ == 3) { + output.writeMessage( + 3, (com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure) failure_); + } + if (failureCase_ == 4) { + output.writeMessage( + 4, (com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason) failure_); + } + if (failureCase_ == 5) { + output.writeMessage( + 5, (com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason) failure_); + } + if (failureCase_ == 6) { + output.writeMessage( + 6, (com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason) failure_); + } + if (failureCase_ == 7) { + output.writeMessage( + 7, (com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason) failure_); + } + 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(topic_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, topic_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errorMessage_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, errorMessage_); + } + if (failureCase_ == 3) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 3, (com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure) failure_); + } + if (failureCase_ == 4) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 4, (com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason) failure_); + } + if (failureCase_ == 5) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 5, (com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason) failure_); + } + if (failureCase_ == 6) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 6, (com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason) failure_); + } + if (failureCase_ == 7) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 7, (com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason) failure_); + } + 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.pubsub.v1.IngestionFailureEvent)) { + return super.equals(obj); + } + com.google.pubsub.v1.IngestionFailureEvent other = + (com.google.pubsub.v1.IngestionFailureEvent) obj; + + if (!getTopic().equals(other.getTopic())) return false; + if (!getErrorMessage().equals(other.getErrorMessage())) return false; + if (!getFailureCase().equals(other.getFailureCase())) return false; + switch (failureCase_) { + case 3: + if (!getCloudStorageFailure().equals(other.getCloudStorageFailure())) return false; + break; + case 4: + if (!getAwsMskFailure().equals(other.getAwsMskFailure())) return false; + break; + case 5: + if (!getAzureEventHubsFailure().equals(other.getAzureEventHubsFailure())) return false; + break; + case 6: + if (!getConfluentCloudFailure().equals(other.getConfluentCloudFailure())) return false; + break; + case 7: + if (!getAwsKinesisFailure().equals(other.getAwsKinesisFailure())) return false; + break; + case 0: + default: + } + 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) + TOPIC_FIELD_NUMBER; + hash = (53 * hash) + getTopic().hashCode(); + hash = (37 * hash) + ERROR_MESSAGE_FIELD_NUMBER; + hash = (53 * hash) + getErrorMessage().hashCode(); + switch (failureCase_) { + case 3: + hash = (37 * hash) + CLOUD_STORAGE_FAILURE_FIELD_NUMBER; + hash = (53 * hash) + getCloudStorageFailure().hashCode(); + break; + case 4: + hash = (37 * hash) + AWS_MSK_FAILURE_FIELD_NUMBER; + hash = (53 * hash) + getAwsMskFailure().hashCode(); + break; + case 5: + hash = (37 * hash) + AZURE_EVENT_HUBS_FAILURE_FIELD_NUMBER; + hash = (53 * hash) + getAzureEventHubsFailure().hashCode(); + break; + case 6: + hash = (37 * hash) + CONFLUENT_CLOUD_FAILURE_FIELD_NUMBER; + hash = (53 * hash) + getConfluentCloudFailure().hashCode(); + break; + case 7: + hash = (37 * hash) + AWS_KINESIS_FAILURE_FIELD_NUMBER; + hash = (53 * hash) + getAwsKinesisFailure().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.IngestionFailureEvent parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent 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.pubsub.v1.IngestionFailureEvent parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.IngestionFailureEvent parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.IngestionFailureEvent parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent 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.pubsub.v1.IngestionFailureEvent parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent 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.pubsub.v1.IngestionFailureEvent parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.IngestionFailureEvent 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.pubsub.v1.IngestionFailureEvent 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; + } + + /** + * + * + *
+   * Payload of the Platform Log entry sent when a failure is encountered while
+   * ingesting.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.IngestionFailureEvent} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.IngestionFailureEvent) + com.google.pubsub.v1.IngestionFailureEventOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.IngestionFailureEvent.class, + com.google.pubsub.v1.IngestionFailureEvent.Builder.class); + } + + // Construct using com.google.pubsub.v1.IngestionFailureEvent.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + topic_ = ""; + errorMessage_ = ""; + if (cloudStorageFailureBuilder_ != null) { + cloudStorageFailureBuilder_.clear(); + } + if (awsMskFailureBuilder_ != null) { + awsMskFailureBuilder_.clear(); + } + if (azureEventHubsFailureBuilder_ != null) { + azureEventHubsFailureBuilder_.clear(); + } + if (confluentCloudFailureBuilder_ != null) { + confluentCloudFailureBuilder_.clear(); + } + if (awsKinesisFailureBuilder_ != null) { + awsKinesisFailureBuilder_.clear(); + } + failureCase_ = 0; + failure_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_IngestionFailureEvent_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent getDefaultInstanceForType() { + return com.google.pubsub.v1.IngestionFailureEvent.getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent build() { + com.google.pubsub.v1.IngestionFailureEvent result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent buildPartial() { + com.google.pubsub.v1.IngestionFailureEvent result = + new com.google.pubsub.v1.IngestionFailureEvent(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0(com.google.pubsub.v1.IngestionFailureEvent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.topic_ = topic_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.errorMessage_ = errorMessage_; + } + } + + private void buildPartialOneofs(com.google.pubsub.v1.IngestionFailureEvent result) { + result.failureCase_ = failureCase_; + result.failure_ = this.failure_; + if (failureCase_ == 3 && cloudStorageFailureBuilder_ != null) { + result.failure_ = cloudStorageFailureBuilder_.build(); + } + if (failureCase_ == 4 && awsMskFailureBuilder_ != null) { + result.failure_ = awsMskFailureBuilder_.build(); + } + if (failureCase_ == 5 && azureEventHubsFailureBuilder_ != null) { + result.failure_ = azureEventHubsFailureBuilder_.build(); + } + if (failureCase_ == 6 && confluentCloudFailureBuilder_ != null) { + result.failure_ = confluentCloudFailureBuilder_.build(); + } + if (failureCase_ == 7 && awsKinesisFailureBuilder_ != null) { + result.failure_ = awsKinesisFailureBuilder_.build(); + } + } + + @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.pubsub.v1.IngestionFailureEvent) { + return mergeFrom((com.google.pubsub.v1.IngestionFailureEvent) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.pubsub.v1.IngestionFailureEvent other) { + if (other == com.google.pubsub.v1.IngestionFailureEvent.getDefaultInstance()) return this; + if (!other.getTopic().isEmpty()) { + topic_ = other.topic_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getErrorMessage().isEmpty()) { + errorMessage_ = other.errorMessage_; + bitField0_ |= 0x00000002; + onChanged(); + } + switch (other.getFailureCase()) { + case CLOUD_STORAGE_FAILURE: + { + mergeCloudStorageFailure(other.getCloudStorageFailure()); + break; + } + case AWS_MSK_FAILURE: + { + mergeAwsMskFailure(other.getAwsMskFailure()); + break; + } + case AZURE_EVENT_HUBS_FAILURE: + { + mergeAzureEventHubsFailure(other.getAzureEventHubsFailure()); + break; + } + case CONFLUENT_CLOUD_FAILURE: + { + mergeConfluentCloudFailure(other.getConfluentCloudFailure()); + break; + } + case AWS_KINESIS_FAILURE: + { + mergeAwsKinesisFailure(other.getAwsKinesisFailure()); + break; + } + case FAILURE_NOT_SET: + { + break; + } + } + 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: + { + topic_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + errorMessage_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + input.readMessage( + getCloudStorageFailureFieldBuilder().getBuilder(), extensionRegistry); + failureCase_ = 3; + break; + } // case 26 + case 34: + { + input.readMessage(getAwsMskFailureFieldBuilder().getBuilder(), extensionRegistry); + failureCase_ = 4; + break; + } // case 34 + case 42: + { + input.readMessage( + getAzureEventHubsFailureFieldBuilder().getBuilder(), extensionRegistry); + failureCase_ = 5; + break; + } // case 42 + case 50: + { + input.readMessage( + getConfluentCloudFailureFieldBuilder().getBuilder(), extensionRegistry); + failureCase_ = 6; + break; + } // case 50 + case 58: + { + input.readMessage( + getAwsKinesisFailureFieldBuilder().getBuilder(), extensionRegistry); + failureCase_ = 7; + break; + } // case 58 + 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 failureCase_ = 0; + private java.lang.Object failure_; + + public FailureCase getFailureCase() { + return FailureCase.forNumber(failureCase_); + } + + public Builder clearFailure() { + failureCase_ = 0; + failure_ = null; + onChanged(); + return this; + } + + private int bitField0_; + + private java.lang.Object topic_ = ""; + + /** + * + * + *
+     * Required. Name of the import topic. Format is:
+     * projects/{project_name}/topics/{topic_name}.
+     * 
+ * + * + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The topic. + */ + public java.lang.String getTopic() { + java.lang.Object ref = topic_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + topic_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Required. Name of the import topic. Format is:
+     * projects/{project_name}/topics/{topic_name}.
+     * 
+ * + * + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The bytes for topic. + */ + public com.google.protobuf.ByteString getTopicBytes() { + java.lang.Object ref = topic_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + topic_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Required. Name of the import topic. Format is:
+     * projects/{project_name}/topics/{topic_name}.
+     * 
+ * + * + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @param value The topic to set. + * @return This builder for chaining. + */ + public Builder setTopic(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + topic_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. Name of the import topic. Format is:
+     * projects/{project_name}/topics/{topic_name}.
+     * 
+ * + * + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return This builder for chaining. + */ + public Builder clearTopic() { + topic_ = getDefaultInstance().getTopic(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. Name of the import topic. Format is:
+     * projects/{project_name}/topics/{topic_name}.
+     * 
+ * + * + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @param value The bytes for topic to set. + * @return This builder for chaining. + */ + public Builder setTopicBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + topic_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object errorMessage_ = ""; + + /** + * + * + *
+     * Required. Error details explaining why ingestion to Pub/Sub has failed.
+     * 
+ * + * string error_message = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The errorMessage. + */ + public java.lang.String getErrorMessage() { + java.lang.Object ref = errorMessage_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + errorMessage_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Required. Error details explaining why ingestion to Pub/Sub has failed.
+     * 
+ * + * string error_message = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for errorMessage. + */ + public com.google.protobuf.ByteString getErrorMessageBytes() { + java.lang.Object ref = errorMessage_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + errorMessage_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Required. Error details explaining why ingestion to Pub/Sub has failed.
+     * 
+ * + * string error_message = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The errorMessage to set. + * @return This builder for chaining. + */ + public Builder setErrorMessage(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + errorMessage_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. Error details explaining why ingestion to Pub/Sub has failed.
+     * 
+ * + * string error_message = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearErrorMessage() { + errorMessage_ = getDefaultInstance().getErrorMessage(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. Error details explaining why ingestion to Pub/Sub has failed.
+     * 
+ * + * string error_message = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for errorMessage to set. + * @return This builder for chaining. + */ + public Builder setErrorMessageBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + errorMessage_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure, + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.Builder, + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailureOrBuilder> + cloudStorageFailureBuilder_; + + /** + * + * + *
+     * Optional. Failure when ingesting from Cloud Storage.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure cloud_storage_failure = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the cloudStorageFailure field is set. + */ + @java.lang.Override + public boolean hasCloudStorageFailure() { + return failureCase_ == 3; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Cloud Storage.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure cloud_storage_failure = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The cloudStorageFailure. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure getCloudStorageFailure() { + if (cloudStorageFailureBuilder_ == null) { + if (failureCase_ == 3) { + return (com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.getDefaultInstance(); + } else { + if (failureCase_ == 3) { + return cloudStorageFailureBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Cloud Storage.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure cloud_storage_failure = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setCloudStorageFailure( + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure value) { + if (cloudStorageFailureBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + failure_ = value; + onChanged(); + } else { + cloudStorageFailureBuilder_.setMessage(value); + } + failureCase_ = 3; + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Cloud Storage.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure cloud_storage_failure = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setCloudStorageFailure( + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.Builder builderForValue) { + if (cloudStorageFailureBuilder_ == null) { + failure_ = builderForValue.build(); + onChanged(); + } else { + cloudStorageFailureBuilder_.setMessage(builderForValue.build()); + } + failureCase_ = 3; + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Cloud Storage.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure cloud_storage_failure = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeCloudStorageFailure( + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure value) { + if (cloudStorageFailureBuilder_ == null) { + if (failureCase_ == 3 + && failure_ + != com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure + .getDefaultInstance()) { + failure_ = + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure) failure_) + .mergeFrom(value) + .buildPartial(); + } else { + failure_ = value; + } + onChanged(); + } else { + if (failureCase_ == 3) { + cloudStorageFailureBuilder_.mergeFrom(value); + } else { + cloudStorageFailureBuilder_.setMessage(value); + } + } + failureCase_ = 3; + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Cloud Storage.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure cloud_storage_failure = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearCloudStorageFailure() { + if (cloudStorageFailureBuilder_ == null) { + if (failureCase_ == 3) { + failureCase_ = 0; + failure_ = null; + onChanged(); + } + } else { + if (failureCase_ == 3) { + failureCase_ = 0; + failure_ = null; + } + cloudStorageFailureBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Cloud Storage.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure cloud_storage_failure = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.Builder + getCloudStorageFailureBuilder() { + return getCloudStorageFailureFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Cloud Storage.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure cloud_storage_failure = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailureOrBuilder + getCloudStorageFailureOrBuilder() { + if ((failureCase_ == 3) && (cloudStorageFailureBuilder_ != null)) { + return cloudStorageFailureBuilder_.getMessageOrBuilder(); + } else { + if (failureCase_ == 3) { + return (com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Cloud Storage.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure cloud_storage_failure = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure, + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.Builder, + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailureOrBuilder> + getCloudStorageFailureFieldBuilder() { + if (cloudStorageFailureBuilder_ == null) { + if (!(failureCase_ == 3)) { + failure_ = + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.getDefaultInstance(); + } + cloudStorageFailureBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure, + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.Builder, + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailureOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure) failure_, + getParentForChildren(), + isClean()); + failure_ = null; + } + failureCase_ = 3; + onChanged(); + return cloudStorageFailureBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReasonOrBuilder> + awsMskFailureBuilder_; + + /** + * + * + *
+     * Optional. Failure when ingesting from Amazon MSK.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason aws_msk_failure = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the awsMskFailure field is set. + */ + @java.lang.Override + public boolean hasAwsMskFailure() { + return failureCase_ == 4; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Amazon MSK.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason aws_msk_failure = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The awsMskFailure. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason getAwsMskFailure() { + if (awsMskFailureBuilder_ == null) { + if (failureCase_ == 4) { + return (com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.getDefaultInstance(); + } else { + if (failureCase_ == 4) { + return awsMskFailureBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Amazon MSK.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason aws_msk_failure = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setAwsMskFailure( + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason value) { + if (awsMskFailureBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + failure_ = value; + onChanged(); + } else { + awsMskFailureBuilder_.setMessage(value); + } + failureCase_ = 4; + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Amazon MSK.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason aws_msk_failure = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setAwsMskFailure( + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.Builder builderForValue) { + if (awsMskFailureBuilder_ == null) { + failure_ = builderForValue.build(); + onChanged(); + } else { + awsMskFailureBuilder_.setMessage(builderForValue.build()); + } + failureCase_ = 4; + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Amazon MSK.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason aws_msk_failure = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeAwsMskFailure( + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason value) { + if (awsMskFailureBuilder_ == null) { + if (failureCase_ == 4 + && failure_ + != com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason + .getDefaultInstance()) { + failure_ = + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason) failure_) + .mergeFrom(value) + .buildPartial(); + } else { + failure_ = value; + } + onChanged(); + } else { + if (failureCase_ == 4) { + awsMskFailureBuilder_.mergeFrom(value); + } else { + awsMskFailureBuilder_.setMessage(value); + } + } + failureCase_ = 4; + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Amazon MSK.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason aws_msk_failure = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearAwsMskFailure() { + if (awsMskFailureBuilder_ == null) { + if (failureCase_ == 4) { + failureCase_ = 0; + failure_ = null; + onChanged(); + } + } else { + if (failureCase_ == 4) { + failureCase_ = 0; + failure_ = null; + } + awsMskFailureBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Amazon MSK.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason aws_msk_failure = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.Builder + getAwsMskFailureBuilder() { + return getAwsMskFailureFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Amazon MSK.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason aws_msk_failure = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReasonOrBuilder + getAwsMskFailureOrBuilder() { + if ((failureCase_ == 4) && (awsMskFailureBuilder_ != null)) { + return awsMskFailureBuilder_.getMessageOrBuilder(); + } else { + if (failureCase_ == 4) { + return (com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Amazon MSK.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason aws_msk_failure = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReasonOrBuilder> + getAwsMskFailureFieldBuilder() { + if (awsMskFailureBuilder_ == null) { + if (!(failureCase_ == 4)) { + failure_ = + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.getDefaultInstance(); + } + awsMskFailureBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason) failure_, + getParentForChildren(), + isClean()); + failure_ = null; + } + failureCase_ = 4; + onChanged(); + return awsMskFailureBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReasonOrBuilder> + azureEventHubsFailureBuilder_; + + /** + * + * + *
+     * Optional. Failure when ingesting from Azure Event Hubs.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason azure_event_hubs_failure = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the azureEventHubsFailure field is set. + */ + @java.lang.Override + public boolean hasAzureEventHubsFailure() { + return failureCase_ == 5; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Azure Event Hubs.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason azure_event_hubs_failure = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The azureEventHubsFailure. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason + getAzureEventHubsFailure() { + if (azureEventHubsFailureBuilder_ == null) { + if (failureCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason + .getDefaultInstance(); + } else { + if (failureCase_ == 5) { + return azureEventHubsFailureBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Azure Event Hubs.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason azure_event_hubs_failure = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setAzureEventHubsFailure( + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason value) { + if (azureEventHubsFailureBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + failure_ = value; + onChanged(); + } else { + azureEventHubsFailureBuilder_.setMessage(value); + } + failureCase_ = 5; + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Azure Event Hubs.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason azure_event_hubs_failure = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setAzureEventHubsFailure( + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason.Builder + builderForValue) { + if (azureEventHubsFailureBuilder_ == null) { + failure_ = builderForValue.build(); + onChanged(); + } else { + azureEventHubsFailureBuilder_.setMessage(builderForValue.build()); + } + failureCase_ = 5; + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Azure Event Hubs.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason azure_event_hubs_failure = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeAzureEventHubsFailure( + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason value) { + if (azureEventHubsFailureBuilder_ == null) { + if (failureCase_ == 5 + && failure_ + != com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason + .getDefaultInstance()) { + failure_ = + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason.newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason) + failure_) + .mergeFrom(value) + .buildPartial(); + } else { + failure_ = value; + } + onChanged(); + } else { + if (failureCase_ == 5) { + azureEventHubsFailureBuilder_.mergeFrom(value); + } else { + azureEventHubsFailureBuilder_.setMessage(value); + } + } + failureCase_ = 5; + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Azure Event Hubs.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason azure_event_hubs_failure = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearAzureEventHubsFailure() { + if (azureEventHubsFailureBuilder_ == null) { + if (failureCase_ == 5) { + failureCase_ = 0; + failure_ = null; + onChanged(); + } + } else { + if (failureCase_ == 5) { + failureCase_ = 0; + failure_ = null; + } + azureEventHubsFailureBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Azure Event Hubs.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason azure_event_hubs_failure = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason.Builder + getAzureEventHubsFailureBuilder() { + return getAzureEventHubsFailureFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Azure Event Hubs.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason azure_event_hubs_failure = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReasonOrBuilder + getAzureEventHubsFailureOrBuilder() { + if ((failureCase_ == 5) && (azureEventHubsFailureBuilder_ != null)) { + return azureEventHubsFailureBuilder_.getMessageOrBuilder(); + } else { + if (failureCase_ == 5) { + return (com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Azure Event Hubs.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason azure_event_hubs_failure = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReasonOrBuilder> + getAzureEventHubsFailureFieldBuilder() { + if (azureEventHubsFailureBuilder_ == null) { + if (!(failureCase_ == 5)) { + failure_ = + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason + .getDefaultInstance(); + } + azureEventHubsFailureBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason) failure_, + getParentForChildren(), + isClean()); + failure_ = null; + } + failureCase_ = 5; + onChanged(); + return azureEventHubsFailureBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReasonOrBuilder> + confluentCloudFailureBuilder_; + + /** + * + * + *
+     * Optional. Failure when ingesting from Confluent Cloud.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason confluent_cloud_failure = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the confluentCloudFailure field is set. + */ + @java.lang.Override + public boolean hasConfluentCloudFailure() { + return failureCase_ == 6; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Confluent Cloud.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason confluent_cloud_failure = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The confluentCloudFailure. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason + getConfluentCloudFailure() { + if (confluentCloudFailureBuilder_ == null) { + if (failureCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason + .getDefaultInstance(); + } else { + if (failureCase_ == 6) { + return confluentCloudFailureBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Confluent Cloud.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason confluent_cloud_failure = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setConfluentCloudFailure( + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason value) { + if (confluentCloudFailureBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + failure_ = value; + onChanged(); + } else { + confluentCloudFailureBuilder_.setMessage(value); + } + failureCase_ = 6; + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Confluent Cloud.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason confluent_cloud_failure = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setConfluentCloudFailure( + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason.Builder + builderForValue) { + if (confluentCloudFailureBuilder_ == null) { + failure_ = builderForValue.build(); + onChanged(); + } else { + confluentCloudFailureBuilder_.setMessage(builderForValue.build()); + } + failureCase_ = 6; + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Confluent Cloud.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason confluent_cloud_failure = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeConfluentCloudFailure( + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason value) { + if (confluentCloudFailureBuilder_ == null) { + if (failureCase_ == 6 + && failure_ + != com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason + .getDefaultInstance()) { + failure_ = + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason.newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason) + failure_) + .mergeFrom(value) + .buildPartial(); + } else { + failure_ = value; + } + onChanged(); + } else { + if (failureCase_ == 6) { + confluentCloudFailureBuilder_.mergeFrom(value); + } else { + confluentCloudFailureBuilder_.setMessage(value); + } + } + failureCase_ = 6; + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Confluent Cloud.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason confluent_cloud_failure = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearConfluentCloudFailure() { + if (confluentCloudFailureBuilder_ == null) { + if (failureCase_ == 6) { + failureCase_ = 0; + failure_ = null; + onChanged(); + } + } else { + if (failureCase_ == 6) { + failureCase_ = 0; + failure_ = null; + } + confluentCloudFailureBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Confluent Cloud.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason confluent_cloud_failure = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason.Builder + getConfluentCloudFailureBuilder() { + return getConfluentCloudFailureFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Confluent Cloud.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason confluent_cloud_failure = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReasonOrBuilder + getConfluentCloudFailureOrBuilder() { + if ((failureCase_ == 6) && (confluentCloudFailureBuilder_ != null)) { + return confluentCloudFailureBuilder_.getMessageOrBuilder(); + } else { + if (failureCase_ == 6) { + return (com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Failure when ingesting from Confluent Cloud.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason confluent_cloud_failure = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReasonOrBuilder> + getConfluentCloudFailureFieldBuilder() { + if (confluentCloudFailureBuilder_ == null) { + if (!(failureCase_ == 6)) { + failure_ = + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason + .getDefaultInstance(); + } + confluentCloudFailureBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason) failure_, + getParentForChildren(), + isClean()); + failure_ = null; + } + failureCase_ = 6; + onChanged(); + return confluentCloudFailureBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReasonOrBuilder> + awsKinesisFailureBuilder_; + + /** + * + * + *
+     * Optional. Failure when ingesting from AWS Kinesis.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason aws_kinesis_failure = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the awsKinesisFailure field is set. + */ + @java.lang.Override + public boolean hasAwsKinesisFailure() { + return failureCase_ == 7; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from AWS Kinesis.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason aws_kinesis_failure = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The awsKinesisFailure. + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason + getAwsKinesisFailure() { + if (awsKinesisFailureBuilder_ == null) { + if (failureCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason + .getDefaultInstance(); + } else { + if (failureCase_ == 7) { + return awsKinesisFailureBuilder_.getMessage(); + } + return com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Failure when ingesting from AWS Kinesis.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason aws_kinesis_failure = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setAwsKinesisFailure( + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason value) { + if (awsKinesisFailureBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + failure_ = value; + onChanged(); + } else { + awsKinesisFailureBuilder_.setMessage(value); + } + failureCase_ = 7; + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from AWS Kinesis.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason aws_kinesis_failure = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setAwsKinesisFailure( + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason.Builder + builderForValue) { + if (awsKinesisFailureBuilder_ == null) { + failure_ = builderForValue.build(); + onChanged(); + } else { + awsKinesisFailureBuilder_.setMessage(builderForValue.build()); + } + failureCase_ = 7; + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from AWS Kinesis.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason aws_kinesis_failure = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeAwsKinesisFailure( + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason value) { + if (awsKinesisFailureBuilder_ == null) { + if (failureCase_ == 7 + && failure_ + != com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason + .getDefaultInstance()) { + failure_ = + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason.newBuilder( + (com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason) failure_) + .mergeFrom(value) + .buildPartial(); + } else { + failure_ = value; + } + onChanged(); + } else { + if (failureCase_ == 7) { + awsKinesisFailureBuilder_.mergeFrom(value); + } else { + awsKinesisFailureBuilder_.setMessage(value); + } + } + failureCase_ = 7; + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from AWS Kinesis.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason aws_kinesis_failure = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearAwsKinesisFailure() { + if (awsKinesisFailureBuilder_ == null) { + if (failureCase_ == 7) { + failureCase_ = 0; + failure_ = null; + onChanged(); + } + } else { + if (failureCase_ == 7) { + failureCase_ = 0; + failure_ = null; + } + awsKinesisFailureBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Optional. Failure when ingesting from AWS Kinesis.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason aws_kinesis_failure = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason.Builder + getAwsKinesisFailureBuilder() { + return getAwsKinesisFailureFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. Failure when ingesting from AWS Kinesis.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason aws_kinesis_failure = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReasonOrBuilder + getAwsKinesisFailureOrBuilder() { + if ((failureCase_ == 7) && (awsKinesisFailureBuilder_ != null)) { + return awsKinesisFailureBuilder_.getMessageOrBuilder(); + } else { + if (failureCase_ == 7) { + return (com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason) failure_; + } + return com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason + .getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. Failure when ingesting from AWS Kinesis.
+     * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason aws_kinesis_failure = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReasonOrBuilder> + getAwsKinesisFailureFieldBuilder() { + if (awsKinesisFailureBuilder_ == null) { + if (!(failureCase_ == 7)) { + failure_ = + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason + .getDefaultInstance(); + } + awsKinesisFailureBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason, + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason.Builder, + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReasonOrBuilder>( + (com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason) failure_, + getParentForChildren(), + isClean()); + failure_ = null; + } + failureCase_ = 7; + onChanged(); + return awsKinesisFailureBuilder_; + } + + @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.pubsub.v1.IngestionFailureEvent) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionFailureEvent) + private static final com.google.pubsub.v1.IngestionFailureEvent DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.pubsub.v1.IngestionFailureEvent(); + } + + public static com.google.pubsub.v1.IngestionFailureEvent getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public IngestionFailureEvent 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.pubsub.v1.IngestionFailureEvent getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/IngestionFailureEventOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/IngestionFailureEventOrBuilder.java new file mode 100644 index 000000000..49390d159 --- /dev/null +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/IngestionFailureEventOrBuilder.java @@ -0,0 +1,306 @@ +/* + * 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/pubsub/v1/pubsub.proto + +// Protobuf Java Version: 3.25.8 +package com.google.pubsub.v1; + +public interface IngestionFailureEventOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.IngestionFailureEvent) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Required. Name of the import topic. Format is:
+   * projects/{project_name}/topics/{topic_name}.
+   * 
+ * + * + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The topic. + */ + java.lang.String getTopic(); + + /** + * + * + *
+   * Required. Name of the import topic. Format is:
+   * projects/{project_name}/topics/{topic_name}.
+   * 
+ * + * + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The bytes for topic. + */ + com.google.protobuf.ByteString getTopicBytes(); + + /** + * + * + *
+   * Required. Error details explaining why ingestion to Pub/Sub has failed.
+   * 
+ * + * string error_message = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The errorMessage. + */ + java.lang.String getErrorMessage(); + + /** + * + * + *
+   * Required. Error details explaining why ingestion to Pub/Sub has failed.
+   * 
+ * + * string error_message = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for errorMessage. + */ + com.google.protobuf.ByteString getErrorMessageBytes(); + + /** + * + * + *
+   * Optional. Failure when ingesting from Cloud Storage.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure cloud_storage_failure = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the cloudStorageFailure field is set. + */ + boolean hasCloudStorageFailure(); + + /** + * + * + *
+   * Optional. Failure when ingesting from Cloud Storage.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure cloud_storage_failure = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The cloudStorageFailure. + */ + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure getCloudStorageFailure(); + + /** + * + * + *
+   * Optional. Failure when ingesting from Cloud Storage.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure cloud_storage_failure = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.CloudStorageFailureOrBuilder + getCloudStorageFailureOrBuilder(); + + /** + * + * + *
+   * Optional. Failure when ingesting from Amazon MSK.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason aws_msk_failure = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the awsMskFailure field is set. + */ + boolean hasAwsMskFailure(); + + /** + * + * + *
+   * Optional. Failure when ingesting from Amazon MSK.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason aws_msk_failure = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The awsMskFailure. + */ + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason getAwsMskFailure(); + + /** + * + * + *
+   * Optional. Failure when ingesting from Amazon MSK.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason aws_msk_failure = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReasonOrBuilder + getAwsMskFailureOrBuilder(); + + /** + * + * + *
+   * Optional. Failure when ingesting from Azure Event Hubs.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason azure_event_hubs_failure = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the azureEventHubsFailure field is set. + */ + boolean hasAzureEventHubsFailure(); + + /** + * + * + *
+   * Optional. Failure when ingesting from Azure Event Hubs.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason azure_event_hubs_failure = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The azureEventHubsFailure. + */ + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason getAzureEventHubsFailure(); + + /** + * + * + *
+   * Optional. Failure when ingesting from Azure Event Hubs.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason azure_event_hubs_failure = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReasonOrBuilder + getAzureEventHubsFailureOrBuilder(); + + /** + * + * + *
+   * Optional. Failure when ingesting from Confluent Cloud.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason confluent_cloud_failure = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the confluentCloudFailure field is set. + */ + boolean hasConfluentCloudFailure(); + + /** + * + * + *
+   * Optional. Failure when ingesting from Confluent Cloud.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason confluent_cloud_failure = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The confluentCloudFailure. + */ + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason getConfluentCloudFailure(); + + /** + * + * + *
+   * Optional. Failure when ingesting from Confluent Cloud.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason confluent_cloud_failure = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReasonOrBuilder + getConfluentCloudFailureOrBuilder(); + + /** + * + * + *
+   * Optional. Failure when ingesting from AWS Kinesis.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason aws_kinesis_failure = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the awsKinesisFailure field is set. + */ + boolean hasAwsKinesisFailure(); + + /** + * + * + *
+   * Optional. Failure when ingesting from AWS Kinesis.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason aws_kinesis_failure = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The awsKinesisFailure. + */ + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason getAwsKinesisFailure(); + + /** + * + * + *
+   * Optional. Failure when ingesting from AWS Kinesis.
+   * 
+ * + * + * .google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason aws_kinesis_failure = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReasonOrBuilder + getAwsKinesisFailureOrBuilder(); + + com.google.pubsub.v1.IngestionFailureEvent.FailureCase getFailureCase(); +} diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/JavaScriptUDF.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/JavaScriptUDF.java new file mode 100644 index 000000000..e38b55f09 --- /dev/null +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/JavaScriptUDF.java @@ -0,0 +1,1031 @@ +/* + * 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/pubsub/v1/pubsub.proto + +// Protobuf Java Version: 3.25.8 +package com.google.pubsub.v1; + +/** + * + * + *
+ * User-defined JavaScript function that can transform or filter a Pub/Sub
+ * message.
+ * 
+ * + * Protobuf type {@code google.pubsub.v1.JavaScriptUDF} + */ +public final class JavaScriptUDF extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.JavaScriptUDF) + JavaScriptUDFOrBuilder { + private static final long serialVersionUID = 0L; + + // Use JavaScriptUDF.newBuilder() to construct. + private JavaScriptUDF(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private JavaScriptUDF() { + functionName_ = ""; + code_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new JavaScriptUDF(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_JavaScriptUDF_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_JavaScriptUDF_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.JavaScriptUDF.class, + com.google.pubsub.v1.JavaScriptUDF.Builder.class); + } + + public static final int FUNCTION_NAME_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object functionName_ = ""; + + /** + * + * + *
+   * Required. Name of the JavasScript function that should applied to Pub/Sub
+   * messages.
+   * 
+ * + * string function_name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The functionName. + */ + @java.lang.Override + public java.lang.String getFunctionName() { + java.lang.Object ref = functionName_; + 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(); + functionName_ = s; + return s; + } + } + + /** + * + * + *
+   * Required. Name of the JavasScript function that should applied to Pub/Sub
+   * messages.
+   * 
+ * + * string function_name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for functionName. + */ + @java.lang.Override + public com.google.protobuf.ByteString getFunctionNameBytes() { + java.lang.Object ref = functionName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + functionName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CODE_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object code_ = ""; + + /** + * + * + *
+   * Required. JavaScript code that contains a function `function_name` with the
+   * below signature:
+   *
+   * ```
+   *   /**
+   *   * Transforms a Pub/Sub message.
+   *
+   *   * @return {(Object<string, (string | Object<string, string>)>|null)} - To
+   *   * filter a message, return `null`. To transform a message return a map
+   *   * with the following keys:
+   *   *   - (required) 'data' : {string}
+   *   *   - (optional) 'attributes' : {Object<string, string>}
+   *   * Returning empty `attributes` will remove all attributes from the
+   *   * message.
+   *   *
+   *   * @param  {(Object<string, (string | Object<string, string>)>} Pub/Sub
+   *   * message. Keys:
+   *   *   - (required) 'data' : {string}
+   *   *   - (required) 'attributes' : {Object<string, string>}
+   *   *
+   *   * @param  {Object<string, any>} metadata - Pub/Sub message metadata.
+   *   * Keys:
+   *   *   - (optional) 'message_id'  : {string}
+   *   *   - (optional) 'publish_time': {string} YYYY-MM-DDTHH:MM:SSZ format
+   *   *   - (optional) 'ordering_key': {string}
+   *   */
+   *
+   *   function <function_name>(message, metadata) {
+   *   }
+   * ```
+   * 
+ * + * string code = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The code. + */ + @java.lang.Override + public java.lang.String getCode() { + java.lang.Object ref = code_; + 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(); + code_ = s; + return s; + } + } + + /** + * + * + *
+   * Required. JavaScript code that contains a function `function_name` with the
+   * below signature:
+   *
+   * ```
+   *   /**
+   *   * Transforms a Pub/Sub message.
+   *
+   *   * @return {(Object<string, (string | Object<string, string>)>|null)} - To
+   *   * filter a message, return `null`. To transform a message return a map
+   *   * with the following keys:
+   *   *   - (required) 'data' : {string}
+   *   *   - (optional) 'attributes' : {Object<string, string>}
+   *   * Returning empty `attributes` will remove all attributes from the
+   *   * message.
+   *   *
+   *   * @param  {(Object<string, (string | Object<string, string>)>} Pub/Sub
+   *   * message. Keys:
+   *   *   - (required) 'data' : {string}
+   *   *   - (required) 'attributes' : {Object<string, string>}
+   *   *
+   *   * @param  {Object<string, any>} metadata - Pub/Sub message metadata.
+   *   * Keys:
+   *   *   - (optional) 'message_id'  : {string}
+   *   *   - (optional) 'publish_time': {string} YYYY-MM-DDTHH:MM:SSZ format
+   *   *   - (optional) 'ordering_key': {string}
+   *   */
+   *
+   *   function <function_name>(message, metadata) {
+   *   }
+   * ```
+   * 
+ * + * string code = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for code. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCodeBytes() { + java.lang.Object ref = code_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + code_ = 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(functionName_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, functionName_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(code_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, code_); + } + 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(functionName_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, functionName_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(code_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, code_); + } + 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.pubsub.v1.JavaScriptUDF)) { + return super.equals(obj); + } + com.google.pubsub.v1.JavaScriptUDF other = (com.google.pubsub.v1.JavaScriptUDF) obj; + + if (!getFunctionName().equals(other.getFunctionName())) return false; + if (!getCode().equals(other.getCode())) 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) + FUNCTION_NAME_FIELD_NUMBER; + hash = (53 * hash) + getFunctionName().hashCode(); + hash = (37 * hash) + CODE_FIELD_NUMBER; + hash = (53 * hash) + getCode().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.JavaScriptUDF parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.JavaScriptUDF parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.JavaScriptUDF parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.JavaScriptUDF 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.pubsub.v1.JavaScriptUDF parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.JavaScriptUDF parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.JavaScriptUDF parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.JavaScriptUDF 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.pubsub.v1.JavaScriptUDF parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.JavaScriptUDF 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.pubsub.v1.JavaScriptUDF parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.JavaScriptUDF 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.pubsub.v1.JavaScriptUDF 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; + } + + /** + * + * + *
+   * User-defined JavaScript function that can transform or filter a Pub/Sub
+   * message.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.JavaScriptUDF} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.JavaScriptUDF) + com.google.pubsub.v1.JavaScriptUDFOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_JavaScriptUDF_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_JavaScriptUDF_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.JavaScriptUDF.class, + com.google.pubsub.v1.JavaScriptUDF.Builder.class); + } + + // Construct using com.google.pubsub.v1.JavaScriptUDF.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + functionName_ = ""; + code_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_JavaScriptUDF_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.JavaScriptUDF getDefaultInstanceForType() { + return com.google.pubsub.v1.JavaScriptUDF.getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.JavaScriptUDF build() { + com.google.pubsub.v1.JavaScriptUDF result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.JavaScriptUDF buildPartial() { + com.google.pubsub.v1.JavaScriptUDF result = new com.google.pubsub.v1.JavaScriptUDF(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.pubsub.v1.JavaScriptUDF result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.functionName_ = functionName_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.code_ = code_; + } + } + + @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.pubsub.v1.JavaScriptUDF) { + return mergeFrom((com.google.pubsub.v1.JavaScriptUDF) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.pubsub.v1.JavaScriptUDF other) { + if (other == com.google.pubsub.v1.JavaScriptUDF.getDefaultInstance()) return this; + if (!other.getFunctionName().isEmpty()) { + functionName_ = other.functionName_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getCode().isEmpty()) { + code_ = other.code_; + 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: + { + functionName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + code_ = 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 functionName_ = ""; + + /** + * + * + *
+     * Required. Name of the JavasScript function that should applied to Pub/Sub
+     * messages.
+     * 
+ * + * string function_name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The functionName. + */ + public java.lang.String getFunctionName() { + java.lang.Object ref = functionName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + functionName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Required. Name of the JavasScript function that should applied to Pub/Sub
+     * messages.
+     * 
+ * + * string function_name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for functionName. + */ + public com.google.protobuf.ByteString getFunctionNameBytes() { + java.lang.Object ref = functionName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + functionName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Required. Name of the JavasScript function that should applied to Pub/Sub
+     * messages.
+     * 
+ * + * string function_name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The functionName to set. + * @return This builder for chaining. + */ + public Builder setFunctionName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + functionName_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. Name of the JavasScript function that should applied to Pub/Sub
+     * messages.
+     * 
+ * + * string function_name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearFunctionName() { + functionName_ = getDefaultInstance().getFunctionName(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. Name of the JavasScript function that should applied to Pub/Sub
+     * messages.
+     * 
+ * + * string function_name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for functionName to set. + * @return This builder for chaining. + */ + public Builder setFunctionNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + functionName_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object code_ = ""; + + /** + * + * + *
+     * Required. JavaScript code that contains a function `function_name` with the
+     * below signature:
+     *
+     * ```
+     *   /**
+     *   * Transforms a Pub/Sub message.
+     *
+     *   * @return {(Object<string, (string | Object<string, string>)>|null)} - To
+     *   * filter a message, return `null`. To transform a message return a map
+     *   * with the following keys:
+     *   *   - (required) 'data' : {string}
+     *   *   - (optional) 'attributes' : {Object<string, string>}
+     *   * Returning empty `attributes` will remove all attributes from the
+     *   * message.
+     *   *
+     *   * @param  {(Object<string, (string | Object<string, string>)>} Pub/Sub
+     *   * message. Keys:
+     *   *   - (required) 'data' : {string}
+     *   *   - (required) 'attributes' : {Object<string, string>}
+     *   *
+     *   * @param  {Object<string, any>} metadata - Pub/Sub message metadata.
+     *   * Keys:
+     *   *   - (optional) 'message_id'  : {string}
+     *   *   - (optional) 'publish_time': {string} YYYY-MM-DDTHH:MM:SSZ format
+     *   *   - (optional) 'ordering_key': {string}
+     *   */
+     *
+     *   function <function_name>(message, metadata) {
+     *   }
+     * ```
+     * 
+ * + * string code = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The code. + */ + public java.lang.String getCode() { + java.lang.Object ref = code_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + code_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Required. JavaScript code that contains a function `function_name` with the
+     * below signature:
+     *
+     * ```
+     *   /**
+     *   * Transforms a Pub/Sub message.
+     *
+     *   * @return {(Object<string, (string | Object<string, string>)>|null)} - To
+     *   * filter a message, return `null`. To transform a message return a map
+     *   * with the following keys:
+     *   *   - (required) 'data' : {string}
+     *   *   - (optional) 'attributes' : {Object<string, string>}
+     *   * Returning empty `attributes` will remove all attributes from the
+     *   * message.
+     *   *
+     *   * @param  {(Object<string, (string | Object<string, string>)>} Pub/Sub
+     *   * message. Keys:
+     *   *   - (required) 'data' : {string}
+     *   *   - (required) 'attributes' : {Object<string, string>}
+     *   *
+     *   * @param  {Object<string, any>} metadata - Pub/Sub message metadata.
+     *   * Keys:
+     *   *   - (optional) 'message_id'  : {string}
+     *   *   - (optional) 'publish_time': {string} YYYY-MM-DDTHH:MM:SSZ format
+     *   *   - (optional) 'ordering_key': {string}
+     *   */
+     *
+     *   function <function_name>(message, metadata) {
+     *   }
+     * ```
+     * 
+ * + * string code = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for code. + */ + public com.google.protobuf.ByteString getCodeBytes() { + java.lang.Object ref = code_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + code_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Required. JavaScript code that contains a function `function_name` with the
+     * below signature:
+     *
+     * ```
+     *   /**
+     *   * Transforms a Pub/Sub message.
+     *
+     *   * @return {(Object<string, (string | Object<string, string>)>|null)} - To
+     *   * filter a message, return `null`. To transform a message return a map
+     *   * with the following keys:
+     *   *   - (required) 'data' : {string}
+     *   *   - (optional) 'attributes' : {Object<string, string>}
+     *   * Returning empty `attributes` will remove all attributes from the
+     *   * message.
+     *   *
+     *   * @param  {(Object<string, (string | Object<string, string>)>} Pub/Sub
+     *   * message. Keys:
+     *   *   - (required) 'data' : {string}
+     *   *   - (required) 'attributes' : {Object<string, string>}
+     *   *
+     *   * @param  {Object<string, any>} metadata - Pub/Sub message metadata.
+     *   * Keys:
+     *   *   - (optional) 'message_id'  : {string}
+     *   *   - (optional) 'publish_time': {string} YYYY-MM-DDTHH:MM:SSZ format
+     *   *   - (optional) 'ordering_key': {string}
+     *   */
+     *
+     *   function <function_name>(message, metadata) {
+     *   }
+     * ```
+     * 
+ * + * string code = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The code to set. + * @return This builder for chaining. + */ + public Builder setCode(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + code_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. JavaScript code that contains a function `function_name` with the
+     * below signature:
+     *
+     * ```
+     *   /**
+     *   * Transforms a Pub/Sub message.
+     *
+     *   * @return {(Object<string, (string | Object<string, string>)>|null)} - To
+     *   * filter a message, return `null`. To transform a message return a map
+     *   * with the following keys:
+     *   *   - (required) 'data' : {string}
+     *   *   - (optional) 'attributes' : {Object<string, string>}
+     *   * Returning empty `attributes` will remove all attributes from the
+     *   * message.
+     *   *
+     *   * @param  {(Object<string, (string | Object<string, string>)>} Pub/Sub
+     *   * message. Keys:
+     *   *   - (required) 'data' : {string}
+     *   *   - (required) 'attributes' : {Object<string, string>}
+     *   *
+     *   * @param  {Object<string, any>} metadata - Pub/Sub message metadata.
+     *   * Keys:
+     *   *   - (optional) 'message_id'  : {string}
+     *   *   - (optional) 'publish_time': {string} YYYY-MM-DDTHH:MM:SSZ format
+     *   *   - (optional) 'ordering_key': {string}
+     *   */
+     *
+     *   function <function_name>(message, metadata) {
+     *   }
+     * ```
+     * 
+ * + * string code = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearCode() { + code_ = getDefaultInstance().getCode(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. JavaScript code that contains a function `function_name` with the
+     * below signature:
+     *
+     * ```
+     *   /**
+     *   * Transforms a Pub/Sub message.
+     *
+     *   * @return {(Object<string, (string | Object<string, string>)>|null)} - To
+     *   * filter a message, return `null`. To transform a message return a map
+     *   * with the following keys:
+     *   *   - (required) 'data' : {string}
+     *   *   - (optional) 'attributes' : {Object<string, string>}
+     *   * Returning empty `attributes` will remove all attributes from the
+     *   * message.
+     *   *
+     *   * @param  {(Object<string, (string | Object<string, string>)>} Pub/Sub
+     *   * message. Keys:
+     *   *   - (required) 'data' : {string}
+     *   *   - (required) 'attributes' : {Object<string, string>}
+     *   *
+     *   * @param  {Object<string, any>} metadata - Pub/Sub message metadata.
+     *   * Keys:
+     *   *   - (optional) 'message_id'  : {string}
+     *   *   - (optional) 'publish_time': {string} YYYY-MM-DDTHH:MM:SSZ format
+     *   *   - (optional) 'ordering_key': {string}
+     *   */
+     *
+     *   function <function_name>(message, metadata) {
+     *   }
+     * ```
+     * 
+ * + * string code = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for code to set. + * @return This builder for chaining. + */ + public Builder setCodeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + code_ = 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.pubsub.v1.JavaScriptUDF) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.JavaScriptUDF) + private static final com.google.pubsub.v1.JavaScriptUDF DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.pubsub.v1.JavaScriptUDF(); + } + + public static com.google.pubsub.v1.JavaScriptUDF getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public JavaScriptUDF 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.pubsub.v1.JavaScriptUDF getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/JavaScriptUDFOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/JavaScriptUDFOrBuilder.java new file mode 100644 index 000000000..c59c0fc1f --- /dev/null +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/JavaScriptUDFOrBuilder.java @@ -0,0 +1,138 @@ +/* + * 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/pubsub/v1/pubsub.proto + +// Protobuf Java Version: 3.25.8 +package com.google.pubsub.v1; + +public interface JavaScriptUDFOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.JavaScriptUDF) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Required. Name of the JavasScript function that should applied to Pub/Sub
+   * messages.
+   * 
+ * + * string function_name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The functionName. + */ + java.lang.String getFunctionName(); + + /** + * + * + *
+   * Required. Name of the JavasScript function that should applied to Pub/Sub
+   * messages.
+   * 
+ * + * string function_name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for functionName. + */ + com.google.protobuf.ByteString getFunctionNameBytes(); + + /** + * + * + *
+   * Required. JavaScript code that contains a function `function_name` with the
+   * below signature:
+   *
+   * ```
+   *   /**
+   *   * Transforms a Pub/Sub message.
+   *
+   *   * @return {(Object<string, (string | Object<string, string>)>|null)} - To
+   *   * filter a message, return `null`. To transform a message return a map
+   *   * with the following keys:
+   *   *   - (required) 'data' : {string}
+   *   *   - (optional) 'attributes' : {Object<string, string>}
+   *   * Returning empty `attributes` will remove all attributes from the
+   *   * message.
+   *   *
+   *   * @param  {(Object<string, (string | Object<string, string>)>} Pub/Sub
+   *   * message. Keys:
+   *   *   - (required) 'data' : {string}
+   *   *   - (required) 'attributes' : {Object<string, string>}
+   *   *
+   *   * @param  {Object<string, any>} metadata - Pub/Sub message metadata.
+   *   * Keys:
+   *   *   - (optional) 'message_id'  : {string}
+   *   *   - (optional) 'publish_time': {string} YYYY-MM-DDTHH:MM:SSZ format
+   *   *   - (optional) 'ordering_key': {string}
+   *   */
+   *
+   *   function <function_name>(message, metadata) {
+   *   }
+   * ```
+   * 
+ * + * string code = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The code. + */ + java.lang.String getCode(); + + /** + * + * + *
+   * Required. JavaScript code that contains a function `function_name` with the
+   * below signature:
+   *
+   * ```
+   *   /**
+   *   * Transforms a Pub/Sub message.
+   *
+   *   * @return {(Object<string, (string | Object<string, string>)>|null)} - To
+   *   * filter a message, return `null`. To transform a message return a map
+   *   * with the following keys:
+   *   *   - (required) 'data' : {string}
+   *   *   - (optional) 'attributes' : {Object<string, string>}
+   *   * Returning empty `attributes` will remove all attributes from the
+   *   * message.
+   *   *
+   *   * @param  {(Object<string, (string | Object<string, string>)>} Pub/Sub
+   *   * message. Keys:
+   *   *   - (required) 'data' : {string}
+   *   *   - (required) 'attributes' : {Object<string, string>}
+   *   *
+   *   * @param  {Object<string, any>} metadata - Pub/Sub message metadata.
+   *   * Keys:
+   *   *   - (optional) 'message_id'  : {string}
+   *   *   - (optional) 'publish_time': {string} YYYY-MM-DDTHH:MM:SSZ format
+   *   *   - (optional) 'ordering_key': {string}
+   *   */
+   *
+   *   function <function_name>(message, metadata) {
+   *   }
+   * ```
+   * 
+ * + * string code = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for code. + */ + com.google.protobuf.ByteString getCodeBytes(); +} diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemaRevisionsRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemaRevisionsRequest.java index cba091850..cc48d7020 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemaRevisionsRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemaRevisionsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ListSchemaRevisionsRequest extends com.google.protobuf.Genera // @@protoc_insertion_point(message_implements:google.pubsub.v1.ListSchemaRevisionsRequest) ListSchemaRevisionsRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use ListSchemaRevisionsRequest.newBuilder() to construct. private ListSchemaRevisionsRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -68,6 +70,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object name_ = ""; + /** * * @@ -93,6 +96,7 @@ public java.lang.String getName() { return s; } } + /** * * @@ -121,6 +125,7 @@ public com.google.protobuf.ByteString getNameBytes() { public static final int VIEW_FIELD_NUMBER = 2; private int view_ = 0; + /** * * @@ -138,6 +143,7 @@ public com.google.protobuf.ByteString getNameBytes() { public int getViewValue() { return view_; } + /** * * @@ -159,6 +165,7 @@ public com.google.pubsub.v1.SchemaView getView() { public static final int PAGE_SIZE_FIELD_NUMBER = 3; private int pageSize_ = 0; + /** * * @@ -179,6 +186,7 @@ public int getPageSize() { @SuppressWarnings("serial") private volatile java.lang.Object pageToken_ = ""; + /** * * @@ -203,6 +211,7 @@ public java.lang.String getPageToken() { return s; } } + /** * * @@ -414,6 +423,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -639,6 +649,7 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object name_ = ""; + /** * * @@ -663,6 +674,7 @@ public java.lang.String getName() { return (java.lang.String) ref; } } + /** * * @@ -687,6 +699,7 @@ public com.google.protobuf.ByteString getNameBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -710,6 +723,7 @@ public Builder setName(java.lang.String value) { onChanged(); return this; } + /** * * @@ -729,6 +743,7 @@ public Builder clearName() { onChanged(); return this; } + /** * * @@ -755,6 +770,7 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) { } private int view_ = 0; + /** * * @@ -772,6 +788,7 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) { public int getViewValue() { return view_; } + /** * * @@ -792,6 +809,7 @@ public Builder setViewValue(int value) { onChanged(); return this; } + /** * * @@ -810,6 +828,7 @@ public com.google.pubsub.v1.SchemaView getView() { com.google.pubsub.v1.SchemaView result = com.google.pubsub.v1.SchemaView.forNumber(view_); return result == null ? com.google.pubsub.v1.SchemaView.UNRECOGNIZED : result; } + /** * * @@ -833,6 +852,7 @@ public Builder setView(com.google.pubsub.v1.SchemaView value) { onChanged(); return this; } + /** * * @@ -854,6 +874,7 @@ public Builder clearView() { } private int pageSize_; + /** * * @@ -869,6 +890,7 @@ public Builder clearView() { public int getPageSize() { return pageSize_; } + /** * * @@ -888,6 +910,7 @@ public Builder setPageSize(int value) { onChanged(); return this; } + /** * * @@ -907,6 +930,7 @@ public Builder clearPageSize() { } private java.lang.Object pageToken_ = ""; + /** * * @@ -930,6 +954,7 @@ public java.lang.String getPageToken() { return (java.lang.String) ref; } } + /** * * @@ -953,6 +978,7 @@ public com.google.protobuf.ByteString getPageTokenBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -975,6 +1001,7 @@ public Builder setPageToken(java.lang.String value) { onChanged(); return this; } + /** * * @@ -993,6 +1020,7 @@ public Builder clearPageToken() { onChanged(); return this; } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemaRevisionsRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemaRevisionsRequestOrBuilder.java index 13e6188f6..272eff598 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemaRevisionsRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemaRevisionsRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ListSchemaRevisionsRequestOrBuilder @@ -37,6 +38,7 @@ public interface ListSchemaRevisionsRequestOrBuilder * @return The name. */ java.lang.String getName(); + /** * * @@ -66,6 +68,7 @@ public interface ListSchemaRevisionsRequestOrBuilder * @return The enum numeric value on the wire for view. */ int getViewValue(); + /** * * @@ -107,6 +110,7 @@ public interface ListSchemaRevisionsRequestOrBuilder * @return The pageToken. */ java.lang.String getPageToken(); + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemaRevisionsResponse.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemaRevisionsResponse.java index da0e793f1..e7cf1c68b 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemaRevisionsResponse.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemaRevisionsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ListSchemaRevisionsResponse extends com.google.protobuf.Gener // @@protoc_insertion_point(message_implements:google.pubsub.v1.ListSchemaRevisionsResponse) ListSchemaRevisionsResponseOrBuilder { private static final long serialVersionUID = 0L; + // Use ListSchemaRevisionsResponse.newBuilder() to construct. private ListSchemaRevisionsResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -67,6 +69,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private java.util.List schemas_; + /** * * @@ -80,6 +83,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { public java.util.List getSchemasList() { return schemas_; } + /** * * @@ -93,6 +97,7 @@ public java.util.List getSchemasList() { public java.util.List getSchemasOrBuilderList() { return schemas_; } + /** * * @@ -106,6 +111,7 @@ public java.util.List getSchemas public int getSchemasCount() { return schemas_.size(); } + /** * * @@ -119,6 +125,7 @@ public int getSchemasCount() { public com.google.pubsub.v1.Schema getSchemas(int index) { return schemas_.get(index); } + /** * * @@ -137,6 +144,7 @@ public com.google.pubsub.v1.SchemaOrBuilder getSchemasOrBuilder(int index) { @SuppressWarnings("serial") private volatile java.lang.Object nextPageToken_ = ""; + /** * * @@ -161,6 +169,7 @@ public java.lang.String getNextPageToken() { return s; } } + /** * * @@ -356,6 +365,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -631,6 +641,7 @@ public java.util.List getSchemasList() { return schemasBuilder_.getMessageList(); } } + /** * * @@ -647,6 +658,7 @@ public int getSchemasCount() { return schemasBuilder_.getCount(); } } + /** * * @@ -663,6 +675,7 @@ public com.google.pubsub.v1.Schema getSchemas(int index) { return schemasBuilder_.getMessage(index); } } + /** * * @@ -685,6 +698,7 @@ public Builder setSchemas(int index, com.google.pubsub.v1.Schema value) { } return this; } + /** * * @@ -704,6 +718,7 @@ public Builder setSchemas(int index, com.google.pubsub.v1.Schema.Builder builder } return this; } + /** * * @@ -726,6 +741,7 @@ public Builder addSchemas(com.google.pubsub.v1.Schema value) { } return this; } + /** * * @@ -748,6 +764,7 @@ public Builder addSchemas(int index, com.google.pubsub.v1.Schema value) { } return this; } + /** * * @@ -767,6 +784,7 @@ public Builder addSchemas(com.google.pubsub.v1.Schema.Builder builderForValue) { } return this; } + /** * * @@ -786,6 +804,7 @@ public Builder addSchemas(int index, com.google.pubsub.v1.Schema.Builder builder } return this; } + /** * * @@ -805,6 +824,7 @@ public Builder addAllSchemas(java.lang.Iterable getSchemasBuilderList } private java.lang.Object nextPageToken_ = ""; + /** * * @@ -967,6 +995,7 @@ public java.lang.String getNextPageToken() { return (java.lang.String) ref; } } + /** * * @@ -990,6 +1019,7 @@ public com.google.protobuf.ByteString getNextPageTokenBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -1012,6 +1042,7 @@ public Builder setNextPageToken(java.lang.String value) { onChanged(); return this; } + /** * * @@ -1030,6 +1061,7 @@ public Builder clearNextPageToken() { onChanged(); return this; } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemaRevisionsResponseOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemaRevisionsResponseOrBuilder.java index 49517becb..b899094e8 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemaRevisionsResponseOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemaRevisionsResponseOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ListSchemaRevisionsResponseOrBuilder @@ -33,6 +34,7 @@ public interface ListSchemaRevisionsResponseOrBuilder * repeated .google.pubsub.v1.Schema schemas = 1; */ java.util.List getSchemasList(); + /** * * @@ -43,6 +45,7 @@ public interface ListSchemaRevisionsResponseOrBuilder * repeated .google.pubsub.v1.Schema schemas = 1; */ com.google.pubsub.v1.Schema getSchemas(int index); + /** * * @@ -53,6 +56,7 @@ public interface ListSchemaRevisionsResponseOrBuilder * repeated .google.pubsub.v1.Schema schemas = 1; */ int getSchemasCount(); + /** * * @@ -63,6 +67,7 @@ public interface ListSchemaRevisionsResponseOrBuilder * repeated .google.pubsub.v1.Schema schemas = 1; */ java.util.List getSchemasOrBuilderList(); + /** * * @@ -87,6 +92,7 @@ public interface ListSchemaRevisionsResponseOrBuilder * @return The nextPageToken. */ java.lang.String getNextPageToken(); + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemasRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemasRequest.java index 11cb59d07..d58779ce2 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemasRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemasRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ListSchemasRequest extends com.google.protobuf.GeneratedMessa // @@protoc_insertion_point(message_implements:google.pubsub.v1.ListSchemasRequest) ListSchemasRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use ListSchemasRequest.newBuilder() to construct. private ListSchemasRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -68,6 +70,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object parent_ = ""; + /** * * @@ -94,6 +97,7 @@ public java.lang.String getParent() { return s; } } + /** * * @@ -123,6 +127,7 @@ public com.google.protobuf.ByteString getParentBytes() { public static final int VIEW_FIELD_NUMBER = 2; private int view_ = 0; + /** * * @@ -140,6 +145,7 @@ public com.google.protobuf.ByteString getParentBytes() { public int getViewValue() { return view_; } + /** * * @@ -161,6 +167,7 @@ public com.google.pubsub.v1.SchemaView getView() { public static final int PAGE_SIZE_FIELD_NUMBER = 3; private int pageSize_ = 0; + /** * * @@ -181,6 +188,7 @@ public int getPageSize() { @SuppressWarnings("serial") private volatile java.lang.Object pageToken_ = ""; + /** * * @@ -206,6 +214,7 @@ public java.lang.String getPageToken() { return s; } } + /** * * @@ -417,6 +426,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -641,6 +651,7 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object parent_ = ""; + /** * * @@ -666,6 +677,7 @@ public java.lang.String getParent() { return (java.lang.String) ref; } } + /** * * @@ -691,6 +703,7 @@ public com.google.protobuf.ByteString getParentBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -715,6 +728,7 @@ public Builder setParent(java.lang.String value) { onChanged(); return this; } + /** * * @@ -735,6 +749,7 @@ public Builder clearParent() { onChanged(); return this; } + /** * * @@ -762,6 +777,7 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) { } private int view_ = 0; + /** * * @@ -779,6 +795,7 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) { public int getViewValue() { return view_; } + /** * * @@ -799,6 +816,7 @@ public Builder setViewValue(int value) { onChanged(); return this; } + /** * * @@ -817,6 +835,7 @@ public com.google.pubsub.v1.SchemaView getView() { com.google.pubsub.v1.SchemaView result = com.google.pubsub.v1.SchemaView.forNumber(view_); return result == null ? com.google.pubsub.v1.SchemaView.UNRECOGNIZED : result; } + /** * * @@ -840,6 +859,7 @@ public Builder setView(com.google.pubsub.v1.SchemaView value) { onChanged(); return this; } + /** * * @@ -861,6 +881,7 @@ public Builder clearView() { } private int pageSize_; + /** * * @@ -876,6 +897,7 @@ public Builder clearView() { public int getPageSize() { return pageSize_; } + /** * * @@ -895,6 +917,7 @@ public Builder setPageSize(int value) { onChanged(); return this; } + /** * * @@ -914,6 +937,7 @@ public Builder clearPageSize() { } private java.lang.Object pageToken_ = ""; + /** * * @@ -938,6 +962,7 @@ public java.lang.String getPageToken() { return (java.lang.String) ref; } } + /** * * @@ -962,6 +987,7 @@ public com.google.protobuf.ByteString getPageTokenBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -985,6 +1011,7 @@ public Builder setPageToken(java.lang.String value) { onChanged(); return this; } + /** * * @@ -1004,6 +1031,7 @@ public Builder clearPageToken() { onChanged(); return this; } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemasRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemasRequestOrBuilder.java index 9c69b0a4b..3a55412f2 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemasRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemasRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ListSchemasRequestOrBuilder @@ -38,6 +39,7 @@ public interface ListSchemasRequestOrBuilder * @return The parent. */ java.lang.String getParent(); + /** * * @@ -68,6 +70,7 @@ public interface ListSchemasRequestOrBuilder * @return The enum numeric value on the wire for view. */ int getViewValue(); + /** * * @@ -110,6 +113,7 @@ public interface ListSchemasRequestOrBuilder * @return The pageToken. */ java.lang.String getPageToken(); + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemasResponse.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemasResponse.java index 969592443..fbf04d02b 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemasResponse.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemasResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ListSchemasResponse extends com.google.protobuf.GeneratedMess // @@protoc_insertion_point(message_implements:google.pubsub.v1.ListSchemasResponse) ListSchemasResponseOrBuilder { private static final long serialVersionUID = 0L; + // Use ListSchemasResponse.newBuilder() to construct. private ListSchemasResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -67,6 +69,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private java.util.List schemas_; + /** * * @@ -80,6 +83,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { public java.util.List getSchemasList() { return schemas_; } + /** * * @@ -93,6 +97,7 @@ public java.util.List getSchemasList() { public java.util.List getSchemasOrBuilderList() { return schemas_; } + /** * * @@ -106,6 +111,7 @@ public java.util.List getSchemas public int getSchemasCount() { return schemas_.size(); } + /** * * @@ -119,6 +125,7 @@ public int getSchemasCount() { public com.google.pubsub.v1.Schema getSchemas(int index) { return schemas_.get(index); } + /** * * @@ -137,6 +144,7 @@ public com.google.pubsub.v1.SchemaOrBuilder getSchemasOrBuilder(int index) { @SuppressWarnings("serial") private volatile java.lang.Object nextPageToken_ = ""; + /** * * @@ -161,6 +169,7 @@ public java.lang.String getNextPageToken() { return s; } } + /** * * @@ -355,6 +364,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -628,6 +638,7 @@ public java.util.List getSchemasList() { return schemasBuilder_.getMessageList(); } } + /** * * @@ -644,6 +655,7 @@ public int getSchemasCount() { return schemasBuilder_.getCount(); } } + /** * * @@ -660,6 +672,7 @@ public com.google.pubsub.v1.Schema getSchemas(int index) { return schemasBuilder_.getMessage(index); } } + /** * * @@ -682,6 +695,7 @@ public Builder setSchemas(int index, com.google.pubsub.v1.Schema value) { } return this; } + /** * * @@ -701,6 +715,7 @@ public Builder setSchemas(int index, com.google.pubsub.v1.Schema.Builder builder } return this; } + /** * * @@ -723,6 +738,7 @@ public Builder addSchemas(com.google.pubsub.v1.Schema value) { } return this; } + /** * * @@ -745,6 +761,7 @@ public Builder addSchemas(int index, com.google.pubsub.v1.Schema value) { } return this; } + /** * * @@ -764,6 +781,7 @@ public Builder addSchemas(com.google.pubsub.v1.Schema.Builder builderForValue) { } return this; } + /** * * @@ -783,6 +801,7 @@ public Builder addSchemas(int index, com.google.pubsub.v1.Schema.Builder builder } return this; } + /** * * @@ -802,6 +821,7 @@ public Builder addAllSchemas(java.lang.Iterable getSchemasBuilderList } private java.lang.Object nextPageToken_ = ""; + /** * * @@ -964,6 +992,7 @@ public java.lang.String getNextPageToken() { return (java.lang.String) ref; } } + /** * * @@ -987,6 +1016,7 @@ public com.google.protobuf.ByteString getNextPageTokenBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -1009,6 +1039,7 @@ public Builder setNextPageToken(java.lang.String value) { onChanged(); return this; } + /** * * @@ -1027,6 +1058,7 @@ public Builder clearNextPageToken() { onChanged(); return this; } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemasResponseOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemasResponseOrBuilder.java index ca5c661c1..0ccc17195 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemasResponseOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSchemasResponseOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ListSchemasResponseOrBuilder @@ -33,6 +34,7 @@ public interface ListSchemasResponseOrBuilder * repeated .google.pubsub.v1.Schema schemas = 1; */ java.util.List getSchemasList(); + /** * * @@ -43,6 +45,7 @@ public interface ListSchemasResponseOrBuilder * repeated .google.pubsub.v1.Schema schemas = 1; */ com.google.pubsub.v1.Schema getSchemas(int index); + /** * * @@ -53,6 +56,7 @@ public interface ListSchemasResponseOrBuilder * repeated .google.pubsub.v1.Schema schemas = 1; */ int getSchemasCount(); + /** * * @@ -63,6 +67,7 @@ public interface ListSchemasResponseOrBuilder * repeated .google.pubsub.v1.Schema schemas = 1; */ java.util.List getSchemasOrBuilderList(); + /** * * @@ -87,6 +92,7 @@ public interface ListSchemasResponseOrBuilder * @return The nextPageToken. */ java.lang.String getNextPageToken(); + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSnapshotsRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSnapshotsRequest.java index d2b19ce97..869e380db 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSnapshotsRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSnapshotsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ListSnapshotsRequest extends com.google.protobuf.GeneratedMes // @@protoc_insertion_point(message_implements:google.pubsub.v1.ListSnapshotsRequest) ListSnapshotsRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use ListSnapshotsRequest.newBuilder() to construct. private ListSnapshotsRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -67,16 +69,17 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object project_ = ""; + /** * * *
-   * Required. The name of the project in which to list snapshots.
+   * Required. Identifier. The name of the project in which to list snapshots.
    * Format is `projects/{project-id}`.
    * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The project. @@ -93,16 +96,17 @@ public java.lang.String getProject() { return s; } } + /** * * *
-   * Required. The name of the project in which to list snapshots.
+   * Required. Identifier. The name of the project in which to list snapshots.
    * Format is `projects/{project-id}`.
    * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for project. @@ -122,14 +126,15 @@ public com.google.protobuf.ByteString getProjectBytes() { public static final int PAGE_SIZE_FIELD_NUMBER = 2; private int pageSize_ = 0; + /** * * *
-   * Maximum number of snapshots to return.
+   * Optional. Maximum number of snapshots to return.
    * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageSize. */ @@ -142,16 +147,17 @@ public int getPageSize() { @SuppressWarnings("serial") private volatile java.lang.Object pageToken_ = ""; + /** * * *
-   * The value returned by the last `ListSnapshotsResponse`; indicates that this
-   * is a continuation of a prior `ListSnapshots` call, and that the system
-   * should return the next page of data.
+   * Optional. The value returned by the last `ListSnapshotsResponse`; indicates
+   * that this is a continuation of a prior `ListSnapshots` call, and that the
+   * system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageToken. */ @@ -167,16 +173,17 @@ public java.lang.String getPageToken() { return s; } } + /** * * *
-   * The value returned by the last `ListSnapshotsResponse`; indicates that this
-   * is a continuation of a prior `ListSnapshots` call, and that the system
-   * should return the next page of data.
+   * Optional. The value returned by the last `ListSnapshotsResponse`; indicates
+   * that this is a continuation of a prior `ListSnapshots` call, and that the
+   * system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for pageToken. */ @@ -370,6 +377,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -581,16 +589,17 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object project_ = ""; + /** * * *
-     * Required. The name of the project in which to list snapshots.
+     * Required. Identifier. The name of the project in which to list snapshots.
      * Format is `projects/{project-id}`.
      * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The project. @@ -606,16 +615,17 @@ public java.lang.String getProject() { return (java.lang.String) ref; } } + /** * * *
-     * Required. The name of the project in which to list snapshots.
+     * Required. Identifier. The name of the project in which to list snapshots.
      * Format is `projects/{project-id}`.
      * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for project. @@ -631,16 +641,17 @@ public com.google.protobuf.ByteString getProjectBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * Required. The name of the project in which to list snapshots.
+     * Required. Identifier. The name of the project in which to list snapshots.
      * Format is `projects/{project-id}`.
      * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The project to set. @@ -655,16 +666,17 @@ public Builder setProject(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * Required. The name of the project in which to list snapshots.
+     * Required. Identifier. The name of the project in which to list snapshots.
      * Format is `projects/{project-id}`.
      * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return This builder for chaining. @@ -675,16 +687,17 @@ public Builder clearProject() { onChanged(); return this; } + /** * * *
-     * Required. The name of the project in which to list snapshots.
+     * Required. Identifier. The name of the project in which to list snapshots.
      * Format is `projects/{project-id}`.
      * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The bytes for project to set. @@ -702,14 +715,15 @@ public Builder setProjectBytes(com.google.protobuf.ByteString value) { } private int pageSize_; + /** * * *
-     * Maximum number of snapshots to return.
+     * Optional. Maximum number of snapshots to return.
      * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageSize. */ @@ -717,14 +731,15 @@ public Builder setProjectBytes(com.google.protobuf.ByteString value) { public int getPageSize() { return pageSize_; } + /** * * *
-     * Maximum number of snapshots to return.
+     * Optional. Maximum number of snapshots to return.
      * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The pageSize to set. * @return This builder for chaining. @@ -736,14 +751,15 @@ public Builder setPageSize(int value) { onChanged(); return this; } + /** * * *
-     * Maximum number of snapshots to return.
+     * Optional. Maximum number of snapshots to return.
      * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -755,16 +771,17 @@ public Builder clearPageSize() { } private java.lang.Object pageToken_ = ""; + /** * * *
-     * The value returned by the last `ListSnapshotsResponse`; indicates that this
-     * is a continuation of a prior `ListSnapshots` call, and that the system
-     * should return the next page of data.
+     * Optional. The value returned by the last `ListSnapshotsResponse`; indicates
+     * that this is a continuation of a prior `ListSnapshots` call, and that the
+     * system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageToken. */ @@ -779,16 +796,17 @@ public java.lang.String getPageToken() { return (java.lang.String) ref; } } + /** * * *
-     * The value returned by the last `ListSnapshotsResponse`; indicates that this
-     * is a continuation of a prior `ListSnapshots` call, and that the system
-     * should return the next page of data.
+     * Optional. The value returned by the last `ListSnapshotsResponse`; indicates
+     * that this is a continuation of a prior `ListSnapshots` call, and that the
+     * system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for pageToken. */ @@ -803,16 +821,17 @@ public com.google.protobuf.ByteString getPageTokenBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * The value returned by the last `ListSnapshotsResponse`; indicates that this
-     * is a continuation of a prior `ListSnapshots` call, and that the system
-     * should return the next page of data.
+     * Optional. The value returned by the last `ListSnapshotsResponse`; indicates
+     * that this is a continuation of a prior `ListSnapshots` call, and that the
+     * system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The pageToken to set. * @return This builder for chaining. @@ -826,16 +845,17 @@ public Builder setPageToken(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The value returned by the last `ListSnapshotsResponse`; indicates that this
-     * is a continuation of a prior `ListSnapshots` call, and that the system
-     * should return the next page of data.
+     * Optional. The value returned by the last `ListSnapshotsResponse`; indicates
+     * that this is a continuation of a prior `ListSnapshots` call, and that the
+     * system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -845,16 +865,17 @@ public Builder clearPageToken() { onChanged(); return this; } + /** * * *
-     * The value returned by the last `ListSnapshotsResponse`; indicates that this
-     * is a continuation of a prior `ListSnapshots` call, and that the system
-     * should return the next page of data.
+     * Optional. The value returned by the last `ListSnapshotsResponse`; indicates
+     * that this is a continuation of a prior `ListSnapshots` call, and that the
+     * system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for pageToken to set. * @return This builder for chaining. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSnapshotsRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSnapshotsRequestOrBuilder.java index 36487bebd..ee2ba020c 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSnapshotsRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSnapshotsRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ListSnapshotsRequestOrBuilder @@ -27,27 +28,28 @@ public interface ListSnapshotsRequestOrBuilder * * *
-   * Required. The name of the project in which to list snapshots.
+   * Required. Identifier. The name of the project in which to list snapshots.
    * Format is `projects/{project-id}`.
    * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The project. */ java.lang.String getProject(); + /** * * *
-   * Required. The name of the project in which to list snapshots.
+   * Required. Identifier. The name of the project in which to list snapshots.
    * Format is `projects/{project-id}`.
    * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for project. @@ -58,10 +60,10 @@ public interface ListSnapshotsRequestOrBuilder * * *
-   * Maximum number of snapshots to return.
+   * Optional. Maximum number of snapshots to return.
    * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageSize. */ @@ -71,26 +73,27 @@ public interface ListSnapshotsRequestOrBuilder * * *
-   * The value returned by the last `ListSnapshotsResponse`; indicates that this
-   * is a continuation of a prior `ListSnapshots` call, and that the system
-   * should return the next page of data.
+   * Optional. The value returned by the last `ListSnapshotsResponse`; indicates
+   * that this is a continuation of a prior `ListSnapshots` call, and that the
+   * system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageToken. */ java.lang.String getPageToken(); + /** * * *
-   * The value returned by the last `ListSnapshotsResponse`; indicates that this
-   * is a continuation of a prior `ListSnapshots` call, and that the system
-   * should return the next page of data.
+   * Optional. The value returned by the last `ListSnapshotsResponse`; indicates
+   * that this is a continuation of a prior `ListSnapshots` call, and that the
+   * system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for pageToken. */ diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSnapshotsResponse.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSnapshotsResponse.java index cc42bfb6c..30b4f8be5 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSnapshotsResponse.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSnapshotsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ListSnapshotsResponse extends com.google.protobuf.GeneratedMe // @@protoc_insertion_point(message_implements:google.pubsub.v1.ListSnapshotsResponse) ListSnapshotsResponseOrBuilder { private static final long serialVersionUID = 0L; + // Use ListSnapshotsResponse.newBuilder() to construct. private ListSnapshotsResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -67,67 +69,82 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private java.util.List snapshots_; + /** * * *
-   * The resulting snapshots.
+   * Optional. The resulting snapshots.
    * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public java.util.List getSnapshotsList() { return snapshots_; } + /** * * *
-   * The resulting snapshots.
+   * Optional. The resulting snapshots.
    * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public java.util.List getSnapshotsOrBuilderList() { return snapshots_; } + /** * * *
-   * The resulting snapshots.
+   * Optional. The resulting snapshots.
    * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public int getSnapshotsCount() { return snapshots_.size(); } + /** * * *
-   * The resulting snapshots.
+   * Optional. The resulting snapshots.
    * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.Snapshot getSnapshots(int index) { return snapshots_.get(index); } + /** * * *
-   * The resulting snapshots.
+   * Optional. The resulting snapshots.
    * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.SnapshotOrBuilder getSnapshotsOrBuilder(int index) { @@ -138,15 +155,17 @@ public com.google.pubsub.v1.SnapshotOrBuilder getSnapshotsOrBuilder(int index) { @SuppressWarnings("serial") private volatile java.lang.Object nextPageToken_ = ""; + /** * * *
-   * If not empty, indicates that there may be more snapshot that match the
-   * request; this value should be passed in a new `ListSnapshotsRequest`.
+   * Optional. If not empty, indicates that there may be more snapshot that
+   * match the request; this value should be passed in a new
+   * `ListSnapshotsRequest`.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The nextPageToken. */ @@ -162,15 +181,17 @@ public java.lang.String getNextPageToken() { return s; } } + /** * * *
-   * If not empty, indicates that there may be more snapshot that match the
-   * request; this value should be passed in a new `ListSnapshotsRequest`.
+   * Optional. If not empty, indicates that there may be more snapshot that
+   * match the request; this value should be passed in a new
+   * `ListSnapshotsRequest`.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for nextPageToken. */ @@ -357,6 +378,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -618,10 +640,12 @@ private void ensureSnapshotsIsMutable() { * * *
-     * The resulting snapshots.
+     * Optional. The resulting snapshots.
      * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public java.util.List getSnapshotsList() { if (snapshotsBuilder_ == null) { @@ -630,14 +654,17 @@ public java.util.List getSnapshotsList() { return snapshotsBuilder_.getMessageList(); } } + /** * * *
-     * The resulting snapshots.
+     * Optional. The resulting snapshots.
      * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public int getSnapshotsCount() { if (snapshotsBuilder_ == null) { @@ -646,14 +673,17 @@ public int getSnapshotsCount() { return snapshotsBuilder_.getCount(); } } + /** * * *
-     * The resulting snapshots.
+     * Optional. The resulting snapshots.
      * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.Snapshot getSnapshots(int index) { if (snapshotsBuilder_ == null) { @@ -662,14 +692,17 @@ public com.google.pubsub.v1.Snapshot getSnapshots(int index) { return snapshotsBuilder_.getMessage(index); } } + /** * * *
-     * The resulting snapshots.
+     * Optional. The resulting snapshots.
      * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setSnapshots(int index, com.google.pubsub.v1.Snapshot value) { if (snapshotsBuilder_ == null) { @@ -684,14 +717,17 @@ public Builder setSnapshots(int index, com.google.pubsub.v1.Snapshot value) { } return this; } + /** * * *
-     * The resulting snapshots.
+     * Optional. The resulting snapshots.
      * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setSnapshots(int index, com.google.pubsub.v1.Snapshot.Builder builderForValue) { if (snapshotsBuilder_ == null) { @@ -703,14 +739,17 @@ public Builder setSnapshots(int index, com.google.pubsub.v1.Snapshot.Builder bui } return this; } + /** * * *
-     * The resulting snapshots.
+     * Optional. The resulting snapshots.
      * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addSnapshots(com.google.pubsub.v1.Snapshot value) { if (snapshotsBuilder_ == null) { @@ -725,14 +764,17 @@ public Builder addSnapshots(com.google.pubsub.v1.Snapshot value) { } return this; } + /** * * *
-     * The resulting snapshots.
+     * Optional. The resulting snapshots.
      * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addSnapshots(int index, com.google.pubsub.v1.Snapshot value) { if (snapshotsBuilder_ == null) { @@ -747,14 +789,17 @@ public Builder addSnapshots(int index, com.google.pubsub.v1.Snapshot value) { } return this; } + /** * * *
-     * The resulting snapshots.
+     * Optional. The resulting snapshots.
      * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addSnapshots(com.google.pubsub.v1.Snapshot.Builder builderForValue) { if (snapshotsBuilder_ == null) { @@ -766,14 +811,17 @@ public Builder addSnapshots(com.google.pubsub.v1.Snapshot.Builder builderForValu } return this; } + /** * * *
-     * The resulting snapshots.
+     * Optional. The resulting snapshots.
      * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addSnapshots(int index, com.google.pubsub.v1.Snapshot.Builder builderForValue) { if (snapshotsBuilder_ == null) { @@ -785,14 +833,17 @@ public Builder addSnapshots(int index, com.google.pubsub.v1.Snapshot.Builder bui } return this; } + /** * * *
-     * The resulting snapshots.
+     * Optional. The resulting snapshots.
      * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addAllSnapshots( java.lang.Iterable values) { @@ -805,14 +856,17 @@ public Builder addAllSnapshots( } return this; } + /** * * *
-     * The resulting snapshots.
+     * Optional. The resulting snapshots.
      * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder clearSnapshots() { if (snapshotsBuilder_ == null) { @@ -824,14 +878,17 @@ public Builder clearSnapshots() { } return this; } + /** * * *
-     * The resulting snapshots.
+     * Optional. The resulting snapshots.
      * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder removeSnapshots(int index) { if (snapshotsBuilder_ == null) { @@ -843,26 +900,32 @@ public Builder removeSnapshots(int index) { } return this; } + /** * * *
-     * The resulting snapshots.
+     * Optional. The resulting snapshots.
      * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.Snapshot.Builder getSnapshotsBuilder(int index) { return getSnapshotsFieldBuilder().getBuilder(index); } + /** * * *
-     * The resulting snapshots.
+     * Optional. The resulting snapshots.
      * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.SnapshotOrBuilder getSnapshotsOrBuilder(int index) { if (snapshotsBuilder_ == null) { @@ -871,14 +934,17 @@ public com.google.pubsub.v1.SnapshotOrBuilder getSnapshotsOrBuilder(int index) { return snapshotsBuilder_.getMessageOrBuilder(index); } } + /** * * *
-     * The resulting snapshots.
+     * Optional. The resulting snapshots.
      * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public java.util.List getSnapshotsOrBuilderList() { @@ -888,40 +954,49 @@ public com.google.pubsub.v1.SnapshotOrBuilder getSnapshotsOrBuilder(int index) { return java.util.Collections.unmodifiableList(snapshots_); } } + /** * * *
-     * The resulting snapshots.
+     * Optional. The resulting snapshots.
      * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.Snapshot.Builder addSnapshotsBuilder() { return getSnapshotsFieldBuilder() .addBuilder(com.google.pubsub.v1.Snapshot.getDefaultInstance()); } + /** * * *
-     * The resulting snapshots.
+     * Optional. The resulting snapshots.
      * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.Snapshot.Builder addSnapshotsBuilder(int index) { return getSnapshotsFieldBuilder() .addBuilder(index, com.google.pubsub.v1.Snapshot.getDefaultInstance()); } + /** * * *
-     * The resulting snapshots.
+     * Optional. The resulting snapshots.
      * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public java.util.List getSnapshotsBuilderList() { return getSnapshotsFieldBuilder().getBuilderList(); @@ -945,15 +1020,17 @@ public java.util.List getSnapshotsBuilder } private java.lang.Object nextPageToken_ = ""; + /** * * *
-     * If not empty, indicates that there may be more snapshot that match the
-     * request; this value should be passed in a new `ListSnapshotsRequest`.
+     * Optional. If not empty, indicates that there may be more snapshot that
+     * match the request; this value should be passed in a new
+     * `ListSnapshotsRequest`.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The nextPageToken. */ @@ -968,15 +1045,17 @@ public java.lang.String getNextPageToken() { return (java.lang.String) ref; } } + /** * * *
-     * If not empty, indicates that there may be more snapshot that match the
-     * request; this value should be passed in a new `ListSnapshotsRequest`.
+     * Optional. If not empty, indicates that there may be more snapshot that
+     * match the request; this value should be passed in a new
+     * `ListSnapshotsRequest`.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for nextPageToken. */ @@ -991,15 +1070,17 @@ public com.google.protobuf.ByteString getNextPageTokenBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * If not empty, indicates that there may be more snapshot that match the
-     * request; this value should be passed in a new `ListSnapshotsRequest`.
+     * Optional. If not empty, indicates that there may be more snapshot that
+     * match the request; this value should be passed in a new
+     * `ListSnapshotsRequest`.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The nextPageToken to set. * @return This builder for chaining. @@ -1013,15 +1094,17 @@ public Builder setNextPageToken(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * If not empty, indicates that there may be more snapshot that match the
-     * request; this value should be passed in a new `ListSnapshotsRequest`.
+     * Optional. If not empty, indicates that there may be more snapshot that
+     * match the request; this value should be passed in a new
+     * `ListSnapshotsRequest`.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -1031,15 +1114,17 @@ public Builder clearNextPageToken() { onChanged(); return this; } + /** * * *
-     * If not empty, indicates that there may be more snapshot that match the
-     * request; this value should be passed in a new `ListSnapshotsRequest`.
+     * Optional. If not empty, indicates that there may be more snapshot that
+     * match the request; this value should be passed in a new
+     * `ListSnapshotsRequest`.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for nextPageToken to set. * @return This builder for chaining. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSnapshotsResponseOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSnapshotsResponseOrBuilder.java index 4559682d5..209c12a8c 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSnapshotsResponseOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSnapshotsResponseOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ListSnapshotsResponseOrBuilder @@ -27,50 +28,64 @@ public interface ListSnapshotsResponseOrBuilder * * *
-   * The resulting snapshots.
+   * Optional. The resulting snapshots.
    * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ java.util.List getSnapshotsList(); + /** * * *
-   * The resulting snapshots.
+   * Optional. The resulting snapshots.
    * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.Snapshot getSnapshots(int index); + /** * * *
-   * The resulting snapshots.
+   * Optional. The resulting snapshots.
    * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ int getSnapshotsCount(); + /** * * *
-   * The resulting snapshots.
+   * Optional. The resulting snapshots.
    * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ java.util.List getSnapshotsOrBuilderList(); + /** * * *
-   * The resulting snapshots.
+   * Optional. The resulting snapshots.
    * 
* - * repeated .google.pubsub.v1.Snapshot snapshots = 1; + * + * repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.SnapshotOrBuilder getSnapshotsOrBuilder(int index); @@ -78,24 +93,27 @@ public interface ListSnapshotsResponseOrBuilder * * *
-   * If not empty, indicates that there may be more snapshot that match the
-   * request; this value should be passed in a new `ListSnapshotsRequest`.
+   * Optional. If not empty, indicates that there may be more snapshot that
+   * match the request; this value should be passed in a new
+   * `ListSnapshotsRequest`.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The nextPageToken. */ java.lang.String getNextPageToken(); + /** * * *
-   * If not empty, indicates that there may be more snapshot that match the
-   * request; this value should be passed in a new `ListSnapshotsRequest`.
+   * Optional. If not empty, indicates that there may be more snapshot that
+   * match the request; this value should be passed in a new
+   * `ListSnapshotsRequest`.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for nextPageToken. */ diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSubscriptionsRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSubscriptionsRequest.java index 63bbc9cd4..2a3705cd7 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSubscriptionsRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSubscriptionsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ListSubscriptionsRequest extends com.google.protobuf.Generate // @@protoc_insertion_point(message_implements:google.pubsub.v1.ListSubscriptionsRequest) ListSubscriptionsRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use ListSubscriptionsRequest.newBuilder() to construct. private ListSubscriptionsRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -67,16 +69,17 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object project_ = ""; + /** * * *
-   * Required. The name of the project in which to list subscriptions.
-   * Format is `projects/{project-id}`.
+   * Required. Identifier. The name of the project in which to list
+   * subscriptions. Format is `projects/{project-id}`.
    * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The project. @@ -93,16 +96,17 @@ public java.lang.String getProject() { return s; } } + /** * * *
-   * Required. The name of the project in which to list subscriptions.
-   * Format is `projects/{project-id}`.
+   * Required. Identifier. The name of the project in which to list
+   * subscriptions. Format is `projects/{project-id}`.
    * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for project. @@ -122,14 +126,15 @@ public com.google.protobuf.ByteString getProjectBytes() { public static final int PAGE_SIZE_FIELD_NUMBER = 2; private int pageSize_ = 0; + /** * * *
-   * Maximum number of subscriptions to return.
+   * Optional. Maximum number of subscriptions to return.
    * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageSize. */ @@ -142,16 +147,17 @@ public int getPageSize() { @SuppressWarnings("serial") private volatile java.lang.Object pageToken_ = ""; + /** * * *
-   * The value returned by the last `ListSubscriptionsResponse`; indicates that
-   * this is a continuation of a prior `ListSubscriptions` call, and that the
-   * system should return the next page of data.
+   * Optional. The value returned by the last `ListSubscriptionsResponse`;
+   * indicates that this is a continuation of a prior `ListSubscriptions` call,
+   * and that the system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageToken. */ @@ -167,16 +173,17 @@ public java.lang.String getPageToken() { return s; } } + /** * * *
-   * The value returned by the last `ListSubscriptionsResponse`; indicates that
-   * this is a continuation of a prior `ListSubscriptions` call, and that the
-   * system should return the next page of data.
+   * Optional. The value returned by the last `ListSubscriptionsResponse`;
+   * indicates that this is a continuation of a prior `ListSubscriptions` call,
+   * and that the system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for pageToken. */ @@ -370,6 +377,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -581,16 +589,17 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object project_ = ""; + /** * * *
-     * Required. The name of the project in which to list subscriptions.
-     * Format is `projects/{project-id}`.
+     * Required. Identifier. The name of the project in which to list
+     * subscriptions. Format is `projects/{project-id}`.
      * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The project. @@ -606,16 +615,17 @@ public java.lang.String getProject() { return (java.lang.String) ref; } } + /** * * *
-     * Required. The name of the project in which to list subscriptions.
-     * Format is `projects/{project-id}`.
+     * Required. Identifier. The name of the project in which to list
+     * subscriptions. Format is `projects/{project-id}`.
      * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for project. @@ -631,16 +641,17 @@ public com.google.protobuf.ByteString getProjectBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * Required. The name of the project in which to list subscriptions.
-     * Format is `projects/{project-id}`.
+     * Required. Identifier. The name of the project in which to list
+     * subscriptions. Format is `projects/{project-id}`.
      * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The project to set. @@ -655,16 +666,17 @@ public Builder setProject(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * Required. The name of the project in which to list subscriptions.
-     * Format is `projects/{project-id}`.
+     * Required. Identifier. The name of the project in which to list
+     * subscriptions. Format is `projects/{project-id}`.
      * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return This builder for chaining. @@ -675,16 +687,17 @@ public Builder clearProject() { onChanged(); return this; } + /** * * *
-     * Required. The name of the project in which to list subscriptions.
-     * Format is `projects/{project-id}`.
+     * Required. Identifier. The name of the project in which to list
+     * subscriptions. Format is `projects/{project-id}`.
      * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The bytes for project to set. @@ -702,14 +715,15 @@ public Builder setProjectBytes(com.google.protobuf.ByteString value) { } private int pageSize_; + /** * * *
-     * Maximum number of subscriptions to return.
+     * Optional. Maximum number of subscriptions to return.
      * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageSize. */ @@ -717,14 +731,15 @@ public Builder setProjectBytes(com.google.protobuf.ByteString value) { public int getPageSize() { return pageSize_; } + /** * * *
-     * Maximum number of subscriptions to return.
+     * Optional. Maximum number of subscriptions to return.
      * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The pageSize to set. * @return This builder for chaining. @@ -736,14 +751,15 @@ public Builder setPageSize(int value) { onChanged(); return this; } + /** * * *
-     * Maximum number of subscriptions to return.
+     * Optional. Maximum number of subscriptions to return.
      * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -755,16 +771,17 @@ public Builder clearPageSize() { } private java.lang.Object pageToken_ = ""; + /** * * *
-     * The value returned by the last `ListSubscriptionsResponse`; indicates that
-     * this is a continuation of a prior `ListSubscriptions` call, and that the
-     * system should return the next page of data.
+     * Optional. The value returned by the last `ListSubscriptionsResponse`;
+     * indicates that this is a continuation of a prior `ListSubscriptions` call,
+     * and that the system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageToken. */ @@ -779,16 +796,17 @@ public java.lang.String getPageToken() { return (java.lang.String) ref; } } + /** * * *
-     * The value returned by the last `ListSubscriptionsResponse`; indicates that
-     * this is a continuation of a prior `ListSubscriptions` call, and that the
-     * system should return the next page of data.
+     * Optional. The value returned by the last `ListSubscriptionsResponse`;
+     * indicates that this is a continuation of a prior `ListSubscriptions` call,
+     * and that the system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for pageToken. */ @@ -803,16 +821,17 @@ public com.google.protobuf.ByteString getPageTokenBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * The value returned by the last `ListSubscriptionsResponse`; indicates that
-     * this is a continuation of a prior `ListSubscriptions` call, and that the
-     * system should return the next page of data.
+     * Optional. The value returned by the last `ListSubscriptionsResponse`;
+     * indicates that this is a continuation of a prior `ListSubscriptions` call,
+     * and that the system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The pageToken to set. * @return This builder for chaining. @@ -826,16 +845,17 @@ public Builder setPageToken(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The value returned by the last `ListSubscriptionsResponse`; indicates that
-     * this is a continuation of a prior `ListSubscriptions` call, and that the
-     * system should return the next page of data.
+     * Optional. The value returned by the last `ListSubscriptionsResponse`;
+     * indicates that this is a continuation of a prior `ListSubscriptions` call,
+     * and that the system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -845,16 +865,17 @@ public Builder clearPageToken() { onChanged(); return this; } + /** * * *
-     * The value returned by the last `ListSubscriptionsResponse`; indicates that
-     * this is a continuation of a prior `ListSubscriptions` call, and that the
-     * system should return the next page of data.
+     * Optional. The value returned by the last `ListSubscriptionsResponse`;
+     * indicates that this is a continuation of a prior `ListSubscriptions` call,
+     * and that the system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for pageToken to set. * @return This builder for chaining. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSubscriptionsRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSubscriptionsRequestOrBuilder.java index db2839f67..d07523d10 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSubscriptionsRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSubscriptionsRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ListSubscriptionsRequestOrBuilder @@ -27,27 +28,28 @@ public interface ListSubscriptionsRequestOrBuilder * * *
-   * Required. The name of the project in which to list subscriptions.
-   * Format is `projects/{project-id}`.
+   * Required. Identifier. The name of the project in which to list
+   * subscriptions. Format is `projects/{project-id}`.
    * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The project. */ java.lang.String getProject(); + /** * * *
-   * Required. The name of the project in which to list subscriptions.
-   * Format is `projects/{project-id}`.
+   * Required. Identifier. The name of the project in which to list
+   * subscriptions. Format is `projects/{project-id}`.
    * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for project. @@ -58,10 +60,10 @@ public interface ListSubscriptionsRequestOrBuilder * * *
-   * Maximum number of subscriptions to return.
+   * Optional. Maximum number of subscriptions to return.
    * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageSize. */ @@ -71,26 +73,27 @@ public interface ListSubscriptionsRequestOrBuilder * * *
-   * The value returned by the last `ListSubscriptionsResponse`; indicates that
-   * this is a continuation of a prior `ListSubscriptions` call, and that the
-   * system should return the next page of data.
+   * Optional. The value returned by the last `ListSubscriptionsResponse`;
+   * indicates that this is a continuation of a prior `ListSubscriptions` call,
+   * and that the system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageToken. */ java.lang.String getPageToken(); + /** * * *
-   * The value returned by the last `ListSubscriptionsResponse`; indicates that
-   * this is a continuation of a prior `ListSubscriptions` call, and that the
-   * system should return the next page of data.
+   * Optional. The value returned by the last `ListSubscriptionsResponse`;
+   * indicates that this is a continuation of a prior `ListSubscriptions` call,
+   * and that the system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for pageToken. */ diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSubscriptionsResponse.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSubscriptionsResponse.java index 629620e65..27bd5f420 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSubscriptionsResponse.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSubscriptionsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ListSubscriptionsResponse extends com.google.protobuf.Generat // @@protoc_insertion_point(message_implements:google.pubsub.v1.ListSubscriptionsResponse) ListSubscriptionsResponseOrBuilder { private static final long serialVersionUID = 0L; + // Use ListSubscriptionsResponse.newBuilder() to construct. private ListSubscriptionsResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -67,67 +69,82 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private java.util.List subscriptions_; + /** * * *
-   * The subscriptions that match the request.
+   * Optional. The subscriptions that match the request.
    * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public java.util.List getSubscriptionsList() { return subscriptions_; } + /** * * *
-   * The subscriptions that match the request.
+   * Optional. The subscriptions that match the request.
    * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public java.util.List getSubscriptionsOrBuilderList() { return subscriptions_; } + /** * * *
-   * The subscriptions that match the request.
+   * Optional. The subscriptions that match the request.
    * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public int getSubscriptionsCount() { return subscriptions_.size(); } + /** * * *
-   * The subscriptions that match the request.
+   * Optional. The subscriptions that match the request.
    * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.Subscription getSubscriptions(int index) { return subscriptions_.get(index); } + /** * * *
-   * The subscriptions that match the request.
+   * Optional. The subscriptions that match the request.
    * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.SubscriptionOrBuilder getSubscriptionsOrBuilder(int index) { @@ -138,16 +155,17 @@ public com.google.pubsub.v1.SubscriptionOrBuilder getSubscriptionsOrBuilder(int @SuppressWarnings("serial") private volatile java.lang.Object nextPageToken_ = ""; + /** * * *
-   * If not empty, indicates that there may be more subscriptions that match
-   * the request; this value should be passed in a new
+   * Optional. If not empty, indicates that there may be more subscriptions that
+   * match the request; this value should be passed in a new
    * `ListSubscriptionsRequest` to get more subscriptions.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The nextPageToken. */ @@ -163,16 +181,17 @@ public java.lang.String getNextPageToken() { return s; } } + /** * * *
-   * If not empty, indicates that there may be more subscriptions that match
-   * the request; this value should be passed in a new
+   * Optional. If not empty, indicates that there may be more subscriptions that
+   * match the request; this value should be passed in a new
    * `ListSubscriptionsRequest` to get more subscriptions.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for nextPageToken. */ @@ -359,6 +378,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -621,10 +641,12 @@ private void ensureSubscriptionsIsMutable() { * * *
-     * The subscriptions that match the request.
+     * Optional. The subscriptions that match the request.
      * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public java.util.List getSubscriptionsList() { if (subscriptionsBuilder_ == null) { @@ -633,14 +655,17 @@ public java.util.List getSubscriptionsList() return subscriptionsBuilder_.getMessageList(); } } + /** * * *
-     * The subscriptions that match the request.
+     * Optional. The subscriptions that match the request.
      * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public int getSubscriptionsCount() { if (subscriptionsBuilder_ == null) { @@ -649,14 +674,17 @@ public int getSubscriptionsCount() { return subscriptionsBuilder_.getCount(); } } + /** * * *
-     * The subscriptions that match the request.
+     * Optional. The subscriptions that match the request.
      * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.Subscription getSubscriptions(int index) { if (subscriptionsBuilder_ == null) { @@ -665,14 +693,17 @@ public com.google.pubsub.v1.Subscription getSubscriptions(int index) { return subscriptionsBuilder_.getMessage(index); } } + /** * * *
-     * The subscriptions that match the request.
+     * Optional. The subscriptions that match the request.
      * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setSubscriptions(int index, com.google.pubsub.v1.Subscription value) { if (subscriptionsBuilder_ == null) { @@ -687,14 +718,17 @@ public Builder setSubscriptions(int index, com.google.pubsub.v1.Subscription val } return this; } + /** * * *
-     * The subscriptions that match the request.
+     * Optional. The subscriptions that match the request.
      * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setSubscriptions( int index, com.google.pubsub.v1.Subscription.Builder builderForValue) { @@ -707,14 +741,17 @@ public Builder setSubscriptions( } return this; } + /** * * *
-     * The subscriptions that match the request.
+     * Optional. The subscriptions that match the request.
      * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addSubscriptions(com.google.pubsub.v1.Subscription value) { if (subscriptionsBuilder_ == null) { @@ -729,14 +766,17 @@ public Builder addSubscriptions(com.google.pubsub.v1.Subscription value) { } return this; } + /** * * *
-     * The subscriptions that match the request.
+     * Optional. The subscriptions that match the request.
      * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addSubscriptions(int index, com.google.pubsub.v1.Subscription value) { if (subscriptionsBuilder_ == null) { @@ -751,14 +791,17 @@ public Builder addSubscriptions(int index, com.google.pubsub.v1.Subscription val } return this; } + /** * * *
-     * The subscriptions that match the request.
+     * Optional. The subscriptions that match the request.
      * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addSubscriptions(com.google.pubsub.v1.Subscription.Builder builderForValue) { if (subscriptionsBuilder_ == null) { @@ -770,14 +813,17 @@ public Builder addSubscriptions(com.google.pubsub.v1.Subscription.Builder builde } return this; } + /** * * *
-     * The subscriptions that match the request.
+     * Optional. The subscriptions that match the request.
      * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addSubscriptions( int index, com.google.pubsub.v1.Subscription.Builder builderForValue) { @@ -790,14 +836,17 @@ public Builder addSubscriptions( } return this; } + /** * * *
-     * The subscriptions that match the request.
+     * Optional. The subscriptions that match the request.
      * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addAllSubscriptions( java.lang.Iterable values) { @@ -810,14 +859,17 @@ public Builder addAllSubscriptions( } return this; } + /** * * *
-     * The subscriptions that match the request.
+     * Optional. The subscriptions that match the request.
      * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder clearSubscriptions() { if (subscriptionsBuilder_ == null) { @@ -829,14 +881,17 @@ public Builder clearSubscriptions() { } return this; } + /** * * *
-     * The subscriptions that match the request.
+     * Optional. The subscriptions that match the request.
      * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder removeSubscriptions(int index) { if (subscriptionsBuilder_ == null) { @@ -848,26 +903,32 @@ public Builder removeSubscriptions(int index) { } return this; } + /** * * *
-     * The subscriptions that match the request.
+     * Optional. The subscriptions that match the request.
      * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.Subscription.Builder getSubscriptionsBuilder(int index) { return getSubscriptionsFieldBuilder().getBuilder(index); } + /** * * *
-     * The subscriptions that match the request.
+     * Optional. The subscriptions that match the request.
      * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.SubscriptionOrBuilder getSubscriptionsOrBuilder(int index) { if (subscriptionsBuilder_ == null) { @@ -876,14 +937,17 @@ public com.google.pubsub.v1.SubscriptionOrBuilder getSubscriptionsOrBuilder(int return subscriptionsBuilder_.getMessageOrBuilder(index); } } + /** * * *
-     * The subscriptions that match the request.
+     * Optional. The subscriptions that match the request.
      * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public java.util.List getSubscriptionsOrBuilderList() { @@ -893,40 +957,49 @@ public com.google.pubsub.v1.SubscriptionOrBuilder getSubscriptionsOrBuilder(int return java.util.Collections.unmodifiableList(subscriptions_); } } + /** * * *
-     * The subscriptions that match the request.
+     * Optional. The subscriptions that match the request.
      * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.Subscription.Builder addSubscriptionsBuilder() { return getSubscriptionsFieldBuilder() .addBuilder(com.google.pubsub.v1.Subscription.getDefaultInstance()); } + /** * * *
-     * The subscriptions that match the request.
+     * Optional. The subscriptions that match the request.
      * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.Subscription.Builder addSubscriptionsBuilder(int index) { return getSubscriptionsFieldBuilder() .addBuilder(index, com.google.pubsub.v1.Subscription.getDefaultInstance()); } + /** * * *
-     * The subscriptions that match the request.
+     * Optional. The subscriptions that match the request.
      * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public java.util.List getSubscriptionsBuilderList() { return getSubscriptionsFieldBuilder().getBuilderList(); @@ -953,16 +1026,17 @@ public java.util.List getSubscription } private java.lang.Object nextPageToken_ = ""; + /** * * *
-     * If not empty, indicates that there may be more subscriptions that match
-     * the request; this value should be passed in a new
+     * Optional. If not empty, indicates that there may be more subscriptions that
+     * match the request; this value should be passed in a new
      * `ListSubscriptionsRequest` to get more subscriptions.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The nextPageToken. */ @@ -977,16 +1051,17 @@ public java.lang.String getNextPageToken() { return (java.lang.String) ref; } } + /** * * *
-     * If not empty, indicates that there may be more subscriptions that match
-     * the request; this value should be passed in a new
+     * Optional. If not empty, indicates that there may be more subscriptions that
+     * match the request; this value should be passed in a new
      * `ListSubscriptionsRequest` to get more subscriptions.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for nextPageToken. */ @@ -1001,16 +1076,17 @@ public com.google.protobuf.ByteString getNextPageTokenBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * If not empty, indicates that there may be more subscriptions that match
-     * the request; this value should be passed in a new
+     * Optional. If not empty, indicates that there may be more subscriptions that
+     * match the request; this value should be passed in a new
      * `ListSubscriptionsRequest` to get more subscriptions.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The nextPageToken to set. * @return This builder for chaining. @@ -1024,16 +1100,17 @@ public Builder setNextPageToken(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * If not empty, indicates that there may be more subscriptions that match
-     * the request; this value should be passed in a new
+     * Optional. If not empty, indicates that there may be more subscriptions that
+     * match the request; this value should be passed in a new
      * `ListSubscriptionsRequest` to get more subscriptions.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -1043,16 +1120,17 @@ public Builder clearNextPageToken() { onChanged(); return this; } + /** * * *
-     * If not empty, indicates that there may be more subscriptions that match
-     * the request; this value should be passed in a new
+     * Optional. If not empty, indicates that there may be more subscriptions that
+     * match the request; this value should be passed in a new
      * `ListSubscriptionsRequest` to get more subscriptions.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for nextPageToken to set. * @return This builder for chaining. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSubscriptionsResponseOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSubscriptionsResponseOrBuilder.java index 439c431a5..b28f6c50b 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSubscriptionsResponseOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListSubscriptionsResponseOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ListSubscriptionsResponseOrBuilder @@ -27,51 +28,65 @@ public interface ListSubscriptionsResponseOrBuilder * * *
-   * The subscriptions that match the request.
+   * Optional. The subscriptions that match the request.
    * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ java.util.List getSubscriptionsList(); + /** * * *
-   * The subscriptions that match the request.
+   * Optional. The subscriptions that match the request.
    * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.Subscription getSubscriptions(int index); + /** * * *
-   * The subscriptions that match the request.
+   * Optional. The subscriptions that match the request.
    * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ int getSubscriptionsCount(); + /** * * *
-   * The subscriptions that match the request.
+   * Optional. The subscriptions that match the request.
    * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ java.util.List getSubscriptionsOrBuilderList(); + /** * * *
-   * The subscriptions that match the request.
+   * Optional. The subscriptions that match the request.
    * 
* - * repeated .google.pubsub.v1.Subscription subscriptions = 1; + * + * repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.SubscriptionOrBuilder getSubscriptionsOrBuilder(int index); @@ -79,26 +94,27 @@ public interface ListSubscriptionsResponseOrBuilder * * *
-   * If not empty, indicates that there may be more subscriptions that match
-   * the request; this value should be passed in a new
+   * Optional. If not empty, indicates that there may be more subscriptions that
+   * match the request; this value should be passed in a new
    * `ListSubscriptionsRequest` to get more subscriptions.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The nextPageToken. */ java.lang.String getNextPageToken(); + /** * * *
-   * If not empty, indicates that there may be more subscriptions that match
-   * the request; this value should be passed in a new
+   * Optional. If not empty, indicates that there may be more subscriptions that
+   * match the request; this value should be passed in a new
    * `ListSubscriptionsRequest` to get more subscriptions.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for nextPageToken. */ diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSnapshotsRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSnapshotsRequest.java index 103e28b75..ffb408743 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSnapshotsRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSnapshotsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ListTopicSnapshotsRequest extends com.google.protobuf.Generat // @@protoc_insertion_point(message_implements:google.pubsub.v1.ListTopicSnapshotsRequest) ListTopicSnapshotsRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use ListTopicSnapshotsRequest.newBuilder() to construct. private ListTopicSnapshotsRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -67,6 +69,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object topic_ = ""; + /** * * @@ -93,6 +96,7 @@ public java.lang.String getTopic() { return s; } } + /** * * @@ -122,14 +126,15 @@ public com.google.protobuf.ByteString getTopicBytes() { public static final int PAGE_SIZE_FIELD_NUMBER = 2; private int pageSize_ = 0; + /** * * *
-   * Maximum number of snapshot names to return.
+   * Optional. Maximum number of snapshot names to return.
    * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageSize. */ @@ -142,16 +147,17 @@ public int getPageSize() { @SuppressWarnings("serial") private volatile java.lang.Object pageToken_ = ""; + /** * * *
-   * The value returned by the last `ListTopicSnapshotsResponse`; indicates
-   * that this is a continuation of a prior `ListTopicSnapshots` call, and
-   * that the system should return the next page of data.
+   * Optional. The value returned by the last `ListTopicSnapshotsResponse`;
+   * indicates that this is a continuation of a prior `ListTopicSnapshots` call,
+   * and that the system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageToken. */ @@ -167,16 +173,17 @@ public java.lang.String getPageToken() { return s; } } + /** * * *
-   * The value returned by the last `ListTopicSnapshotsResponse`; indicates
-   * that this is a continuation of a prior `ListTopicSnapshots` call, and
-   * that the system should return the next page of data.
+   * Optional. The value returned by the last `ListTopicSnapshotsResponse`;
+   * indicates that this is a continuation of a prior `ListTopicSnapshots` call,
+   * and that the system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for pageToken. */ @@ -370,6 +377,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -581,6 +589,7 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object topic_ = ""; + /** * * @@ -606,6 +615,7 @@ public java.lang.String getTopic() { return (java.lang.String) ref; } } + /** * * @@ -631,6 +641,7 @@ public com.google.protobuf.ByteString getTopicBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -655,6 +666,7 @@ public Builder setTopic(java.lang.String value) { onChanged(); return this; } + /** * * @@ -675,6 +687,7 @@ public Builder clearTopic() { onChanged(); return this; } + /** * * @@ -702,14 +715,15 @@ public Builder setTopicBytes(com.google.protobuf.ByteString value) { } private int pageSize_; + /** * * *
-     * Maximum number of snapshot names to return.
+     * Optional. Maximum number of snapshot names to return.
      * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageSize. */ @@ -717,14 +731,15 @@ public Builder setTopicBytes(com.google.protobuf.ByteString value) { public int getPageSize() { return pageSize_; } + /** * * *
-     * Maximum number of snapshot names to return.
+     * Optional. Maximum number of snapshot names to return.
      * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The pageSize to set. * @return This builder for chaining. @@ -736,14 +751,15 @@ public Builder setPageSize(int value) { onChanged(); return this; } + /** * * *
-     * Maximum number of snapshot names to return.
+     * Optional. Maximum number of snapshot names to return.
      * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -755,16 +771,17 @@ public Builder clearPageSize() { } private java.lang.Object pageToken_ = ""; + /** * * *
-     * The value returned by the last `ListTopicSnapshotsResponse`; indicates
-     * that this is a continuation of a prior `ListTopicSnapshots` call, and
-     * that the system should return the next page of data.
+     * Optional. The value returned by the last `ListTopicSnapshotsResponse`;
+     * indicates that this is a continuation of a prior `ListTopicSnapshots` call,
+     * and that the system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageToken. */ @@ -779,16 +796,17 @@ public java.lang.String getPageToken() { return (java.lang.String) ref; } } + /** * * *
-     * The value returned by the last `ListTopicSnapshotsResponse`; indicates
-     * that this is a continuation of a prior `ListTopicSnapshots` call, and
-     * that the system should return the next page of data.
+     * Optional. The value returned by the last `ListTopicSnapshotsResponse`;
+     * indicates that this is a continuation of a prior `ListTopicSnapshots` call,
+     * and that the system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for pageToken. */ @@ -803,16 +821,17 @@ public com.google.protobuf.ByteString getPageTokenBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * The value returned by the last `ListTopicSnapshotsResponse`; indicates
-     * that this is a continuation of a prior `ListTopicSnapshots` call, and
-     * that the system should return the next page of data.
+     * Optional. The value returned by the last `ListTopicSnapshotsResponse`;
+     * indicates that this is a continuation of a prior `ListTopicSnapshots` call,
+     * and that the system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The pageToken to set. * @return This builder for chaining. @@ -826,16 +845,17 @@ public Builder setPageToken(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The value returned by the last `ListTopicSnapshotsResponse`; indicates
-     * that this is a continuation of a prior `ListTopicSnapshots` call, and
-     * that the system should return the next page of data.
+     * Optional. The value returned by the last `ListTopicSnapshotsResponse`;
+     * indicates that this is a continuation of a prior `ListTopicSnapshots` call,
+     * and that the system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -845,16 +865,17 @@ public Builder clearPageToken() { onChanged(); return this; } + /** * * *
-     * The value returned by the last `ListTopicSnapshotsResponse`; indicates
-     * that this is a continuation of a prior `ListTopicSnapshots` call, and
-     * that the system should return the next page of data.
+     * Optional. The value returned by the last `ListTopicSnapshotsResponse`;
+     * indicates that this is a continuation of a prior `ListTopicSnapshots` call,
+     * and that the system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for pageToken to set. * @return This builder for chaining. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSnapshotsRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSnapshotsRequestOrBuilder.java index d965d0d29..9929a918f 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSnapshotsRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSnapshotsRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ListTopicSnapshotsRequestOrBuilder @@ -38,6 +39,7 @@ public interface ListTopicSnapshotsRequestOrBuilder * @return The topic. */ java.lang.String getTopic(); + /** * * @@ -58,10 +60,10 @@ public interface ListTopicSnapshotsRequestOrBuilder * * *
-   * Maximum number of snapshot names to return.
+   * Optional. Maximum number of snapshot names to return.
    * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageSize. */ @@ -71,26 +73,27 @@ public interface ListTopicSnapshotsRequestOrBuilder * * *
-   * The value returned by the last `ListTopicSnapshotsResponse`; indicates
-   * that this is a continuation of a prior `ListTopicSnapshots` call, and
-   * that the system should return the next page of data.
+   * Optional. The value returned by the last `ListTopicSnapshotsResponse`;
+   * indicates that this is a continuation of a prior `ListTopicSnapshots` call,
+   * and that the system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageToken. */ java.lang.String getPageToken(); + /** * * *
-   * The value returned by the last `ListTopicSnapshotsResponse`; indicates
-   * that this is a continuation of a prior `ListTopicSnapshots` call, and
-   * that the system should return the next page of data.
+   * Optional. The value returned by the last `ListTopicSnapshotsResponse`;
+   * indicates that this is a continuation of a prior `ListTopicSnapshots` call,
+   * and that the system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for pageToken. */ diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSnapshotsResponse.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSnapshotsResponse.java index 9d0eb36e1..387a4ef7e 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSnapshotsResponse.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSnapshotsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ListTopicSnapshotsResponse extends com.google.protobuf.Genera // @@protoc_insertion_point(message_implements:google.pubsub.v1.ListTopicSnapshotsResponse) ListTopicSnapshotsResponseOrBuilder { private static final long serialVersionUID = 0L; + // Use ListTopicSnapshotsResponse.newBuilder() to construct. private ListTopicSnapshotsResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -68,42 +70,51 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList snapshots_ = com.google.protobuf.LazyStringArrayList.emptyList(); + /** * * *
-   * The names of the snapshots that match the request.
+   * Optional. The names of the snapshots that match the request.
    * 
* - * repeated string snapshots = 1; + * + * repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return A list containing the snapshots. */ public com.google.protobuf.ProtocolStringList getSnapshotsList() { return snapshots_; } + /** * * *
-   * The names of the snapshots that match the request.
+   * Optional. The names of the snapshots that match the request.
    * 
* - * repeated string snapshots = 1; + * + * repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The count of snapshots. */ public int getSnapshotsCount() { return snapshots_.size(); } + /** * * *
-   * The names of the snapshots that match the request.
+   * Optional. The names of the snapshots that match the request.
    * 
* - * repeated string snapshots = 1; + * + * repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param index The index of the element to return. * @return The snapshots at the given index. @@ -111,14 +122,17 @@ public int getSnapshotsCount() { public java.lang.String getSnapshots(int index) { return snapshots_.get(index); } + /** * * *
-   * The names of the snapshots that match the request.
+   * Optional. The names of the snapshots that match the request.
    * 
* - * repeated string snapshots = 1; + * + * repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param index The index of the value to return. * @return The bytes of the snapshots at the given index. @@ -131,16 +145,17 @@ public com.google.protobuf.ByteString getSnapshotsBytes(int index) { @SuppressWarnings("serial") private volatile java.lang.Object nextPageToken_ = ""; + /** * * *
-   * If not empty, indicates that there may be more snapshots that match
-   * the request; this value should be passed in a new
+   * Optional. If not empty, indicates that there may be more snapshots that
+   * match the request; this value should be passed in a new
    * `ListTopicSnapshotsRequest` to get more snapshots.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The nextPageToken. */ @@ -156,16 +171,17 @@ public java.lang.String getNextPageToken() { return s; } } + /** * * *
-   * If not empty, indicates that there may be more snapshots that match
-   * the request; this value should be passed in a new
+   * Optional. If not empty, indicates that there may be more snapshots that
+   * match the request; this value should be passed in a new
    * `ListTopicSnapshotsRequest` to get more snapshots.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for nextPageToken. */ @@ -357,6 +373,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -571,14 +588,17 @@ private void ensureSnapshotsIsMutable() { } bitField0_ |= 0x00000001; } + /** * * *
-     * The names of the snapshots that match the request.
+     * Optional. The names of the snapshots that match the request.
      * 
* - * repeated string snapshots = 1; + * + * repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return A list containing the snapshots. */ @@ -586,28 +606,34 @@ public com.google.protobuf.ProtocolStringList getSnapshotsList() { snapshots_.makeImmutable(); return snapshots_; } + /** * * *
-     * The names of the snapshots that match the request.
+     * Optional. The names of the snapshots that match the request.
      * 
* - * repeated string snapshots = 1; + * + * repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The count of snapshots. */ public int getSnapshotsCount() { return snapshots_.size(); } + /** * * *
-     * The names of the snapshots that match the request.
+     * Optional. The names of the snapshots that match the request.
      * 
* - * repeated string snapshots = 1; + * + * repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param index The index of the element to return. * @return The snapshots at the given index. @@ -615,14 +641,17 @@ public int getSnapshotsCount() { public java.lang.String getSnapshots(int index) { return snapshots_.get(index); } + /** * * *
-     * The names of the snapshots that match the request.
+     * Optional. The names of the snapshots that match the request.
      * 
* - * repeated string snapshots = 1; + * + * repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param index The index of the value to return. * @return The bytes of the snapshots at the given index. @@ -630,14 +659,17 @@ public java.lang.String getSnapshots(int index) { public com.google.protobuf.ByteString getSnapshotsBytes(int index) { return snapshots_.getByteString(index); } + /** * * *
-     * The names of the snapshots that match the request.
+     * Optional. The names of the snapshots that match the request.
      * 
* - * repeated string snapshots = 1; + * + * repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param index The index to set the value at. * @param value The snapshots to set. @@ -653,14 +685,17 @@ public Builder setSnapshots(int index, java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The names of the snapshots that match the request.
+     * Optional. The names of the snapshots that match the request.
      * 
* - * repeated string snapshots = 1; + * + * repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param value The snapshots to add. * @return This builder for chaining. @@ -675,14 +710,17 @@ public Builder addSnapshots(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The names of the snapshots that match the request.
+     * Optional. The names of the snapshots that match the request.
      * 
* - * repeated string snapshots = 1; + * + * repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param values The snapshots to add. * @return This builder for chaining. @@ -694,14 +732,17 @@ public Builder addAllSnapshots(java.lang.Iterable values) { onChanged(); return this; } + /** * * *
-     * The names of the snapshots that match the request.
+     * Optional. The names of the snapshots that match the request.
      * 
* - * repeated string snapshots = 1; + * + * repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return This builder for chaining. */ @@ -712,14 +753,17 @@ public Builder clearSnapshots() { onChanged(); return this; } + /** * * *
-     * The names of the snapshots that match the request.
+     * Optional. The names of the snapshots that match the request.
      * 
* - * repeated string snapshots = 1; + * + * repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param value The bytes of the snapshots to add. * @return This builder for chaining. @@ -737,16 +781,17 @@ public Builder addSnapshotsBytes(com.google.protobuf.ByteString value) { } private java.lang.Object nextPageToken_ = ""; + /** * * *
-     * If not empty, indicates that there may be more snapshots that match
-     * the request; this value should be passed in a new
+     * Optional. If not empty, indicates that there may be more snapshots that
+     * match the request; this value should be passed in a new
      * `ListTopicSnapshotsRequest` to get more snapshots.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The nextPageToken. */ @@ -761,16 +806,17 @@ public java.lang.String getNextPageToken() { return (java.lang.String) ref; } } + /** * * *
-     * If not empty, indicates that there may be more snapshots that match
-     * the request; this value should be passed in a new
+     * Optional. If not empty, indicates that there may be more snapshots that
+     * match the request; this value should be passed in a new
      * `ListTopicSnapshotsRequest` to get more snapshots.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for nextPageToken. */ @@ -785,16 +831,17 @@ public com.google.protobuf.ByteString getNextPageTokenBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * If not empty, indicates that there may be more snapshots that match
-     * the request; this value should be passed in a new
+     * Optional. If not empty, indicates that there may be more snapshots that
+     * match the request; this value should be passed in a new
      * `ListTopicSnapshotsRequest` to get more snapshots.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The nextPageToken to set. * @return This builder for chaining. @@ -808,16 +855,17 @@ public Builder setNextPageToken(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * If not empty, indicates that there may be more snapshots that match
-     * the request; this value should be passed in a new
+     * Optional. If not empty, indicates that there may be more snapshots that
+     * match the request; this value should be passed in a new
      * `ListTopicSnapshotsRequest` to get more snapshots.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -827,16 +875,17 @@ public Builder clearNextPageToken() { onChanged(); return this; } + /** * * *
-     * If not empty, indicates that there may be more snapshots that match
-     * the request; this value should be passed in a new
+     * Optional. If not empty, indicates that there may be more snapshots that
+     * match the request; this value should be passed in a new
      * `ListTopicSnapshotsRequest` to get more snapshots.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for nextPageToken to set. * @return This builder for chaining. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSnapshotsResponseOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSnapshotsResponseOrBuilder.java index b24d10865..fd3eca179 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSnapshotsResponseOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSnapshotsResponseOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ListTopicSnapshotsResponseOrBuilder @@ -27,47 +28,58 @@ public interface ListTopicSnapshotsResponseOrBuilder * * *
-   * The names of the snapshots that match the request.
+   * Optional. The names of the snapshots that match the request.
    * 
* - * repeated string snapshots = 1; + * + * repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return A list containing the snapshots. */ java.util.List getSnapshotsList(); + /** * * *
-   * The names of the snapshots that match the request.
+   * Optional. The names of the snapshots that match the request.
    * 
* - * repeated string snapshots = 1; + * + * repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The count of snapshots. */ int getSnapshotsCount(); + /** * * *
-   * The names of the snapshots that match the request.
+   * Optional. The names of the snapshots that match the request.
    * 
* - * repeated string snapshots = 1; + * + * repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param index The index of the element to return. * @return The snapshots at the given index. */ java.lang.String getSnapshots(int index); + /** * * *
-   * The names of the snapshots that match the request.
+   * Optional. The names of the snapshots that match the request.
    * 
* - * repeated string snapshots = 1; + * + * repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param index The index of the value to return. * @return The bytes of the snapshots at the given index. @@ -78,26 +90,27 @@ public interface ListTopicSnapshotsResponseOrBuilder * * *
-   * If not empty, indicates that there may be more snapshots that match
-   * the request; this value should be passed in a new
+   * Optional. If not empty, indicates that there may be more snapshots that
+   * match the request; this value should be passed in a new
    * `ListTopicSnapshotsRequest` to get more snapshots.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The nextPageToken. */ java.lang.String getNextPageToken(); + /** * * *
-   * If not empty, indicates that there may be more snapshots that match
-   * the request; this value should be passed in a new
+   * Optional. If not empty, indicates that there may be more snapshots that
+   * match the request; this value should be passed in a new
    * `ListTopicSnapshotsRequest` to get more snapshots.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for nextPageToken. */ diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSubscriptionsRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSubscriptionsRequest.java index 737bd00b7..326990d9a 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSubscriptionsRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSubscriptionsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ListTopicSubscriptionsRequest extends com.google.protobuf.Gen // @@protoc_insertion_point(message_implements:google.pubsub.v1.ListTopicSubscriptionsRequest) ListTopicSubscriptionsRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use ListTopicSubscriptionsRequest.newBuilder() to construct. private ListTopicSubscriptionsRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -67,6 +69,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object topic_ = ""; + /** * * @@ -93,6 +96,7 @@ public java.lang.String getTopic() { return s; } } + /** * * @@ -122,14 +126,15 @@ public com.google.protobuf.ByteString getTopicBytes() { public static final int PAGE_SIZE_FIELD_NUMBER = 2; private int pageSize_ = 0; + /** * * *
-   * Maximum number of subscription names to return.
+   * Optional. Maximum number of subscription names to return.
    * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageSize. */ @@ -142,16 +147,17 @@ public int getPageSize() { @SuppressWarnings("serial") private volatile java.lang.Object pageToken_ = ""; + /** * * *
-   * The value returned by the last `ListTopicSubscriptionsResponse`; indicates
-   * that this is a continuation of a prior `ListTopicSubscriptions` call, and
-   * that the system should return the next page of data.
+   * Optional. The value returned by the last `ListTopicSubscriptionsResponse`;
+   * indicates that this is a continuation of a prior `ListTopicSubscriptions`
+   * call, and that the system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageToken. */ @@ -167,16 +173,17 @@ public java.lang.String getPageToken() { return s; } } + /** * * *
-   * The value returned by the last `ListTopicSubscriptionsResponse`; indicates
-   * that this is a continuation of a prior `ListTopicSubscriptions` call, and
-   * that the system should return the next page of data.
+   * Optional. The value returned by the last `ListTopicSubscriptionsResponse`;
+   * indicates that this is a continuation of a prior `ListTopicSubscriptions`
+   * call, and that the system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for pageToken. */ @@ -370,6 +377,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -582,6 +590,7 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object topic_ = ""; + /** * * @@ -607,6 +616,7 @@ public java.lang.String getTopic() { return (java.lang.String) ref; } } + /** * * @@ -632,6 +642,7 @@ public com.google.protobuf.ByteString getTopicBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -656,6 +667,7 @@ public Builder setTopic(java.lang.String value) { onChanged(); return this; } + /** * * @@ -676,6 +688,7 @@ public Builder clearTopic() { onChanged(); return this; } + /** * * @@ -703,14 +716,15 @@ public Builder setTopicBytes(com.google.protobuf.ByteString value) { } private int pageSize_; + /** * * *
-     * Maximum number of subscription names to return.
+     * Optional. Maximum number of subscription names to return.
      * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageSize. */ @@ -718,14 +732,15 @@ public Builder setTopicBytes(com.google.protobuf.ByteString value) { public int getPageSize() { return pageSize_; } + /** * * *
-     * Maximum number of subscription names to return.
+     * Optional. Maximum number of subscription names to return.
      * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The pageSize to set. * @return This builder for chaining. @@ -737,14 +752,15 @@ public Builder setPageSize(int value) { onChanged(); return this; } + /** * * *
-     * Maximum number of subscription names to return.
+     * Optional. Maximum number of subscription names to return.
      * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -756,16 +772,17 @@ public Builder clearPageSize() { } private java.lang.Object pageToken_ = ""; + /** * * *
-     * The value returned by the last `ListTopicSubscriptionsResponse`; indicates
-     * that this is a continuation of a prior `ListTopicSubscriptions` call, and
-     * that the system should return the next page of data.
+     * Optional. The value returned by the last `ListTopicSubscriptionsResponse`;
+     * indicates that this is a continuation of a prior `ListTopicSubscriptions`
+     * call, and that the system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageToken. */ @@ -780,16 +797,17 @@ public java.lang.String getPageToken() { return (java.lang.String) ref; } } + /** * * *
-     * The value returned by the last `ListTopicSubscriptionsResponse`; indicates
-     * that this is a continuation of a prior `ListTopicSubscriptions` call, and
-     * that the system should return the next page of data.
+     * Optional. The value returned by the last `ListTopicSubscriptionsResponse`;
+     * indicates that this is a continuation of a prior `ListTopicSubscriptions`
+     * call, and that the system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for pageToken. */ @@ -804,16 +822,17 @@ public com.google.protobuf.ByteString getPageTokenBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * The value returned by the last `ListTopicSubscriptionsResponse`; indicates
-     * that this is a continuation of a prior `ListTopicSubscriptions` call, and
-     * that the system should return the next page of data.
+     * Optional. The value returned by the last `ListTopicSubscriptionsResponse`;
+     * indicates that this is a continuation of a prior `ListTopicSubscriptions`
+     * call, and that the system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The pageToken to set. * @return This builder for chaining. @@ -827,16 +846,17 @@ public Builder setPageToken(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The value returned by the last `ListTopicSubscriptionsResponse`; indicates
-     * that this is a continuation of a prior `ListTopicSubscriptions` call, and
-     * that the system should return the next page of data.
+     * Optional. The value returned by the last `ListTopicSubscriptionsResponse`;
+     * indicates that this is a continuation of a prior `ListTopicSubscriptions`
+     * call, and that the system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -846,16 +866,17 @@ public Builder clearPageToken() { onChanged(); return this; } + /** * * *
-     * The value returned by the last `ListTopicSubscriptionsResponse`; indicates
-     * that this is a continuation of a prior `ListTopicSubscriptions` call, and
-     * that the system should return the next page of data.
+     * Optional. The value returned by the last `ListTopicSubscriptionsResponse`;
+     * indicates that this is a continuation of a prior `ListTopicSubscriptions`
+     * call, and that the system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for pageToken to set. * @return This builder for chaining. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSubscriptionsRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSubscriptionsRequestOrBuilder.java index d6bc07531..f783267cb 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSubscriptionsRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSubscriptionsRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ListTopicSubscriptionsRequestOrBuilder @@ -38,6 +39,7 @@ public interface ListTopicSubscriptionsRequestOrBuilder * @return The topic. */ java.lang.String getTopic(); + /** * * @@ -58,10 +60,10 @@ public interface ListTopicSubscriptionsRequestOrBuilder * * *
-   * Maximum number of subscription names to return.
+   * Optional. Maximum number of subscription names to return.
    * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageSize. */ @@ -71,26 +73,27 @@ public interface ListTopicSubscriptionsRequestOrBuilder * * *
-   * The value returned by the last `ListTopicSubscriptionsResponse`; indicates
-   * that this is a continuation of a prior `ListTopicSubscriptions` call, and
-   * that the system should return the next page of data.
+   * Optional. The value returned by the last `ListTopicSubscriptionsResponse`;
+   * indicates that this is a continuation of a prior `ListTopicSubscriptions`
+   * call, and that the system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageToken. */ java.lang.String getPageToken(); + /** * * *
-   * The value returned by the last `ListTopicSubscriptionsResponse`; indicates
-   * that this is a continuation of a prior `ListTopicSubscriptions` call, and
-   * that the system should return the next page of data.
+   * Optional. The value returned by the last `ListTopicSubscriptionsResponse`;
+   * indicates that this is a continuation of a prior `ListTopicSubscriptions`
+   * call, and that the system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for pageToken. */ diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSubscriptionsResponse.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSubscriptionsResponse.java index f270eed8d..7c17b9b01 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSubscriptionsResponse.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSubscriptionsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ListTopicSubscriptionsResponse extends com.google.protobuf.Ge // @@protoc_insertion_point(message_implements:google.pubsub.v1.ListTopicSubscriptionsResponse) ListTopicSubscriptionsResponseOrBuilder { private static final long serialVersionUID = 0L; + // Use ListTopicSubscriptionsResponse.newBuilder() to construct. private ListTopicSubscriptionsResponse( com.google.protobuf.GeneratedMessageV3.Builder builder) { @@ -69,42 +71,54 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList subscriptions_ = com.google.protobuf.LazyStringArrayList.emptyList(); + /** * * *
-   * The names of subscriptions attached to the topic specified in the request.
+   * Optional. The names of subscriptions attached to the topic specified in the
+   * request.
    * 
* - * repeated string subscriptions = 1 [(.google.api.resource_reference) = { ... } + * + * repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return A list containing the subscriptions. */ public com.google.protobuf.ProtocolStringList getSubscriptionsList() { return subscriptions_; } + /** * * *
-   * The names of subscriptions attached to the topic specified in the request.
+   * Optional. The names of subscriptions attached to the topic specified in the
+   * request.
    * 
* - * repeated string subscriptions = 1 [(.google.api.resource_reference) = { ... } + * + * repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The count of subscriptions. */ public int getSubscriptionsCount() { return subscriptions_.size(); } + /** * * *
-   * The names of subscriptions attached to the topic specified in the request.
+   * Optional. The names of subscriptions attached to the topic specified in the
+   * request.
    * 
* - * repeated string subscriptions = 1 [(.google.api.resource_reference) = { ... } + * + * repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param index The index of the element to return. * @return The subscriptions at the given index. @@ -112,14 +126,18 @@ public int getSubscriptionsCount() { public java.lang.String getSubscriptions(int index) { return subscriptions_.get(index); } + /** * * *
-   * The names of subscriptions attached to the topic specified in the request.
+   * Optional. The names of subscriptions attached to the topic specified in the
+   * request.
    * 
* - * repeated string subscriptions = 1 [(.google.api.resource_reference) = { ... } + * + * repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param index The index of the value to return. * @return The bytes of the subscriptions at the given index. @@ -132,16 +150,17 @@ public com.google.protobuf.ByteString getSubscriptionsBytes(int index) { @SuppressWarnings("serial") private volatile java.lang.Object nextPageToken_ = ""; + /** * * *
-   * If not empty, indicates that there may be more subscriptions that match
-   * the request; this value should be passed in a new
+   * Optional. If not empty, indicates that there may be more subscriptions that
+   * match the request; this value should be passed in a new
    * `ListTopicSubscriptionsRequest` to get more subscriptions.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The nextPageToken. */ @@ -157,16 +176,17 @@ public java.lang.String getNextPageToken() { return s; } } + /** * * *
-   * If not empty, indicates that there may be more subscriptions that match
-   * the request; this value should be passed in a new
+   * Optional. If not empty, indicates that there may be more subscriptions that
+   * match the request; this value should be passed in a new
    * `ListTopicSubscriptionsRequest` to get more subscriptions.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for nextPageToken. */ @@ -358,6 +378,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -572,14 +593,18 @@ private void ensureSubscriptionsIsMutable() { } bitField0_ |= 0x00000001; } + /** * * *
-     * The names of subscriptions attached to the topic specified in the request.
+     * Optional. The names of subscriptions attached to the topic specified in the
+     * request.
      * 
* - * repeated string subscriptions = 1 [(.google.api.resource_reference) = { ... } + * + * repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return A list containing the subscriptions. */ @@ -587,28 +612,36 @@ public com.google.protobuf.ProtocolStringList getSubscriptionsList() { subscriptions_.makeImmutable(); return subscriptions_; } + /** * * *
-     * The names of subscriptions attached to the topic specified in the request.
+     * Optional. The names of subscriptions attached to the topic specified in the
+     * request.
      * 
* - * repeated string subscriptions = 1 [(.google.api.resource_reference) = { ... } + * + * repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The count of subscriptions. */ public int getSubscriptionsCount() { return subscriptions_.size(); } + /** * * *
-     * The names of subscriptions attached to the topic specified in the request.
+     * Optional. The names of subscriptions attached to the topic specified in the
+     * request.
      * 
* - * repeated string subscriptions = 1 [(.google.api.resource_reference) = { ... } + * + * repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param index The index of the element to return. * @return The subscriptions at the given index. @@ -616,14 +649,18 @@ public int getSubscriptionsCount() { public java.lang.String getSubscriptions(int index) { return subscriptions_.get(index); } + /** * * *
-     * The names of subscriptions attached to the topic specified in the request.
+     * Optional. The names of subscriptions attached to the topic specified in the
+     * request.
      * 
* - * repeated string subscriptions = 1 [(.google.api.resource_reference) = { ... } + * + * repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param index The index of the value to return. * @return The bytes of the subscriptions at the given index. @@ -631,14 +668,18 @@ public java.lang.String getSubscriptions(int index) { public com.google.protobuf.ByteString getSubscriptionsBytes(int index) { return subscriptions_.getByteString(index); } + /** * * *
-     * The names of subscriptions attached to the topic specified in the request.
+     * Optional. The names of subscriptions attached to the topic specified in the
+     * request.
      * 
* - * repeated string subscriptions = 1 [(.google.api.resource_reference) = { ... } + * + * repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param index The index to set the value at. * @param value The subscriptions to set. @@ -654,14 +695,18 @@ public Builder setSubscriptions(int index, java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The names of subscriptions attached to the topic specified in the request.
+     * Optional. The names of subscriptions attached to the topic specified in the
+     * request.
      * 
* - * repeated string subscriptions = 1 [(.google.api.resource_reference) = { ... } + * + * repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param value The subscriptions to add. * @return This builder for chaining. @@ -676,14 +721,18 @@ public Builder addSubscriptions(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The names of subscriptions attached to the topic specified in the request.
+     * Optional. The names of subscriptions attached to the topic specified in the
+     * request.
      * 
* - * repeated string subscriptions = 1 [(.google.api.resource_reference) = { ... } + * + * repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param values The subscriptions to add. * @return This builder for chaining. @@ -695,14 +744,18 @@ public Builder addAllSubscriptions(java.lang.Iterable values) onChanged(); return this; } + /** * * *
-     * The names of subscriptions attached to the topic specified in the request.
+     * Optional. The names of subscriptions attached to the topic specified in the
+     * request.
      * 
* - * repeated string subscriptions = 1 [(.google.api.resource_reference) = { ... } + * + * repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return This builder for chaining. */ @@ -713,14 +766,18 @@ public Builder clearSubscriptions() { onChanged(); return this; } + /** * * *
-     * The names of subscriptions attached to the topic specified in the request.
+     * Optional. The names of subscriptions attached to the topic specified in the
+     * request.
      * 
* - * repeated string subscriptions = 1 [(.google.api.resource_reference) = { ... } + * + * repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param value The bytes of the subscriptions to add. * @return This builder for chaining. @@ -738,16 +795,17 @@ public Builder addSubscriptionsBytes(com.google.protobuf.ByteString value) { } private java.lang.Object nextPageToken_ = ""; + /** * * *
-     * If not empty, indicates that there may be more subscriptions that match
-     * the request; this value should be passed in a new
+     * Optional. If not empty, indicates that there may be more subscriptions that
+     * match the request; this value should be passed in a new
      * `ListTopicSubscriptionsRequest` to get more subscriptions.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The nextPageToken. */ @@ -762,16 +820,17 @@ public java.lang.String getNextPageToken() { return (java.lang.String) ref; } } + /** * * *
-     * If not empty, indicates that there may be more subscriptions that match
-     * the request; this value should be passed in a new
+     * Optional. If not empty, indicates that there may be more subscriptions that
+     * match the request; this value should be passed in a new
      * `ListTopicSubscriptionsRequest` to get more subscriptions.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for nextPageToken. */ @@ -786,16 +845,17 @@ public com.google.protobuf.ByteString getNextPageTokenBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * If not empty, indicates that there may be more subscriptions that match
-     * the request; this value should be passed in a new
+     * Optional. If not empty, indicates that there may be more subscriptions that
+     * match the request; this value should be passed in a new
      * `ListTopicSubscriptionsRequest` to get more subscriptions.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The nextPageToken to set. * @return This builder for chaining. @@ -809,16 +869,17 @@ public Builder setNextPageToken(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * If not empty, indicates that there may be more subscriptions that match
-     * the request; this value should be passed in a new
+     * Optional. If not empty, indicates that there may be more subscriptions that
+     * match the request; this value should be passed in a new
      * `ListTopicSubscriptionsRequest` to get more subscriptions.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -828,16 +889,17 @@ public Builder clearNextPageToken() { onChanged(); return this; } + /** * * *
-     * If not empty, indicates that there may be more subscriptions that match
-     * the request; this value should be passed in a new
+     * Optional. If not empty, indicates that there may be more subscriptions that
+     * match the request; this value should be passed in a new
      * `ListTopicSubscriptionsRequest` to get more subscriptions.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for nextPageToken to set. * @return This builder for chaining. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSubscriptionsResponseOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSubscriptionsResponseOrBuilder.java index d8c6f021e..dcd670427 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSubscriptionsResponseOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicSubscriptionsResponseOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ListTopicSubscriptionsResponseOrBuilder @@ -27,47 +28,62 @@ public interface ListTopicSubscriptionsResponseOrBuilder * * *
-   * The names of subscriptions attached to the topic specified in the request.
+   * Optional. The names of subscriptions attached to the topic specified in the
+   * request.
    * 
* - * repeated string subscriptions = 1 [(.google.api.resource_reference) = { ... } + * + * repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return A list containing the subscriptions. */ java.util.List getSubscriptionsList(); + /** * * *
-   * The names of subscriptions attached to the topic specified in the request.
+   * Optional. The names of subscriptions attached to the topic specified in the
+   * request.
    * 
* - * repeated string subscriptions = 1 [(.google.api.resource_reference) = { ... } + * + * repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The count of subscriptions. */ int getSubscriptionsCount(); + /** * * *
-   * The names of subscriptions attached to the topic specified in the request.
+   * Optional. The names of subscriptions attached to the topic specified in the
+   * request.
    * 
* - * repeated string subscriptions = 1 [(.google.api.resource_reference) = { ... } + * + * repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param index The index of the element to return. * @return The subscriptions at the given index. */ java.lang.String getSubscriptions(int index); + /** * * *
-   * The names of subscriptions attached to the topic specified in the request.
+   * Optional. The names of subscriptions attached to the topic specified in the
+   * request.
    * 
* - * repeated string subscriptions = 1 [(.google.api.resource_reference) = { ... } + * + * repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param index The index of the value to return. * @return The bytes of the subscriptions at the given index. @@ -78,26 +94,27 @@ public interface ListTopicSubscriptionsResponseOrBuilder * * *
-   * If not empty, indicates that there may be more subscriptions that match
-   * the request; this value should be passed in a new
+   * Optional. If not empty, indicates that there may be more subscriptions that
+   * match the request; this value should be passed in a new
    * `ListTopicSubscriptionsRequest` to get more subscriptions.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The nextPageToken. */ java.lang.String getNextPageToken(); + /** * * *
-   * If not empty, indicates that there may be more subscriptions that match
-   * the request; this value should be passed in a new
+   * Optional. If not empty, indicates that there may be more subscriptions that
+   * match the request; this value should be passed in a new
    * `ListTopicSubscriptionsRequest` to get more subscriptions.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for nextPageToken. */ diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicsRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicsRequest.java index 5c2e9d64b..873b3f152 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicsRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ListTopicsRequest extends com.google.protobuf.GeneratedMessag // @@protoc_insertion_point(message_implements:google.pubsub.v1.ListTopicsRequest) ListTopicsRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use ListTopicsRequest.newBuilder() to construct. private ListTopicsRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -67,16 +69,17 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object project_ = ""; + /** * * *
-   * Required. The name of the project in which to list topics.
+   * Required. Identifier. The name of the project in which to list topics.
    * Format is `projects/{project-id}`.
    * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The project. @@ -93,16 +96,17 @@ public java.lang.String getProject() { return s; } } + /** * * *
-   * Required. The name of the project in which to list topics.
+   * Required. Identifier. The name of the project in which to list topics.
    * Format is `projects/{project-id}`.
    * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for project. @@ -122,14 +126,15 @@ public com.google.protobuf.ByteString getProjectBytes() { public static final int PAGE_SIZE_FIELD_NUMBER = 2; private int pageSize_ = 0; + /** * * *
-   * Maximum number of topics to return.
+   * Optional. Maximum number of topics to return.
    * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageSize. */ @@ -142,16 +147,17 @@ public int getPageSize() { @SuppressWarnings("serial") private volatile java.lang.Object pageToken_ = ""; + /** * * *
-   * The value returned by the last `ListTopicsResponse`; indicates that this is
-   * a continuation of a prior `ListTopics` call, and that the system should
-   * return the next page of data.
+   * Optional. The value returned by the last `ListTopicsResponse`; indicates
+   * that this is a continuation of a prior `ListTopics` call, and that the
+   * system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageToken. */ @@ -167,16 +173,17 @@ public java.lang.String getPageToken() { return s; } } + /** * * *
-   * The value returned by the last `ListTopicsResponse`; indicates that this is
-   * a continuation of a prior `ListTopics` call, and that the system should
-   * return the next page of data.
+   * Optional. The value returned by the last `ListTopicsResponse`; indicates
+   * that this is a continuation of a prior `ListTopics` call, and that the
+   * system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for pageToken. */ @@ -369,6 +376,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -580,16 +588,17 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object project_ = ""; + /** * * *
-     * Required. The name of the project in which to list topics.
+     * Required. Identifier. The name of the project in which to list topics.
      * Format is `projects/{project-id}`.
      * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The project. @@ -605,16 +614,17 @@ public java.lang.String getProject() { return (java.lang.String) ref; } } + /** * * *
-     * Required. The name of the project in which to list topics.
+     * Required. Identifier. The name of the project in which to list topics.
      * Format is `projects/{project-id}`.
      * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for project. @@ -630,16 +640,17 @@ public com.google.protobuf.ByteString getProjectBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * Required. The name of the project in which to list topics.
+     * Required. Identifier. The name of the project in which to list topics.
      * Format is `projects/{project-id}`.
      * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The project to set. @@ -654,16 +665,17 @@ public Builder setProject(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * Required. The name of the project in which to list topics.
+     * Required. Identifier. The name of the project in which to list topics.
      * Format is `projects/{project-id}`.
      * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return This builder for chaining. @@ -674,16 +686,17 @@ public Builder clearProject() { onChanged(); return this; } + /** * * *
-     * Required. The name of the project in which to list topics.
+     * Required. Identifier. The name of the project in which to list topics.
      * Format is `projects/{project-id}`.
      * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The bytes for project to set. @@ -701,14 +714,15 @@ public Builder setProjectBytes(com.google.protobuf.ByteString value) { } private int pageSize_; + /** * * *
-     * Maximum number of topics to return.
+     * Optional. Maximum number of topics to return.
      * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageSize. */ @@ -716,14 +730,15 @@ public Builder setProjectBytes(com.google.protobuf.ByteString value) { public int getPageSize() { return pageSize_; } + /** * * *
-     * Maximum number of topics to return.
+     * Optional. Maximum number of topics to return.
      * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The pageSize to set. * @return This builder for chaining. @@ -735,14 +750,15 @@ public Builder setPageSize(int value) { onChanged(); return this; } + /** * * *
-     * Maximum number of topics to return.
+     * Optional. Maximum number of topics to return.
      * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -754,16 +770,17 @@ public Builder clearPageSize() { } private java.lang.Object pageToken_ = ""; + /** * * *
-     * The value returned by the last `ListTopicsResponse`; indicates that this is
-     * a continuation of a prior `ListTopics` call, and that the system should
-     * return the next page of data.
+     * Optional. The value returned by the last `ListTopicsResponse`; indicates
+     * that this is a continuation of a prior `ListTopics` call, and that the
+     * system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageToken. */ @@ -778,16 +795,17 @@ public java.lang.String getPageToken() { return (java.lang.String) ref; } } + /** * * *
-     * The value returned by the last `ListTopicsResponse`; indicates that this is
-     * a continuation of a prior `ListTopics` call, and that the system should
-     * return the next page of data.
+     * Optional. The value returned by the last `ListTopicsResponse`; indicates
+     * that this is a continuation of a prior `ListTopics` call, and that the
+     * system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for pageToken. */ @@ -802,16 +820,17 @@ public com.google.protobuf.ByteString getPageTokenBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * The value returned by the last `ListTopicsResponse`; indicates that this is
-     * a continuation of a prior `ListTopics` call, and that the system should
-     * return the next page of data.
+     * Optional. The value returned by the last `ListTopicsResponse`; indicates
+     * that this is a continuation of a prior `ListTopics` call, and that the
+     * system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The pageToken to set. * @return This builder for chaining. @@ -825,16 +844,17 @@ public Builder setPageToken(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The value returned by the last `ListTopicsResponse`; indicates that this is
-     * a continuation of a prior `ListTopics` call, and that the system should
-     * return the next page of data.
+     * Optional. The value returned by the last `ListTopicsResponse`; indicates
+     * that this is a continuation of a prior `ListTopics` call, and that the
+     * system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -844,16 +864,17 @@ public Builder clearPageToken() { onChanged(); return this; } + /** * * *
-     * The value returned by the last `ListTopicsResponse`; indicates that this is
-     * a continuation of a prior `ListTopics` call, and that the system should
-     * return the next page of data.
+     * Optional. The value returned by the last `ListTopicsResponse`; indicates
+     * that this is a continuation of a prior `ListTopics` call, and that the
+     * system should return the next page of data.
      * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for pageToken to set. * @return This builder for chaining. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicsRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicsRequestOrBuilder.java index 3e0d2ffb0..8b134adc0 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicsRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicsRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ListTopicsRequestOrBuilder @@ -27,27 +28,28 @@ public interface ListTopicsRequestOrBuilder * * *
-   * Required. The name of the project in which to list topics.
+   * Required. Identifier. The name of the project in which to list topics.
    * Format is `projects/{project-id}`.
    * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The project. */ java.lang.String getProject(); + /** * * *
-   * Required. The name of the project in which to list topics.
+   * Required. Identifier. The name of the project in which to list topics.
    * Format is `projects/{project-id}`.
    * 
* * - * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for project. @@ -58,10 +60,10 @@ public interface ListTopicsRequestOrBuilder * * *
-   * Maximum number of topics to return.
+   * Optional. Maximum number of topics to return.
    * 
* - * int32 page_size = 2; + * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageSize. */ @@ -71,26 +73,27 @@ public interface ListTopicsRequestOrBuilder * * *
-   * The value returned by the last `ListTopicsResponse`; indicates that this is
-   * a continuation of a prior `ListTopics` call, and that the system should
-   * return the next page of data.
+   * Optional. The value returned by the last `ListTopicsResponse`; indicates
+   * that this is a continuation of a prior `ListTopics` call, and that the
+   * system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pageToken. */ java.lang.String getPageToken(); + /** * * *
-   * The value returned by the last `ListTopicsResponse`; indicates that this is
-   * a continuation of a prior `ListTopics` call, and that the system should
-   * return the next page of data.
+   * Optional. The value returned by the last `ListTopicsResponse`; indicates
+   * that this is a continuation of a prior `ListTopics` call, and that the
+   * system should return the next page of data.
    * 
* - * string page_token = 3; + * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for pageToken. */ diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicsResponse.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicsResponse.java index b3f73a27d..1a968a78b 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicsResponse.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ListTopicsResponse extends com.google.protobuf.GeneratedMessa // @@protoc_insertion_point(message_implements:google.pubsub.v1.ListTopicsResponse) ListTopicsResponseOrBuilder { private static final long serialVersionUID = 0L; + // Use ListTopicsResponse.newBuilder() to construct. private ListTopicsResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -67,66 +69,76 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private java.util.List topics_; + /** * * *
-   * The resulting topics.
+   * Optional. The resulting topics.
    * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public java.util.List getTopicsList() { return topics_; } + /** * * *
-   * The resulting topics.
+   * Optional. The resulting topics.
    * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public java.util.List getTopicsOrBuilderList() { return topics_; } + /** * * *
-   * The resulting topics.
+   * Optional. The resulting topics.
    * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public int getTopicsCount() { return topics_.size(); } + /** * * *
-   * The resulting topics.
+   * Optional. The resulting topics.
    * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.Topic getTopics(int index) { return topics_.get(index); } + /** * * *
-   * The resulting topics.
+   * Optional. The resulting topics.
    * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.TopicOrBuilder getTopicsOrBuilder(int index) { @@ -137,15 +149,16 @@ public com.google.pubsub.v1.TopicOrBuilder getTopicsOrBuilder(int index) { @SuppressWarnings("serial") private volatile java.lang.Object nextPageToken_ = ""; + /** * * *
-   * If not empty, indicates that there may be more topics that match the
-   * request; this value should be passed in a new `ListTopicsRequest`.
+   * Optional. If not empty, indicates that there may be more topics that match
+   * the request; this value should be passed in a new `ListTopicsRequest`.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The nextPageToken. */ @@ -161,15 +174,16 @@ public java.lang.String getNextPageToken() { return s; } } + /** * * *
-   * If not empty, indicates that there may be more topics that match the
-   * request; this value should be passed in a new `ListTopicsRequest`.
+   * Optional. If not empty, indicates that there may be more topics that match
+   * the request; this value should be passed in a new `ListTopicsRequest`.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for nextPageToken. */ @@ -355,6 +369,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -615,10 +630,11 @@ private void ensureTopicsIsMutable() { * * *
-     * The resulting topics.
+     * Optional. The resulting topics.
      * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public java.util.List getTopicsList() { if (topicsBuilder_ == null) { @@ -627,14 +643,16 @@ public java.util.List getTopicsList() { return topicsBuilder_.getMessageList(); } } + /** * * *
-     * The resulting topics.
+     * Optional. The resulting topics.
      * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public int getTopicsCount() { if (topicsBuilder_ == null) { @@ -643,14 +661,16 @@ public int getTopicsCount() { return topicsBuilder_.getCount(); } } + /** * * *
-     * The resulting topics.
+     * Optional. The resulting topics.
      * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.Topic getTopics(int index) { if (topicsBuilder_ == null) { @@ -659,14 +679,16 @@ public com.google.pubsub.v1.Topic getTopics(int index) { return topicsBuilder_.getMessage(index); } } + /** * * *
-     * The resulting topics.
+     * Optional. The resulting topics.
      * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setTopics(int index, com.google.pubsub.v1.Topic value) { if (topicsBuilder_ == null) { @@ -681,14 +703,16 @@ public Builder setTopics(int index, com.google.pubsub.v1.Topic value) { } return this; } + /** * * *
-     * The resulting topics.
+     * Optional. The resulting topics.
      * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setTopics(int index, com.google.pubsub.v1.Topic.Builder builderForValue) { if (topicsBuilder_ == null) { @@ -700,14 +724,16 @@ public Builder setTopics(int index, com.google.pubsub.v1.Topic.Builder builderFo } return this; } + /** * * *
-     * The resulting topics.
+     * Optional. The resulting topics.
      * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addTopics(com.google.pubsub.v1.Topic value) { if (topicsBuilder_ == null) { @@ -722,14 +748,16 @@ public Builder addTopics(com.google.pubsub.v1.Topic value) { } return this; } + /** * * *
-     * The resulting topics.
+     * Optional. The resulting topics.
      * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addTopics(int index, com.google.pubsub.v1.Topic value) { if (topicsBuilder_ == null) { @@ -744,14 +772,16 @@ public Builder addTopics(int index, com.google.pubsub.v1.Topic value) { } return this; } + /** * * *
-     * The resulting topics.
+     * Optional. The resulting topics.
      * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addTopics(com.google.pubsub.v1.Topic.Builder builderForValue) { if (topicsBuilder_ == null) { @@ -763,14 +793,16 @@ public Builder addTopics(com.google.pubsub.v1.Topic.Builder builderForValue) { } return this; } + /** * * *
-     * The resulting topics.
+     * Optional. The resulting topics.
      * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addTopics(int index, com.google.pubsub.v1.Topic.Builder builderForValue) { if (topicsBuilder_ == null) { @@ -782,14 +814,16 @@ public Builder addTopics(int index, com.google.pubsub.v1.Topic.Builder builderFo } return this; } + /** * * *
-     * The resulting topics.
+     * Optional. The resulting topics.
      * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addAllTopics(java.lang.Iterable values) { if (topicsBuilder_ == null) { @@ -801,14 +835,16 @@ public Builder addAllTopics(java.lang.Iterable - * The resulting topics. + * Optional. The resulting topics. * * - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder clearTopics() { if (topicsBuilder_ == null) { @@ -820,14 +856,16 @@ public Builder clearTopics() { } return this; } + /** * * *
-     * The resulting topics.
+     * Optional. The resulting topics.
      * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder removeTopics(int index) { if (topicsBuilder_ == null) { @@ -839,26 +877,30 @@ public Builder removeTopics(int index) { } return this; } + /** * * *
-     * The resulting topics.
+     * Optional. The resulting topics.
      * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.Topic.Builder getTopicsBuilder(int index) { return getTopicsFieldBuilder().getBuilder(index); } + /** * * *
-     * The resulting topics.
+     * Optional. The resulting topics.
      * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.TopicOrBuilder getTopicsOrBuilder(int index) { if (topicsBuilder_ == null) { @@ -867,14 +909,16 @@ public com.google.pubsub.v1.TopicOrBuilder getTopicsOrBuilder(int index) { return topicsBuilder_.getMessageOrBuilder(index); } } + /** * * *
-     * The resulting topics.
+     * Optional. The resulting topics.
      * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public java.util.List getTopicsOrBuilderList() { if (topicsBuilder_ != null) { @@ -883,39 +927,45 @@ public java.util.List getTopicsOr return java.util.Collections.unmodifiableList(topics_); } } + /** * * *
-     * The resulting topics.
+     * Optional. The resulting topics.
      * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.Topic.Builder addTopicsBuilder() { return getTopicsFieldBuilder().addBuilder(com.google.pubsub.v1.Topic.getDefaultInstance()); } + /** * * *
-     * The resulting topics.
+     * Optional. The resulting topics.
      * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.Topic.Builder addTopicsBuilder(int index) { return getTopicsFieldBuilder() .addBuilder(index, com.google.pubsub.v1.Topic.getDefaultInstance()); } + /** * * *
-     * The resulting topics.
+     * Optional. The resulting topics.
      * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public java.util.List getTopicsBuilderList() { return getTopicsFieldBuilder().getBuilderList(); @@ -939,15 +989,16 @@ public java.util.List getTopicsBuilderList() } private java.lang.Object nextPageToken_ = ""; + /** * * *
-     * If not empty, indicates that there may be more topics that match the
-     * request; this value should be passed in a new `ListTopicsRequest`.
+     * Optional. If not empty, indicates that there may be more topics that match
+     * the request; this value should be passed in a new `ListTopicsRequest`.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The nextPageToken. */ @@ -962,15 +1013,16 @@ public java.lang.String getNextPageToken() { return (java.lang.String) ref; } } + /** * * *
-     * If not empty, indicates that there may be more topics that match the
-     * request; this value should be passed in a new `ListTopicsRequest`.
+     * Optional. If not empty, indicates that there may be more topics that match
+     * the request; this value should be passed in a new `ListTopicsRequest`.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for nextPageToken. */ @@ -985,15 +1037,16 @@ public com.google.protobuf.ByteString getNextPageTokenBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * If not empty, indicates that there may be more topics that match the
-     * request; this value should be passed in a new `ListTopicsRequest`.
+     * Optional. If not empty, indicates that there may be more topics that match
+     * the request; this value should be passed in a new `ListTopicsRequest`.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The nextPageToken to set. * @return This builder for chaining. @@ -1007,15 +1060,16 @@ public Builder setNextPageToken(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * If not empty, indicates that there may be more topics that match the
-     * request; this value should be passed in a new `ListTopicsRequest`.
+     * Optional. If not empty, indicates that there may be more topics that match
+     * the request; this value should be passed in a new `ListTopicsRequest`.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -1025,15 +1079,16 @@ public Builder clearNextPageToken() { onChanged(); return this; } + /** * * *
-     * If not empty, indicates that there may be more topics that match the
-     * request; this value should be passed in a new `ListTopicsRequest`.
+     * Optional. If not empty, indicates that there may be more topics that match
+     * the request; this value should be passed in a new `ListTopicsRequest`.
      * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for nextPageToken to set. * @return This builder for chaining. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicsResponseOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicsResponseOrBuilder.java index fd03ece34..1cb84179a 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicsResponseOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ListTopicsResponseOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ListTopicsResponseOrBuilder @@ -27,50 +28,59 @@ public interface ListTopicsResponseOrBuilder * * *
-   * The resulting topics.
+   * Optional. The resulting topics.
    * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ java.util.List getTopicsList(); + /** * * *
-   * The resulting topics.
+   * Optional. The resulting topics.
    * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.Topic getTopics(int index); + /** * * *
-   * The resulting topics.
+   * Optional. The resulting topics.
    * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ int getTopicsCount(); + /** * * *
-   * The resulting topics.
+   * Optional. The resulting topics.
    * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ java.util.List getTopicsOrBuilderList(); + /** * * *
-   * The resulting topics.
+   * Optional. The resulting topics.
    * 
* - * repeated .google.pubsub.v1.Topic topics = 1; + * repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.TopicOrBuilder getTopicsOrBuilder(int index); @@ -78,24 +88,25 @@ public interface ListTopicsResponseOrBuilder * * *
-   * If not empty, indicates that there may be more topics that match the
-   * request; this value should be passed in a new `ListTopicsRequest`.
+   * Optional. If not empty, indicates that there may be more topics that match
+   * the request; this value should be passed in a new `ListTopicsRequest`.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The nextPageToken. */ java.lang.String getNextPageToken(); + /** * * *
-   * If not empty, indicates that there may be more topics that match the
-   * request; this value should be passed in a new `ListTopicsRequest`.
+   * Optional. If not empty, indicates that there may be more topics that match
+   * the request; this value should be passed in a new `ListTopicsRequest`.
    * 
* - * string next_page_token = 2; + * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for nextPageToken. */ diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/MessageStoragePolicy.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/MessageStoragePolicy.java index 06c6e9aba..03c29b809 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/MessageStoragePolicy.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/MessageStoragePolicy.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class MessageStoragePolicy extends com.google.protobuf.GeneratedMes // @@protoc_insertion_point(message_implements:google.pubsub.v1.MessageStoragePolicy) MessageStoragePolicyOrBuilder { private static final long serialVersionUID = 0L; + // Use MessageStoragePolicy.newBuilder() to construct. private MessageStoragePolicy(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -67,57 +69,66 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList allowedPersistenceRegions_ = com.google.protobuf.LazyStringArrayList.emptyList(); + /** * * *
-   * A list of IDs of Google Cloud regions where messages that are published
-   * to the topic may be persisted in storage. Messages published by publishers
-   * running in non-allowed Google Cloud regions (or running outside of Google
-   * Cloud altogether) are routed for storage in one of the allowed regions.
-   * An empty list means that no regions are allowed, and is not a valid
-   * configuration.
+   * Optional. A list of IDs of Google Cloud regions where messages that are
+   * published to the topic may be persisted in storage. Messages published by
+   * publishers running in non-allowed Google Cloud regions (or running outside
+   * of Google Cloud altogether) are routed for storage in one of the allowed
+   * regions. An empty list means that no regions are allowed, and is not a
+   * valid configuration.
    * 
* - * repeated string allowed_persistence_regions = 1; + * + * repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return A list containing the allowedPersistenceRegions. */ public com.google.protobuf.ProtocolStringList getAllowedPersistenceRegionsList() { return allowedPersistenceRegions_; } + /** * * *
-   * A list of IDs of Google Cloud regions where messages that are published
-   * to the topic may be persisted in storage. Messages published by publishers
-   * running in non-allowed Google Cloud regions (or running outside of Google
-   * Cloud altogether) are routed for storage in one of the allowed regions.
-   * An empty list means that no regions are allowed, and is not a valid
-   * configuration.
+   * Optional. A list of IDs of Google Cloud regions where messages that are
+   * published to the topic may be persisted in storage. Messages published by
+   * publishers running in non-allowed Google Cloud regions (or running outside
+   * of Google Cloud altogether) are routed for storage in one of the allowed
+   * regions. An empty list means that no regions are allowed, and is not a
+   * valid configuration.
    * 
* - * repeated string allowed_persistence_regions = 1; + * + * repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The count of allowedPersistenceRegions. */ public int getAllowedPersistenceRegionsCount() { return allowedPersistenceRegions_.size(); } + /** * * *
-   * A list of IDs of Google Cloud regions where messages that are published
-   * to the topic may be persisted in storage. Messages published by publishers
-   * running in non-allowed Google Cloud regions (or running outside of Google
-   * Cloud altogether) are routed for storage in one of the allowed regions.
-   * An empty list means that no regions are allowed, and is not a valid
-   * configuration.
+   * Optional. A list of IDs of Google Cloud regions where messages that are
+   * published to the topic may be persisted in storage. Messages published by
+   * publishers running in non-allowed Google Cloud regions (or running outside
+   * of Google Cloud altogether) are routed for storage in one of the allowed
+   * regions. An empty list means that no regions are allowed, and is not a
+   * valid configuration.
    * 
* - * repeated string allowed_persistence_regions = 1; + * + * repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the element to return. * @return The allowedPersistenceRegions at the given index. @@ -125,19 +136,22 @@ public int getAllowedPersistenceRegionsCount() { public java.lang.String getAllowedPersistenceRegions(int index) { return allowedPersistenceRegions_.get(index); } + /** * * *
-   * A list of IDs of Google Cloud regions where messages that are published
-   * to the topic may be persisted in storage. Messages published by publishers
-   * running in non-allowed Google Cloud regions (or running outside of Google
-   * Cloud altogether) are routed for storage in one of the allowed regions.
-   * An empty list means that no regions are allowed, and is not a valid
-   * configuration.
+   * Optional. A list of IDs of Google Cloud regions where messages that are
+   * published to the topic may be persisted in storage. Messages published by
+   * publishers running in non-allowed Google Cloud regions (or running outside
+   * of Google Cloud altogether) are routed for storage in one of the allowed
+   * regions. An empty list means that no regions are allowed, and is not a
+   * valid configuration.
    * 
* - * repeated string allowed_persistence_regions = 1; + * + * repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the value to return. * @return The bytes of the allowedPersistenceRegions at the given index. @@ -146,6 +160,29 @@ public com.google.protobuf.ByteString getAllowedPersistenceRegionsBytes(int inde return allowedPersistenceRegions_.getByteString(index); } + public static final int ENFORCE_IN_TRANSIT_FIELD_NUMBER = 2; + private boolean enforceInTransit_ = false; + + /** + * + * + *
+   * Optional. If true, `allowed_persistence_regions` is also used to enforce
+   * in-transit guarantees for messages. That is, Pub/Sub will fail
+   * Publish operations on this topic and subscribe operations
+   * on any subscription attached to this topic in any region that is
+   * not in `allowed_persistence_regions`.
+   * 
+ * + * bool enforce_in_transit = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The enforceInTransit. + */ + @java.lang.Override + public boolean getEnforceInTransit() { + return enforceInTransit_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -164,6 +201,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io com.google.protobuf.GeneratedMessageV3.writeString( output, 1, allowedPersistenceRegions_.getRaw(i)); } + if (enforceInTransit_ != false) { + output.writeBool(2, enforceInTransit_); + } getUnknownFields().writeTo(output); } @@ -181,6 +221,9 @@ public int getSerializedSize() { size += dataSize; size += 1 * getAllowedPersistenceRegionsList().size(); } + if (enforceInTransit_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, enforceInTransit_); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -199,6 +242,7 @@ public boolean equals(final java.lang.Object obj) { if (!getAllowedPersistenceRegionsList().equals(other.getAllowedPersistenceRegionsList())) return false; + if (getEnforceInTransit() != other.getEnforceInTransit()) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -214,6 +258,8 @@ public int hashCode() { hash = (37 * hash) + ALLOWED_PERSISTENCE_REGIONS_FIELD_NUMBER; hash = (53 * hash) + getAllowedPersistenceRegionsList().hashCode(); } + hash = (37 * hash) + ENFORCE_IN_TRANSIT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getEnforceInTransit()); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -314,6 +360,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -354,6 +401,7 @@ public Builder clear() { super.clear(); bitField0_ = 0; allowedPersistenceRegions_ = com.google.protobuf.LazyStringArrayList.emptyList(); + enforceInTransit_ = false; return this; } @@ -394,6 +442,9 @@ private void buildPartial0(com.google.pubsub.v1.MessageStoragePolicy result) { allowedPersistenceRegions_.makeImmutable(); result.allowedPersistenceRegions_ = allowedPersistenceRegions_; } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.enforceInTransit_ = enforceInTransit_; + } } @java.lang.Override @@ -451,6 +502,9 @@ public Builder mergeFrom(com.google.pubsub.v1.MessageStoragePolicy other) { } onChanged(); } + if (other.getEnforceInTransit() != false) { + setEnforceInTransit(other.getEnforceInTransit()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -484,6 +538,12 @@ public Builder mergeFrom( allowedPersistenceRegions_.add(s); break; } // case 10 + case 16: + { + enforceInTransit_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } // case 16 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -513,19 +573,22 @@ private void ensureAllowedPersistenceRegionsIsMutable() { } bitField0_ |= 0x00000001; } + /** * * *
-     * A list of IDs of Google Cloud regions where messages that are published
-     * to the topic may be persisted in storage. Messages published by publishers
-     * running in non-allowed Google Cloud regions (or running outside of Google
-     * Cloud altogether) are routed for storage in one of the allowed regions.
-     * An empty list means that no regions are allowed, and is not a valid
-     * configuration.
+     * Optional. A list of IDs of Google Cloud regions where messages that are
+     * published to the topic may be persisted in storage. Messages published by
+     * publishers running in non-allowed Google Cloud regions (or running outside
+     * of Google Cloud altogether) are routed for storage in one of the allowed
+     * regions. An empty list means that no regions are allowed, and is not a
+     * valid configuration.
      * 
* - * repeated string allowed_persistence_regions = 1; + * + * repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return A list containing the allowedPersistenceRegions. */ @@ -533,38 +596,44 @@ public com.google.protobuf.ProtocolStringList getAllowedPersistenceRegionsList() allowedPersistenceRegions_.makeImmutable(); return allowedPersistenceRegions_; } + /** * * *
-     * A list of IDs of Google Cloud regions where messages that are published
-     * to the topic may be persisted in storage. Messages published by publishers
-     * running in non-allowed Google Cloud regions (or running outside of Google
-     * Cloud altogether) are routed for storage in one of the allowed regions.
-     * An empty list means that no regions are allowed, and is not a valid
-     * configuration.
+     * Optional. A list of IDs of Google Cloud regions where messages that are
+     * published to the topic may be persisted in storage. Messages published by
+     * publishers running in non-allowed Google Cloud regions (or running outside
+     * of Google Cloud altogether) are routed for storage in one of the allowed
+     * regions. An empty list means that no regions are allowed, and is not a
+     * valid configuration.
      * 
* - * repeated string allowed_persistence_regions = 1; + * + * repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The count of allowedPersistenceRegions. */ public int getAllowedPersistenceRegionsCount() { return allowedPersistenceRegions_.size(); } + /** * * *
-     * A list of IDs of Google Cloud regions where messages that are published
-     * to the topic may be persisted in storage. Messages published by publishers
-     * running in non-allowed Google Cloud regions (or running outside of Google
-     * Cloud altogether) are routed for storage in one of the allowed regions.
-     * An empty list means that no regions are allowed, and is not a valid
-     * configuration.
+     * Optional. A list of IDs of Google Cloud regions where messages that are
+     * published to the topic may be persisted in storage. Messages published by
+     * publishers running in non-allowed Google Cloud regions (or running outside
+     * of Google Cloud altogether) are routed for storage in one of the allowed
+     * regions. An empty list means that no regions are allowed, and is not a
+     * valid configuration.
      * 
* - * repeated string allowed_persistence_regions = 1; + * + * repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the element to return. * @return The allowedPersistenceRegions at the given index. @@ -572,19 +641,22 @@ public int getAllowedPersistenceRegionsCount() { public java.lang.String getAllowedPersistenceRegions(int index) { return allowedPersistenceRegions_.get(index); } + /** * * *
-     * A list of IDs of Google Cloud regions where messages that are published
-     * to the topic may be persisted in storage. Messages published by publishers
-     * running in non-allowed Google Cloud regions (or running outside of Google
-     * Cloud altogether) are routed for storage in one of the allowed regions.
-     * An empty list means that no regions are allowed, and is not a valid
-     * configuration.
+     * Optional. A list of IDs of Google Cloud regions where messages that are
+     * published to the topic may be persisted in storage. Messages published by
+     * publishers running in non-allowed Google Cloud regions (or running outside
+     * of Google Cloud altogether) are routed for storage in one of the allowed
+     * regions. An empty list means that no regions are allowed, and is not a
+     * valid configuration.
      * 
* - * repeated string allowed_persistence_regions = 1; + * + * repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the value to return. * @return The bytes of the allowedPersistenceRegions at the given index. @@ -592,19 +664,22 @@ public java.lang.String getAllowedPersistenceRegions(int index) { public com.google.protobuf.ByteString getAllowedPersistenceRegionsBytes(int index) { return allowedPersistenceRegions_.getByteString(index); } + /** * * *
-     * A list of IDs of Google Cloud regions where messages that are published
-     * to the topic may be persisted in storage. Messages published by publishers
-     * running in non-allowed Google Cloud regions (or running outside of Google
-     * Cloud altogether) are routed for storage in one of the allowed regions.
-     * An empty list means that no regions are allowed, and is not a valid
-     * configuration.
+     * Optional. A list of IDs of Google Cloud regions where messages that are
+     * published to the topic may be persisted in storage. Messages published by
+     * publishers running in non-allowed Google Cloud regions (or running outside
+     * of Google Cloud altogether) are routed for storage in one of the allowed
+     * regions. An empty list means that no regions are allowed, and is not a
+     * valid configuration.
      * 
* - * repeated string allowed_persistence_regions = 1; + * + * repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index to set the value at. * @param value The allowedPersistenceRegions to set. @@ -620,19 +695,22 @@ public Builder setAllowedPersistenceRegions(int index, java.lang.String value) { onChanged(); return this; } + /** * * *
-     * A list of IDs of Google Cloud regions where messages that are published
-     * to the topic may be persisted in storage. Messages published by publishers
-     * running in non-allowed Google Cloud regions (or running outside of Google
-     * Cloud altogether) are routed for storage in one of the allowed regions.
-     * An empty list means that no regions are allowed, and is not a valid
-     * configuration.
+     * Optional. A list of IDs of Google Cloud regions where messages that are
+     * published to the topic may be persisted in storage. Messages published by
+     * publishers running in non-allowed Google Cloud regions (or running outside
+     * of Google Cloud altogether) are routed for storage in one of the allowed
+     * regions. An empty list means that no regions are allowed, and is not a
+     * valid configuration.
      * 
* - * repeated string allowed_persistence_regions = 1; + * + * repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param value The allowedPersistenceRegions to add. * @return This builder for chaining. @@ -647,19 +725,22 @@ public Builder addAllowedPersistenceRegions(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * A list of IDs of Google Cloud regions where messages that are published
-     * to the topic may be persisted in storage. Messages published by publishers
-     * running in non-allowed Google Cloud regions (or running outside of Google
-     * Cloud altogether) are routed for storage in one of the allowed regions.
-     * An empty list means that no regions are allowed, and is not a valid
-     * configuration.
+     * Optional. A list of IDs of Google Cloud regions where messages that are
+     * published to the topic may be persisted in storage. Messages published by
+     * publishers running in non-allowed Google Cloud regions (or running outside
+     * of Google Cloud altogether) are routed for storage in one of the allowed
+     * regions. An empty list means that no regions are allowed, and is not a
+     * valid configuration.
      * 
* - * repeated string allowed_persistence_regions = 1; + * + * repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param values The allowedPersistenceRegions to add. * @return This builder for chaining. @@ -671,19 +752,22 @@ public Builder addAllAllowedPersistenceRegions(java.lang.Iterable - * A list of IDs of Google Cloud regions where messages that are published - * to the topic may be persisted in storage. Messages published by publishers - * running in non-allowed Google Cloud regions (or running outside of Google - * Cloud altogether) are routed for storage in one of the allowed regions. - * An empty list means that no regions are allowed, and is not a valid - * configuration. + * Optional. A list of IDs of Google Cloud regions where messages that are + * published to the topic may be persisted in storage. Messages published by + * publishers running in non-allowed Google Cloud regions (or running outside + * of Google Cloud altogether) are routed for storage in one of the allowed + * regions. An empty list means that no regions are allowed, and is not a + * valid configuration. * * - * repeated string allowed_persistence_regions = 1; + * + * repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return This builder for chaining. */ @@ -694,19 +778,22 @@ public Builder clearAllowedPersistenceRegions() { onChanged(); return this; } + /** * * *
-     * A list of IDs of Google Cloud regions where messages that are published
-     * to the topic may be persisted in storage. Messages published by publishers
-     * running in non-allowed Google Cloud regions (or running outside of Google
-     * Cloud altogether) are routed for storage in one of the allowed regions.
-     * An empty list means that no regions are allowed, and is not a valid
-     * configuration.
+     * Optional. A list of IDs of Google Cloud regions where messages that are
+     * published to the topic may be persisted in storage. Messages published by
+     * publishers running in non-allowed Google Cloud regions (or running outside
+     * of Google Cloud altogether) are routed for storage in one of the allowed
+     * regions. An empty list means that no regions are allowed, and is not a
+     * valid configuration.
      * 
* - * repeated string allowed_persistence_regions = 1; + * + * repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param value The bytes of the allowedPersistenceRegions to add. * @return This builder for chaining. @@ -723,6 +810,74 @@ public Builder addAllowedPersistenceRegionsBytes(com.google.protobuf.ByteString return this; } + private boolean enforceInTransit_; + + /** + * + * + *
+     * Optional. If true, `allowed_persistence_regions` is also used to enforce
+     * in-transit guarantees for messages. That is, Pub/Sub will fail
+     * Publish operations on this topic and subscribe operations
+     * on any subscription attached to this topic in any region that is
+     * not in `allowed_persistence_regions`.
+     * 
+ * + * bool enforce_in_transit = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The enforceInTransit. + */ + @java.lang.Override + public boolean getEnforceInTransit() { + return enforceInTransit_; + } + + /** + * + * + *
+     * Optional. If true, `allowed_persistence_regions` is also used to enforce
+     * in-transit guarantees for messages. That is, Pub/Sub will fail
+     * Publish operations on this topic and subscribe operations
+     * on any subscription attached to this topic in any region that is
+     * not in `allowed_persistence_regions`.
+     * 
+ * + * bool enforce_in_transit = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The enforceInTransit to set. + * @return This builder for chaining. + */ + public Builder setEnforceInTransit(boolean value) { + + enforceInTransit_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. If true, `allowed_persistence_regions` is also used to enforce
+     * in-transit guarantees for messages. That is, Pub/Sub will fail
+     * Publish operations on this topic and subscribe operations
+     * on any subscription attached to this topic in any region that is
+     * not in `allowed_persistence_regions`.
+     * 
+ * + * bool enforce_in_transit = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearEnforceInTransit() { + bitField0_ = (bitField0_ & ~0x00000002); + enforceInTransit_ = false; + onChanged(); + return this; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/MessageStoragePolicyOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/MessageStoragePolicyOrBuilder.java index 5f075aca0..eaebad923 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/MessageStoragePolicyOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/MessageStoragePolicyOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface MessageStoragePolicyOrBuilder @@ -27,70 +28,98 @@ public interface MessageStoragePolicyOrBuilder * * *
-   * A list of IDs of Google Cloud regions where messages that are published
-   * to the topic may be persisted in storage. Messages published by publishers
-   * running in non-allowed Google Cloud regions (or running outside of Google
-   * Cloud altogether) are routed for storage in one of the allowed regions.
-   * An empty list means that no regions are allowed, and is not a valid
-   * configuration.
+   * Optional. A list of IDs of Google Cloud regions where messages that are
+   * published to the topic may be persisted in storage. Messages published by
+   * publishers running in non-allowed Google Cloud regions (or running outside
+   * of Google Cloud altogether) are routed for storage in one of the allowed
+   * regions. An empty list means that no regions are allowed, and is not a
+   * valid configuration.
    * 
* - * repeated string allowed_persistence_regions = 1; + * + * repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return A list containing the allowedPersistenceRegions. */ java.util.List getAllowedPersistenceRegionsList(); + /** * * *
-   * A list of IDs of Google Cloud regions where messages that are published
-   * to the topic may be persisted in storage. Messages published by publishers
-   * running in non-allowed Google Cloud regions (or running outside of Google
-   * Cloud altogether) are routed for storage in one of the allowed regions.
-   * An empty list means that no regions are allowed, and is not a valid
-   * configuration.
+   * Optional. A list of IDs of Google Cloud regions where messages that are
+   * published to the topic may be persisted in storage. Messages published by
+   * publishers running in non-allowed Google Cloud regions (or running outside
+   * of Google Cloud altogether) are routed for storage in one of the allowed
+   * regions. An empty list means that no regions are allowed, and is not a
+   * valid configuration.
    * 
* - * repeated string allowed_persistence_regions = 1; + * + * repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The count of allowedPersistenceRegions. */ int getAllowedPersistenceRegionsCount(); + /** * * *
-   * A list of IDs of Google Cloud regions where messages that are published
-   * to the topic may be persisted in storage. Messages published by publishers
-   * running in non-allowed Google Cloud regions (or running outside of Google
-   * Cloud altogether) are routed for storage in one of the allowed regions.
-   * An empty list means that no regions are allowed, and is not a valid
-   * configuration.
+   * Optional. A list of IDs of Google Cloud regions where messages that are
+   * published to the topic may be persisted in storage. Messages published by
+   * publishers running in non-allowed Google Cloud regions (or running outside
+   * of Google Cloud altogether) are routed for storage in one of the allowed
+   * regions. An empty list means that no regions are allowed, and is not a
+   * valid configuration.
    * 
* - * repeated string allowed_persistence_regions = 1; + * + * repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the element to return. * @return The allowedPersistenceRegions at the given index. */ java.lang.String getAllowedPersistenceRegions(int index); + /** * * *
-   * A list of IDs of Google Cloud regions where messages that are published
-   * to the topic may be persisted in storage. Messages published by publishers
-   * running in non-allowed Google Cloud regions (or running outside of Google
-   * Cloud altogether) are routed for storage in one of the allowed regions.
-   * An empty list means that no regions are allowed, and is not a valid
-   * configuration.
+   * Optional. A list of IDs of Google Cloud regions where messages that are
+   * published to the topic may be persisted in storage. Messages published by
+   * publishers running in non-allowed Google Cloud regions (or running outside
+   * of Google Cloud altogether) are routed for storage in one of the allowed
+   * regions. An empty list means that no regions are allowed, and is not a
+   * valid configuration.
    * 
* - * repeated string allowed_persistence_regions = 1; + * + * repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the value to return. * @return The bytes of the allowedPersistenceRegions at the given index. */ com.google.protobuf.ByteString getAllowedPersistenceRegionsBytes(int index); + + /** + * + * + *
+   * Optional. If true, `allowed_persistence_regions` is also used to enforce
+   * in-transit guarantees for messages. That is, Pub/Sub will fail
+   * Publish operations on this topic and subscribe operations
+   * on any subscription attached to this topic in any region that is
+   * not in `allowed_persistence_regions`.
+   * 
+ * + * bool enforce_in_transit = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The enforceInTransit. + */ + boolean getEnforceInTransit(); } diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/MessageTransform.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/MessageTransform.java new file mode 100644 index 000000000..573d42c33 --- /dev/null +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/MessageTransform.java @@ -0,0 +1,1076 @@ +/* + * 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/pubsub/v1/pubsub.proto + +// Protobuf Java Version: 3.25.8 +package com.google.pubsub.v1; + +/** + * + * + *
+ * All supported message transforms types.
+ * 
+ * + * Protobuf type {@code google.pubsub.v1.MessageTransform} + */ +public final class MessageTransform extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.MessageTransform) + MessageTransformOrBuilder { + private static final long serialVersionUID = 0L; + + // Use MessageTransform.newBuilder() to construct. + private MessageTransform(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private MessageTransform() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new MessageTransform(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_MessageTransform_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_MessageTransform_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.MessageTransform.class, + com.google.pubsub.v1.MessageTransform.Builder.class); + } + + private int transformCase_ = 0; + + @SuppressWarnings("serial") + private java.lang.Object transform_; + + public enum TransformCase + implements + com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + JAVASCRIPT_UDF(2), + TRANSFORM_NOT_SET(0); + private final int value; + + private TransformCase(int value) { + this.value = value; + } + + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static TransformCase valueOf(int value) { + return forNumber(value); + } + + public static TransformCase forNumber(int value) { + switch (value) { + case 2: + return JAVASCRIPT_UDF; + case 0: + return TRANSFORM_NOT_SET; + default: + return null; + } + } + + public int getNumber() { + return this.value; + } + }; + + public TransformCase getTransformCase() { + return TransformCase.forNumber(transformCase_); + } + + public static final int JAVASCRIPT_UDF_FIELD_NUMBER = 2; + + /** + * + * + *
+   * Optional. JavaScript User Defined Function. If multiple JavaScriptUDF's
+   * are specified on a resource, each must have a unique `function_name`.
+   * 
+ * + * + * .google.pubsub.v1.JavaScriptUDF javascript_udf = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the javascriptUdf field is set. + */ + @java.lang.Override + public boolean hasJavascriptUdf() { + return transformCase_ == 2; + } + + /** + * + * + *
+   * Optional. JavaScript User Defined Function. If multiple JavaScriptUDF's
+   * are specified on a resource, each must have a unique `function_name`.
+   * 
+ * + * + * .google.pubsub.v1.JavaScriptUDF javascript_udf = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The javascriptUdf. + */ + @java.lang.Override + public com.google.pubsub.v1.JavaScriptUDF getJavascriptUdf() { + if (transformCase_ == 2) { + return (com.google.pubsub.v1.JavaScriptUDF) transform_; + } + return com.google.pubsub.v1.JavaScriptUDF.getDefaultInstance(); + } + + /** + * + * + *
+   * Optional. JavaScript User Defined Function. If multiple JavaScriptUDF's
+   * are specified on a resource, each must have a unique `function_name`.
+   * 
+ * + * + * .google.pubsub.v1.JavaScriptUDF javascript_udf = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.JavaScriptUDFOrBuilder getJavascriptUdfOrBuilder() { + if (transformCase_ == 2) { + return (com.google.pubsub.v1.JavaScriptUDF) transform_; + } + return com.google.pubsub.v1.JavaScriptUDF.getDefaultInstance(); + } + + public static final int ENABLED_FIELD_NUMBER = 3; + private boolean enabled_ = false; + + /** + * + * + *
+   * Optional. This field is deprecated, use the `disabled` field to disable
+   * transforms.
+   * 
+ * + * bool enabled = 3 [deprecated = true, (.google.api.field_behavior) = OPTIONAL]; + * + * @deprecated google.pubsub.v1.MessageTransform.enabled is deprecated. See + * google/pubsub/v1/pubsub.proto;l=818 + * @return The enabled. + */ + @java.lang.Override + @java.lang.Deprecated + public boolean getEnabled() { + return enabled_; + } + + public static final int DISABLED_FIELD_NUMBER = 4; + private boolean disabled_ = false; + + /** + * + * + *
+   * Optional. If true, the transform is disabled and will not be applied to
+   * messages. Defaults to `false`.
+   * 
+ * + * bool disabled = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The disabled. + */ + @java.lang.Override + public boolean getDisabled() { + return disabled_; + } + + 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 (transformCase_ == 2) { + output.writeMessage(2, (com.google.pubsub.v1.JavaScriptUDF) transform_); + } + if (enabled_ != false) { + output.writeBool(3, enabled_); + } + if (disabled_ != false) { + output.writeBool(4, disabled_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (transformCase_ == 2) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 2, (com.google.pubsub.v1.JavaScriptUDF) transform_); + } + if (enabled_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, enabled_); + } + if (disabled_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, disabled_); + } + 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.pubsub.v1.MessageTransform)) { + return super.equals(obj); + } + com.google.pubsub.v1.MessageTransform other = (com.google.pubsub.v1.MessageTransform) obj; + + if (getEnabled() != other.getEnabled()) return false; + if (getDisabled() != other.getDisabled()) return false; + if (!getTransformCase().equals(other.getTransformCase())) return false; + switch (transformCase_) { + case 2: + if (!getJavascriptUdf().equals(other.getJavascriptUdf())) return false; + break; + case 0: + default: + } + 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) + ENABLED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getEnabled()); + hash = (37 * hash) + DISABLED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getDisabled()); + switch (transformCase_) { + case 2: + hash = (37 * hash) + JAVASCRIPT_UDF_FIELD_NUMBER; + hash = (53 * hash) + getJavascriptUdf().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.MessageTransform parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.MessageTransform parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.MessageTransform parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.MessageTransform 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.pubsub.v1.MessageTransform parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.MessageTransform parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.MessageTransform parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.MessageTransform 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.pubsub.v1.MessageTransform parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.MessageTransform 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.pubsub.v1.MessageTransform parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.MessageTransform 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.pubsub.v1.MessageTransform 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; + } + + /** + * + * + *
+   * All supported message transforms types.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.MessageTransform} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.MessageTransform) + com.google.pubsub.v1.MessageTransformOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_MessageTransform_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_MessageTransform_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.MessageTransform.class, + com.google.pubsub.v1.MessageTransform.Builder.class); + } + + // Construct using com.google.pubsub.v1.MessageTransform.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (javascriptUdfBuilder_ != null) { + javascriptUdfBuilder_.clear(); + } + enabled_ = false; + disabled_ = false; + transformCase_ = 0; + transform_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_MessageTransform_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.MessageTransform getDefaultInstanceForType() { + return com.google.pubsub.v1.MessageTransform.getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.MessageTransform build() { + com.google.pubsub.v1.MessageTransform result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.MessageTransform buildPartial() { + com.google.pubsub.v1.MessageTransform result = + new com.google.pubsub.v1.MessageTransform(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0(com.google.pubsub.v1.MessageTransform result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.enabled_ = enabled_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.disabled_ = disabled_; + } + } + + private void buildPartialOneofs(com.google.pubsub.v1.MessageTransform result) { + result.transformCase_ = transformCase_; + result.transform_ = this.transform_; + if (transformCase_ == 2 && javascriptUdfBuilder_ != null) { + result.transform_ = javascriptUdfBuilder_.build(); + } + } + + @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.pubsub.v1.MessageTransform) { + return mergeFrom((com.google.pubsub.v1.MessageTransform) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.pubsub.v1.MessageTransform other) { + if (other == com.google.pubsub.v1.MessageTransform.getDefaultInstance()) return this; + if (other.getEnabled() != false) { + setEnabled(other.getEnabled()); + } + if (other.getDisabled() != false) { + setDisabled(other.getDisabled()); + } + switch (other.getTransformCase()) { + case JAVASCRIPT_UDF: + { + mergeJavascriptUdf(other.getJavascriptUdf()); + break; + } + case TRANSFORM_NOT_SET: + { + break; + } + } + 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 18: + { + input.readMessage(getJavascriptUdfFieldBuilder().getBuilder(), extensionRegistry); + transformCase_ = 2; + break; + } // case 18 + case 24: + { + enabled_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } // case 24 + case 32: + { + disabled_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } // case 32 + 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 transformCase_ = 0; + private java.lang.Object transform_; + + public TransformCase getTransformCase() { + return TransformCase.forNumber(transformCase_); + } + + public Builder clearTransform() { + transformCase_ = 0; + transform_ = null; + onChanged(); + return this; + } + + private int bitField0_; + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.JavaScriptUDF, + com.google.pubsub.v1.JavaScriptUDF.Builder, + com.google.pubsub.v1.JavaScriptUDFOrBuilder> + javascriptUdfBuilder_; + + /** + * + * + *
+     * Optional. JavaScript User Defined Function. If multiple JavaScriptUDF's
+     * are specified on a resource, each must have a unique `function_name`.
+     * 
+ * + * + * .google.pubsub.v1.JavaScriptUDF javascript_udf = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the javascriptUdf field is set. + */ + @java.lang.Override + public boolean hasJavascriptUdf() { + return transformCase_ == 2; + } + + /** + * + * + *
+     * Optional. JavaScript User Defined Function. If multiple JavaScriptUDF's
+     * are specified on a resource, each must have a unique `function_name`.
+     * 
+ * + * + * .google.pubsub.v1.JavaScriptUDF javascript_udf = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The javascriptUdf. + */ + @java.lang.Override + public com.google.pubsub.v1.JavaScriptUDF getJavascriptUdf() { + if (javascriptUdfBuilder_ == null) { + if (transformCase_ == 2) { + return (com.google.pubsub.v1.JavaScriptUDF) transform_; + } + return com.google.pubsub.v1.JavaScriptUDF.getDefaultInstance(); + } else { + if (transformCase_ == 2) { + return javascriptUdfBuilder_.getMessage(); + } + return com.google.pubsub.v1.JavaScriptUDF.getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. JavaScript User Defined Function. If multiple JavaScriptUDF's
+     * are specified on a resource, each must have a unique `function_name`.
+     * 
+ * + * + * .google.pubsub.v1.JavaScriptUDF javascript_udf = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setJavascriptUdf(com.google.pubsub.v1.JavaScriptUDF value) { + if (javascriptUdfBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + transform_ = value; + onChanged(); + } else { + javascriptUdfBuilder_.setMessage(value); + } + transformCase_ = 2; + return this; + } + + /** + * + * + *
+     * Optional. JavaScript User Defined Function. If multiple JavaScriptUDF's
+     * are specified on a resource, each must have a unique `function_name`.
+     * 
+ * + * + * .google.pubsub.v1.JavaScriptUDF javascript_udf = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setJavascriptUdf(com.google.pubsub.v1.JavaScriptUDF.Builder builderForValue) { + if (javascriptUdfBuilder_ == null) { + transform_ = builderForValue.build(); + onChanged(); + } else { + javascriptUdfBuilder_.setMessage(builderForValue.build()); + } + transformCase_ = 2; + return this; + } + + /** + * + * + *
+     * Optional. JavaScript User Defined Function. If multiple JavaScriptUDF's
+     * are specified on a resource, each must have a unique `function_name`.
+     * 
+ * + * + * .google.pubsub.v1.JavaScriptUDF javascript_udf = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeJavascriptUdf(com.google.pubsub.v1.JavaScriptUDF value) { + if (javascriptUdfBuilder_ == null) { + if (transformCase_ == 2 + && transform_ != com.google.pubsub.v1.JavaScriptUDF.getDefaultInstance()) { + transform_ = + com.google.pubsub.v1.JavaScriptUDF.newBuilder( + (com.google.pubsub.v1.JavaScriptUDF) transform_) + .mergeFrom(value) + .buildPartial(); + } else { + transform_ = value; + } + onChanged(); + } else { + if (transformCase_ == 2) { + javascriptUdfBuilder_.mergeFrom(value); + } else { + javascriptUdfBuilder_.setMessage(value); + } + } + transformCase_ = 2; + return this; + } + + /** + * + * + *
+     * Optional. JavaScript User Defined Function. If multiple JavaScriptUDF's
+     * are specified on a resource, each must have a unique `function_name`.
+     * 
+ * + * + * .google.pubsub.v1.JavaScriptUDF javascript_udf = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearJavascriptUdf() { + if (javascriptUdfBuilder_ == null) { + if (transformCase_ == 2) { + transformCase_ = 0; + transform_ = null; + onChanged(); + } + } else { + if (transformCase_ == 2) { + transformCase_ = 0; + transform_ = null; + } + javascriptUdfBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Optional. JavaScript User Defined Function. If multiple JavaScriptUDF's
+     * are specified on a resource, each must have a unique `function_name`.
+     * 
+ * + * + * .google.pubsub.v1.JavaScriptUDF javascript_udf = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.JavaScriptUDF.Builder getJavascriptUdfBuilder() { + return getJavascriptUdfFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. JavaScript User Defined Function. If multiple JavaScriptUDF's
+     * are specified on a resource, each must have a unique `function_name`.
+     * 
+ * + * + * .google.pubsub.v1.JavaScriptUDF javascript_udf = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.JavaScriptUDFOrBuilder getJavascriptUdfOrBuilder() { + if ((transformCase_ == 2) && (javascriptUdfBuilder_ != null)) { + return javascriptUdfBuilder_.getMessageOrBuilder(); + } else { + if (transformCase_ == 2) { + return (com.google.pubsub.v1.JavaScriptUDF) transform_; + } + return com.google.pubsub.v1.JavaScriptUDF.getDefaultInstance(); + } + } + + /** + * + * + *
+     * Optional. JavaScript User Defined Function. If multiple JavaScriptUDF's
+     * are specified on a resource, each must have a unique `function_name`.
+     * 
+ * + * + * .google.pubsub.v1.JavaScriptUDF javascript_udf = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.JavaScriptUDF, + com.google.pubsub.v1.JavaScriptUDF.Builder, + com.google.pubsub.v1.JavaScriptUDFOrBuilder> + getJavascriptUdfFieldBuilder() { + if (javascriptUdfBuilder_ == null) { + if (!(transformCase_ == 2)) { + transform_ = com.google.pubsub.v1.JavaScriptUDF.getDefaultInstance(); + } + javascriptUdfBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.JavaScriptUDF, + com.google.pubsub.v1.JavaScriptUDF.Builder, + com.google.pubsub.v1.JavaScriptUDFOrBuilder>( + (com.google.pubsub.v1.JavaScriptUDF) transform_, getParentForChildren(), isClean()); + transform_ = null; + } + transformCase_ = 2; + onChanged(); + return javascriptUdfBuilder_; + } + + private boolean enabled_; + + /** + * + * + *
+     * Optional. This field is deprecated, use the `disabled` field to disable
+     * transforms.
+     * 
+ * + * bool enabled = 3 [deprecated = true, (.google.api.field_behavior) = OPTIONAL]; + * + * @deprecated google.pubsub.v1.MessageTransform.enabled is deprecated. See + * google/pubsub/v1/pubsub.proto;l=818 + * @return The enabled. + */ + @java.lang.Override + @java.lang.Deprecated + public boolean getEnabled() { + return enabled_; + } + + /** + * + * + *
+     * Optional. This field is deprecated, use the `disabled` field to disable
+     * transforms.
+     * 
+ * + * bool enabled = 3 [deprecated = true, (.google.api.field_behavior) = OPTIONAL]; + * + * @deprecated google.pubsub.v1.MessageTransform.enabled is deprecated. See + * google/pubsub/v1/pubsub.proto;l=818 + * @param value The enabled to set. + * @return This builder for chaining. + */ + @java.lang.Deprecated + public Builder setEnabled(boolean value) { + + enabled_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. This field is deprecated, use the `disabled` field to disable
+     * transforms.
+     * 
+ * + * bool enabled = 3 [deprecated = true, (.google.api.field_behavior) = OPTIONAL]; + * + * @deprecated google.pubsub.v1.MessageTransform.enabled is deprecated. See + * google/pubsub/v1/pubsub.proto;l=818 + * @return This builder for chaining. + */ + @java.lang.Deprecated + public Builder clearEnabled() { + bitField0_ = (bitField0_ & ~0x00000002); + enabled_ = false; + onChanged(); + return this; + } + + private boolean disabled_; + + /** + * + * + *
+     * Optional. If true, the transform is disabled and will not be applied to
+     * messages. Defaults to `false`.
+     * 
+ * + * bool disabled = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The disabled. + */ + @java.lang.Override + public boolean getDisabled() { + return disabled_; + } + + /** + * + * + *
+     * Optional. If true, the transform is disabled and will not be applied to
+     * messages. Defaults to `false`.
+     * 
+ * + * bool disabled = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The disabled to set. + * @return This builder for chaining. + */ + public Builder setDisabled(boolean value) { + + disabled_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. If true, the transform is disabled and will not be applied to
+     * messages. Defaults to `false`.
+     * 
+ * + * bool disabled = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearDisabled() { + bitField0_ = (bitField0_ & ~0x00000004); + disabled_ = false; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:google.pubsub.v1.MessageTransform) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.MessageTransform) + private static final com.google.pubsub.v1.MessageTransform DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.pubsub.v1.MessageTransform(); + } + + public static com.google.pubsub.v1.MessageTransform getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MessageTransform 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.pubsub.v1.MessageTransform getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/MessageTransformOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/MessageTransformOrBuilder.java new file mode 100644 index 000000000..24c73b06b --- /dev/null +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/MessageTransformOrBuilder.java @@ -0,0 +1,105 @@ +/* + * 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/pubsub/v1/pubsub.proto + +// Protobuf Java Version: 3.25.8 +package com.google.pubsub.v1; + +public interface MessageTransformOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.MessageTransform) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Optional. JavaScript User Defined Function. If multiple JavaScriptUDF's
+   * are specified on a resource, each must have a unique `function_name`.
+   * 
+ * + * + * .google.pubsub.v1.JavaScriptUDF javascript_udf = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the javascriptUdf field is set. + */ + boolean hasJavascriptUdf(); + + /** + * + * + *
+   * Optional. JavaScript User Defined Function. If multiple JavaScriptUDF's
+   * are specified on a resource, each must have a unique `function_name`.
+   * 
+ * + * + * .google.pubsub.v1.JavaScriptUDF javascript_udf = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The javascriptUdf. + */ + com.google.pubsub.v1.JavaScriptUDF getJavascriptUdf(); + + /** + * + * + *
+   * Optional. JavaScript User Defined Function. If multiple JavaScriptUDF's
+   * are specified on a resource, each must have a unique `function_name`.
+   * 
+ * + * + * .google.pubsub.v1.JavaScriptUDF javascript_udf = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.JavaScriptUDFOrBuilder getJavascriptUdfOrBuilder(); + + /** + * + * + *
+   * Optional. This field is deprecated, use the `disabled` field to disable
+   * transforms.
+   * 
+ * + * bool enabled = 3 [deprecated = true, (.google.api.field_behavior) = OPTIONAL]; + * + * @deprecated google.pubsub.v1.MessageTransform.enabled is deprecated. See + * google/pubsub/v1/pubsub.proto;l=818 + * @return The enabled. + */ + @java.lang.Deprecated + boolean getEnabled(); + + /** + * + * + *
+   * Optional. If true, the transform is disabled and will not be applied to
+   * messages. Defaults to `false`.
+   * 
+ * + * bool disabled = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The disabled. + */ + boolean getDisabled(); + + com.google.pubsub.v1.MessageTransform.TransformCase getTransformCase(); +} diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ModifyAckDeadlineRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ModifyAckDeadlineRequest.java index 8348ebf3c..36c66e8e9 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ModifyAckDeadlineRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ModifyAckDeadlineRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ModifyAckDeadlineRequest extends com.google.protobuf.Generate // @@protoc_insertion_point(message_implements:google.pubsub.v1.ModifyAckDeadlineRequest) ModifyAckDeadlineRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use ModifyAckDeadlineRequest.newBuilder() to construct. private ModifyAckDeadlineRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -67,6 +69,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object subscription_ = ""; + /** * * @@ -93,6 +96,7 @@ public java.lang.String getSubscription() { return s; } } + /** * * @@ -125,6 +129,7 @@ public com.google.protobuf.ByteString getSubscriptionBytes() { @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList ackIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); + /** * * @@ -139,6 +144,7 @@ public com.google.protobuf.ByteString getSubscriptionBytes() { public com.google.protobuf.ProtocolStringList getAckIdsList() { return ackIds_; } + /** * * @@ -153,6 +159,7 @@ public com.google.protobuf.ProtocolStringList getAckIdsList() { public int getAckIdsCount() { return ackIds_.size(); } + /** * * @@ -168,6 +175,7 @@ public int getAckIdsCount() { public java.lang.String getAckIds(int index) { return ackIds_.get(index); } + /** * * @@ -186,6 +194,7 @@ public com.google.protobuf.ByteString getAckIdsBytes(int index) { public static final int ACK_DEADLINE_SECONDS_FIELD_NUMBER = 3; private int ackDeadlineSeconds_ = 0; + /** * * @@ -197,7 +206,8 @@ public com.google.protobuf.ByteString getAckIdsBytes(int index) { * delivery to another subscriber client. This typically results in an * increase in the rate of message redeliveries (that is, duplicates). * The minimum deadline you can specify is 0 seconds. - * The maximum deadline you can specify is 600 seconds (10 minutes). + * The maximum deadline you can specify in a single request is 600 seconds + * (10 minutes). * * * int32 ack_deadline_seconds = 3 [(.google.api.field_behavior) = REQUIRED]; @@ -393,6 +403,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -611,6 +622,7 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object subscription_ = ""; + /** * * @@ -636,6 +648,7 @@ public java.lang.String getSubscription() { return (java.lang.String) ref; } } + /** * * @@ -661,6 +674,7 @@ public com.google.protobuf.ByteString getSubscriptionBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -685,6 +699,7 @@ public Builder setSubscription(java.lang.String value) { onChanged(); return this; } + /** * * @@ -705,6 +720,7 @@ public Builder clearSubscription() { onChanged(); return this; } + /** * * @@ -740,6 +756,7 @@ private void ensureAckIdsIsMutable() { } bitField0_ |= 0x00000002; } + /** * * @@ -755,6 +772,7 @@ public com.google.protobuf.ProtocolStringList getAckIdsList() { ackIds_.makeImmutable(); return ackIds_; } + /** * * @@ -769,6 +787,7 @@ public com.google.protobuf.ProtocolStringList getAckIdsList() { public int getAckIdsCount() { return ackIds_.size(); } + /** * * @@ -784,6 +803,7 @@ public int getAckIdsCount() { public java.lang.String getAckIds(int index) { return ackIds_.get(index); } + /** * * @@ -799,6 +819,7 @@ public java.lang.String getAckIds(int index) { public com.google.protobuf.ByteString getAckIdsBytes(int index) { return ackIds_.getByteString(index); } + /** * * @@ -822,6 +843,7 @@ public Builder setAckIds(int index, java.lang.String value) { onChanged(); return this; } + /** * * @@ -844,6 +866,7 @@ public Builder addAckIds(java.lang.String value) { onChanged(); return this; } + /** * * @@ -863,6 +886,7 @@ public Builder addAllAckIds(java.lang.Iterable values) { onChanged(); return this; } + /** * * @@ -881,6 +905,7 @@ public Builder clearAckIds() { onChanged(); return this; } + /** * * @@ -906,6 +931,7 @@ public Builder addAckIdsBytes(com.google.protobuf.ByteString value) { } private int ackDeadlineSeconds_; + /** * * @@ -917,7 +943,8 @@ public Builder addAckIdsBytes(com.google.protobuf.ByteString value) { * delivery to another subscriber client. This typically results in an * increase in the rate of message redeliveries (that is, duplicates). * The minimum deadline you can specify is 0 seconds. - * The maximum deadline you can specify is 600 seconds (10 minutes). + * The maximum deadline you can specify in a single request is 600 seconds + * (10 minutes). * * * int32 ack_deadline_seconds = 3 [(.google.api.field_behavior) = REQUIRED]; @@ -928,6 +955,7 @@ public Builder addAckIdsBytes(com.google.protobuf.ByteString value) { public int getAckDeadlineSeconds() { return ackDeadlineSeconds_; } + /** * * @@ -939,7 +967,8 @@ public int getAckDeadlineSeconds() { * delivery to another subscriber client. This typically results in an * increase in the rate of message redeliveries (that is, duplicates). * The minimum deadline you can specify is 0 seconds. - * The maximum deadline you can specify is 600 seconds (10 minutes). + * The maximum deadline you can specify in a single request is 600 seconds + * (10 minutes). * * * int32 ack_deadline_seconds = 3 [(.google.api.field_behavior) = REQUIRED]; @@ -954,6 +983,7 @@ public Builder setAckDeadlineSeconds(int value) { onChanged(); return this; } + /** * * @@ -965,7 +995,8 @@ public Builder setAckDeadlineSeconds(int value) { * delivery to another subscriber client. This typically results in an * increase in the rate of message redeliveries (that is, duplicates). * The minimum deadline you can specify is 0 seconds. - * The maximum deadline you can specify is 600 seconds (10 minutes). + * The maximum deadline you can specify in a single request is 600 seconds + * (10 minutes). * * * int32 ack_deadline_seconds = 3 [(.google.api.field_behavior) = REQUIRED]; diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ModifyAckDeadlineRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ModifyAckDeadlineRequestOrBuilder.java index 8c0843c7d..28da06bee 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ModifyAckDeadlineRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ModifyAckDeadlineRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ModifyAckDeadlineRequestOrBuilder @@ -38,6 +39,7 @@ public interface ModifyAckDeadlineRequestOrBuilder * @return The subscription. */ java.lang.String getSubscription(); + /** * * @@ -66,6 +68,7 @@ public interface ModifyAckDeadlineRequestOrBuilder * @return A list containing the ackIds. */ java.util.List getAckIdsList(); + /** * * @@ -78,6 +81,7 @@ public interface ModifyAckDeadlineRequestOrBuilder * @return The count of ackIds. */ int getAckIdsCount(); + /** * * @@ -91,6 +95,7 @@ public interface ModifyAckDeadlineRequestOrBuilder * @return The ackIds at the given index. */ java.lang.String getAckIds(int index); + /** * * @@ -116,7 +121,8 @@ public interface ModifyAckDeadlineRequestOrBuilder * delivery to another subscriber client. This typically results in an * increase in the rate of message redeliveries (that is, duplicates). * The minimum deadline you can specify is 0 seconds. - * The maximum deadline you can specify is 600 seconds (10 minutes). + * The maximum deadline you can specify in a single request is 600 seconds + * (10 minutes). * * * int32 ack_deadline_seconds = 3 [(.google.api.field_behavior) = REQUIRED]; diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ModifyPushConfigRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ModifyPushConfigRequest.java index a1b5050ee..300fe08dd 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ModifyPushConfigRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ModifyPushConfigRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ModifyPushConfigRequest extends com.google.protobuf.Generated // @@protoc_insertion_point(message_implements:google.pubsub.v1.ModifyPushConfigRequest) ModifyPushConfigRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use ModifyPushConfigRequest.newBuilder() to construct. private ModifyPushConfigRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -62,10 +64,12 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { com.google.pubsub.v1.ModifyPushConfigRequest.Builder.class); } + private int bitField0_; public static final int SUBSCRIPTION_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object subscription_ = ""; + /** * * @@ -92,6 +96,7 @@ public java.lang.String getSubscription() { return s; } } + /** * * @@ -121,6 +126,7 @@ public com.google.protobuf.ByteString getSubscriptionBytes() { public static final int PUSH_CONFIG_FIELD_NUMBER = 2; private com.google.pubsub.v1.PushConfig pushConfig_; + /** * * @@ -140,8 +146,9 @@ public com.google.protobuf.ByteString getSubscriptionBytes() { */ @java.lang.Override public boolean hasPushConfig() { - return pushConfig_ != null; + return ((bitField0_ & 0x00000001) != 0); } + /** * * @@ -163,6 +170,7 @@ public boolean hasPushConfig() { public com.google.pubsub.v1.PushConfig getPushConfig() { return pushConfig_ == null ? com.google.pubsub.v1.PushConfig.getDefaultInstance() : pushConfig_; } + /** * * @@ -200,7 +208,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(subscription_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, subscription_); } - if (pushConfig_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(2, getPushConfig()); } getUnknownFields().writeTo(output); @@ -215,7 +223,7 @@ public int getSerializedSize() { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(subscription_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, subscription_); } - if (pushConfig_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getPushConfig()); } size += getUnknownFields().getSerializedSize(); @@ -356,6 +364,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -385,10 +394,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } // Construct using com.google.pubsub.v1.ModifyPushConfigRequest.newBuilder() - private Builder() {} + private Builder() { + maybeForceBuilderInitialization(); + } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getPushConfigFieldBuilder(); + } } @java.lang.Override @@ -440,9 +458,12 @@ private void buildPartial0(com.google.pubsub.v1.ModifyPushConfigRequest result) if (((from_bitField0_ & 0x00000001) != 0)) { result.subscription_ = subscription_; } + int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000002) != 0)) { result.pushConfig_ = pushConfigBuilder_ == null ? pushConfig_ : pushConfigBuilder_.build(); + to_bitField0_ |= 0x00000001; } + result.bitField0_ |= to_bitField0_; } @java.lang.Override @@ -556,6 +577,7 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object subscription_ = ""; + /** * * @@ -581,6 +603,7 @@ public java.lang.String getSubscription() { return (java.lang.String) ref; } } + /** * * @@ -606,6 +629,7 @@ public com.google.protobuf.ByteString getSubscriptionBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -630,6 +654,7 @@ public Builder setSubscription(java.lang.String value) { onChanged(); return this; } + /** * * @@ -650,6 +675,7 @@ public Builder clearSubscription() { onChanged(); return this; } + /** * * @@ -682,6 +708,7 @@ public Builder setSubscriptionBytes(com.google.protobuf.ByteString value) { com.google.pubsub.v1.PushConfig.Builder, com.google.pubsub.v1.PushConfigOrBuilder> pushConfigBuilder_; + /** * * @@ -702,6 +729,7 @@ public Builder setSubscriptionBytes(com.google.protobuf.ByteString value) { public boolean hasPushConfig() { return ((bitField0_ & 0x00000002) != 0); } + /** * * @@ -728,6 +756,7 @@ public com.google.pubsub.v1.PushConfig getPushConfig() { return pushConfigBuilder_.getMessage(); } } + /** * * @@ -756,6 +785,7 @@ public Builder setPushConfig(com.google.pubsub.v1.PushConfig value) { onChanged(); return this; } + /** * * @@ -781,6 +811,7 @@ public Builder setPushConfig(com.google.pubsub.v1.PushConfig.Builder builderForV onChanged(); return this; } + /** * * @@ -808,10 +839,13 @@ public Builder mergePushConfig(com.google.pubsub.v1.PushConfig value) { } else { pushConfigBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000002; - onChanged(); + if (pushConfig_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } return this; } + /** * * @@ -837,6 +871,7 @@ public Builder clearPushConfig() { onChanged(); return this; } + /** * * @@ -857,6 +892,7 @@ public com.google.pubsub.v1.PushConfig.Builder getPushConfigBuilder() { onChanged(); return getPushConfigFieldBuilder().getBuilder(); } + /** * * @@ -881,6 +917,7 @@ public com.google.pubsub.v1.PushConfigOrBuilder getPushConfigOrBuilder() { : pushConfig_; } } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ModifyPushConfigRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ModifyPushConfigRequestOrBuilder.java index 96d5ca4c1..55cd8ab49 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ModifyPushConfigRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ModifyPushConfigRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ModifyPushConfigRequestOrBuilder @@ -38,6 +39,7 @@ public interface ModifyPushConfigRequestOrBuilder * @return The subscription. */ java.lang.String getSubscription(); + /** * * @@ -72,6 +74,7 @@ public interface ModifyPushConfigRequestOrBuilder * @return Whether the pushConfig field is set. */ boolean hasPushConfig(); + /** * * @@ -90,6 +93,7 @@ public interface ModifyPushConfigRequestOrBuilder * @return The pushConfig. */ com.google.pubsub.v1.PushConfig getPushConfig(); + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PlatformLogsSettings.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PlatformLogsSettings.java new file mode 100644 index 000000000..6252ee593 --- /dev/null +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PlatformLogsSettings.java @@ -0,0 +1,847 @@ +/* + * 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/pubsub/v1/pubsub.proto + +// Protobuf Java Version: 3.25.8 +package com.google.pubsub.v1; + +/** + * + * + *
+ * Settings for Platform Logs produced by Pub/Sub.
+ * 
+ * + * Protobuf type {@code google.pubsub.v1.PlatformLogsSettings} + */ +public final class PlatformLogsSettings extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.PlatformLogsSettings) + PlatformLogsSettingsOrBuilder { + private static final long serialVersionUID = 0L; + + // Use PlatformLogsSettings.newBuilder() to construct. + private PlatformLogsSettings(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private PlatformLogsSettings() { + severity_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new PlatformLogsSettings(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_PlatformLogsSettings_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_PlatformLogsSettings_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.PlatformLogsSettings.class, + com.google.pubsub.v1.PlatformLogsSettings.Builder.class); + } + + /** + * + * + *
+   * Severity levels of Platform Logs.
+   * 
+ * + * Protobuf enum {@code google.pubsub.v1.PlatformLogsSettings.Severity} + */ + public enum Severity implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Default value. Logs level is unspecified. Logs will be disabled.
+     * 
+ * + * SEVERITY_UNSPECIFIED = 0; + */ + SEVERITY_UNSPECIFIED(0), + /** + * + * + *
+     * Logs will be disabled.
+     * 
+ * + * DISABLED = 1; + */ + DISABLED(1), + /** + * + * + *
+     * Debug logs and higher-severity logs will be written.
+     * 
+ * + * DEBUG = 2; + */ + DEBUG(2), + /** + * + * + *
+     * Info logs and higher-severity logs will be written.
+     * 
+ * + * INFO = 3; + */ + INFO(3), + /** + * + * + *
+     * Warning logs and higher-severity logs will be written.
+     * 
+ * + * WARNING = 4; + */ + WARNING(4), + /** + * + * + *
+     * Only error logs will be written.
+     * 
+ * + * ERROR = 5; + */ + ERROR(5), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+     * Default value. Logs level is unspecified. Logs will be disabled.
+     * 
+ * + * SEVERITY_UNSPECIFIED = 0; + */ + public static final int SEVERITY_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+     * Logs will be disabled.
+     * 
+ * + * DISABLED = 1; + */ + public static final int DISABLED_VALUE = 1; + + /** + * + * + *
+     * Debug logs and higher-severity logs will be written.
+     * 
+ * + * DEBUG = 2; + */ + public static final int DEBUG_VALUE = 2; + + /** + * + * + *
+     * Info logs and higher-severity logs will be written.
+     * 
+ * + * INFO = 3; + */ + public static final int INFO_VALUE = 3; + + /** + * + * + *
+     * Warning logs and higher-severity logs will be written.
+     * 
+ * + * WARNING = 4; + */ + public static final int WARNING_VALUE = 4; + + /** + * + * + *
+     * Only error logs will be written.
+     * 
+ * + * ERROR = 5; + */ + public static final int ERROR_VALUE = 5; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static Severity valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static Severity forNumber(int value) { + switch (value) { + case 0: + return SEVERITY_UNSPECIFIED; + case 1: + return DISABLED; + case 2: + return DEBUG; + case 3: + return INFO; + case 4: + return WARNING; + case 5: + return ERROR; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public Severity findValueByNumber(int number) { + return Severity.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.pubsub.v1.PlatformLogsSettings.getDescriptor().getEnumTypes().get(0); + } + + private static final Severity[] VALUES = values(); + + public static Severity valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private Severity(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.pubsub.v1.PlatformLogsSettings.Severity) + } + + public static final int SEVERITY_FIELD_NUMBER = 1; + private int severity_ = 0; + + /** + * + * + *
+   * Optional. The minimum severity level of Platform Logs that will be written.
+   * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings.Severity severity = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The enum numeric value on the wire for severity. + */ + @java.lang.Override + public int getSeverityValue() { + return severity_; + } + + /** + * + * + *
+   * Optional. The minimum severity level of Platform Logs that will be written.
+   * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings.Severity severity = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The severity. + */ + @java.lang.Override + public com.google.pubsub.v1.PlatformLogsSettings.Severity getSeverity() { + com.google.pubsub.v1.PlatformLogsSettings.Severity result = + com.google.pubsub.v1.PlatformLogsSettings.Severity.forNumber(severity_); + return result == null + ? com.google.pubsub.v1.PlatformLogsSettings.Severity.UNRECOGNIZED + : result; + } + + 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 (severity_ + != com.google.pubsub.v1.PlatformLogsSettings.Severity.SEVERITY_UNSPECIFIED.getNumber()) { + output.writeEnum(1, severity_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (severity_ + != com.google.pubsub.v1.PlatformLogsSettings.Severity.SEVERITY_UNSPECIFIED.getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, severity_); + } + 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.pubsub.v1.PlatformLogsSettings)) { + return super.equals(obj); + } + com.google.pubsub.v1.PlatformLogsSettings other = + (com.google.pubsub.v1.PlatformLogsSettings) obj; + + if (severity_ != other.severity_) 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) + SEVERITY_FIELD_NUMBER; + hash = (53 * hash) + severity_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.PlatformLogsSettings parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.PlatformLogsSettings parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.PlatformLogsSettings parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.PlatformLogsSettings 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.pubsub.v1.PlatformLogsSettings parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.PlatformLogsSettings parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.PlatformLogsSettings parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.PlatformLogsSettings 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.pubsub.v1.PlatformLogsSettings parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.PlatformLogsSettings 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.pubsub.v1.PlatformLogsSettings parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.PlatformLogsSettings 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.pubsub.v1.PlatformLogsSettings 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; + } + + /** + * + * + *
+   * Settings for Platform Logs produced by Pub/Sub.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.PlatformLogsSettings} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.PlatformLogsSettings) + com.google.pubsub.v1.PlatformLogsSettingsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_PlatformLogsSettings_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_PlatformLogsSettings_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.PlatformLogsSettings.class, + com.google.pubsub.v1.PlatformLogsSettings.Builder.class); + } + + // Construct using com.google.pubsub.v1.PlatformLogsSettings.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + severity_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_PlatformLogsSettings_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.PlatformLogsSettings getDefaultInstanceForType() { + return com.google.pubsub.v1.PlatformLogsSettings.getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.PlatformLogsSettings build() { + com.google.pubsub.v1.PlatformLogsSettings result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.PlatformLogsSettings buildPartial() { + com.google.pubsub.v1.PlatformLogsSettings result = + new com.google.pubsub.v1.PlatformLogsSettings(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.pubsub.v1.PlatformLogsSettings result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.severity_ = severity_; + } + } + + @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.pubsub.v1.PlatformLogsSettings) { + return mergeFrom((com.google.pubsub.v1.PlatformLogsSettings) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.pubsub.v1.PlatformLogsSettings other) { + if (other == com.google.pubsub.v1.PlatformLogsSettings.getDefaultInstance()) return this; + if (other.severity_ != 0) { + setSeverityValue(other.getSeverityValue()); + } + 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: + { + severity_ = input.readEnum(); + 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 severity_ = 0; + + /** + * + * + *
+     * Optional. The minimum severity level of Platform Logs that will be written.
+     * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings.Severity severity = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The enum numeric value on the wire for severity. + */ + @java.lang.Override + public int getSeverityValue() { + return severity_; + } + + /** + * + * + *
+     * Optional. The minimum severity level of Platform Logs that will be written.
+     * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings.Severity severity = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @param value The enum numeric value on the wire for severity to set. + * @return This builder for chaining. + */ + public Builder setSeverityValue(int value) { + severity_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The minimum severity level of Platform Logs that will be written.
+     * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings.Severity severity = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The severity. + */ + @java.lang.Override + public com.google.pubsub.v1.PlatformLogsSettings.Severity getSeverity() { + com.google.pubsub.v1.PlatformLogsSettings.Severity result = + com.google.pubsub.v1.PlatformLogsSettings.Severity.forNumber(severity_); + return result == null + ? com.google.pubsub.v1.PlatformLogsSettings.Severity.UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Optional. The minimum severity level of Platform Logs that will be written.
+     * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings.Severity severity = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @param value The severity to set. + * @return This builder for chaining. + */ + public Builder setSeverity(com.google.pubsub.v1.PlatformLogsSettings.Severity value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + severity_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The minimum severity level of Platform Logs that will be written.
+     * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings.Severity severity = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return This builder for chaining. + */ + public Builder clearSeverity() { + bitField0_ = (bitField0_ & ~0x00000001); + severity_ = 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.pubsub.v1.PlatformLogsSettings) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.PlatformLogsSettings) + private static final com.google.pubsub.v1.PlatformLogsSettings DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.pubsub.v1.PlatformLogsSettings(); + } + + public static com.google.pubsub.v1.PlatformLogsSettings getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PlatformLogsSettings 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.pubsub.v1.PlatformLogsSettings getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PlatformLogsSettingsOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PlatformLogsSettingsOrBuilder.java new file mode 100644 index 000000000..967517e68 --- /dev/null +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PlatformLogsSettingsOrBuilder.java @@ -0,0 +1,56 @@ +/* + * 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/pubsub/v1/pubsub.proto + +// Protobuf Java Version: 3.25.8 +package com.google.pubsub.v1; + +public interface PlatformLogsSettingsOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.PlatformLogsSettings) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Optional. The minimum severity level of Platform Logs that will be written.
+   * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings.Severity severity = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The enum numeric value on the wire for severity. + */ + int getSeverityValue(); + + /** + * + * + *
+   * Optional. The minimum severity level of Platform Logs that will be written.
+   * 
+ * + * + * .google.pubsub.v1.PlatformLogsSettings.Severity severity = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The severity. + */ + com.google.pubsub.v1.PlatformLogsSettings.Severity getSeverity(); +} diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ProjectName.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ProjectName.java index d04475ab0..4079c54b5 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ProjectName.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ProjectName.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublishRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublishRequest.java index 2268fc162..6f9f3ecf5 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublishRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublishRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class PublishRequest extends com.google.protobuf.GeneratedMessageV3 // @@protoc_insertion_point(message_implements:google.pubsub.v1.PublishRequest) PublishRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use PublishRequest.newBuilder() to construct. private PublishRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -67,16 +69,17 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object topic_ = ""; + /** * * *
-   * Required. The messages in the request will be published on this topic.
-   * Format is `projects/{project}/topics/{topic}`.
+   * Required. Identifier. The messages in the request will be published on this
+   * topic. Format is `projects/{project}/topics/{topic}`.
    * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The topic. @@ -93,16 +96,17 @@ public java.lang.String getTopic() { return s; } } + /** * * *
-   * Required. The messages in the request will be published on this topic.
-   * Format is `projects/{project}/topics/{topic}`.
+   * Required. Identifier. The messages in the request will be published on this
+   * topic. Format is `projects/{project}/topics/{topic}`.
    * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for topic. @@ -124,6 +128,7 @@ public com.google.protobuf.ByteString getTopicBytes() { @SuppressWarnings("serial") private java.util.List messages_; + /** * * @@ -139,6 +144,7 @@ public com.google.protobuf.ByteString getTopicBytes() { public java.util.List getMessagesList() { return messages_; } + /** * * @@ -155,6 +161,7 @@ public java.util.List getMessagesList() { getMessagesOrBuilderList() { return messages_; } + /** * * @@ -170,6 +177,7 @@ public java.util.List getMessagesList() { public int getMessagesCount() { return messages_.size(); } + /** * * @@ -185,6 +193,7 @@ public int getMessagesCount() { public com.google.pubsub.v1.PubsubMessage getMessages(int index) { return messages_.get(index); } + /** * * @@ -369,6 +378,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -611,16 +621,17 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object topic_ = ""; + /** * * *
-     * Required. The messages in the request will be published on this topic.
-     * Format is `projects/{project}/topics/{topic}`.
+     * Required. Identifier. The messages in the request will be published on this
+     * topic. Format is `projects/{project}/topics/{topic}`.
      * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The topic. @@ -636,16 +647,17 @@ public java.lang.String getTopic() { return (java.lang.String) ref; } } + /** * * *
-     * Required. The messages in the request will be published on this topic.
-     * Format is `projects/{project}/topics/{topic}`.
+     * Required. Identifier. The messages in the request will be published on this
+     * topic. Format is `projects/{project}/topics/{topic}`.
      * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for topic. @@ -661,16 +673,17 @@ public com.google.protobuf.ByteString getTopicBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * Required. The messages in the request will be published on this topic.
-     * Format is `projects/{project}/topics/{topic}`.
+     * Required. Identifier. The messages in the request will be published on this
+     * topic. Format is `projects/{project}/topics/{topic}`.
      * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The topic to set. @@ -685,16 +698,17 @@ public Builder setTopic(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * Required. The messages in the request will be published on this topic.
-     * Format is `projects/{project}/topics/{topic}`.
+     * Required. Identifier. The messages in the request will be published on this
+     * topic. Format is `projects/{project}/topics/{topic}`.
      * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return This builder for chaining. @@ -705,16 +719,17 @@ public Builder clearTopic() { onChanged(); return this; } + /** * * *
-     * Required. The messages in the request will be published on this topic.
-     * Format is `projects/{project}/topics/{topic}`.
+     * Required. Identifier. The messages in the request will be published on this
+     * topic. Format is `projects/{project}/topics/{topic}`.
      * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @param value The bytes for topic to set. @@ -765,6 +780,7 @@ public java.util.List getMessagesList() { return messagesBuilder_.getMessageList(); } } + /** * * @@ -783,6 +799,7 @@ public int getMessagesCount() { return messagesBuilder_.getCount(); } } + /** * * @@ -801,6 +818,7 @@ public com.google.pubsub.v1.PubsubMessage getMessages(int index) { return messagesBuilder_.getMessage(index); } } + /** * * @@ -825,6 +843,7 @@ public Builder setMessages(int index, com.google.pubsub.v1.PubsubMessage value) } return this; } + /** * * @@ -847,6 +866,7 @@ public Builder setMessages( } return this; } + /** * * @@ -871,6 +891,7 @@ public Builder addMessages(com.google.pubsub.v1.PubsubMessage value) { } return this; } + /** * * @@ -895,6 +916,7 @@ public Builder addMessages(int index, com.google.pubsub.v1.PubsubMessage value) } return this; } + /** * * @@ -916,6 +938,7 @@ public Builder addMessages(com.google.pubsub.v1.PubsubMessage.Builder builderFor } return this; } + /** * * @@ -938,6 +961,7 @@ public Builder addMessages( } return this; } + /** * * @@ -960,6 +984,7 @@ public Builder addAllMessages( } return this; } + /** * * @@ -981,6 +1006,7 @@ public Builder clearMessages() { } return this; } + /** * * @@ -1002,6 +1028,7 @@ public Builder removeMessages(int index) { } return this; } + /** * * @@ -1016,6 +1043,7 @@ public Builder removeMessages(int index) { public com.google.pubsub.v1.PubsubMessage.Builder getMessagesBuilder(int index) { return getMessagesFieldBuilder().getBuilder(index); } + /** * * @@ -1034,6 +1062,7 @@ public com.google.pubsub.v1.PubsubMessageOrBuilder getMessagesOrBuilder(int inde return messagesBuilder_.getMessageOrBuilder(index); } } + /** * * @@ -1053,6 +1082,7 @@ public com.google.pubsub.v1.PubsubMessageOrBuilder getMessagesOrBuilder(int inde return java.util.Collections.unmodifiableList(messages_); } } + /** * * @@ -1068,6 +1098,7 @@ public com.google.pubsub.v1.PubsubMessage.Builder addMessagesBuilder() { return getMessagesFieldBuilder() .addBuilder(com.google.pubsub.v1.PubsubMessage.getDefaultInstance()); } + /** * * @@ -1083,6 +1114,7 @@ public com.google.pubsub.v1.PubsubMessage.Builder addMessagesBuilder(int index) return getMessagesFieldBuilder() .addBuilder(index, com.google.pubsub.v1.PubsubMessage.getDefaultInstance()); } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublishRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublishRequestOrBuilder.java index a0b5cde08..c3d8e7a17 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublishRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublishRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface PublishRequestOrBuilder @@ -27,27 +28,28 @@ public interface PublishRequestOrBuilder * * *
-   * Required. The messages in the request will be published on this topic.
-   * Format is `projects/{project}/topics/{topic}`.
+   * Required. Identifier. The messages in the request will be published on this
+   * topic. Format is `projects/{project}/topics/{topic}`.
    * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The topic. */ java.lang.String getTopic(); + /** * * *
-   * Required. The messages in the request will be published on this topic.
-   * Format is `projects/{project}/topics/{topic}`.
+   * Required. Identifier. The messages in the request will be published on this
+   * topic. Format is `projects/{project}/topics/{topic}`.
    * 
* * - * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER, (.google.api.resource_reference) = { ... } * * * @return The bytes for topic. @@ -66,6 +68,7 @@ public interface PublishRequestOrBuilder * */ java.util.List getMessagesList(); + /** * * @@ -78,6 +81,7 @@ public interface PublishRequestOrBuilder * */ com.google.pubsub.v1.PubsubMessage getMessages(int index); + /** * * @@ -90,6 +94,7 @@ public interface PublishRequestOrBuilder * */ int getMessagesCount(); + /** * * @@ -102,6 +107,7 @@ public interface PublishRequestOrBuilder * */ java.util.List getMessagesOrBuilderList(); + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublishResponse.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublishResponse.java index 0a0905e94..f1a59cbb6 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublishResponse.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublishResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class PublishResponse extends com.google.protobuf.GeneratedMessageV // @@protoc_insertion_point(message_implements:google.pubsub.v1.PublishResponse) PublishResponseOrBuilder { private static final long serialVersionUID = 0L; + // Use PublishResponse.newBuilder() to construct. private PublishResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -67,48 +69,51 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList messageIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); + /** * * *
-   * The server-assigned ID of each published message, in the same order as
-   * the messages in the request. IDs are guaranteed to be unique within
-   * the topic.
+   * Optional. The server-assigned ID of each published message, in the same
+   * order as the messages in the request. IDs are guaranteed to be unique
+   * within the topic.
    * 
* - * repeated string message_ids = 1; + * repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the messageIds. */ public com.google.protobuf.ProtocolStringList getMessageIdsList() { return messageIds_; } + /** * * *
-   * The server-assigned ID of each published message, in the same order as
-   * the messages in the request. IDs are guaranteed to be unique within
-   * the topic.
+   * Optional. The server-assigned ID of each published message, in the same
+   * order as the messages in the request. IDs are guaranteed to be unique
+   * within the topic.
    * 
* - * repeated string message_ids = 1; + * repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of messageIds. */ public int getMessageIdsCount() { return messageIds_.size(); } + /** * * *
-   * The server-assigned ID of each published message, in the same order as
-   * the messages in the request. IDs are guaranteed to be unique within
-   * the topic.
+   * Optional. The server-assigned ID of each published message, in the same
+   * order as the messages in the request. IDs are guaranteed to be unique
+   * within the topic.
    * 
* - * repeated string message_ids = 1; + * repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The messageIds at the given index. @@ -116,16 +121,17 @@ public int getMessageIdsCount() { public java.lang.String getMessageIds(int index) { return messageIds_.get(index); } + /** * * *
-   * The server-assigned ID of each published message, in the same order as
-   * the messages in the request. IDs are guaranteed to be unique within
-   * the topic.
+   * Optional. The server-assigned ID of each published message, in the same
+   * order as the messages in the request. IDs are guaranteed to be unique
+   * within the topic.
    * 
* - * repeated string message_ids = 1; + * repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the messageIds at the given index. @@ -298,6 +304,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -495,16 +502,17 @@ private void ensureMessageIdsIsMutable() { } bitField0_ |= 0x00000001; } + /** * * *
-     * The server-assigned ID of each published message, in the same order as
-     * the messages in the request. IDs are guaranteed to be unique within
-     * the topic.
+     * Optional. The server-assigned ID of each published message, in the same
+     * order as the messages in the request. IDs are guaranteed to be unique
+     * within the topic.
      * 
* - * repeated string message_ids = 1; + * repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the messageIds. */ @@ -512,32 +520,34 @@ public com.google.protobuf.ProtocolStringList getMessageIdsList() { messageIds_.makeImmutable(); return messageIds_; } + /** * * *
-     * The server-assigned ID of each published message, in the same order as
-     * the messages in the request. IDs are guaranteed to be unique within
-     * the topic.
+     * Optional. The server-assigned ID of each published message, in the same
+     * order as the messages in the request. IDs are guaranteed to be unique
+     * within the topic.
      * 
* - * repeated string message_ids = 1; + * repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of messageIds. */ public int getMessageIdsCount() { return messageIds_.size(); } + /** * * *
-     * The server-assigned ID of each published message, in the same order as
-     * the messages in the request. IDs are guaranteed to be unique within
-     * the topic.
+     * Optional. The server-assigned ID of each published message, in the same
+     * order as the messages in the request. IDs are guaranteed to be unique
+     * within the topic.
      * 
* - * repeated string message_ids = 1; + * repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The messageIds at the given index. @@ -545,16 +555,17 @@ public int getMessageIdsCount() { public java.lang.String getMessageIds(int index) { return messageIds_.get(index); } + /** * * *
-     * The server-assigned ID of each published message, in the same order as
-     * the messages in the request. IDs are guaranteed to be unique within
-     * the topic.
+     * Optional. The server-assigned ID of each published message, in the same
+     * order as the messages in the request. IDs are guaranteed to be unique
+     * within the topic.
      * 
* - * repeated string message_ids = 1; + * repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the messageIds at the given index. @@ -562,16 +573,17 @@ public java.lang.String getMessageIds(int index) { public com.google.protobuf.ByteString getMessageIdsBytes(int index) { return messageIds_.getByteString(index); } + /** * * *
-     * The server-assigned ID of each published message, in the same order as
-     * the messages in the request. IDs are guaranteed to be unique within
-     * the topic.
+     * Optional. The server-assigned ID of each published message, in the same
+     * order as the messages in the request. IDs are guaranteed to be unique
+     * within the topic.
      * 
* - * repeated string message_ids = 1; + * repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index to set the value at. * @param value The messageIds to set. @@ -587,16 +599,17 @@ public Builder setMessageIds(int index, java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The server-assigned ID of each published message, in the same order as
-     * the messages in the request. IDs are guaranteed to be unique within
-     * the topic.
+     * Optional. The server-assigned ID of each published message, in the same
+     * order as the messages in the request. IDs are guaranteed to be unique
+     * within the topic.
      * 
* - * repeated string message_ids = 1; + * repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The messageIds to add. * @return This builder for chaining. @@ -611,16 +624,17 @@ public Builder addMessageIds(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The server-assigned ID of each published message, in the same order as
-     * the messages in the request. IDs are guaranteed to be unique within
-     * the topic.
+     * Optional. The server-assigned ID of each published message, in the same
+     * order as the messages in the request. IDs are guaranteed to be unique
+     * within the topic.
      * 
* - * repeated string message_ids = 1; + * repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param values The messageIds to add. * @return This builder for chaining. @@ -632,16 +646,17 @@ public Builder addAllMessageIds(java.lang.Iterable values) { onChanged(); return this; } + /** * * *
-     * The server-assigned ID of each published message, in the same order as
-     * the messages in the request. IDs are guaranteed to be unique within
-     * the topic.
+     * Optional. The server-assigned ID of each published message, in the same
+     * order as the messages in the request. IDs are guaranteed to be unique
+     * within the topic.
      * 
* - * repeated string message_ids = 1; + * repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -652,16 +667,17 @@ public Builder clearMessageIds() { onChanged(); return this; } + /** * * *
-     * The server-assigned ID of each published message, in the same order as
-     * the messages in the request. IDs are guaranteed to be unique within
-     * the topic.
+     * Optional. The server-assigned ID of each published message, in the same
+     * order as the messages in the request. IDs are guaranteed to be unique
+     * within the topic.
      * 
* - * repeated string message_ids = 1; + * repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes of the messageIds to add. * @return This builder for chaining. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublishResponseOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublishResponseOrBuilder.java index 7d6f78725..6ae74fb82 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublishResponseOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PublishResponseOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface PublishResponseOrBuilder @@ -27,55 +28,58 @@ public interface PublishResponseOrBuilder * * *
-   * The server-assigned ID of each published message, in the same order as
-   * the messages in the request. IDs are guaranteed to be unique within
-   * the topic.
+   * Optional. The server-assigned ID of each published message, in the same
+   * order as the messages in the request. IDs are guaranteed to be unique
+   * within the topic.
    * 
* - * repeated string message_ids = 1; + * repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the messageIds. */ java.util.List getMessageIdsList(); + /** * * *
-   * The server-assigned ID of each published message, in the same order as
-   * the messages in the request. IDs are guaranteed to be unique within
-   * the topic.
+   * Optional. The server-assigned ID of each published message, in the same
+   * order as the messages in the request. IDs are guaranteed to be unique
+   * within the topic.
    * 
* - * repeated string message_ids = 1; + * repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of messageIds. */ int getMessageIdsCount(); + /** * * *
-   * The server-assigned ID of each published message, in the same order as
-   * the messages in the request. IDs are guaranteed to be unique within
-   * the topic.
+   * Optional. The server-assigned ID of each published message, in the same
+   * order as the messages in the request. IDs are guaranteed to be unique
+   * within the topic.
    * 
* - * repeated string message_ids = 1; + * repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The messageIds at the given index. */ java.lang.String getMessageIds(int index); + /** * * *
-   * The server-assigned ID of each published message, in the same order as
-   * the messages in the request. IDs are guaranteed to be unique within
-   * the topic.
+   * Optional. The server-assigned ID of each published message, in the same
+   * order as the messages in the request. IDs are guaranteed to be unique
+   * within the topic.
    * 
* - * repeated string message_ids = 1; + * repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the messageIds at the given index. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PubsubMessage.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PubsubMessage.java index cab47a3c0..ef9370d9a 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PubsubMessage.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PubsubMessage.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -39,6 +40,7 @@ public final class PubsubMessage extends com.google.protobuf.GeneratedMessageV3 // @@protoc_insertion_point(message_implements:google.pubsub.v1.PubsubMessage) PubsubMessageOrBuilder { private static final long serialVersionUID = 0L; + // Use PubsubMessage.newBuilder() to construct. private PubsubMessage(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -63,7 +65,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings({"rawtypes"}) @java.lang.Override - protected com.google.protobuf.MapField internalGetMapField(int number) { + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { switch (number) { case 2: return internalGetAttributes(); @@ -82,17 +85,19 @@ protected com.google.protobuf.MapField internalGetMapField(int number) { com.google.pubsub.v1.PubsubMessage.Builder.class); } + private int bitField0_; public static final int DATA_FIELD_NUMBER = 1; private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY; + /** * * *
-   * The message data field. If this field is empty, the message must contain
-   * at least one attribute.
+   * Optional. The message data field. If this field is empty, the message must
+   * contain at least one attribute.
    * 
* - * bytes data = 1; + * bytes data = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The data. */ @@ -127,16 +132,18 @@ private com.google.protobuf.MapField interna public int getAttributesCount() { return internalGetAttributes().getMap().size(); } + /** * * *
-   * Attributes for this message. If this field is empty, the message must
-   * contain non-empty data. This can be used to filter messages on the
+   * Optional. Attributes for this message. If this field is empty, the message
+   * must contain non-empty data. This can be used to filter messages on the
    * subscription.
    * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public boolean containsAttributes(java.lang.String key) { @@ -145,37 +152,42 @@ public boolean containsAttributes(java.lang.String key) { } return internalGetAttributes().getMap().containsKey(key); } + /** Use {@link #getAttributesMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getAttributes() { return getAttributesMap(); } + /** * * *
-   * Attributes for this message. If this field is empty, the message must
-   * contain non-empty data. This can be used to filter messages on the
+   * Optional. Attributes for this message. If this field is empty, the message
+   * must contain non-empty data. This can be used to filter messages on the
    * subscription.
    * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public java.util.Map getAttributesMap() { return internalGetAttributes().getMap(); } + /** * * *
-   * Attributes for this message. If this field is empty, the message must
-   * contain non-empty data. This can be used to filter messages on the
+   * Optional. Attributes for this message. If this field is empty, the message
+   * must contain non-empty data. This can be used to filter messages on the
    * subscription.
    * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public /* nullable */ java.lang.String getAttributesOrDefault( @@ -188,16 +200,18 @@ public java.util.Map getAttributesMap() { java.util.Map map = internalGetAttributes().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } + /** * * *
-   * Attributes for this message. If this field is empty, the message must
-   * contain non-empty data. This can be used to filter messages on the
+   * Optional. Attributes for this message. If this field is empty, the message
+   * must contain non-empty data. This can be used to filter messages on the
    * subscription.
    * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public java.lang.String getAttributesOrThrow(java.lang.String key) { @@ -215,6 +229,7 @@ public java.lang.String getAttributesOrThrow(java.lang.String key) { @SuppressWarnings("serial") private volatile java.lang.Object messageId_ = ""; + /** * * @@ -241,6 +256,7 @@ public java.lang.String getMessageId() { return s; } } + /** * * @@ -270,6 +286,7 @@ public com.google.protobuf.ByteString getMessageIdBytes() { public static final int PUBLISH_TIME_FIELD_NUMBER = 4; private com.google.protobuf.Timestamp publishTime_; + /** * * @@ -285,8 +302,9 @@ public com.google.protobuf.ByteString getMessageIdBytes() { */ @java.lang.Override public boolean hasPublishTime() { - return publishTime_ != null; + return ((bitField0_ & 0x00000001) != 0); } + /** * * @@ -304,6 +322,7 @@ public boolean hasPublishTime() { public com.google.protobuf.Timestamp getPublishTime() { return publishTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : publishTime_; } + /** * * @@ -324,21 +343,22 @@ public com.google.protobuf.TimestampOrBuilder getPublishTimeOrBuilder() { @SuppressWarnings("serial") private volatile java.lang.Object orderingKey_ = ""; + /** * * *
-   * If non-empty, identifies related messages for which publish order should be
-   * respected. If a `Subscription` has `enable_message_ordering` set to `true`,
-   * messages published with the same non-empty `ordering_key` value will be
-   * delivered to subscribers in the order in which they are received by the
-   * Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest`
-   * must specify the same `ordering_key` value.
-   * For more information, see [ordering
+   * Optional. If non-empty, identifies related messages for which publish order
+   * should be respected. If a `Subscription` has `enable_message_ordering` set
+   * to `true`, messages published with the same non-empty `ordering_key` value
+   * will be delivered to subscribers in the order in which they are received by
+   * the Pub/Sub system. All `PubsubMessage`s published in a given
+   * `PublishRequest` must specify the same `ordering_key` value. For more
+   * information, see [ordering
    * messages](https://cloud.google.com/pubsub/docs/ordering).
    * 
* - * string ordering_key = 5; + * string ordering_key = 5 [(.google.api.field_behavior) = OPTIONAL]; * * @return The orderingKey. */ @@ -354,21 +374,22 @@ public java.lang.String getOrderingKey() { return s; } } + /** * * *
-   * If non-empty, identifies related messages for which publish order should be
-   * respected. If a `Subscription` has `enable_message_ordering` set to `true`,
-   * messages published with the same non-empty `ordering_key` value will be
-   * delivered to subscribers in the order in which they are received by the
-   * Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest`
-   * must specify the same `ordering_key` value.
-   * For more information, see [ordering
+   * Optional. If non-empty, identifies related messages for which publish order
+   * should be respected. If a `Subscription` has `enable_message_ordering` set
+   * to `true`, messages published with the same non-empty `ordering_key` value
+   * will be delivered to subscribers in the order in which they are received by
+   * the Pub/Sub system. All `PubsubMessage`s published in a given
+   * `PublishRequest` must specify the same `ordering_key` value. For more
+   * information, see [ordering
    * messages](https://cloud.google.com/pubsub/docs/ordering).
    * 
* - * string ordering_key = 5; + * string ordering_key = 5 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for orderingKey. */ @@ -407,7 +428,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(messageId_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, messageId_); } - if (publishTime_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(4, getPublishTime()); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(orderingKey_)) { @@ -438,7 +459,7 @@ public int getSerializedSize() { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(messageId_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, messageId_); } - if (publishTime_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getPublishTime()); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(orderingKey_)) { @@ -591,6 +612,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -617,7 +639,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMapField(int number) { + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { switch (number) { case 2: return internalGetAttributes(); @@ -627,7 +650,8 @@ protected com.google.protobuf.MapField internalGetMapField(int number) { } @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMutableMapField(int number) { + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { switch (number) { case 2: return internalGetMutableAttributes(); @@ -647,10 +671,19 @@ protected com.google.protobuf.MapField internalGetMutableMapField(int number) { } // Construct using com.google.pubsub.v1.PubsubMessage.newBuilder() - private Builder() {} + private Builder() { + maybeForceBuilderInitialization(); + } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getPublishTimeFieldBuilder(); + } } @java.lang.Override @@ -711,13 +744,16 @@ private void buildPartial0(com.google.pubsub.v1.PubsubMessage result) { if (((from_bitField0_ & 0x00000004) != 0)) { result.messageId_ = messageId_; } + int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000008) != 0)) { result.publishTime_ = publishTimeBuilder_ == null ? publishTime_ : publishTimeBuilder_.build(); + to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000010) != 0)) { result.orderingKey_ = orderingKey_; } + result.bitField0_ |= to_bitField0_; } @java.lang.Override @@ -865,15 +901,16 @@ public Builder mergeFrom( private int bitField0_; private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY; + /** * * *
-     * The message data field. If this field is empty, the message must contain
-     * at least one attribute.
+     * Optional. The message data field. If this field is empty, the message must
+     * contain at least one attribute.
      * 
* - * bytes data = 1; + * bytes data = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The data. */ @@ -881,15 +918,16 @@ public Builder mergeFrom( public com.google.protobuf.ByteString getData() { return data_; } + /** * * *
-     * The message data field. If this field is empty, the message must contain
-     * at least one attribute.
+     * Optional. The message data field. If this field is empty, the message must
+     * contain at least one attribute.
      * 
* - * bytes data = 1; + * bytes data = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The data to set. * @return This builder for chaining. @@ -903,15 +941,16 @@ public Builder setData(com.google.protobuf.ByteString value) { onChanged(); return this; } + /** * * *
-     * The message data field. If this field is empty, the message must contain
-     * at least one attribute.
+     * Optional. The message data field. If this field is empty, the message must
+     * contain at least one attribute.
      * 
* - * bytes data = 1; + * bytes data = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -950,16 +989,18 @@ public Builder clearData() { public int getAttributesCount() { return internalGetAttributes().getMap().size(); } + /** * * *
-     * Attributes for this message. If this field is empty, the message must
-     * contain non-empty data. This can be used to filter messages on the
+     * Optional. Attributes for this message. If this field is empty, the message
+     * must contain non-empty data. This can be used to filter messages on the
      * subscription.
      * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public boolean containsAttributes(java.lang.String key) { @@ -968,37 +1009,42 @@ public boolean containsAttributes(java.lang.String key) { } return internalGetAttributes().getMap().containsKey(key); } + /** Use {@link #getAttributesMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getAttributes() { return getAttributesMap(); } + /** * * *
-     * Attributes for this message. If this field is empty, the message must
-     * contain non-empty data. This can be used to filter messages on the
+     * Optional. Attributes for this message. If this field is empty, the message
+     * must contain non-empty data. This can be used to filter messages on the
      * subscription.
      * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public java.util.Map getAttributesMap() { return internalGetAttributes().getMap(); } + /** * * *
-     * Attributes for this message. If this field is empty, the message must
-     * contain non-empty data. This can be used to filter messages on the
+     * Optional. Attributes for this message. If this field is empty, the message
+     * must contain non-empty data. This can be used to filter messages on the
      * subscription.
      * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public /* nullable */ java.lang.String getAttributesOrDefault( @@ -1011,16 +1057,18 @@ public java.util.Map getAttributesMap() { java.util.Map map = internalGetAttributes().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } + /** * * *
-     * Attributes for this message. If this field is empty, the message must
-     * contain non-empty data. This can be used to filter messages on the
+     * Optional. Attributes for this message. If this field is empty, the message
+     * must contain non-empty data. This can be used to filter messages on the
      * subscription.
      * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public java.lang.String getAttributesOrThrow(java.lang.String key) { @@ -1039,16 +1087,18 @@ public Builder clearAttributes() { internalGetMutableAttributes().getMutableMap().clear(); return this; } + /** * * *
-     * Attributes for this message. If this field is empty, the message must
-     * contain non-empty data. This can be used to filter messages on the
+     * Optional. Attributes for this message. If this field is empty, the message
+     * must contain non-empty data. This can be used to filter messages on the
      * subscription.
      * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder removeAttributes(java.lang.String key) { if (key == null) { @@ -1057,22 +1107,25 @@ public Builder removeAttributes(java.lang.String key) { internalGetMutableAttributes().getMutableMap().remove(key); return this; } + /** Use alternate mutation accessors instead. */ @java.lang.Deprecated public java.util.Map getMutableAttributes() { bitField0_ |= 0x00000002; return internalGetMutableAttributes().getMutableMap(); } + /** * * *
-     * Attributes for this message. If this field is empty, the message must
-     * contain non-empty data. This can be used to filter messages on the
+     * Optional. Attributes for this message. If this field is empty, the message
+     * must contain non-empty data. This can be used to filter messages on the
      * subscription.
      * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder putAttributes(java.lang.String key, java.lang.String value) { if (key == null) { @@ -1085,16 +1138,18 @@ public Builder putAttributes(java.lang.String key, java.lang.String value) { bitField0_ |= 0x00000002; return this; } + /** * * *
-     * Attributes for this message. If this field is empty, the message must
-     * contain non-empty data. This can be used to filter messages on the
+     * Optional. Attributes for this message. If this field is empty, the message
+     * must contain non-empty data. This can be used to filter messages on the
      * subscription.
      * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder putAllAttributes(java.util.Map values) { internalGetMutableAttributes().getMutableMap().putAll(values); @@ -1103,6 +1158,7 @@ public Builder putAllAttributes(java.util.Map publishTimeBuilder_; + /** * * @@ -1245,6 +1306,7 @@ public Builder setMessageIdBytes(com.google.protobuf.ByteString value) { public boolean hasPublishTime() { return ((bitField0_ & 0x00000008) != 0); } + /** * * @@ -1267,6 +1329,7 @@ public com.google.protobuf.Timestamp getPublishTime() { return publishTimeBuilder_.getMessage(); } } + /** * * @@ -1291,6 +1354,7 @@ public Builder setPublishTime(com.google.protobuf.Timestamp value) { onChanged(); return this; } + /** * * @@ -1312,6 +1376,7 @@ public Builder setPublishTime(com.google.protobuf.Timestamp.Builder builderForVa onChanged(); return this; } + /** * * @@ -1335,10 +1400,13 @@ public Builder mergePublishTime(com.google.protobuf.Timestamp value) { } else { publishTimeBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000008; - onChanged(); + if (publishTime_ != null) { + bitField0_ |= 0x00000008; + onChanged(); + } return this; } + /** * * @@ -1360,6 +1428,7 @@ public Builder clearPublishTime() { onChanged(); return this; } + /** * * @@ -1376,6 +1445,7 @@ public com.google.protobuf.Timestamp.Builder getPublishTimeBuilder() { onChanged(); return getPublishTimeFieldBuilder().getBuilder(); } + /** * * @@ -1396,6 +1466,7 @@ public com.google.protobuf.TimestampOrBuilder getPublishTimeOrBuilder() { : publishTime_; } } + /** * * @@ -1425,21 +1496,22 @@ public com.google.protobuf.TimestampOrBuilder getPublishTimeOrBuilder() { } private java.lang.Object orderingKey_ = ""; + /** * * *
-     * If non-empty, identifies related messages for which publish order should be
-     * respected. If a `Subscription` has `enable_message_ordering` set to `true`,
-     * messages published with the same non-empty `ordering_key` value will be
-     * delivered to subscribers in the order in which they are received by the
-     * Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest`
-     * must specify the same `ordering_key` value.
-     * For more information, see [ordering
+     * Optional. If non-empty, identifies related messages for which publish order
+     * should be respected. If a `Subscription` has `enable_message_ordering` set
+     * to `true`, messages published with the same non-empty `ordering_key` value
+     * will be delivered to subscribers in the order in which they are received by
+     * the Pub/Sub system. All `PubsubMessage`s published in a given
+     * `PublishRequest` must specify the same `ordering_key` value. For more
+     * information, see [ordering
      * messages](https://cloud.google.com/pubsub/docs/ordering).
      * 
* - * string ordering_key = 5; + * string ordering_key = 5 [(.google.api.field_behavior) = OPTIONAL]; * * @return The orderingKey. */ @@ -1454,21 +1526,22 @@ public java.lang.String getOrderingKey() { return (java.lang.String) ref; } } + /** * * *
-     * If non-empty, identifies related messages for which publish order should be
-     * respected. If a `Subscription` has `enable_message_ordering` set to `true`,
-     * messages published with the same non-empty `ordering_key` value will be
-     * delivered to subscribers in the order in which they are received by the
-     * Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest`
-     * must specify the same `ordering_key` value.
-     * For more information, see [ordering
+     * Optional. If non-empty, identifies related messages for which publish order
+     * should be respected. If a `Subscription` has `enable_message_ordering` set
+     * to `true`, messages published with the same non-empty `ordering_key` value
+     * will be delivered to subscribers in the order in which they are received by
+     * the Pub/Sub system. All `PubsubMessage`s published in a given
+     * `PublishRequest` must specify the same `ordering_key` value. For more
+     * information, see [ordering
      * messages](https://cloud.google.com/pubsub/docs/ordering).
      * 
* - * string ordering_key = 5; + * string ordering_key = 5 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for orderingKey. */ @@ -1483,21 +1556,22 @@ public com.google.protobuf.ByteString getOrderingKeyBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * If non-empty, identifies related messages for which publish order should be
-     * respected. If a `Subscription` has `enable_message_ordering` set to `true`,
-     * messages published with the same non-empty `ordering_key` value will be
-     * delivered to subscribers in the order in which they are received by the
-     * Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest`
-     * must specify the same `ordering_key` value.
-     * For more information, see [ordering
+     * Optional. If non-empty, identifies related messages for which publish order
+     * should be respected. If a `Subscription` has `enable_message_ordering` set
+     * to `true`, messages published with the same non-empty `ordering_key` value
+     * will be delivered to subscribers in the order in which they are received by
+     * the Pub/Sub system. All `PubsubMessage`s published in a given
+     * `PublishRequest` must specify the same `ordering_key` value. For more
+     * information, see [ordering
      * messages](https://cloud.google.com/pubsub/docs/ordering).
      * 
* - * string ordering_key = 5; + * string ordering_key = 5 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The orderingKey to set. * @return This builder for chaining. @@ -1511,21 +1585,22 @@ public Builder setOrderingKey(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * If non-empty, identifies related messages for which publish order should be
-     * respected. If a `Subscription` has `enable_message_ordering` set to `true`,
-     * messages published with the same non-empty `ordering_key` value will be
-     * delivered to subscribers in the order in which they are received by the
-     * Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest`
-     * must specify the same `ordering_key` value.
-     * For more information, see [ordering
+     * Optional. If non-empty, identifies related messages for which publish order
+     * should be respected. If a `Subscription` has `enable_message_ordering` set
+     * to `true`, messages published with the same non-empty `ordering_key` value
+     * will be delivered to subscribers in the order in which they are received by
+     * the Pub/Sub system. All `PubsubMessage`s published in a given
+     * `PublishRequest` must specify the same `ordering_key` value. For more
+     * information, see [ordering
      * messages](https://cloud.google.com/pubsub/docs/ordering).
      * 
* - * string ordering_key = 5; + * string ordering_key = 5 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -1535,21 +1610,22 @@ public Builder clearOrderingKey() { onChanged(); return this; } + /** * * *
-     * If non-empty, identifies related messages for which publish order should be
-     * respected. If a `Subscription` has `enable_message_ordering` set to `true`,
-     * messages published with the same non-empty `ordering_key` value will be
-     * delivered to subscribers in the order in which they are received by the
-     * Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest`
-     * must specify the same `ordering_key` value.
-     * For more information, see [ordering
+     * Optional. If non-empty, identifies related messages for which publish order
+     * should be respected. If a `Subscription` has `enable_message_ordering` set
+     * to `true`, messages published with the same non-empty `ordering_key` value
+     * will be delivered to subscribers in the order in which they are received by
+     * the Pub/Sub system. All `PubsubMessage`s published in a given
+     * `PublishRequest` must specify the same `ordering_key` value. For more
+     * information, see [ordering
      * messages](https://cloud.google.com/pubsub/docs/ordering).
      * 
* - * string ordering_key = 5; + * string ordering_key = 5 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for orderingKey to set. * @return This builder for chaining. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PubsubMessageOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PubsubMessageOrBuilder.java index 9e73913c8..da2d4b6e3 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PubsubMessageOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PubsubMessageOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface PubsubMessageOrBuilder @@ -27,11 +28,11 @@ public interface PubsubMessageOrBuilder * * *
-   * The message data field. If this field is empty, the message must contain
-   * at least one attribute.
+   * Optional. The message data field. If this field is empty, the message must
+   * contain at least one attribute.
    * 
* - * bytes data = 1; + * bytes data = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The data. */ @@ -41,67 +42,77 @@ public interface PubsubMessageOrBuilder * * *
-   * Attributes for this message. If this field is empty, the message must
-   * contain non-empty data. This can be used to filter messages on the
+   * Optional. Attributes for this message. If this field is empty, the message
+   * must contain non-empty data. This can be used to filter messages on the
    * subscription.
    * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ int getAttributesCount(); + /** * * *
-   * Attributes for this message. If this field is empty, the message must
-   * contain non-empty data. This can be used to filter messages on the
+   * Optional. Attributes for this message. If this field is empty, the message
+   * must contain non-empty data. This can be used to filter messages on the
    * subscription.
    * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ boolean containsAttributes(java.lang.String key); + /** Use {@link #getAttributesMap()} instead. */ @java.lang.Deprecated java.util.Map getAttributes(); + /** * * *
-   * Attributes for this message. If this field is empty, the message must
-   * contain non-empty data. This can be used to filter messages on the
+   * Optional. Attributes for this message. If this field is empty, the message
+   * must contain non-empty data. This can be used to filter messages on the
    * subscription.
    * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ java.util.Map getAttributesMap(); + /** * * *
-   * Attributes for this message. If this field is empty, the message must
-   * contain non-empty data. This can be used to filter messages on the
+   * Optional. Attributes for this message. If this field is empty, the message
+   * must contain non-empty data. This can be used to filter messages on the
    * subscription.
    * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ /* nullable */ java.lang.String getAttributesOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue); + /** * * *
-   * Attributes for this message. If this field is empty, the message must
-   * contain non-empty data. This can be used to filter messages on the
+   * Optional. Attributes for this message. If this field is empty, the message
+   * must contain non-empty data. This can be used to filter messages on the
    * subscription.
    * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ java.lang.String getAttributesOrThrow(java.lang.String key); @@ -120,6 +131,7 @@ java.lang.String getAttributesOrDefault( * @return The messageId. */ java.lang.String getMessageId(); + /** * * @@ -150,6 +162,7 @@ java.lang.String getAttributesOrDefault( * @return Whether the publishTime field is set. */ boolean hasPublishTime(); + /** * * @@ -164,6 +177,7 @@ java.lang.String getAttributesOrDefault( * @return The publishTime. */ com.google.protobuf.Timestamp getPublishTime(); + /** * * @@ -181,36 +195,37 @@ java.lang.String getAttributesOrDefault( * * *
-   * If non-empty, identifies related messages for which publish order should be
-   * respected. If a `Subscription` has `enable_message_ordering` set to `true`,
-   * messages published with the same non-empty `ordering_key` value will be
-   * delivered to subscribers in the order in which they are received by the
-   * Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest`
-   * must specify the same `ordering_key` value.
-   * For more information, see [ordering
+   * Optional. If non-empty, identifies related messages for which publish order
+   * should be respected. If a `Subscription` has `enable_message_ordering` set
+   * to `true`, messages published with the same non-empty `ordering_key` value
+   * will be delivered to subscribers in the order in which they are received by
+   * the Pub/Sub system. All `PubsubMessage`s published in a given
+   * `PublishRequest` must specify the same `ordering_key` value. For more
+   * information, see [ordering
    * messages](https://cloud.google.com/pubsub/docs/ordering).
    * 
* - * string ordering_key = 5; + * string ordering_key = 5 [(.google.api.field_behavior) = OPTIONAL]; * * @return The orderingKey. */ java.lang.String getOrderingKey(); + /** * * *
-   * If non-empty, identifies related messages for which publish order should be
-   * respected. If a `Subscription` has `enable_message_ordering` set to `true`,
-   * messages published with the same non-empty `ordering_key` value will be
-   * delivered to subscribers in the order in which they are received by the
-   * Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest`
-   * must specify the same `ordering_key` value.
-   * For more information, see [ordering
+   * Optional. If non-empty, identifies related messages for which publish order
+   * should be respected. If a `Subscription` has `enable_message_ordering` set
+   * to `true`, messages published with the same non-empty `ordering_key` value
+   * will be delivered to subscribers in the order in which they are received by
+   * the Pub/Sub system. All `PubsubMessage`s published in a given
+   * `PublishRequest` must specify the same `ordering_key` value. For more
+   * information, see [ordering
    * messages](https://cloud.google.com/pubsub/docs/ordering).
    * 
* - * string ordering_key = 5; + * string ordering_key = 5 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for orderingKey. */ diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PubsubProto.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PubsubProto.java index b680117a0..fae7dfbc3 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PubsubProto.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PubsubProto.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public final class PubsubProto { @@ -35,6 +36,94 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r internal_static_google_pubsub_v1_SchemaSettings_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_google_pubsub_v1_SchemaSettings_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionDataSourceSettings_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionDataSourceSettings_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsKinesis_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsKinesis_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_TextFormat_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_TextFormat_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_AvroFormat_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_AvroFormat_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionDataSourceSettings_AzureEventHubs_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionDataSourceSettings_AzureEventHubs_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsMsk_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsMsk_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionDataSourceSettings_ConfluentCloud_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionDataSourceSettings_ConfluentCloud_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_PlatformLogsSettings_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_PlatformLogsSettings_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionFailureEvent_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionFailureEvent_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionFailureEvent_ApiViolationReason_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionFailureEvent_ApiViolationReason_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionFailureEvent_AvroFailureReason_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionFailureEvent_AvroFailureReason_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionFailureEvent_SchemaViolationReason_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionFailureEvent_SchemaViolationReason_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionFailureEvent_MessageTransformationFailureReason_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionFailureEvent_MessageTransformationFailureReason_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionFailureEvent_CloudStorageFailure_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionFailureEvent_CloudStorageFailure_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionFailureEvent_AwsMskFailureReason_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionFailureEvent_AwsMskFailureReason_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionFailureEvent_AzureEventHubsFailureReason_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionFailureEvent_AzureEventHubsFailureReason_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionFailureEvent_ConfluentCloudFailureReason_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionFailureEvent_ConfluentCloudFailureReason_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_IngestionFailureEvent_AwsKinesisFailureReason_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_IngestionFailureEvent_AwsKinesisFailureReason_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_JavaScriptUDF_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_JavaScriptUDF_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_MessageTransform_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_MessageTransform_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_google_pubsub_v1_Topic_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable @@ -43,6 +132,10 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r internal_static_google_pubsub_v1_Topic_LabelsEntry_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_google_pubsub_v1_Topic_LabelsEntry_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_Topic_TagsEntry_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_Topic_TagsEntry_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_google_pubsub_v1_PubsubMessage_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable @@ -107,10 +200,18 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r internal_static_google_pubsub_v1_Subscription_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_google_pubsub_v1_Subscription_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_Subscription_AnalyticsHubSubscriptionInfo_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_Subscription_AnalyticsHubSubscriptionInfo_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_google_pubsub_v1_Subscription_LabelsEntry_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_google_pubsub_v1_Subscription_LabelsEntry_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_Subscription_TagsEntry_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_Subscription_TagsEntry_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_google_pubsub_v1_RetryPolicy_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable @@ -231,6 +332,10 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r internal_static_google_pubsub_v1_CreateSnapshotRequest_LabelsEntry_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_google_pubsub_v1_CreateSnapshotRequest_LabelsEntry_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_pubsub_v1_CreateSnapshotRequest_TagsEntry_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_pubsub_v1_CreateSnapshotRequest_TagsEntry_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_google_pubsub_v1_UpdateSnapshotRequest_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable @@ -276,338 +381,670 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { static { java.lang.String[] descriptorData = { - "\n\035google/pubsub/v1/pubsub.proto\022\020google." + "\n" + + "\035google/pubsub/v1/pubsub.proto\022\020google." + "pubsub.v1\032\034google/api/annotations.proto\032" + "\027google/api/client.proto\032\037google/api/fie" + "ld_behavior.proto\032\031google/api/resource.p" - + "roto\032\036google/protobuf/duration.proto\032\033go" - + "ogle/protobuf/empty.proto\032 google/protob" - + "uf/field_mask.proto\032\037google/protobuf/tim" - + "estamp.proto\032\035google/pubsub/v1/schema.pr" - + "oto\";\n\024MessageStoragePolicy\022#\n\033allowed_p" - + "ersistence_regions\030\001 \003(\t\"\252\001\n\016SchemaSetti" - + "ngs\0225\n\006schema\030\001 \001(\tB%\342A\001\002\372A\036\n\034pubsub.goo" - + "gleapis.com/Schema\022,\n\010encoding\030\002 \001(\0162\032.g" - + "oogle.pubsub.v1.Encoding\022\031\n\021first_revisi" - + "on_id\030\003 \001(\t\022\030\n\020last_revision_id\030\004 \001(\t\"\304\003" - + "\n\005Topic\022\022\n\004name\030\001 \001(\tB\004\342A\001\002\0223\n\006labels\030\002 " - + "\003(\0132#.google.pubsub.v1.Topic.LabelsEntry" - + "\022F\n\026message_storage_policy\030\003 \001(\0132&.googl" - + "e.pubsub.v1.MessageStoragePolicy\022\024\n\014kms_" - + "key_name\030\005 \001(\t\0229\n\017schema_settings\030\006 \001(\0132" - + " .google.pubsub.v1.SchemaSettings\022\025\n\rsat" - + "isfies_pzs\030\007 \001(\010\022=\n\032message_retention_du" - + "ration\030\010 \001(\0132\031.google.protobuf.Duration\032" - + "-\n\013LabelsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001" - + "(\t:\0028\001:T\352AQ\n\033pubsub.googleapis.com/Topic" - + "\022!projects/{project}/topics/{topic}\022\017_de" - + "leted-topic_\"\361\001\n\rPubsubMessage\022\014\n\004data\030\001" - + " \001(\014\022C\n\nattributes\030\002 \003(\0132/.google.pubsub" - + ".v1.PubsubMessage.AttributesEntry\022\022\n\nmes" - + "sage_id\030\003 \001(\t\0220\n\014publish_time\030\004 \001(\0132\032.go" - + "ogle.protobuf.Timestamp\022\024\n\014ordering_key\030" - + "\005 \001(\t\0321\n\017AttributesEntry\022\013\n\003key\030\001 \001(\t\022\r\n" - + "\005value\030\002 \001(\t:\0028\001\"F\n\017GetTopicRequest\0223\n\005t" - + "opic\030\001 \001(\tB$\342A\001\002\372A\035\n\033pubsub.googleapis.c" - + "om/Topic\"y\n\022UpdateTopicRequest\022,\n\005topic\030" - + "\001 \001(\0132\027.google.pubsub.v1.TopicB\004\342A\001\002\0225\n\013" - + "update_mask\030\002 \001(\0132\032.google.protobuf.Fiel" - + "dMaskB\004\342A\001\002\"~\n\016PublishRequest\0223\n\005topic\030\001" - + " \001(\tB$\342A\001\002\372A\035\n\033pubsub.googleapis.com/Top" - + "ic\0227\n\010messages\030\002 \003(\0132\037.google.pubsub.v1." - + "PubsubMessageB\004\342A\001\002\"&\n\017PublishResponse\022\023" - + "\n\013message_ids\030\001 \003(\t\"\201\001\n\021ListTopicsReques" - + "t\022E\n\007project\030\001 \001(\tB4\342A\001\002\372A-\n+cloudresour" - + "cemanager.googleapis.com/Project\022\021\n\tpage" - + "_size\030\002 \001(\005\022\022\n\npage_token\030\003 \001(\t\"V\n\022ListT" - + "opicsResponse\022\'\n\006topics\030\001 \003(\0132\027.google.p" - + "ubsub.v1.Topic\022\027\n\017next_page_token\030\002 \001(\t\"" - + "{\n\035ListTopicSubscriptionsRequest\0223\n\005topi" - + "c\030\001 \001(\tB$\342A\001\002\372A\035\n\033pubsub.googleapis.com/" - + "Topic\022\021\n\tpage_size\030\002 \001(\005\022\022\n\npage_token\030\003" - + " \001(\t\"y\n\036ListTopicSubscriptionsResponse\022>" - + "\n\rsubscriptions\030\001 \003(\tB\'\372A$\n\"pubsub.googl" - + "eapis.com/Subscription\022\027\n\017next_page_toke" - + "n\030\002 \001(\t\"w\n\031ListTopicSnapshotsRequest\0223\n\005" - + "topic\030\001 \001(\tB$\342A\001\002\372A\035\n\033pubsub.googleapis." - + "com/Topic\022\021\n\tpage_size\030\002 \001(\005\022\022\n\npage_tok" - + "en\030\003 \001(\t\"H\n\032ListTopicSnapshotsResponse\022\021" - + "\n\tsnapshots\030\001 \003(\t\022\027\n\017next_page_token\030\002 \001" - + "(\t\"I\n\022DeleteTopicRequest\0223\n\005topic\030\001 \001(\tB" - + "$\342A\001\002\372A\035\n\033pubsub.googleapis.com/Topic\"^\n" - + "\031DetachSubscriptionRequest\022A\n\014subscripti" - + "on\030\001 \001(\tB+\342A\001\002\372A$\n\"pubsub.googleapis.com" - + "/Subscription\"\034\n\032DetachSubscriptionRespo" - + "nse\"\255\010\n\014Subscription\022\022\n\004name\030\001 \001(\tB\004\342A\001\002" - + "\0223\n\005topic\030\002 \001(\tB$\342A\001\002\372A\035\n\033pubsub.googlea" - + "pis.com/Topic\0221\n\013push_config\030\004 \001(\0132\034.goo" - + "gle.pubsub.v1.PushConfig\0229\n\017bigquery_con" - + "fig\030\022 \001(\0132 .google.pubsub.v1.BigQueryCon" - + "fig\022B\n\024cloud_storage_config\030\026 \001(\0132$.goog" - + "le.pubsub.v1.CloudStorageConfig\022\034\n\024ack_d" - + "eadline_seconds\030\005 \001(\005\022\035\n\025retain_acked_me" - + "ssages\030\007 \001(\010\022=\n\032message_retention_durati" - + "on\030\010 \001(\0132\031.google.protobuf.Duration\022:\n\006l" - + "abels\030\t \003(\0132*.google.pubsub.v1.Subscript" - + "ion.LabelsEntry\022\037\n\027enable_message_orderi" - + "ng\030\n \001(\010\022=\n\021expiration_policy\030\013 \001(\0132\".go" - + "ogle.pubsub.v1.ExpirationPolicy\022\016\n\006filte" - + "r\030\014 \001(\t\022>\n\022dead_letter_policy\030\r \001(\0132\".go" - + "ogle.pubsub.v1.DeadLetterPolicy\0223\n\014retry" - + "_policy\030\016 \001(\0132\035.google.pubsub.v1.RetryPo" - + "licy\022\020\n\010detached\030\017 \001(\010\022$\n\034enable_exactly" - + "_once_delivery\030\020 \001(\010\022I\n topic_message_re" - + "tention_duration\030\021 \001(\0132\031.google.protobuf" - + ".DurationB\004\342A\001\003\0229\n\005state\030\023 \001(\0162$.google." - + "pubsub.v1.Subscription.StateB\004\342A\001\003\032-\n\013La" - + "belsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028" - + "\001\">\n\005State\022\025\n\021STATE_UNSPECIFIED\020\000\022\n\n\006ACT" - + "IVE\020\001\022\022\n\016RESOURCE_ERROR\020\002:X\352AU\n\"pubsub.g" - + "oogleapis.com/Subscription\022/projects/{pr" - + "oject}/subscriptions/{subscription}\"u\n\013R" - + "etryPolicy\0222\n\017minimum_backoff\030\001 \001(\0132\031.go" - + "ogle.protobuf.Duration\0222\n\017maximum_backof" - + "f\030\002 \001(\0132\031.google.protobuf.Duration\"L\n\020De" - + "adLetterPolicy\022\031\n\021dead_letter_topic\030\001 \001(" - + "\t\022\035\n\025max_delivery_attempts\030\002 \001(\005\":\n\020Expi" - + "rationPolicy\022&\n\003ttl\030\001 \001(\0132\031.google.proto" - + "buf.Duration\"\362\003\n\nPushConfig\022\025\n\rpush_endp" - + "oint\030\001 \001(\t\022@\n\nattributes\030\002 \003(\0132,.google." - + "pubsub.v1.PushConfig.AttributesEntry\022<\n\n" - + "oidc_token\030\003 \001(\0132&.google.pubsub.v1.Push" - + "Config.OidcTokenH\000\022D\n\016pubsub_wrapper\030\004 \001" - + "(\0132*.google.pubsub.v1.PushConfig.PubsubW" - + "rapperH\001\022<\n\nno_wrapper\030\005 \001(\0132&.google.pu" - + "bsub.v1.PushConfig.NoWrapperH\001\032<\n\tOidcTo" - + "ken\022\035\n\025service_account_email\030\001 \001(\t\022\020\n\010au" - + "dience\030\002 \001(\t\032\017\n\rPubsubWrapper\032#\n\tNoWrapp" - + "er\022\026\n\016write_metadata\030\001 \001(\010\0321\n\017Attributes" - + "Entry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001B\027\n" - + "\025authentication_methodB\t\n\007wrapper\"\270\002\n\016Bi" - + "gQueryConfig\022\r\n\005table\030\001 \001(\t\022\036\n\020use_topic" - + "_schema\030\002 \001(\010B\004\342A\001\001\022\026\n\016write_metadata\030\003 " - + "\001(\010\022\033\n\023drop_unknown_fields\030\004 \001(\010\022;\n\005stat" - + "e\030\005 \001(\0162&.google.pubsub.v1.BigQueryConfi" - + "g.StateB\004\342A\001\003\022\036\n\020use_table_schema\030\006 \001(\010B" - + "\004\342A\001\001\"e\n\005State\022\025\n\021STATE_UNSPECIFIED\020\000\022\n\n" - + "\006ACTIVE\020\001\022\025\n\021PERMISSION_DENIED\020\002\022\r\n\tNOT_" - + "FOUND\020\003\022\023\n\017SCHEMA_MISMATCH\020\004\"\210\004\n\022CloudSt" - + "orageConfig\022\024\n\006bucket\030\001 \001(\tB\004\342A\001\002\022\027\n\017fil" - + "ename_prefix\030\002 \001(\t\022\027\n\017filename_suffix\030\003 " - + "\001(\t\022F\n\013text_config\030\004 \001(\0132/.google.pubsub" - + ".v1.CloudStorageConfig.TextConfigH\000\022F\n\013a" - + "vro_config\030\005 \001(\0132/.google.pubsub.v1.Clou" - + "dStorageConfig.AvroConfigH\000\022/\n\014max_durat" - + "ion\030\006 \001(\0132\031.google.protobuf.Duration\022\021\n\t" - + "max_bytes\030\007 \001(\003\022?\n\005state\030\t \001(\0162*.google." - + "pubsub.v1.CloudStorageConfig.StateB\004\342A\001\003" - + "\032\014\n\nTextConfig\032$\n\nAvroConfig\022\026\n\016write_me" - + "tadata\030\001 \001(\010\"P\n\005State\022\025\n\021STATE_UNSPECIFI" - + "ED\020\000\022\n\n\006ACTIVE\020\001\022\025\n\021PERMISSION_DENIED\020\002\022" - + "\r\n\tNOT_FOUND\020\003B\017\n\routput_format\"m\n\017Recei" - + "vedMessage\022\016\n\006ack_id\030\001 \001(\t\0220\n\007message\030\002 " - + "\001(\0132\037.google.pubsub.v1.PubsubMessage\022\030\n\020" - + "delivery_attempt\030\003 \001(\005\"[\n\026GetSubscriptio" - + "nRequest\022A\n\014subscription\030\001 \001(\tB+\342A\001\002\372A$\n" - + "\"pubsub.googleapis.com/Subscription\"\216\001\n\031" - + "UpdateSubscriptionRequest\022:\n\014subscriptio" - + "n\030\001 \001(\0132\036.google.pubsub.v1.SubscriptionB" - + "\004\342A\001\002\0225\n\013update_mask\030\002 \001(\0132\032.google.prot" - + "obuf.FieldMaskB\004\342A\001\002\"\210\001\n\030ListSubscriptio" - + "nsRequest\022E\n\007project\030\001 \001(\tB4\342A\001\002\372A-\n+clo" - + "udresourcemanager.googleapis.com/Project" - + "\022\021\n\tpage_size\030\002 \001(\005\022\022\n\npage_token\030\003 \001(\t\"" - + "k\n\031ListSubscriptionsResponse\0225\n\rsubscrip" - + "tions\030\001 \003(\0132\036.google.pubsub.v1.Subscript" - + "ion\022\027\n\017next_page_token\030\002 \001(\t\"^\n\031DeleteSu" - + "bscriptionRequest\022A\n\014subscription\030\001 \001(\tB" - + "+\342A\001\002\372A$\n\"pubsub.googleapis.com/Subscrip" - + "tion\"\225\001\n\027ModifyPushConfigRequest\022A\n\014subs" - + "cription\030\001 \001(\tB+\342A\001\002\372A$\n\"pubsub.googleap" - + "is.com/Subscription\0227\n\013push_config\030\002 \001(\013" - + "2\034.google.pubsub.v1.PushConfigB\004\342A\001\002\"\220\001\n" - + "\013PullRequest\022A\n\014subscription\030\001 \001(\tB+\342A\001\002" - + "\372A$\n\"pubsub.googleapis.com/Subscription\022" - + "\"\n\022return_immediately\030\002 \001(\010B\006\030\001\342A\001\001\022\032\n\014m" - + "ax_messages\030\003 \001(\005B\004\342A\001\002\"L\n\014PullResponse\022" - + "<\n\021received_messages\030\001 \003(\0132!.google.pubs" - + "ub.v1.ReceivedMessage\"\230\001\n\030ModifyAckDeadl" - + "ineRequest\022A\n\014subscription\030\001 \001(\tB+\342A\001\002\372A" - + "$\n\"pubsub.googleapis.com/Subscription\022\025\n" - + "\007ack_ids\030\004 \003(\tB\004\342A\001\002\022\"\n\024ack_deadline_sec" - + "onds\030\003 \001(\005B\004\342A\001\002\"n\n\022AcknowledgeRequest\022A" - + "\n\014subscription\030\001 \001(\tB+\342A\001\002\372A$\n\"pubsub.go" - + "ogleapis.com/Subscription\022\025\n\007ack_ids\030\002 \003" - + "(\tB\004\342A\001\002\"\253\002\n\024StreamingPullRequest\022A\n\014sub" - + "scription\030\001 \001(\tB+\342A\001\002\372A$\n\"pubsub.googlea" - + "pis.com/Subscription\022\017\n\007ack_ids\030\002 \003(\t\022\037\n" - + "\027modify_deadline_seconds\030\003 \003(\005\022\037\n\027modify" - + "_deadline_ack_ids\030\004 \003(\t\022)\n\033stream_ack_de" - + "adline_seconds\030\005 \001(\005B\004\342A\001\002\022\021\n\tclient_id\030" - + "\006 \001(\t\022 \n\030max_outstanding_messages\030\007 \001(\003\022" - + "\035\n\025max_outstanding_bytes\030\010 \001(\003\"\335\005\n\025Strea" - + "mingPullResponse\022<\n\021received_messages\030\001 " - + "\003(\0132!.google.pubsub.v1.ReceivedMessage\022a" - + "\n\030acknowledge_confirmation\030\005 \001(\0132?.googl" - + "e.pubsub.v1.StreamingPullResponse.Acknow" - + "ledgeConfirmation\022o\n modify_ack_deadline" - + "_confirmation\030\003 \001(\0132E.google.pubsub.v1.S" - + "treamingPullResponse.ModifyAckDeadlineCo" - + "nfirmation\022_\n\027subscription_properties\030\004 " - + "\001(\0132>.google.pubsub.v1.StreamingPullResp" - + "onse.SubscriptionProperties\032\200\001\n\027Acknowle" - + "dgeConfirmation\022\017\n\007ack_ids\030\001 \003(\t\022\027\n\017inva" - + "lid_ack_ids\030\002 \003(\t\022\031\n\021unordered_ack_ids\030\003" - + " \003(\t\022 \n\030temporary_failed_ack_ids\030\004 \003(\t\032k" - + "\n\035ModifyAckDeadlineConfirmation\022\017\n\007ack_i" - + "ds\030\001 \003(\t\022\027\n\017invalid_ack_ids\030\002 \003(\t\022 \n\030tem" - + "porary_failed_ack_ids\030\003 \003(\t\032a\n\026Subscript" - + "ionProperties\022%\n\035exactly_once_delivery_e" - + "nabled\030\001 \001(\010\022 \n\030message_ordering_enabled" - + "\030\002 \001(\010\"\205\002\n\025CreateSnapshotRequest\0225\n\004name" - + "\030\001 \001(\tB\'\342A\001\002\372A \n\036pubsub.googleapis.com/S" - + "napshot\022A\n\014subscription\030\002 \001(\tB+\342A\001\002\372A$\n\"" - + "pubsub.googleapis.com/Subscription\022C\n\006la" - + "bels\030\003 \003(\01323.google.pubsub.v1.CreateSnap" - + "shotRequest.LabelsEntry\032-\n\013LabelsEntry\022\013" - + "\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\202\001\n\025Updat" - + "eSnapshotRequest\0222\n\010snapshot\030\001 \001(\0132\032.goo" - + "gle.pubsub.v1.SnapshotB\004\342A\001\002\0225\n\013update_m" - + "ask\030\002 \001(\0132\032.google.protobuf.FieldMaskB\004\342" - + "A\001\002\"\257\002\n\010Snapshot\022\014\n\004name\030\001 \001(\t\022/\n\005topic\030" - + "\002 \001(\tB \372A\035\n\033pubsub.googleapis.com/Topic\022" - + "/\n\013expire_time\030\003 \001(\0132\032.google.protobuf.T" - + "imestamp\0226\n\006labels\030\004 \003(\0132&.google.pubsub" - + ".v1.Snapshot.LabelsEntry\032-\n\013LabelsEntry\022" - + "\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001:L\352AI\n\036pu" - + "bsub.googleapis.com/Snapshot\022\'projects/{" - + "project}/snapshots/{snapshot}\"O\n\022GetSnap" - + "shotRequest\0229\n\010snapshot\030\001 \001(\tB\'\342A\001\002\372A \n\036" - + "pubsub.googleapis.com/Snapshot\"\204\001\n\024ListS" - + "napshotsRequest\022E\n\007project\030\001 \001(\tB4\342A\001\002\372A" - + "-\n+cloudresourcemanager.googleapis.com/P" - + "roject\022\021\n\tpage_size\030\002 \001(\005\022\022\n\npage_token\030" - + "\003 \001(\t\"_\n\025ListSnapshotsResponse\022-\n\tsnapsh" - + "ots\030\001 \003(\0132\032.google.pubsub.v1.Snapshot\022\027\n" - + "\017next_page_token\030\002 \001(\t\"R\n\025DeleteSnapshot" - + "Request\0229\n\010snapshot\030\001 \001(\tB\'\342A\001\002\372A \n\036pubs" - + "ub.googleapis.com/Snapshot\"\277\001\n\013SeekReque" - + "st\022A\n\014subscription\030\001 \001(\tB+\342A\001\002\372A$\n\"pubsu" - + "b.googleapis.com/Subscription\022*\n\004time\030\002 " - + "\001(\0132\032.google.protobuf.TimestampH\000\0227\n\010sna" - + "pshot\030\003 \001(\tB#\372A \n\036pubsub.googleapis.com/" - + "SnapshotH\000B\010\n\006target\"\016\n\014SeekResponse2\270\013\n" - + "\tPublisher\022q\n\013CreateTopic\022\027.google.pubsu" - + "b.v1.Topic\032\027.google.pubsub.v1.Topic\"0\332A\004" - + "name\202\323\344\223\002#\032\036/v1/{name=projects/*/topics/" - + "*}:\001*\022\221\001\n\013UpdateTopic\022$.google.pubsub.v1" - + ".UpdateTopicRequest\032\027.google.pubsub.v1.T" - + "opic\"C\332A\021topic,update_mask\202\323\344\223\002)2$/v1/{t" - + "opic.name=projects/*/topics/*}:\001*\022\223\001\n\007Pu" - + "blish\022 .google.pubsub.v1.PublishRequest\032" - + "!.google.pubsub.v1.PublishResponse\"C\332A\016t" - + "opic,messages\202\323\344\223\002,\"\'/v1/{topic=projects" - + "/*/topics/*}:publish:\001*\022w\n\010GetTopic\022!.go" - + "ogle.pubsub.v1.GetTopicRequest\032\027.google." - + "pubsub.v1.Topic\"/\332A\005topic\202\323\344\223\002!\022\037/v1/{to" - + "pic=projects/*/topics/*}\022\212\001\n\nListTopics\022" - + "#.google.pubsub.v1.ListTopicsRequest\032$.g" - + "oogle.pubsub.v1.ListTopicsResponse\"1\332A\007p" - + "roject\202\323\344\223\002!\022\037/v1/{project=projects/*}/t" - + "opics\022\272\001\n\026ListTopicSubscriptions\022/.googl" - + "e.pubsub.v1.ListTopicSubscriptionsReques" - + "t\0320.google.pubsub.v1.ListTopicSubscripti" - + "onsResponse\"=\332A\005topic\202\323\344\223\002/\022-/v1/{topic=" - + "projects/*/topics/*}/subscriptions\022\252\001\n\022L" - + "istTopicSnapshots\022+.google.pubsub.v1.Lis" - + "tTopicSnapshotsRequest\032,.google.pubsub.v" - + "1.ListTopicSnapshotsResponse\"9\332A\005topic\202\323" - + "\344\223\002+\022)/v1/{topic=projects/*/topics/*}/sn" - + "apshots\022|\n\013DeleteTopic\022$.google.pubsub.v" - + "1.DeleteTopicRequest\032\026.google.protobuf.E" - + "mpty\"/\332A\005topic\202\323\344\223\002!*\037/v1/{topic=project" - + "s/*/topics/*}\022\255\001\n\022DetachSubscription\022+.g" - + "oogle.pubsub.v1.DetachSubscriptionReques" - + "t\032,.google.pubsub.v1.DetachSubscriptionR" - + "esponse\"<\202\323\344\223\0026\"4/v1/{subscription=proje" - + "cts/*/subscriptions/*}:detach\032p\312A\025pubsub" - + ".googleapis.com\322AUhttps://www.googleapis" - + ".com/auth/cloud-platform,https://www.goo" - + "gleapis.com/auth/pubsub2\322\025\n\nSubscriber\022\264" - + "\001\n\022CreateSubscription\022\036.google.pubsub.v1" - + ".Subscription\032\036.google.pubsub.v1.Subscri" - + "ption\"^\332A+name,topic,push_config,ack_dea" - + "dline_seconds\202\323\344\223\002*\032%/v1/{name=projects/" - + "*/subscriptions/*}:\001*\022\241\001\n\017GetSubscriptio" - + "n\022(.google.pubsub.v1.GetSubscriptionRequ" - + "est\032\036.google.pubsub.v1.Subscription\"D\332A\014" - + "subscription\202\323\344\223\002/\022-/v1/{subscription=pr" - + "ojects/*/subscriptions/*}\022\273\001\n\022UpdateSubs" - + "cription\022+.google.pubsub.v1.UpdateSubscr" - + "iptionRequest\032\036.google.pubsub.v1.Subscri" - + "ption\"X\332A\030subscription,update_mask\202\323\344\223\0027" - + "22/v1/{subscription.name=projects/*/subs" - + "criptions/*}:\001*\022\246\001\n\021ListSubscriptions\022*." - + "google.pubsub.v1.ListSubscriptionsReques" - + "t\032+.google.pubsub.v1.ListSubscriptionsRe" - + "sponse\"8\332A\007project\202\323\344\223\002(\022&/v1/{project=p" - + "rojects/*}/subscriptions\022\237\001\n\022DeleteSubsc" - + "ription\022+.google.pubsub.v1.DeleteSubscri" - + "ptionRequest\032\026.google.protobuf.Empty\"D\332A" - + "\014subscription\202\323\344\223\002/*-/v1/{subscription=p" - + "rojects/*/subscriptions/*}\022\317\001\n\021ModifyAck" - + "Deadline\022*.google.pubsub.v1.ModifyAckDea" - + "dlineRequest\032\026.google.protobuf.Empty\"v\332A" - + ")subscription,ack_ids,ack_deadline_secon" - + "ds\202\323\344\223\002D\"?/v1/{subscription=projects/*/s" - + "ubscriptions/*}:modifyAckDeadline:\001*\022\250\001\n" - + "\013Acknowledge\022$.google.pubsub.v1.Acknowle" - + "dgeRequest\032\026.google.protobuf.Empty\"[\332A\024s" - + "ubscription,ack_ids\202\323\344\223\002>\"9/v1/{subscrip" - + "tion=projects/*/subscriptions/*}:acknowl" - + "edge:\001*\022\320\001\n\004Pull\022\035.google.pubsub.v1.Pull" - + "Request\032\036.google.pubsub.v1.PullResponse\"" - + "\210\001\332A,subscription,return_immediately,max" - + "_messages\332A\031subscription,max_messages\202\323\344" - + "\223\0027\"2/v1/{subscription=projects/*/subscr" - + "iptions/*}:pull:\001*\022f\n\rStreamingPull\022&.go" - + "ogle.pubsub.v1.StreamingPullRequest\032\'.go" - + "ogle.pubsub.v1.StreamingPullResponse\"\000(\001" - + "0\001\022\273\001\n\020ModifyPushConfig\022).google.pubsub." - + "v1.ModifyPushConfigRequest\032\026.google.prot" - + "obuf.Empty\"d\332A\030subscription,push_config\202" - + "\323\344\223\002C\">/v1/{subscription=projects/*/subs" - + "criptions/*}:modifyPushConfig:\001*\022\211\001\n\013Get" - + "Snapshot\022$.google.pubsub.v1.GetSnapshotR" - + "equest\032\032.google.pubsub.v1.Snapshot\"8\332A\010s" - + "napshot\202\323\344\223\002\'\022%/v1/{snapshot=projects/*/" - + "snapshots/*}\022\226\001\n\rListSnapshots\022&.google." - + "pubsub.v1.ListSnapshotsRequest\032\'.google." - + "pubsub.v1.ListSnapshotsResponse\"4\332A\007proj" - + "ect\202\323\344\223\002$\022\"/v1/{project=projects/*}/snap" - + "shots\022\227\001\n\016CreateSnapshot\022\'.google.pubsub" - + ".v1.CreateSnapshotRequest\032\032.google.pubsu" - + "b.v1.Snapshot\"@\332A\021name,subscription\202\323\344\223\002" - + "&\032!/v1/{name=projects/*/snapshots/*}:\001*\022" - + "\243\001\n\016UpdateSnapshot\022\'.google.pubsub.v1.Up" - + "dateSnapshotRequest\032\032.google.pubsub.v1.S" - + "napshot\"L\332A\024snapshot,update_mask\202\323\344\223\002/2*" - + "/v1/{snapshot.name=projects/*/snapshots/" - + "*}:\001*\022\213\001\n\016DeleteSnapshot\022\'.google.pubsub" - + ".v1.DeleteSnapshotRequest\032\026.google.proto" - + "buf.Empty\"8\332A\010snapshot\202\323\344\223\002\'*%/v1/{snaps" - + "hot=projects/*/snapshots/*}\022\204\001\n\004Seek\022\035.g" - + "oogle.pubsub.v1.SeekRequest\032\036.google.pub" - + "sub.v1.SeekResponse\"=\202\323\344\223\0027\"2/v1/{subscr" - + "iption=projects/*/subscriptions/*}:seek:" - + "\001*\032p\312A\025pubsub.googleapis.com\322AUhttps://w" - + "ww.googleapis.com/auth/cloud-platform,ht" - + "tps://www.googleapis.com/auth/pubsubB\252\001\n" - + "\024com.google.pubsub.v1B\013PubsubProtoP\001Z2cl" - + "oud.google.com/go/pubsub/apiv1/pubsubpb;" - + "pubsubpb\370\001\001\252\002\026Google.Cloud.PubSub.V1\312\002\026G" - + "oogle\\Cloud\\PubSub\\V1\352\002\031Google::Cloud::P" - + "ubSub::V1b\006proto3" + + "roto\032\036google/protobuf/duration.proto\032\033google/protobuf/empty.proto\032" + + " google/protobuf/field_mask.proto\032\037google/protobuf/tim" + + "estamp.proto\032\035google/pubsub/v1/schema.proto\"a\n" + + "\024MessageStoragePolicy\022(\n" + + "\033allowed_persistence_regions\030\001 \003(\tB\003\340A\001\022\037\n" + + "\022enforce_in_transit\030\002 \001(\010B\003\340A\001\"\270\001\n" + + "\016SchemaSettings\0224\n" + + "\006schema\030\001 \001(\tB$\340A\002\372A\036\n" + + "\034pubsub.googleapis.com/Schema\0221\n" + + "\010encoding\030\002 \001(\0162\032.google.pubsub.v1.EncodingB\003\340A\001\022\036\n" + + "\021first_revision_id\030\003 \001(\tB\003\340A\001\022\035\n" + + "\020last_revision_id\030\004 \001(\tB\003\340A\001\"\350\027\n" + + "\033IngestionDataSourceSettings\022T\n" + + "\013aws_kinesis\030\001 \001(\01328.google.pubsub.v" + + "1.IngestionDataSourceSettings.AwsKinesisB\003\340A\001H\000\022X\n\r" + + "cloud_storage\030\002 \001(\0132:.google." + + "pubsub.v1.IngestionDataSourceSettings.CloudStorageB\003\340A\001H\000\022]\n" + + "\020azure_event_hubs\030\003 " + + "\001(\0132<.google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubsB\003\340A\001H\000\022L\n" + + "\007aws_msk\030\005" + + " \001(\01324.google.pubsub.v1.IngestionDataSourceSettings.AwsMskB\003\340A\001H\000\022\\\n" + + "\017confluent_cloud\030\006 \001(\0132<.google.pubsub.v1.Inges" + + "tionDataSourceSettings.ConfluentCloudB\003\340A\001H\000\022K\n" + + "\026platform_logs_settings\030\004 \001(\0132&.g" + + "oogle.pubsub.v1.PlatformLogsSettingsB\003\340A\001\032\352\002\n\n" + + "AwsKinesis\022R\n" + + "\005state\030\001 \001(\0162>.google" + + ".pubsub.v1.IngestionDataSourceSettings.AwsKinesis.StateB\003\340A\003\022\027\n\n" + + "stream_arn\030\002 \001(\tB\003\340A\002\022\031\n" + + "\014consumer_arn\030\003 \001(\tB\003\340A\002\022\031\n" + + "\014aws_role_arn\030\004 \001(\tB\003\340A\002\022 \n" + + "\023gcp_service_account\030\005 \001(\tB\003\340A\002\"\226\001\n" + + "\005State\022\025\n" + + "\021STATE_UNSPECIFIED\020\000\022\n\n" + + "\006ACTIVE\020\001\022\035\n" + + "\031KINESIS_PERMISSION_DENIED\020\002\022\035\n" + + "\031PUBLISH_PERMISSION_DENIED\020\003\022\024\n" + + "\020STREAM_NOT_FOUND\020\004\022\026\n" + + "\022CONSUMER_NOT_FOUND\020\005\032\225\006\n" + + "\014CloudStorage\022T\n" + + "\005state\030\001 \001(\0162@" + + ".google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.StateB\003\340A\003\022\023\n" + + "\006bucket\030\002 \001(\tB\003\340A\001\022a\n" + + "\013text_format\030\003 \001(\0132E.google" + + ".pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormatB\003\340A\001H\000\022a\n" + + "\013avro_format\030\004 \001(\0132E.google.pubsub.v1.IngestionD" + + "ataSourceSettings.CloudStorage.AvroFormatB\003\340A\001H\000\022n\n" + + "\022pubsub_avro_format\030\005 \001(\0132K.google.pubsub.v1.IngestionDataSourceSetti" + + "ngs.CloudStorage.PubSubAvroFormatB\003\340A\001H\000\022C\n" + + "\032minimum_object_create_time\030\006" + + " \001(\0132\032.google.protobuf.TimestampB\003\340A\001\022\027\n\n" + + "match_glob\030\t \001(\tB\003\340A\001\0327\n\n" + + "TextFormat\022\033\n" + + "\tdelimiter\030\001 \001(\tB\003\340A\001H\000\210\001\001B\014\n\n" + + "_delimiter\032\014\n\n" + + "AvroFormat\032\022\n" + + "\020PubSubAvroFormat\"\232\001\n" + + "\005State\022\025\n" + + "\021STATE_UNSPECIFIED\020\000\022\n\n" + + "\006ACTIVE\020\001\022#\n" + + "\037CLOUD_STORAGE_PERMISSION_DENIED\020\002\022\035\n" + + "\031PUBLISH_PERMISSION_DENIED\020\003\022\024\n" + + "\020BUCKET_NOT_FOUND\020\004\022\024\n" + + "\020TOO_MANY_OBJECTS\020\005B\016\n" + + "\014input_format\032\377\003\n" + + "\016AzureEventHubs\022V\n" + + "\005state\030\001 \001(\0162B.googl" + + "e.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs.StateB\003\340A\003\022\033\n" + + "\016resource_group\030\002 \001(\tB\003\340A\001\022\026\n" + + "\tnamespace\030\003 \001(\tB\003\340A\001\022\026\n" + + "\tevent_hub\030\004 \001(\tB\003\340A\001\022\026\n" + + "\tclient_id\030\005 \001(\tB\003\340A\001\022\026\n" + + "\ttenant_id\030\006 \001(\tB\003\340A\001\022\034\n" + + "\017subscription_id\030\007 \001(\tB\003\340A\001\022 \n" + + "\023gcp_service_account\030\010 \001(\tB\003\340A\001\"\327\001\n" + + "\005State\022\025\n" + + "\021STATE_UNSPECIFIED\020\000\022\n\n" + + "\006ACTIVE\020\001\022 \n" + + "\034EVENT_HUBS_PERMISSION_DENIED\020\002\022\035\n" + + "\031PUBLISH_PERMISSION_DENIED\020\003\022\027\n" + + "\023NAMESPACE_NOT_FOUND\020\004\022\027\n" + + "\023EVENT_HUB_NOT_FOUND\020\005\022\032\n" + + "\026SUBSCRIPTION_NOT_FOUND\020\006\022\034\n" + + "\030RESOURCE_GROUP_NOT_FOUND\020\007\032\366\002\n" + + "\006AwsMsk\022N\n" + + "\005state\030\001 \001(\0162:.google.pubsub.v1.In" + + "gestionDataSourceSettings.AwsMsk.StateB\003\340A\003\022\030\n" + + "\013cluster_arn\030\002 \001(\tB\003\340A\002\0222\n" + + "\005topic\030\003 \001(\tB#\340A\002\372A\035\n" + + "\033pubsub.googleapis.com/Topic\022\031\n" + + "\014aws_role_arn\030\004 \001(\tB\003\340A\002\022 \n" + + "\023gcp_service_account\030\005 \001(\tB\003\340A\002\"\220\001\n" + + "\005State\022\025\n" + + "\021STATE_UNSPECIFIED\020\000\022\n\n" + + "\006ACTIVE\020\001\022\031\n" + + "\025MSK_PERMISSION_DENIED\020\002\022\035\n" + + "\031PUBLISH_PERMISSION_DENIED\020\003\022\025\n" + + "\021CLUSTER_NOT_FOUND\020\004\022\023\n" + + "\017TOPIC_NOT_FOUND\020\005\032\266\003\n" + + "\016ConfluentCloud\022V\n" + + "\005state\030\001 " + + "\001(\0162B.google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud.StateB\003\340A\003\022\035\n" + + "\020bootstrap_server\030\002 \001(\tB\003\340A\002\022\027\n\n" + + "cluster_id\030\003 \001(\tB\003\340A\002\022\022\n" + + "\005topic\030\004 \001(\tB\003\340A\002\022\035\n" + + "\020identity_pool_id\030\005 \001(\tB\003\340A\002\022 \n" + + "\023gcp_service_account\030\006 \001(\tB\003\340A\002\"\276\001\n" + + "\005State\022\025\n" + + "\021STATE_UNSPECIFIED\020\000\022\n\n" + + "\006ACTIVE\020\001\022%\n" + + "!CONFLUENT_CLOUD_PERMISSION_DENIED\020\002\022\035\n" + + "\031PUBLISH_PERMISSION_DENIED\020\003\022 \n" + + "\034UNREACHABLE_BOOTSTRAP_SERVER\020\004\022\025\n" + + "\021CLUSTER_NOT_FOUND\020\005\022\023\n" + + "\017TOPIC_NOT_FOUND\020\006B\010\n" + + "\006source\"\277\001\n" + + "\024PlatformLogsSettings\022F\n" + + "\010severity\030\001" + + " \001(\0162/.google.pubsub.v1.PlatformLogsSettings.SeverityB\003\340A\001\"_\n" + + "\010Severity\022\030\n" + + "\024SEVERITY_UNSPECIFIED\020\000\022\014\n" + + "\010DISABLED\020\001\022\t\n" + + "\005DEBUG\020\002\022\010\n" + + "\004INFO\020\003\022\013\n" + + "\007WARNING\020\004\022\t\n" + + "\005ERROR\020\005\"\271\030\n" + + "\025IngestionFailureEvent\0222\n" + + "\005topic\030\001 \001(\tB#\340A\002\372A\035\n" + + "\033pubsub.googleapis.com/Topic\022\032\n\r" + + "error_message\030\002 \001(\tB\003\340A\002\022a\n" + + "\025cloud_storage_failure\030\003 \001(\0132;.google" + + ".pubsub.v1.IngestionFailureEvent.CloudStorageFailureB\003\340A\001H\000\022[\n" + + "\017aws_msk_failure\030\004" + + " \001(\0132;.google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReasonB\003\340A\001H\000\022l\n" + + "\030azure_event_hubs_failure\030\005 \001(\0132C.google.pubs" + + "ub.v1.IngestionFailureEvent.AzureEventHubsFailureReasonB\003\340A\001H\000\022k\n" + + "\027confluent_cloud_failure\030\006 \001(\0132C.google.pubsub.v1.Inges" + + "tionFailureEvent.ConfluentCloudFailureReasonB\003\340A\001H\000\022c\n" + + "\023aws_kinesis_failure\030\007 \001(\013" + + "2?.google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReasonB\003\340A\001H\000\032\024\n" + + "\022ApiViolationReason\032\023\n" + + "\021AvroFailureReason\032\027\n" + + "\025SchemaViolationReason\032$\n" + + "\"MessageTransformationFailureReason\032\230\004\n" + + "\023CloudStorageFailure\022\023\n" + + "\006bucket\030\001 \001(\tB\003\340A\001\022\030\n" + + "\013object_name\030\002 \001(\tB\003\340A\001\022\036\n" + + "\021object_generation\030\003 \001(\003B\003\340A\001\022]\n" + + "\023avro_failure_reason\030\005 \001(\01329.google." + + "pubsub.v1.IngestionFailureEvent.AvroFailureReasonB\003\340A\001H\000\022_\n" + + "\024api_violation_reason\030\006" + + " \001(\0132:.google.pubsub.v1.IngestionFailureEvent.ApiViolationReasonB\003\340A\001H\000\022e\n" + + "\027schema_violation_reason\030\007 \001(\0132=.google.pubs" + + "ub.v1.IngestionFailureEvent.SchemaViolationReasonB\003\340A\001H\000\022\200\001\n" + + "%message_transformation_failure_reason\030\010 \001(\0132J.google.pubsub" + + ".v1.IngestionFailureEvent.MessageTransformationFailureReasonB\003\340A\001H\000B\010\n" + + "\006reason\032\316\003\n" + + "\023AwsMskFailureReason\022\030\n" + + "\013cluster_arn\030\001 \001(\tB\003\340A\001\022\030\n" + + "\013kafka_topic\030\002 \001(\tB\003\340A\001\022\031\n" + + "\014partition_id\030\003 \001(\003B\003\340A\001\022\023\n" + + "\006offset\030\004 \001(\003B\003\340A\001\022_\n" + + "\024api_violation_reason\030\005 \001(\0132:.google" + + ".pubsub.v1.IngestionFailureEvent.ApiViolationReasonB\003\340A\001H\000\022e\n" + + "\027schema_violation_reason\030\006 \001(\0132=.google.pubsub.v1.Ingestion" + + "FailureEvent.SchemaViolationReasonB\003\340A\001H\000\022\200\001\n" + + "%message_transformation_failure_reason\030\007" + + " \001(\0132J.google.pubsub.v1.IngestionFa" + + "ilureEvent.MessageTransformationFailureReasonB\003\340A\001H\000B\010\n" + + "\006reason\032\322\003\n" + + "\033AzureEventHubsFailureReason\022\026\n" + + "\tnamespace\030\001 \001(\tB\003\340A\001\022\026\n" + + "\tevent_hub\030\002 \001(\tB\003\340A\001\022\031\n" + + "\014partition_id\030\003 \001(\003B\003\340A\001\022\023\n" + + "\006offset\030\004 \001(\003B\003\340A\001\022_\n" + + "\024api_violation_reason\030\005 \001(\0132:.google.pubsub.v1." + + "IngestionFailureEvent.ApiViolationReasonB\003\340A\001H\000\022e\n" + + "\027schema_violation_reason\030\006 \001(\013" + + "2=.google.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonB\003\340A\001H\000\022\200\001\n" + + "%message_transformation_failure_reason\030\007 \001(\0132J" + + ".google.pubsub.v1.IngestionFailureEvent." + + "MessageTransformationFailureReasonB\003\340A\001H\000B\010\n" + + "\006reason\032\325\003\n" + + "\033ConfluentCloudFailureReason\022\027\n\n" + + "cluster_id\030\001 \001(\tB\003\340A\001\022\030\n" + + "\013kafka_topic\030\002 \001(\tB\003\340A\001\022\031\n" + + "\014partition_id\030\003 \001(\003B\003\340A\001\022\023\n" + + "\006offset\030\004 \001(\003B\003\340A\001\022_\n" + + "\024api_violation_reason\030\005 \001(\0132:.google.pubsub.v1.Ingestio" + + "nFailureEvent.ApiViolationReasonB\003\340A\001H\000\022e\n" + + "\027schema_violation_reason\030\006 \001(\0132=.googl" + + "e.pubsub.v1.IngestionFailureEvent.SchemaViolationReasonB\003\340A\001H\000\022\200\001\n" + + "%message_transformation_failure_reason\030\007 \001(\0132J.google." + + "pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReasonB\003\340A\001H\000B\010\n" + + "\006reason\032\301\003\n" + + "\027AwsKinesisFailureReason\022\027\n\n" + + "stream_arn\030\001 \001(\tB\003\340A\001\022\032\n\r" + + "partition_key\030\002 \001(\tB\003\340A\001\022\034\n" + + "\017sequence_number\030\003 \001(\tB\003\340A\001\022e\n" + + "\027schema_violation_reason\030\004 \001(\0132=.google.pub" + + "sub.v1.IngestionFailureEvent.SchemaViolationReasonB\003\340A\001H\000\022\200\001\n" + + "%message_transformation_failure_reason\030\005 \001(\0132J.google.pubsu" + + "b.v1.IngestionFailureEvent.MessageTransformationFailureReasonB\003\340A\001H\000\022_\n" + + "\024api_violation_reason\030\006 \001(\0132:.google.pubsub.v1.In" + + "gestionFailureEvent.ApiViolationReasonB\003\340A\001H\000B\010\n" + + "\006reasonB\t\n" + + "\007failure\">\n\r" + + "JavaScriptUDF\022\032\n\r" + + "function_name\030\001 \001(\tB\003\340A\002\022\021\n" + + "\004code\030\002 \001(\tB\003\340A\002\"\216\001\n" + + "\020MessageTransform\022>\n" + + "\016javascript_udf\030\002" + + " \001(\0132\037.google.pubsub.v1.JavaScriptUDFB\003\340A\001H\000\022\026\n" + + "\007enabled\030\003 \001(\010B\005\030\001\340A\001\022\025\n" + + "\010disabled\030\004 \001(\010B\003\340A\001B\013\n" + + "\ttransform\"\240\007\n" + + "\005Topic\022\024\n" + + "\004name\030\001 \001(\tB\006\340A\002\340A\010\0228\n" + + "\006labels\030\002 \003(\0132#.google.pubsub.v1.Topic.LabelsEntryB\003\340A\001\022K\n" + + "\026message_storage_policy\030\003 \001(\0132&." + + "google.pubsub.v1.MessageStoragePolicyB\003\340A\001\022?\n" + + "\014kms_key_name\030\005 \001(\tB)\340A\001\372A#\n" + + "!cloudkms.googleapis.com/CryptoKey\022>\n" + + "\017schema_settings\030\006 \001(\0132" + + " .google.pubsub.v1.SchemaSettingsB\003\340A\001\022\032\n\r" + + "satisfies_pzs\030\007 \001(\010B\003\340A\001\022B\n" + + "\032message_retention_duration\030\010" + + " \001(\0132\031.google.protobuf.DurationB\003\340A\001\0221\n" + + "\005state\030\t \001(\0162\035.google.pubsub.v1.Topic.StateB\003\340A\003\022Z\n" + + "\036ingestion_data_source_settings\030\n" + + " \001(\0132-.google.pubsub.v1.IngestionDataSourceSettingsB\003\340A\001\022C\n" + + "\022message_transforms\030\r" + + " \003(\0132\".google.pubsub.v1.MessageTransformB\003\340A\001\022:\n" + + "\004tags\030\016 \003(\0132!.google.pubsub.v1.Topic.TagsEntryB" + + "\t\340A\004\340A\005\340A\001\032-\n" + + "\013LabelsEntry\022\013\n" + + "\003key\030\001 \001(\t\022\r\n" + + "\005value\030\002 \001(\t:\0028\001\032+\n" + + "\tTagsEntry\022\013\n" + + "\003key\030\001 \001(\t\022\r\n" + + "\005value\030\002 \001(\t:\0028\001\"H\n" + + "\005State\022\025\n" + + "\021STATE_UNSPECIFIED\020\000\022\n\n" + + "\006ACTIVE\020\001\022\034\n" + + "\030INGESTION_RESOURCE_ERROR\020\002:c\352A`\n" + + "\033pubsub.googleapis.com/Topic\022!projects/{project}/" + + "topics/{topic}\022\017_deleted-topic_*\006topics2\005topic\"\200\002\n\r" + + "PubsubMessage\022\021\n" + + "\004data\030\001 \001(\014B\003\340A\001\022H\n\n" + + "attributes\030\002" + + " \003(\0132/.google.pubsub.v1.PubsubMessage.AttributesEntryB\003\340A\001\022\022\n" + + "\n" + + "message_id\030\003 \001(\t\0220\n" + + "\014publish_time\030\004 \001(\0132\032.google.protobuf.Timestamp\022\031\n" + + "\014ordering_key\030\005 \001(\tB\003\340A\001\0321\n" + + "\017AttributesEntry\022\013\n" + + "\003key\030\001 \001(\t\022\r\n" + + "\005value\030\002 \001(\t:\0028\001\"H\n" + + "\017GetTopicRequest\0225\n" + + "\005topic\030\001 \001(\tB&\340A\002\340A\010\372A\035\n" + + "\033pubsub.googleapis.com/Topic\"w\n" + + "\022UpdateTopicRequest\022+\n" + + "\005topic\030\001 \001(\0132\027.google.pubsub.v1.TopicB\003\340A\002\0224\n" + + "\013update_mask\030\002 \001(\0132\032.google.protobuf.FieldMaskB\003\340A\002\"\177\n" + + "\016PublishRequest\0225\n" + + "\005topic\030\001 \001(\tB&\340A\002\340A\010\372A\035\n" + + "\033pubsub.googleapis.com/Topic\0226\n" + + "\010messages\030\002 \003(\0132\037.google.pubsub.v1.PubsubMessageB\003\340A\002\"+\n" + + "\017PublishResponse\022\030\n" + + "\013message_ids\030\001 \003(\tB\003\340A\001\"\215\001\n" + + "\021ListTopicsRequest\022G\n" + + "\007project\030\001 \001(\tB6\340A\002\340A\010\372A-\n" + + "+cloudresourcemanager.googleapis.com/Project\022\026\n" + + "\tpage_size\030\002 \001(\005B\003\340A\001\022\027\n\n" + + "page_token\030\003 \001(\tB\003\340A\001\"`\n" + + "\022ListTopicsResponse\022,\n" + + "\006topics\030\001 \003(\0132\027.google.pubsub.v1.TopicB\003\340A\001\022\034\n" + + "\017next_page_token\030\002 \001(\tB\003\340A\001\"\204\001\n" + + "\035ListTopicSubscriptionsRequest\0222\n" + + "\005topic\030\001 \001(\tB#\340A\002\372A\035\n" + + "\033pubsub.googleapis.com/Topic\022\026\n" + + "\tpage_size\030\002 \001(\005B\003\340A\001\022\027\n\n" + + "page_token\030\003 \001(\tB\003\340A\001\"\201\001\n" + + "\036ListTopicSubscriptionsResponse\022A\n\r" + + "subscriptions\030\001 \003(\tB*\340A\001\372A$\n" + + "\"pubsub.googleapis.com/Subscription\022\034\n" + + "\017next_page_token\030\002 \001(\tB\003\340A\001\"\200\001\n" + + "\031ListTopicSnapshotsRequest\0222\n" + + "\005topic\030\001 \001(\tB#\340A\002\372A\035\n" + + "\033pubsub.googleapis.com/Topic\022\026\n" + + "\tpage_size\030\002 \001(\005B\003\340A\001\022\027\n\n" + + "page_token\030\003 \001(\tB\003\340A\001\"u\n" + + "\032ListTopicSnapshotsResponse\0229\n" + + "\tsnapshots\030\001 \003(\tB&\340A\001\372A \n" + + "\036pubsub.googleapis.com/Snapshot\022\034\n" + + "\017next_page_token\030\002 \001(\tB\003\340A\001\"K\n" + + "\022DeleteTopicRequest\0225\n" + + "\005topic\030\001 \001(\tB&\340A\002\340A\010\372A\035\n" + + "\033pubsub.googleapis.com/Topic\"]\n" + + "\031DetachSubscriptionRequest\022@\n" + + "\014subscription\030\001 \001(\tB*\340A\002\372A$\n" + + "\"pubsub.googleapis.com/Subscription\"\034\n" + + "\032DetachSubscriptionResponse\"\250\014\n" + + "\014Subscription\022\024\n" + + "\004name\030\001 \001(\tB\006\340A\002\340A\010\0222\n" + + "\005topic\030\002 \001(\tB#\340A\002\372A\035\n" + + "\033pubsub.googleapis.com/Topic\0226\n" + + "\013push_config\030\004" + + " \001(\0132\034.google.pubsub.v1.PushConfigB\003\340A\001\022>\n" + + "\017bigquery_config\030\022 \001(\0132" + + " .google.pubsub.v1.BigQueryConfigB\003\340A\001\022G\n" + + "\024cloud_storage_config\030\026 \001(\0132$.g" + + "oogle.pubsub.v1.CloudStorageConfigB\003\340A\001\022!\n" + + "\024ack_deadline_seconds\030\005 \001(\005B\003\340A\001\022\"\n" + + "\025retain_acked_messages\030\007 \001(\010B\003\340A\001\022B\n" + + "\032message_retention_duration\030\010" + + " \001(\0132\031.google.protobuf.DurationB\003\340A\001\022?\n" + + "\006labels\030\t \003(\0132*.goo" + + "gle.pubsub.v1.Subscription.LabelsEntryB\003\340A\001\022$\n" + + "\027enable_message_ordering\030\n" + + " \001(\010B\003\340A\001\022B\n" + + "\021expiration_policy\030\013" + + " \001(\0132\".google.pubsub.v1.ExpirationPolicyB\003\340A\001\022\023\n" + + "\006filter\030\014 \001(\tB\003\340A\001\022C\n" + + "\022dead_letter_policy\030\r" + + " \001(\0132\".google.pubsub.v1.DeadLetterPolicyB\003\340A\001\0228\n" + + "\014retry_policy\030\016" + + " \001(\0132\035.google.pubsub.v1.RetryPolicyB\003\340A\001\022\025\n" + + "\010detached\030\017 \001(\010B\003\340A\001\022)\n" + + "\034enable_exactly_once_delivery\030\020 \001(\010B\003\340A\001\022H\n" + + " topic_message_retention_duration\030\021" + + " \001(\0132\031.google.protobuf.DurationB\003\340A\003\0228\n" + + "\005state\030\023 \001(\0162$.google.pubsub.v1.Subscription.StateB\003\340A\003\022i\n" + + "\037analytics_hub_subscription_info\030\027 \001(\0132;.google.pubsub.v1.Subs" + + "cription.AnalyticsHubSubscriptionInfoB\003\340A\003\022C\n" + + "\022message_transforms\030\031" + + " \003(\0132\".google.pubsub.v1.MessageTransformB\003\340A\001\022A\n" + + "\004tags\030\032 \003(\0132(.google.pubsub.v1.Subscription.TagsEntryB" + + "\t\340A\004\340A\005\340A\001\032w\n" + + "\034AnalyticsHubSubscriptionInfo\022<\n" + + "\007listing\030\001 \001(\tB+\340A\001\372A%\n" + + "#analyticshub.googleapis.com/Listing\022\031\n" + + "\014subscription\030\002 \001(\tB\003\340A\001\032-\n" + + "\013LabelsEntry\022\013\n" + + "\003key\030\001 \001(\t\022\r\n" + + "\005value\030\002 \001(\t:\0028\001\032+\n" + + "\tTagsEntry\022\013\n" + + "\003key\030\001 \001(\t\022\r\n" + + "\005value\030\002 \001(\t:\0028\001\">\n" + + "\005State\022\025\n" + + "\021STATE_UNSPECIFIED\020\000\022\n\n" + + "\006ACTIVE\020\001\022\022\n" + + "\016RESOURCE_ERROR\020\002:u\352Ar\n" + + "\"pubsub.googleapis." + + "com/Subscription\022/projects/{project}/subscriptions/{subscription}*\r" + + "subscriptions2\014subscription\"\177\n" + + "\013RetryPolicy\0227\n" + + "\017minimum_backoff\030\001" + + " \001(\0132\031.google.protobuf.DurationB\003\340A\001\0227\n" + + "\017maximum_backoff\030\002 \001(\0132\031.google.protobuf.DurationB\003\340A\001\"v\n" + + "\020DeadLetterPolicy\022>\n" + + "\021dead_letter_topic\030\001 \001(\tB#\340A\001\372A\035\n" + + "\033pubsub.googleapis.com/Topic\022\"\n" + + "\025max_delivery_attempts\030\002 \001(\005B\003\340A\001\"?\n" + + "\020ExpirationPolicy\022+\n" + + "\003ttl\030\001 \001(\0132\031.google.protobuf.DurationB\003\340A\001\"\232\004\n\n" + + "PushConfig\022\032\n\r" + + "push_endpoint\030\001 \001(\tB\003\340A\001\022E\n\n" + + "attributes\030\002 \003(\0132,.google" + + ".pubsub.v1.PushConfig.AttributesEntryB\003\340A\001\022A\n\n" + + "oidc_token\030\003" + + " \001(\0132&.google.pubsub.v1.PushConfig.OidcTokenB\003\340A\001H\000\022I\n" + + "\016pubsub_wrapper\030\004" + + " \001(\0132*.google.pubsub.v1.PushConfig.PubsubWrapperB\003\340A\001H\001\022A\n\n" + + "no_wrapper\030\005" + + " \001(\0132&.google.pubsub.v1.PushConfig.NoWrapperB\003\340A\001H\001\032F\n" + + "\tOidcToken\022\"\n" + + "\025service_account_email\030\001 \001(\tB\003\340A\001\022\025\n" + + "\010audience\030\002 \001(\tB\003\340A\001\032\017\n\r" + + "PubsubWrapper\032(\n" + + "\tNoWrapper\022\033\n" + + "\016write_metadata\030\001 \001(\010B\003\340A\001\0321\n" + + "\017AttributesEntry\022\013\n" + + "\003key\030\001 \001(\t\022\r\n" + + "\005value\030\002 \001(\t:\0028\001B\027\n" + + "\025authentication_methodB\t\n" + + "\007wrapper\"\216\003\n" + + "\016BigQueryConfig\022\022\n" + + "\005table\030\001 \001(\tB\003\340A\001\022\035\n" + + "\020use_topic_schema\030\002 \001(\010B\003\340A\001\022\033\n" + + "\016write_metadata\030\003 \001(\010B\003\340A\001\022 \n" + + "\023drop_unknown_fields\030\004 \001(\010B\003\340A\001\022:\n" + + "\005state\030\005" + + " \001(\0162&.google.pubsub.v1.BigQueryConfig.StateB\003\340A\003\022\035\n" + + "\020use_table_schema\030\006 \001(\010B\003\340A\001\022\"\n" + + "\025service_account_email\030\007 \001(\tB\003\340A\001\"\212\001\n" + + "\005State\022\025\n" + + "\021STATE_UNSPECIFIED\020\000\022\n\n" + + "\006ACTIVE\020\001\022\025\n" + + "\021PERMISSION_DENIED\020\002\022\r\n" + + "\tNOT_FOUND\020\003\022\023\n" + + "\017SCHEMA_MISMATCH\020\004\022#\n" + + "\037IN_TRANSIT_LOCATION_RESTRICTION\020\005\"\351\005\n" + + "\022CloudStorageConfig\022\023\n" + + "\006bucket\030\001 \001(\tB\003\340A\002\022\034\n" + + "\017filename_prefix\030\002 \001(\tB\003\340A\001\022\034\n" + + "\017filename_suffix\030\003 \001(\tB\003\340A\001\022%\n" + + "\030filename_datetime_format\030\n" + + " \001(\tB\003\340A\001\022K\n" + + "\013text_config\030\004 \001(\0132/.goo" + + "gle.pubsub.v1.CloudStorageConfig.TextConfigB\003\340A\001H\000\022K\n" + + "\013avro_config\030\005 \001(\0132/.google" + + ".pubsub.v1.CloudStorageConfig.AvroConfigB\003\340A\001H\000\0224\n" + + "\014max_duration\030\006" + + " \001(\0132\031.google.protobuf.DurationB\003\340A\001\022\026\n" + + "\tmax_bytes\030\007 \001(\003B\003\340A\001\022\031\n" + + "\014max_messages\030\010 \001(\003B\003\340A\001\022>\n" + + "\005state\030\t" + + " \001(\0162*.google.pubsub.v1.CloudStorageConfig.StateB\003\340A\003\022\"\n" + + "\025service_account_email\030\013 \001(\tB\003\340A\001\032\014\n\n" + + "TextConfig\032H\n\n" + + "AvroConfig\022\033\n" + + "\016write_metadata\030\001 \001(\010B\003\340A\001\022\035\n" + + "\020use_topic_schema\030\002 \001(\010B\003\340A\001\"\212\001\n" + + "\005State\022\025\n" + + "\021STATE_UNSPECIFIED\020\000\022\n\n" + + "\006ACTIVE\020\001\022\025\n" + + "\021PERMISSION_DENIED\020\002\022\r\n" + + "\tNOT_FOUND\020\003\022#\n" + + "\037IN_TRANSIT_LOCATION_RESTRICTION\020\004\022\023\n" + + "\017SCHEMA_MISMATCH\020\005B\017\n\r" + + "output_format\"|\n" + + "\017ReceivedMessage\022\023\n" + + "\006ack_id\030\001 \001(\tB\003\340A\001\0225\n" + + "\007message\030\002" + + " \001(\0132\037.google.pubsub.v1.PubsubMessageB\003\340A\001\022\035\n" + + "\020delivery_attempt\030\003 \001(\005B\003\340A\001\"]\n" + + "\026GetSubscriptionRequest\022C\n" + + "\014subscription\030\001 \001(\tB-\340A\002\340A\010\372A$\n" + + "\"pubsub.googleapis.com/Subscription\"\214\001\n" + + "\031UpdateSubscriptionRequest\0229\n" + + "\014subscription\030\001" + + " \001(\0132\036.google.pubsub.v1.SubscriptionB\003\340A\002\0224\n" + + "\013update_mask\030\002" + + " \001(\0132\032.google.protobuf.FieldMaskB\003\340A\002\"\224\001\n" + + "\030ListSubscriptionsRequest\022G\n" + + "\007project\030\001 \001(\tB6\340A\002\340A\010\372A-\n" + + "+cloudresourcemanager.googleapis.com/Project\022\026\n" + + "\tpage_size\030\002 \001(\005B\003\340A\001\022\027\n\n" + + "page_token\030\003 \001(\tB\003\340A\001\"u\n" + + "\031ListSubscriptionsResponse\022:\n\r" + + "subscriptions\030\001" + + " \003(\0132\036.google.pubsub.v1.SubscriptionB\003\340A\001\022\034\n" + + "\017next_page_token\030\002 \001(\tB\003\340A\001\"`\n" + + "\031DeleteSubscriptionRequest\022C\n" + + "\014subscription\030\001 \001(\tB-\340A\002\340A\010\372A$\n" + + "\"pubsub.googleapis.com/Subscription\"\223\001\n" + + "\027ModifyPushConfigRequest\022@\n" + + "\014subscription\030\001 \001(\tB*\340A\002\372A$\n" + + "\"pubsub.googleapis.com/Subscription\0226\n" + + "\013push_config\030\002" + + " \001(\0132\034.google.pubsub.v1.PushConfigB\003\340A\002\"\215\001\n" + + "\013PullRequest\022@\n" + + "\014subscription\030\001 \001(\tB*\340A\002\372A$\n" + + "\"pubsub.googleapis.com/Subscription\022!\n" + + "\022return_immediately\030\002 \001(\010B\005\030\001\340A\001\022\031\n" + + "\014max_messages\030\003 \001(\005B\003\340A\002\"Q\n" + + "\014PullResponse\022A\n" + + "\021received_messages\030\001" + + " \003(\0132!.google.pubsub.v1.ReceivedMessageB\003\340A\001\"\225\001\n" + + "\030ModifyAckDeadlineRequest\022@\n" + + "\014subscription\030\001 \001(\tB*\340A\002\372A$\n" + + "\"pubsub.googleapis.com/Subscription\022\024\n" + + "\007ack_ids\030\004 \003(\tB\003\340A\002\022!\n" + + "\024ack_deadline_seconds\030\003 \001(\005B\003\340A\002\"l\n" + + "\022AcknowledgeRequest\022@\n" + + "\014subscription\030\001 \001(\tB*\340A\002\372A$\n" + + "\"pubsub.googleapis.com/Subscription\022\024\n" + + "\007ack_ids\030\002 \003(\tB\003\340A\002\"\346\002\n" + + "\024StreamingPullRequest\022@\n" + + "\014subscription\030\001 \001(\tB*\340A\002\372A$\n" + + "\"pubsub.googleapis.com/Subscription\022\024\n" + + "\007ack_ids\030\002 \003(\tB\003\340A\001\022$\n" + + "\027modify_deadline_seconds\030\003 \003(\005B\003\340A\001\022$\n" + + "\027modify_deadline_ack_ids\030\004 \003(\tB\003\340A\001\022(\n" + + "\033stream_ack_deadline_seconds\030\005 \001(\005B\003\340A\002\022\026\n" + + "\tclient_id\030\006 \001(\tB\003\340A\001\022%\n" + + "\030max_outstanding_messages\030\007 \001(\003B\003\340A\001\022\"\n" + + "\025max_outstanding_bytes\030\010 \001(\003B\003\340A\001\022\035\n" + + "\020protocol_version\030\n" + + " \001(\003B\003\340A\001\"\236\006\n" + + "\025StreamingPullResponse\022A\n" + + "\021received_messages\030\001 " + + "\003(\0132!.google.pubsub.v1.ReceivedMessageB\003\340A\001\022f\n" + + "\030acknowledge_confirmation\030\005 \001(\0132?." + + "google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmationB\003\340A\001\022t\n" + + " modify_ack_deadline_confirmation\030\003 \001(\0132E.google.p" + + "ubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmationB\003\340A\001\022d\n" + + "\027subscription_properties\030\004 \001(\0132>.google.pubsub.v1.St" + + "reamingPullResponse.SubscriptionPropertiesB\003\340A\001\032\224\001\n" + + "\027AcknowledgeConfirmation\022\024\n" + + "\007ack_ids\030\001 \003(\tB\003\340A\001\022\034\n" + + "\017invalid_ack_ids\030\002 \003(\tB\003\340A\001\022\036\n" + + "\021unordered_ack_ids\030\003 \003(\tB\003\340A\001\022%\n" + + "\030temporary_failed_ack_ids\030\004 \003(\tB\003\340A\001\032z\n" + + "\035ModifyAckDeadlineConfirmation\022\024\n" + + "\007ack_ids\030\001 \003(\tB\003\340A\001\022\034\n" + + "\017invalid_ack_ids\030\002 \003(\tB\003\340A\001\022%\n" + + "\030temporary_failed_ack_ids\030\003 \003(\tB\003\340A\001\032k\n" + + "\026SubscriptionProperties\022*\n" + + "\035exactly_once_delivery_enabled\030\001 \001(\010B\003\340A\001\022%\n" + + "\030message_ordering_enabled\030\002 \001(\010B\003\340A\001\"\204\003\n" + + "\025CreateSnapshotRequest\0227\n" + + "\004name\030\001 \001(\tB)\340A\002\340A\010\372A \n" + + "\036pubsub.googleapis.com/Snapshot\022@\n" + + "\014subscription\030\002 \001(\tB*\340A\002\372A$\n" + + "\"pubsub.googleapis.com/Subscription\022H\n" + + "\006labels\030\003 \003(\01323.g", + "oogle.pubsub.v1.CreateSnapshotRequest.LabelsEntryB\003\340A\001\022J\n" + + "\004tags\030\004 \003(\01321.google.pubsub.v1.CreateSnapshotRequest.TagsEntryB" + + "\t\340A\004\340A\005\340A\001\032-\n" + + "\013LabelsEntry\022\013\n" + + "\003key\030\001 \001(\t\022\r" + + "\n" + + "\005value\030\002 \001(\t:\0028\001\032+\n" + + "\tTagsEntry\022\013\n" + + "\003key\030\001 \001(\t\022\r\n" + + "\005value\030\002 \001(\t:\0028\001\"\200\001\n" + + "\025UpdateSnapshotRequest\0221\n" + + "\010snapshot\030\001 \001(\0132\032.google.pubsub.v1.SnapshotB\003\340A\002\0224\n" + + "\013update_mask\030\002" + + " \001(\0132\032.google.protobuf.FieldMaskB\003\340A\002\"\326\002\n" + + "\010Snapshot\022\021\n" + + "\004name\030\001 \001(\tB\003\340A\001\0222\n" + + "\005topic\030\002 \001(\tB#\340A\001\372A\035\n" + + "\033pubsub.googleapis.com/Topic\0224\n" + + "\013expire_time\030\003 \001(\0132\032.google.protobuf.TimestampB\003\340A\001\022;\n" + + "\006labels\030\004" + + " \003(\0132&.google.pubsub.v1.Snapshot.LabelsEntryB\003\340A\001\032-\n" + + "\013LabelsEntry\022\013\n" + + "\003key\030\001 \001(\t\022\r\n" + + "\005value\030\002 \001(\t:\0028\001:a\352A^\n" + + "\036pubsub.googleapis.com/Snapshot\022\'projects/{project}/snapshots/{snapshot}*" + + "\tsnapshots2\010snapshot\"Q\n" + + "\022GetSnapshotRequest\022;\n" + + "\010snapshot\030\001 \001(\tB)\340A\002\340A\010\372A \n" + + "\036pubsub.googleapis.com/Snapshot\"\220\001\n" + + "\024ListSnapshotsRequest\022G\n" + + "\007project\030\001 \001(\tB6\340A\002\340A\010\372A-\n" + + "+cloudresourcemanager.googleapis.com/Project\022\026\n" + + "\tpage_size\030\002 \001(\005B\003\340A\001\022\027\n\n" + + "page_token\030\003 \001(\tB\003\340A\001\"i\n" + + "\025ListSnapshotsResponse\0222\n" + + "\tsnapshots\030\001 \003(\0132\032.google.pubsub.v1.SnapshotB\003\340A\001\022\034\n" + + "\017next_page_token\030\002 \001(\tB\003\340A\001\"T\n" + + "\025DeleteSnapshotRequest\022;\n" + + "\010snapshot\030\001 \001(\tB)\340A\002\340A\010\372A \n" + + "\036pubsub.googleapis.com/Snapshot\"\306\001\n" + + "\013SeekRequest\022@\n" + + "\014subscription\030\001 \001(\tB*\340A\002\372A$\n" + + "\"pubsub.googleapis.com/Subscription\022/\n" + + "\004time\030\002 \001(\0132\032.google.protobuf.TimestampB\003\340A\001H\000\022:\n" + + "\010snapshot\030\003 \001(\tB&\340A\001\372A \n" + + "\036pubsub.googleapis.com/SnapshotH\000B\010\n" + + "\006target\"\016\n" + + "\014SeekResponse2\270\013\n" + + "\tPublisher\022q\n" + + "\013CreateTopic\022\027.google.pubsub.v1.Topic\032\027.googl" + + "e.pubsub.v1.Topic\"0\332A\004name\202\323\344\223\002#\032\036/v1/{name=projects/*/topics/*}:\001*\022\221\001\n" + + "\013UpdateTopic\022$.google.pubsub.v1.UpdateTopicReques" + + "t\032\027.google.pubsub.v1.Topic\"C\332A\021topic,upd" + + "ate_mask\202\323\344\223\002)2$/v1/{topic.name=projects/*/topics/*}:\001*\022\223\001\n" + + "\007Publish\022 .google.pubsub.v1.PublishRequest\032!.google.pubsub.v1" + + ".PublishResponse\"C\332A\016topic,messages\202\323\344\223\002" + + ",\"\'/v1/{topic=projects/*/topics/*}:publish:\001*\022w\n" + + "\010GetTopic\022!.google.pubsub.v1.Get" + + "TopicRequest\032\027.google.pubsub.v1.Topic\"/\332" + + "A\005topic\202\323\344\223\002!\022\037/v1/{topic=projects/*/topics/*}\022\212\001\n\n" + + "ListTopics\022#.google.pubsub.v1.ListTopicsRequest\032$.google.pubsub.v1.Li" + + "stTopicsResponse\"1\332A\007project\202\323\344\223\002!\022\037/v1/{project=projects/*}/topics\022\272\001\n" + + "\026ListTopicSubscriptions\022/.google.pubsub.v1.ListTo" + + "picSubscriptionsRequest\0320.google.pubsub." + + "v1.ListTopicSubscriptionsResponse\"=\332A\005to" + + "pic\202\323\344\223\002/\022-/v1/{topic=projects/*/topics/*}/subscriptions\022\252\001\n" + + "\022ListTopicSnapshots\022+.google.pubsub.v1.ListTopicSnapshotsReq" + + "uest\032,.google.pubsub.v1.ListTopicSnapsho" + + "tsResponse\"9\332A\005topic\202\323\344\223\002+\022)/v1/{topic=projects/*/topics/*}/snapshots\022|\n" + + "\013DeleteTopic\022$.google.pubsub.v1.DeleteTopicReque" + + "st\032\026.google.protobuf.Empty\"/\332A\005topic\202\323\344\223\002!*\037/v1/{topic=projects/*/topics/*}\022\255\001\n" + + "\022DetachSubscription\022+.google.pubsub.v1.De" + + "tachSubscriptionRequest\032,.google.pubsub." + + "v1.DetachSubscriptionResponse\"<\202\323\344\223\0026\"4/" + + "v1/{subscription=projects/*/subscription" + + "s/*}:detach\032p\312A\025pubsub.googleapis.com\322AU" + + "https://www.googleapis.com/auth/cloud-pl" + + "atform,https://www.googleapis.com/auth/pubsub2\322\025\n\n" + + "Subscriber\022\264\001\n" + + "\022CreateSubscription\022\036.google.pubsub.v1.Subscription\032\036.go" + + "ogle.pubsub.v1.Subscription\"^\332A+name,top" + + "ic,push_config,ack_deadline_seconds\202\323\344\223\002" + + "*\032%/v1/{name=projects/*/subscriptions/*}:\001*\022\241\001\n" + + "\017GetSubscription\022(.google.pubsub.v1.GetSubscriptionRequest\032\036.google.pubsu" + + "b.v1.Subscription\"D\332A\014subscription\202\323\344\223\002/" + + "\022-/v1/{subscription=projects/*/subscriptions/*}\022\273\001\n" + + "\022UpdateSubscription\022+.google.pubsub.v1.UpdateSubscriptionRequest\032\036.go" + + "ogle.pubsub.v1.Subscription\"X\332A\030subscrip" + + "tion,update_mask\202\323\344\223\002722/v1/{subscriptio" + + "n.name=projects/*/subscriptions/*}:\001*\022\246\001\n" + + "\021ListSubscriptions\022*.google.pubsub.v1.L" + + "istSubscriptionsRequest\032+.google.pubsub." + + "v1.ListSubscriptionsResponse\"8\332A\007project" + + "\202\323\344\223\002(\022&/v1/{project=projects/*}/subscriptions\022\237\001\n" + + "\022DeleteSubscription\022+.google.pubsub.v1.DeleteSubscriptionRequest\032\026.goo" + + "gle.protobuf.Empty\"D\332A\014subscription\202\323\344\223\002" + + "/*-/v1/{subscription=projects/*/subscriptions/*}\022\317\001\n" + + "\021ModifyAckDeadline\022*.google.pubsub.v1.ModifyAckDeadlineRequest\032\026.goo" + + "gle.protobuf.Empty\"v\332A)subscription,ack_" + + "ids,ack_deadline_seconds\202\323\344\223\002D\"?/v1/{sub" + + "scription=projects/*/subscriptions/*}:modifyAckDeadline:\001*\022\250\001\n" + + "\013Acknowledge\022$.google.pubsub.v1.AcknowledgeRequest\032\026.googl" + + "e.protobuf.Empty\"[\332A\024subscription,ack_id" + + "s\202\323\344\223\002>\"9/v1/{subscription=projects/*/subscriptions/*}:acknowledge:\001*\022\320\001\n" + + "\004Pull\022\035.google.pubsub.v1.PullRequest\032\036.google.p" + + "ubsub.v1.PullResponse\"\210\001\332A,subscription," + + "return_immediately,max_messages\332A\031subscr" + + "iption,max_messages\202\323\344\223\0027\"2/v1/{subscrip" + + "tion=projects/*/subscriptions/*}:pull:\001*\022f\n\r" + + "StreamingPull\022&.google.pubsub.v1.Str" + + "eamingPullRequest\032\'.google.pubsub.v1.StreamingPullResponse\"\000(\0010\001\022\273\001\n" + + "\020ModifyPushConfig\022).google.pubsub.v1.ModifyPushConfi" + + "gRequest\032\026.google.protobuf.Empty\"d\332A\030sub" + + "scription,push_config\202\323\344\223\002C\">/v1/{subscr" + + "iption=projects/*/subscriptions/*}:modifyPushConfig:\001*\022\211\001\n" + + "\013GetSnapshot\022$.google.pubsub.v1.GetSnapshotRequest\032\032.google.pu" + + "bsub.v1.Snapshot\"8\332A\010snapshot\202\323\344\223\002\'\022%/v1/{snapshot=projects/*/snapshots/*}\022\226\001\n\r" + + "ListSnapshots\022&.google.pubsub.v1.ListSnap" + + "shotsRequest\032\'.google.pubsub.v1.ListSnap" + + "shotsResponse\"4\332A\007project\202\323\344\223\002$\022\"/v1/{project=projects/*}/snapshots\022\227\001\n" + + "\016CreateSnapshot\022\'.google.pubsub.v1.CreateSnapshot" + + "Request\032\032.google.pubsub.v1.Snapshot\"@\332A\021" + + "name,subscription\202\323\344\223\002&\032!/v1/{name=projects/*/snapshots/*}:\001*\022\243\001\n" + + "\016UpdateSnapshot\022\'.google.pubsub.v1.UpdateSnapshotReques" + + "t\032\032.google.pubsub.v1.Snapshot\"L\332A\024snapsh" + + "ot,update_mask\202\323\344\223\002/2*/v1/{snapshot.name=projects/*/snapshots/*}:\001*\022\213\001\n" + + "\016DeleteSnapshot\022\'.google.pubsub.v1.DeleteSnapshot" + + "Request\032\026.google.protobuf.Empty\"8\332A\010snap" + + "shot\202\323\344\223\002\'*%/v1/{snapshot=projects/*/snapshots/*}\022\204\001\n" + + "\004Seek\022\035.google.pubsub.v1.SeekRequest\032\036.google.pubsub.v1.SeekRespons" + + "e\"=\202\323\344\223\0027\"2/v1/{subscription=projects/*/" + + "subscriptions/*}:seek:\001*\032p\312A\025pubsub.goog" + + "leapis.com\322AUhttps://www.googleapis.com/" + + "auth/cloud-platform,https://www.googleapis.com/auth/pubsubB\247\003\n" + + "\024com.google.pubsub.v1B\013PubsubProtoP\001Z5cloud.google.com/go/" + + "pubsub/v2/apiv1/pubsubpb;pubsubpb\252\002\026Goog" + + "le.Cloud.PubSub.V1\312\002\026Google\\Cloud\\PubSub\\V1\352\002\031Google::Cloud::PubSub::V1\352Ax\n" + + "!cloudkms.googleapis.com/CryptoKey\022Sprojects/" + + "{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}\352A\177\n" + + "#analyticshub.googleapis.com/Listing\022Xprojects/{project}/locations/{location}/data" + + "Exchanges/{data_exchange}/listings/{listing}b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( @@ -629,7 +1066,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_MessageStoragePolicy_descriptor, new java.lang.String[] { - "AllowedPersistenceRegions", + "AllowedPersistenceRegions", "EnforceInTransit", }); internal_static_google_pubsub_v1_SchemaSettings_descriptor = getDescriptor().getMessageTypes().get(1); @@ -639,7 +1076,253 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new java.lang.String[] { "Schema", "Encoding", "FirstRevisionId", "LastRevisionId", }); - internal_static_google_pubsub_v1_Topic_descriptor = getDescriptor().getMessageTypes().get(2); + internal_static_google_pubsub_v1_IngestionDataSourceSettings_descriptor = + getDescriptor().getMessageTypes().get(2); + internal_static_google_pubsub_v1_IngestionDataSourceSettings_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionDataSourceSettings_descriptor, + new java.lang.String[] { + "AwsKinesis", + "CloudStorage", + "AzureEventHubs", + "AwsMsk", + "ConfluentCloud", + "PlatformLogsSettings", + "Source", + }); + internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsKinesis_descriptor = + internal_static_google_pubsub_v1_IngestionDataSourceSettings_descriptor + .getNestedTypes() + .get(0); + internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsKinesis_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsKinesis_descriptor, + new java.lang.String[] { + "State", "StreamArn", "ConsumerArn", "AwsRoleArn", "GcpServiceAccount", + }); + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_descriptor = + internal_static_google_pubsub_v1_IngestionDataSourceSettings_descriptor + .getNestedTypes() + .get(1); + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_descriptor, + new java.lang.String[] { + "State", + "Bucket", + "TextFormat", + "AvroFormat", + "PubsubAvroFormat", + "MinimumObjectCreateTime", + "MatchGlob", + "InputFormat", + }); + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_TextFormat_descriptor = + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_descriptor + .getNestedTypes() + .get(0); + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_TextFormat_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_TextFormat_descriptor, + new java.lang.String[] { + "Delimiter", + }); + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_AvroFormat_descriptor = + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_descriptor + .getNestedTypes() + .get(1); + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_AvroFormat_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_AvroFormat_descriptor, + new java.lang.String[] {}); + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat_descriptor = + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_descriptor + .getNestedTypes() + .get(2); + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat_descriptor, + new java.lang.String[] {}); + internal_static_google_pubsub_v1_IngestionDataSourceSettings_AzureEventHubs_descriptor = + internal_static_google_pubsub_v1_IngestionDataSourceSettings_descriptor + .getNestedTypes() + .get(2); + internal_static_google_pubsub_v1_IngestionDataSourceSettings_AzureEventHubs_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionDataSourceSettings_AzureEventHubs_descriptor, + new java.lang.String[] { + "State", + "ResourceGroup", + "Namespace", + "EventHub", + "ClientId", + "TenantId", + "SubscriptionId", + "GcpServiceAccount", + }); + internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsMsk_descriptor = + internal_static_google_pubsub_v1_IngestionDataSourceSettings_descriptor + .getNestedTypes() + .get(3); + internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsMsk_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionDataSourceSettings_AwsMsk_descriptor, + new java.lang.String[] { + "State", "ClusterArn", "Topic", "AwsRoleArn", "GcpServiceAccount", + }); + internal_static_google_pubsub_v1_IngestionDataSourceSettings_ConfluentCloud_descriptor = + internal_static_google_pubsub_v1_IngestionDataSourceSettings_descriptor + .getNestedTypes() + .get(4); + internal_static_google_pubsub_v1_IngestionDataSourceSettings_ConfluentCloud_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionDataSourceSettings_ConfluentCloud_descriptor, + new java.lang.String[] { + "State", + "BootstrapServer", + "ClusterId", + "Topic", + "IdentityPoolId", + "GcpServiceAccount", + }); + internal_static_google_pubsub_v1_PlatformLogsSettings_descriptor = + getDescriptor().getMessageTypes().get(3); + internal_static_google_pubsub_v1_PlatformLogsSettings_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_PlatformLogsSettings_descriptor, + new java.lang.String[] { + "Severity", + }); + internal_static_google_pubsub_v1_IngestionFailureEvent_descriptor = + getDescriptor().getMessageTypes().get(4); + internal_static_google_pubsub_v1_IngestionFailureEvent_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionFailureEvent_descriptor, + new java.lang.String[] { + "Topic", + "ErrorMessage", + "CloudStorageFailure", + "AwsMskFailure", + "AzureEventHubsFailure", + "ConfluentCloudFailure", + "AwsKinesisFailure", + "Failure", + }); + internal_static_google_pubsub_v1_IngestionFailureEvent_ApiViolationReason_descriptor = + internal_static_google_pubsub_v1_IngestionFailureEvent_descriptor.getNestedTypes().get(0); + internal_static_google_pubsub_v1_IngestionFailureEvent_ApiViolationReason_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionFailureEvent_ApiViolationReason_descriptor, + new java.lang.String[] {}); + internal_static_google_pubsub_v1_IngestionFailureEvent_AvroFailureReason_descriptor = + internal_static_google_pubsub_v1_IngestionFailureEvent_descriptor.getNestedTypes().get(1); + internal_static_google_pubsub_v1_IngestionFailureEvent_AvroFailureReason_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionFailureEvent_AvroFailureReason_descriptor, + new java.lang.String[] {}); + internal_static_google_pubsub_v1_IngestionFailureEvent_SchemaViolationReason_descriptor = + internal_static_google_pubsub_v1_IngestionFailureEvent_descriptor.getNestedTypes().get(2); + internal_static_google_pubsub_v1_IngestionFailureEvent_SchemaViolationReason_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionFailureEvent_SchemaViolationReason_descriptor, + new java.lang.String[] {}); + internal_static_google_pubsub_v1_IngestionFailureEvent_MessageTransformationFailureReason_descriptor = + internal_static_google_pubsub_v1_IngestionFailureEvent_descriptor.getNestedTypes().get(3); + internal_static_google_pubsub_v1_IngestionFailureEvent_MessageTransformationFailureReason_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionFailureEvent_MessageTransformationFailureReason_descriptor, + new java.lang.String[] {}); + internal_static_google_pubsub_v1_IngestionFailureEvent_CloudStorageFailure_descriptor = + internal_static_google_pubsub_v1_IngestionFailureEvent_descriptor.getNestedTypes().get(4); + internal_static_google_pubsub_v1_IngestionFailureEvent_CloudStorageFailure_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionFailureEvent_CloudStorageFailure_descriptor, + new java.lang.String[] { + "Bucket", + "ObjectName", + "ObjectGeneration", + "AvroFailureReason", + "ApiViolationReason", + "SchemaViolationReason", + "MessageTransformationFailureReason", + "Reason", + }); + internal_static_google_pubsub_v1_IngestionFailureEvent_AwsMskFailureReason_descriptor = + internal_static_google_pubsub_v1_IngestionFailureEvent_descriptor.getNestedTypes().get(5); + internal_static_google_pubsub_v1_IngestionFailureEvent_AwsMskFailureReason_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionFailureEvent_AwsMskFailureReason_descriptor, + new java.lang.String[] { + "ClusterArn", + "KafkaTopic", + "PartitionId", + "Offset", + "ApiViolationReason", + "SchemaViolationReason", + "MessageTransformationFailureReason", + "Reason", + }); + internal_static_google_pubsub_v1_IngestionFailureEvent_AzureEventHubsFailureReason_descriptor = + internal_static_google_pubsub_v1_IngestionFailureEvent_descriptor.getNestedTypes().get(6); + internal_static_google_pubsub_v1_IngestionFailureEvent_AzureEventHubsFailureReason_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionFailureEvent_AzureEventHubsFailureReason_descriptor, + new java.lang.String[] { + "Namespace", + "EventHub", + "PartitionId", + "Offset", + "ApiViolationReason", + "SchemaViolationReason", + "MessageTransformationFailureReason", + "Reason", + }); + internal_static_google_pubsub_v1_IngestionFailureEvent_ConfluentCloudFailureReason_descriptor = + internal_static_google_pubsub_v1_IngestionFailureEvent_descriptor.getNestedTypes().get(7); + internal_static_google_pubsub_v1_IngestionFailureEvent_ConfluentCloudFailureReason_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionFailureEvent_ConfluentCloudFailureReason_descriptor, + new java.lang.String[] { + "ClusterId", + "KafkaTopic", + "PartitionId", + "Offset", + "ApiViolationReason", + "SchemaViolationReason", + "MessageTransformationFailureReason", + "Reason", + }); + internal_static_google_pubsub_v1_IngestionFailureEvent_AwsKinesisFailureReason_descriptor = + internal_static_google_pubsub_v1_IngestionFailureEvent_descriptor.getNestedTypes().get(8); + internal_static_google_pubsub_v1_IngestionFailureEvent_AwsKinesisFailureReason_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_IngestionFailureEvent_AwsKinesisFailureReason_descriptor, + new java.lang.String[] { + "StreamArn", + "PartitionKey", + "SequenceNumber", + "SchemaViolationReason", + "MessageTransformationFailureReason", + "ApiViolationReason", + "Reason", + }); + internal_static_google_pubsub_v1_JavaScriptUDF_descriptor = + getDescriptor().getMessageTypes().get(5); + internal_static_google_pubsub_v1_JavaScriptUDF_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_JavaScriptUDF_descriptor, + new java.lang.String[] { + "FunctionName", "Code", + }); + internal_static_google_pubsub_v1_MessageTransform_descriptor = + getDescriptor().getMessageTypes().get(6); + internal_static_google_pubsub_v1_MessageTransform_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_MessageTransform_descriptor, + new java.lang.String[] { + "JavascriptUdf", "Enabled", "Disabled", "Transform", + }); + internal_static_google_pubsub_v1_Topic_descriptor = getDescriptor().getMessageTypes().get(7); internal_static_google_pubsub_v1_Topic_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_Topic_descriptor, @@ -651,6 +1334,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "SchemaSettings", "SatisfiesPzs", "MessageRetentionDuration", + "State", + "IngestionDataSourceSettings", + "MessageTransforms", + "Tags", }); internal_static_google_pubsub_v1_Topic_LabelsEntry_descriptor = internal_static_google_pubsub_v1_Topic_descriptor.getNestedTypes().get(0); @@ -660,8 +1347,16 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new java.lang.String[] { "Key", "Value", }); + internal_static_google_pubsub_v1_Topic_TagsEntry_descriptor = + internal_static_google_pubsub_v1_Topic_descriptor.getNestedTypes().get(1); + internal_static_google_pubsub_v1_Topic_TagsEntry_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_Topic_TagsEntry_descriptor, + new java.lang.String[] { + "Key", "Value", + }); internal_static_google_pubsub_v1_PubsubMessage_descriptor = - getDescriptor().getMessageTypes().get(3); + getDescriptor().getMessageTypes().get(8); internal_static_google_pubsub_v1_PubsubMessage_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_PubsubMessage_descriptor, @@ -677,7 +1372,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Key", "Value", }); internal_static_google_pubsub_v1_GetTopicRequest_descriptor = - getDescriptor().getMessageTypes().get(4); + getDescriptor().getMessageTypes().get(9); internal_static_google_pubsub_v1_GetTopicRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_GetTopicRequest_descriptor, @@ -685,7 +1380,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Topic", }); internal_static_google_pubsub_v1_UpdateTopicRequest_descriptor = - getDescriptor().getMessageTypes().get(5); + getDescriptor().getMessageTypes().get(10); internal_static_google_pubsub_v1_UpdateTopicRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_UpdateTopicRequest_descriptor, @@ -693,7 +1388,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Topic", "UpdateMask", }); internal_static_google_pubsub_v1_PublishRequest_descriptor = - getDescriptor().getMessageTypes().get(6); + getDescriptor().getMessageTypes().get(11); internal_static_google_pubsub_v1_PublishRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_PublishRequest_descriptor, @@ -701,7 +1396,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Topic", "Messages", }); internal_static_google_pubsub_v1_PublishResponse_descriptor = - getDescriptor().getMessageTypes().get(7); + getDescriptor().getMessageTypes().get(12); internal_static_google_pubsub_v1_PublishResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_PublishResponse_descriptor, @@ -709,7 +1404,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "MessageIds", }); internal_static_google_pubsub_v1_ListTopicsRequest_descriptor = - getDescriptor().getMessageTypes().get(8); + getDescriptor().getMessageTypes().get(13); internal_static_google_pubsub_v1_ListTopicsRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_ListTopicsRequest_descriptor, @@ -717,7 +1412,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Project", "PageSize", "PageToken", }); internal_static_google_pubsub_v1_ListTopicsResponse_descriptor = - getDescriptor().getMessageTypes().get(9); + getDescriptor().getMessageTypes().get(14); internal_static_google_pubsub_v1_ListTopicsResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_ListTopicsResponse_descriptor, @@ -725,7 +1420,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Topics", "NextPageToken", }); internal_static_google_pubsub_v1_ListTopicSubscriptionsRequest_descriptor = - getDescriptor().getMessageTypes().get(10); + getDescriptor().getMessageTypes().get(15); internal_static_google_pubsub_v1_ListTopicSubscriptionsRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_ListTopicSubscriptionsRequest_descriptor, @@ -733,7 +1428,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Topic", "PageSize", "PageToken", }); internal_static_google_pubsub_v1_ListTopicSubscriptionsResponse_descriptor = - getDescriptor().getMessageTypes().get(11); + getDescriptor().getMessageTypes().get(16); internal_static_google_pubsub_v1_ListTopicSubscriptionsResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_ListTopicSubscriptionsResponse_descriptor, @@ -741,7 +1436,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Subscriptions", "NextPageToken", }); internal_static_google_pubsub_v1_ListTopicSnapshotsRequest_descriptor = - getDescriptor().getMessageTypes().get(12); + getDescriptor().getMessageTypes().get(17); internal_static_google_pubsub_v1_ListTopicSnapshotsRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_ListTopicSnapshotsRequest_descriptor, @@ -749,7 +1444,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Topic", "PageSize", "PageToken", }); internal_static_google_pubsub_v1_ListTopicSnapshotsResponse_descriptor = - getDescriptor().getMessageTypes().get(13); + getDescriptor().getMessageTypes().get(18); internal_static_google_pubsub_v1_ListTopicSnapshotsResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_ListTopicSnapshotsResponse_descriptor, @@ -757,7 +1452,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Snapshots", "NextPageToken", }); internal_static_google_pubsub_v1_DeleteTopicRequest_descriptor = - getDescriptor().getMessageTypes().get(14); + getDescriptor().getMessageTypes().get(19); internal_static_google_pubsub_v1_DeleteTopicRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_DeleteTopicRequest_descriptor, @@ -765,7 +1460,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Topic", }); internal_static_google_pubsub_v1_DetachSubscriptionRequest_descriptor = - getDescriptor().getMessageTypes().get(15); + getDescriptor().getMessageTypes().get(20); internal_static_google_pubsub_v1_DetachSubscriptionRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_DetachSubscriptionRequest_descriptor, @@ -773,13 +1468,13 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Subscription", }); internal_static_google_pubsub_v1_DetachSubscriptionResponse_descriptor = - getDescriptor().getMessageTypes().get(16); + getDescriptor().getMessageTypes().get(21); internal_static_google_pubsub_v1_DetachSubscriptionResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_DetachSubscriptionResponse_descriptor, new java.lang.String[] {}); internal_static_google_pubsub_v1_Subscription_descriptor = - getDescriptor().getMessageTypes().get(17); + getDescriptor().getMessageTypes().get(22); internal_static_google_pubsub_v1_Subscription_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_Subscription_descriptor, @@ -802,17 +1497,36 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "EnableExactlyOnceDelivery", "TopicMessageRetentionDuration", "State", + "AnalyticsHubSubscriptionInfo", + "MessageTransforms", + "Tags", }); - internal_static_google_pubsub_v1_Subscription_LabelsEntry_descriptor = + internal_static_google_pubsub_v1_Subscription_AnalyticsHubSubscriptionInfo_descriptor = internal_static_google_pubsub_v1_Subscription_descriptor.getNestedTypes().get(0); + internal_static_google_pubsub_v1_Subscription_AnalyticsHubSubscriptionInfo_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_Subscription_AnalyticsHubSubscriptionInfo_descriptor, + new java.lang.String[] { + "Listing", "Subscription", + }); + internal_static_google_pubsub_v1_Subscription_LabelsEntry_descriptor = + internal_static_google_pubsub_v1_Subscription_descriptor.getNestedTypes().get(1); internal_static_google_pubsub_v1_Subscription_LabelsEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_Subscription_LabelsEntry_descriptor, new java.lang.String[] { "Key", "Value", }); + internal_static_google_pubsub_v1_Subscription_TagsEntry_descriptor = + internal_static_google_pubsub_v1_Subscription_descriptor.getNestedTypes().get(2); + internal_static_google_pubsub_v1_Subscription_TagsEntry_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_Subscription_TagsEntry_descriptor, + new java.lang.String[] { + "Key", "Value", + }); internal_static_google_pubsub_v1_RetryPolicy_descriptor = - getDescriptor().getMessageTypes().get(18); + getDescriptor().getMessageTypes().get(23); internal_static_google_pubsub_v1_RetryPolicy_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_RetryPolicy_descriptor, @@ -820,7 +1534,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "MinimumBackoff", "MaximumBackoff", }); internal_static_google_pubsub_v1_DeadLetterPolicy_descriptor = - getDescriptor().getMessageTypes().get(19); + getDescriptor().getMessageTypes().get(24); internal_static_google_pubsub_v1_DeadLetterPolicy_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_DeadLetterPolicy_descriptor, @@ -828,7 +1542,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "DeadLetterTopic", "MaxDeliveryAttempts", }); internal_static_google_pubsub_v1_ExpirationPolicy_descriptor = - getDescriptor().getMessageTypes().get(20); + getDescriptor().getMessageTypes().get(25); internal_static_google_pubsub_v1_ExpirationPolicy_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_ExpirationPolicy_descriptor, @@ -836,7 +1550,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Ttl", }); internal_static_google_pubsub_v1_PushConfig_descriptor = - getDescriptor().getMessageTypes().get(21); + getDescriptor().getMessageTypes().get(26); internal_static_google_pubsub_v1_PushConfig_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_PushConfig_descriptor, @@ -880,7 +1594,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Key", "Value", }); internal_static_google_pubsub_v1_BigQueryConfig_descriptor = - getDescriptor().getMessageTypes().get(22); + getDescriptor().getMessageTypes().get(27); internal_static_google_pubsub_v1_BigQueryConfig_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_BigQueryConfig_descriptor, @@ -891,9 +1605,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "DropUnknownFields", "State", "UseTableSchema", + "ServiceAccountEmail", }); internal_static_google_pubsub_v1_CloudStorageConfig_descriptor = - getDescriptor().getMessageTypes().get(23); + getDescriptor().getMessageTypes().get(28); internal_static_google_pubsub_v1_CloudStorageConfig_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_CloudStorageConfig_descriptor, @@ -901,11 +1616,14 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Bucket", "FilenamePrefix", "FilenameSuffix", + "FilenameDatetimeFormat", "TextConfig", "AvroConfig", "MaxDuration", "MaxBytes", + "MaxMessages", "State", + "ServiceAccountEmail", "OutputFormat", }); internal_static_google_pubsub_v1_CloudStorageConfig_TextConfig_descriptor = @@ -920,10 +1638,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_CloudStorageConfig_AvroConfig_descriptor, new java.lang.String[] { - "WriteMetadata", + "WriteMetadata", "UseTopicSchema", }); internal_static_google_pubsub_v1_ReceivedMessage_descriptor = - getDescriptor().getMessageTypes().get(24); + getDescriptor().getMessageTypes().get(29); internal_static_google_pubsub_v1_ReceivedMessage_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_ReceivedMessage_descriptor, @@ -931,7 +1649,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "AckId", "Message", "DeliveryAttempt", }); internal_static_google_pubsub_v1_GetSubscriptionRequest_descriptor = - getDescriptor().getMessageTypes().get(25); + getDescriptor().getMessageTypes().get(30); internal_static_google_pubsub_v1_GetSubscriptionRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_GetSubscriptionRequest_descriptor, @@ -939,7 +1657,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Subscription", }); internal_static_google_pubsub_v1_UpdateSubscriptionRequest_descriptor = - getDescriptor().getMessageTypes().get(26); + getDescriptor().getMessageTypes().get(31); internal_static_google_pubsub_v1_UpdateSubscriptionRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_UpdateSubscriptionRequest_descriptor, @@ -947,7 +1665,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Subscription", "UpdateMask", }); internal_static_google_pubsub_v1_ListSubscriptionsRequest_descriptor = - getDescriptor().getMessageTypes().get(27); + getDescriptor().getMessageTypes().get(32); internal_static_google_pubsub_v1_ListSubscriptionsRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_ListSubscriptionsRequest_descriptor, @@ -955,7 +1673,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Project", "PageSize", "PageToken", }); internal_static_google_pubsub_v1_ListSubscriptionsResponse_descriptor = - getDescriptor().getMessageTypes().get(28); + getDescriptor().getMessageTypes().get(33); internal_static_google_pubsub_v1_ListSubscriptionsResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_ListSubscriptionsResponse_descriptor, @@ -963,7 +1681,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Subscriptions", "NextPageToken", }); internal_static_google_pubsub_v1_DeleteSubscriptionRequest_descriptor = - getDescriptor().getMessageTypes().get(29); + getDescriptor().getMessageTypes().get(34); internal_static_google_pubsub_v1_DeleteSubscriptionRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_DeleteSubscriptionRequest_descriptor, @@ -971,7 +1689,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Subscription", }); internal_static_google_pubsub_v1_ModifyPushConfigRequest_descriptor = - getDescriptor().getMessageTypes().get(30); + getDescriptor().getMessageTypes().get(35); internal_static_google_pubsub_v1_ModifyPushConfigRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_ModifyPushConfigRequest_descriptor, @@ -979,7 +1697,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Subscription", "PushConfig", }); internal_static_google_pubsub_v1_PullRequest_descriptor = - getDescriptor().getMessageTypes().get(31); + getDescriptor().getMessageTypes().get(36); internal_static_google_pubsub_v1_PullRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_PullRequest_descriptor, @@ -987,7 +1705,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Subscription", "ReturnImmediately", "MaxMessages", }); internal_static_google_pubsub_v1_PullResponse_descriptor = - getDescriptor().getMessageTypes().get(32); + getDescriptor().getMessageTypes().get(37); internal_static_google_pubsub_v1_PullResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_PullResponse_descriptor, @@ -995,7 +1713,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "ReceivedMessages", }); internal_static_google_pubsub_v1_ModifyAckDeadlineRequest_descriptor = - getDescriptor().getMessageTypes().get(33); + getDescriptor().getMessageTypes().get(38); internal_static_google_pubsub_v1_ModifyAckDeadlineRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_ModifyAckDeadlineRequest_descriptor, @@ -1003,7 +1721,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Subscription", "AckIds", "AckDeadlineSeconds", }); internal_static_google_pubsub_v1_AcknowledgeRequest_descriptor = - getDescriptor().getMessageTypes().get(34); + getDescriptor().getMessageTypes().get(39); internal_static_google_pubsub_v1_AcknowledgeRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_AcknowledgeRequest_descriptor, @@ -1011,7 +1729,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Subscription", "AckIds", }); internal_static_google_pubsub_v1_StreamingPullRequest_descriptor = - getDescriptor().getMessageTypes().get(35); + getDescriptor().getMessageTypes().get(40); internal_static_google_pubsub_v1_StreamingPullRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_StreamingPullRequest_descriptor, @@ -1024,9 +1742,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "ClientId", "MaxOutstandingMessages", "MaxOutstandingBytes", + "ProtocolVersion", }); internal_static_google_pubsub_v1_StreamingPullResponse_descriptor = - getDescriptor().getMessageTypes().get(36); + getDescriptor().getMessageTypes().get(41); internal_static_google_pubsub_v1_StreamingPullResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_StreamingPullResponse_descriptor, @@ -1061,12 +1780,12 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "ExactlyOnceDeliveryEnabled", "MessageOrderingEnabled", }); internal_static_google_pubsub_v1_CreateSnapshotRequest_descriptor = - getDescriptor().getMessageTypes().get(37); + getDescriptor().getMessageTypes().get(42); internal_static_google_pubsub_v1_CreateSnapshotRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_CreateSnapshotRequest_descriptor, new java.lang.String[] { - "Name", "Subscription", "Labels", + "Name", "Subscription", "Labels", "Tags", }); internal_static_google_pubsub_v1_CreateSnapshotRequest_LabelsEntry_descriptor = internal_static_google_pubsub_v1_CreateSnapshotRequest_descriptor.getNestedTypes().get(0); @@ -1076,8 +1795,16 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new java.lang.String[] { "Key", "Value", }); + internal_static_google_pubsub_v1_CreateSnapshotRequest_TagsEntry_descriptor = + internal_static_google_pubsub_v1_CreateSnapshotRequest_descriptor.getNestedTypes().get(1); + internal_static_google_pubsub_v1_CreateSnapshotRequest_TagsEntry_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_pubsub_v1_CreateSnapshotRequest_TagsEntry_descriptor, + new java.lang.String[] { + "Key", "Value", + }); internal_static_google_pubsub_v1_UpdateSnapshotRequest_descriptor = - getDescriptor().getMessageTypes().get(38); + getDescriptor().getMessageTypes().get(43); internal_static_google_pubsub_v1_UpdateSnapshotRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_UpdateSnapshotRequest_descriptor, @@ -1085,7 +1812,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Snapshot", "UpdateMask", }); internal_static_google_pubsub_v1_Snapshot_descriptor = - getDescriptor().getMessageTypes().get(39); + getDescriptor().getMessageTypes().get(44); internal_static_google_pubsub_v1_Snapshot_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_Snapshot_descriptor, @@ -1101,7 +1828,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Key", "Value", }); internal_static_google_pubsub_v1_GetSnapshotRequest_descriptor = - getDescriptor().getMessageTypes().get(40); + getDescriptor().getMessageTypes().get(45); internal_static_google_pubsub_v1_GetSnapshotRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_GetSnapshotRequest_descriptor, @@ -1109,7 +1836,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Snapshot", }); internal_static_google_pubsub_v1_ListSnapshotsRequest_descriptor = - getDescriptor().getMessageTypes().get(41); + getDescriptor().getMessageTypes().get(46); internal_static_google_pubsub_v1_ListSnapshotsRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_ListSnapshotsRequest_descriptor, @@ -1117,7 +1844,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Project", "PageSize", "PageToken", }); internal_static_google_pubsub_v1_ListSnapshotsResponse_descriptor = - getDescriptor().getMessageTypes().get(42); + getDescriptor().getMessageTypes().get(47); internal_static_google_pubsub_v1_ListSnapshotsResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_ListSnapshotsResponse_descriptor, @@ -1125,7 +1852,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Snapshots", "NextPageToken", }); internal_static_google_pubsub_v1_DeleteSnapshotRequest_descriptor = - getDescriptor().getMessageTypes().get(43); + getDescriptor().getMessageTypes().get(48); internal_static_google_pubsub_v1_DeleteSnapshotRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_DeleteSnapshotRequest_descriptor, @@ -1133,7 +1860,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Snapshot", }); internal_static_google_pubsub_v1_SeekRequest_descriptor = - getDescriptor().getMessageTypes().get(44); + getDescriptor().getMessageTypes().get(49); internal_static_google_pubsub_v1_SeekRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_SeekRequest_descriptor, @@ -1141,7 +1868,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Subscription", "Time", "Snapshot", "Target", }); internal_static_google_pubsub_v1_SeekResponse_descriptor = - getDescriptor().getMessageTypes().get(45); + getDescriptor().getMessageTypes().get(50); internal_static_google_pubsub_v1_SeekResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_pubsub_v1_SeekResponse_descriptor, new java.lang.String[] {}); @@ -1153,6 +1880,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { registry.add(com.google.api.ClientProto.methodSignature); registry.add(com.google.api.ClientProto.oauthScopes); registry.add(com.google.api.ResourceProto.resource); + registry.add(com.google.api.ResourceProto.resourceDefinition); registry.add(com.google.api.ResourceProto.resourceReference); com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor( descriptor, registry); diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PullRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PullRequest.java index 30c5431b8..359811a33 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PullRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PullRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class PullRequest extends com.google.protobuf.GeneratedMessageV3 // @@protoc_insertion_point(message_implements:google.pubsub.v1.PullRequest) PullRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use PullRequest.newBuilder() to construct. private PullRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -64,6 +66,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object subscription_ = ""; + /** * * @@ -90,6 +93,7 @@ public java.lang.String getSubscription() { return s; } } + /** * * @@ -119,6 +123,7 @@ public com.google.protobuf.ByteString getSubscriptionBytes() { public static final int RETURN_IMMEDIATELY_FIELD_NUMBER = 2; private boolean returnImmediately_ = false; + /** * * @@ -136,7 +141,7 @@ public com.google.protobuf.ByteString getSubscriptionBytes() { * * * @deprecated google.pubsub.v1.PullRequest.return_immediately is deprecated. See - * google/pubsub/v1/pubsub.proto;l=1233 + * google/pubsub/v1/pubsub.proto;l=2052 * @return The returnImmediately. */ @java.lang.Override @@ -147,6 +152,7 @@ public boolean getReturnImmediately() { public static final int MAX_MESSAGES_FIELD_NUMBER = 3; private int maxMessages_ = 0; + /** * * @@ -340,6 +346,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -548,6 +555,7 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object subscription_ = ""; + /** * * @@ -573,6 +581,7 @@ public java.lang.String getSubscription() { return (java.lang.String) ref; } } + /** * * @@ -598,6 +607,7 @@ public com.google.protobuf.ByteString getSubscriptionBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -622,6 +632,7 @@ public Builder setSubscription(java.lang.String value) { onChanged(); return this; } + /** * * @@ -642,6 +653,7 @@ public Builder clearSubscription() { onChanged(); return this; } + /** * * @@ -669,6 +681,7 @@ public Builder setSubscriptionBytes(com.google.protobuf.ByteString value) { } private boolean returnImmediately_; + /** * * @@ -687,7 +700,7 @@ public Builder setSubscriptionBytes(com.google.protobuf.ByteString value) { * * * @deprecated google.pubsub.v1.PullRequest.return_immediately is deprecated. See - * google/pubsub/v1/pubsub.proto;l=1233 + * google/pubsub/v1/pubsub.proto;l=2052 * @return The returnImmediately. */ @java.lang.Override @@ -695,6 +708,7 @@ public Builder setSubscriptionBytes(com.google.protobuf.ByteString value) { public boolean getReturnImmediately() { return returnImmediately_; } + /** * * @@ -713,7 +727,7 @@ public boolean getReturnImmediately() { * * * @deprecated google.pubsub.v1.PullRequest.return_immediately is deprecated. See - * google/pubsub/v1/pubsub.proto;l=1233 + * google/pubsub/v1/pubsub.proto;l=2052 * @param value The returnImmediately to set. * @return This builder for chaining. */ @@ -725,6 +739,7 @@ public Builder setReturnImmediately(boolean value) { onChanged(); return this; } + /** * * @@ -743,7 +758,7 @@ public Builder setReturnImmediately(boolean value) { * * * @deprecated google.pubsub.v1.PullRequest.return_immediately is deprecated. See - * google/pubsub/v1/pubsub.proto;l=1233 + * google/pubsub/v1/pubsub.proto;l=2052 * @return This builder for chaining. */ @java.lang.Deprecated @@ -755,6 +770,7 @@ public Builder clearReturnImmediately() { } private int maxMessages_; + /** * * @@ -772,6 +788,7 @@ public Builder clearReturnImmediately() { public int getMaxMessages() { return maxMessages_; } + /** * * @@ -793,6 +810,7 @@ public Builder setMaxMessages(int value) { onChanged(); return this; } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PullRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PullRequestOrBuilder.java index 9f9ccf387..7c00e35b5 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PullRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PullRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface PullRequestOrBuilder @@ -38,6 +39,7 @@ public interface PullRequestOrBuilder * @return The subscription. */ java.lang.String getSubscription(); + /** * * @@ -71,7 +73,7 @@ public interface PullRequestOrBuilder * * * @deprecated google.pubsub.v1.PullRequest.return_immediately is deprecated. See - * google/pubsub/v1/pubsub.proto;l=1233 + * google/pubsub/v1/pubsub.proto;l=2052 * @return The returnImmediately. */ @java.lang.Deprecated diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PullResponse.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PullResponse.java index 65b827fd0..9c451fad3 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PullResponse.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PullResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class PullResponse extends com.google.protobuf.GeneratedMessageV3 // @@protoc_insertion_point(message_implements:google.pubsub.v1.PullResponse) PullResponseOrBuilder { private static final long serialVersionUID = 0L; + // Use PullResponse.newBuilder() to construct. private PullResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -66,87 +68,102 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private java.util.List receivedMessages_; + /** * * *
-   * Received Pub/Sub messages. The list will be empty if there are no more
-   * messages available in the backlog, or if no messages could be returned
+   * Optional. Received Pub/Sub messages. The list will be empty if there are no
+   * more messages available in the backlog, or if no messages could be returned
    * before the request timeout. For JSON, the response can be entirely
    * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
    * even if there are more messages available in the backlog.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public java.util.List getReceivedMessagesList() { return receivedMessages_; } + /** * * *
-   * Received Pub/Sub messages. The list will be empty if there are no more
-   * messages available in the backlog, or if no messages could be returned
+   * Optional. Received Pub/Sub messages. The list will be empty if there are no
+   * more messages available in the backlog, or if no messages could be returned
    * before the request timeout. For JSON, the response can be entirely
    * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
    * even if there are more messages available in the backlog.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public java.util.List getReceivedMessagesOrBuilderList() { return receivedMessages_; } + /** * * *
-   * Received Pub/Sub messages. The list will be empty if there are no more
-   * messages available in the backlog, or if no messages could be returned
+   * Optional. Received Pub/Sub messages. The list will be empty if there are no
+   * more messages available in the backlog, or if no messages could be returned
    * before the request timeout. For JSON, the response can be entirely
    * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
    * even if there are more messages available in the backlog.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public int getReceivedMessagesCount() { return receivedMessages_.size(); } + /** * * *
-   * Received Pub/Sub messages. The list will be empty if there are no more
-   * messages available in the backlog, or if no messages could be returned
+   * Optional. Received Pub/Sub messages. The list will be empty if there are no
+   * more messages available in the backlog, or if no messages could be returned
    * before the request timeout. For JSON, the response can be entirely
    * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
    * even if there are more messages available in the backlog.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.ReceivedMessage getReceivedMessages(int index) { return receivedMessages_.get(index); } + /** * * *
-   * Received Pub/Sub messages. The list will be empty if there are no more
-   * messages available in the backlog, or if no messages could be returned
+   * Optional. Received Pub/Sub messages. The list will be empty if there are no
+   * more messages available in the backlog, or if no messages could be returned
    * before the request timeout. For JSON, the response can be entirely
    * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
    * even if there are more messages available in the backlog.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.ReceivedMessageOrBuilder getReceivedMessagesOrBuilder(int index) { @@ -312,6 +329,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -559,14 +577,16 @@ private void ensureReceivedMessagesIsMutable() { * * *
-     * Received Pub/Sub messages. The list will be empty if there are no more
-     * messages available in the backlog, or if no messages could be returned
+     * Optional. Received Pub/Sub messages. The list will be empty if there are no
+     * more messages available in the backlog, or if no messages could be returned
      * before the request timeout. For JSON, the response can be entirely
      * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
      * even if there are more messages available in the backlog.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public java.util.List getReceivedMessagesList() { if (receivedMessagesBuilder_ == null) { @@ -575,18 +595,21 @@ public java.util.List getReceivedMessagesL return receivedMessagesBuilder_.getMessageList(); } } + /** * * *
-     * Received Pub/Sub messages. The list will be empty if there are no more
-     * messages available in the backlog, or if no messages could be returned
+     * Optional. Received Pub/Sub messages. The list will be empty if there are no
+     * more messages available in the backlog, or if no messages could be returned
      * before the request timeout. For JSON, the response can be entirely
      * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
      * even if there are more messages available in the backlog.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public int getReceivedMessagesCount() { if (receivedMessagesBuilder_ == null) { @@ -595,18 +618,21 @@ public int getReceivedMessagesCount() { return receivedMessagesBuilder_.getCount(); } } + /** * * *
-     * Received Pub/Sub messages. The list will be empty if there are no more
-     * messages available in the backlog, or if no messages could be returned
+     * Optional. Received Pub/Sub messages. The list will be empty if there are no
+     * more messages available in the backlog, or if no messages could be returned
      * before the request timeout. For JSON, the response can be entirely
      * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
      * even if there are more messages available in the backlog.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.ReceivedMessage getReceivedMessages(int index) { if (receivedMessagesBuilder_ == null) { @@ -615,18 +641,21 @@ public com.google.pubsub.v1.ReceivedMessage getReceivedMessages(int index) { return receivedMessagesBuilder_.getMessage(index); } } + /** * * *
-     * Received Pub/Sub messages. The list will be empty if there are no more
-     * messages available in the backlog, or if no messages could be returned
+     * Optional. Received Pub/Sub messages. The list will be empty if there are no
+     * more messages available in the backlog, or if no messages could be returned
      * before the request timeout. For JSON, the response can be entirely
      * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
      * even if there are more messages available in the backlog.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setReceivedMessages(int index, com.google.pubsub.v1.ReceivedMessage value) { if (receivedMessagesBuilder_ == null) { @@ -641,18 +670,21 @@ public Builder setReceivedMessages(int index, com.google.pubsub.v1.ReceivedMessa } return this; } + /** * * *
-     * Received Pub/Sub messages. The list will be empty if there are no more
-     * messages available in the backlog, or if no messages could be returned
+     * Optional. Received Pub/Sub messages. The list will be empty if there are no
+     * more messages available in the backlog, or if no messages could be returned
      * before the request timeout. For JSON, the response can be entirely
      * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
      * even if there are more messages available in the backlog.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setReceivedMessages( int index, com.google.pubsub.v1.ReceivedMessage.Builder builderForValue) { @@ -665,18 +697,21 @@ public Builder setReceivedMessages( } return this; } + /** * * *
-     * Received Pub/Sub messages. The list will be empty if there are no more
-     * messages available in the backlog, or if no messages could be returned
+     * Optional. Received Pub/Sub messages. The list will be empty if there are no
+     * more messages available in the backlog, or if no messages could be returned
      * before the request timeout. For JSON, the response can be entirely
      * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
      * even if there are more messages available in the backlog.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addReceivedMessages(com.google.pubsub.v1.ReceivedMessage value) { if (receivedMessagesBuilder_ == null) { @@ -691,18 +726,21 @@ public Builder addReceivedMessages(com.google.pubsub.v1.ReceivedMessage value) { } return this; } + /** * * *
-     * Received Pub/Sub messages. The list will be empty if there are no more
-     * messages available in the backlog, or if no messages could be returned
+     * Optional. Received Pub/Sub messages. The list will be empty if there are no
+     * more messages available in the backlog, or if no messages could be returned
      * before the request timeout. For JSON, the response can be entirely
      * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
      * even if there are more messages available in the backlog.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addReceivedMessages(int index, com.google.pubsub.v1.ReceivedMessage value) { if (receivedMessagesBuilder_ == null) { @@ -717,18 +755,21 @@ public Builder addReceivedMessages(int index, com.google.pubsub.v1.ReceivedMessa } return this; } + /** * * *
-     * Received Pub/Sub messages. The list will be empty if there are no more
-     * messages available in the backlog, or if no messages could be returned
+     * Optional. Received Pub/Sub messages. The list will be empty if there are no
+     * more messages available in the backlog, or if no messages could be returned
      * before the request timeout. For JSON, the response can be entirely
      * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
      * even if there are more messages available in the backlog.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addReceivedMessages( com.google.pubsub.v1.ReceivedMessage.Builder builderForValue) { @@ -741,18 +782,21 @@ public Builder addReceivedMessages( } return this; } + /** * * *
-     * Received Pub/Sub messages. The list will be empty if there are no more
-     * messages available in the backlog, or if no messages could be returned
+     * Optional. Received Pub/Sub messages. The list will be empty if there are no
+     * more messages available in the backlog, or if no messages could be returned
      * before the request timeout. For JSON, the response can be entirely
      * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
      * even if there are more messages available in the backlog.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addReceivedMessages( int index, com.google.pubsub.v1.ReceivedMessage.Builder builderForValue) { @@ -765,18 +809,21 @@ public Builder addReceivedMessages( } return this; } + /** * * *
-     * Received Pub/Sub messages. The list will be empty if there are no more
-     * messages available in the backlog, or if no messages could be returned
+     * Optional. Received Pub/Sub messages. The list will be empty if there are no
+     * more messages available in the backlog, or if no messages could be returned
      * before the request timeout. For JSON, the response can be entirely
      * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
      * even if there are more messages available in the backlog.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addAllReceivedMessages( java.lang.Iterable values) { @@ -789,18 +836,21 @@ public Builder addAllReceivedMessages( } return this; } + /** * * *
-     * Received Pub/Sub messages. The list will be empty if there are no more
-     * messages available in the backlog, or if no messages could be returned
+     * Optional. Received Pub/Sub messages. The list will be empty if there are no
+     * more messages available in the backlog, or if no messages could be returned
      * before the request timeout. For JSON, the response can be entirely
      * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
      * even if there are more messages available in the backlog.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder clearReceivedMessages() { if (receivedMessagesBuilder_ == null) { @@ -812,18 +862,21 @@ public Builder clearReceivedMessages() { } return this; } + /** * * *
-     * Received Pub/Sub messages. The list will be empty if there are no more
-     * messages available in the backlog, or if no messages could be returned
+     * Optional. Received Pub/Sub messages. The list will be empty if there are no
+     * more messages available in the backlog, or if no messages could be returned
      * before the request timeout. For JSON, the response can be entirely
      * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
      * even if there are more messages available in the backlog.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder removeReceivedMessages(int index) { if (receivedMessagesBuilder_ == null) { @@ -835,34 +888,40 @@ public Builder removeReceivedMessages(int index) { } return this; } + /** * * *
-     * Received Pub/Sub messages. The list will be empty if there are no more
-     * messages available in the backlog, or if no messages could be returned
+     * Optional. Received Pub/Sub messages. The list will be empty if there are no
+     * more messages available in the backlog, or if no messages could be returned
      * before the request timeout. For JSON, the response can be entirely
      * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
      * even if there are more messages available in the backlog.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.ReceivedMessage.Builder getReceivedMessagesBuilder(int index) { return getReceivedMessagesFieldBuilder().getBuilder(index); } + /** * * *
-     * Received Pub/Sub messages. The list will be empty if there are no more
-     * messages available in the backlog, or if no messages could be returned
+     * Optional. Received Pub/Sub messages. The list will be empty if there are no
+     * more messages available in the backlog, or if no messages could be returned
      * before the request timeout. For JSON, the response can be entirely
      * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
      * even if there are more messages available in the backlog.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.ReceivedMessageOrBuilder getReceivedMessagesOrBuilder(int index) { if (receivedMessagesBuilder_ == null) { @@ -871,18 +930,21 @@ public com.google.pubsub.v1.ReceivedMessageOrBuilder getReceivedMessagesOrBuilde return receivedMessagesBuilder_.getMessageOrBuilder(index); } } + /** * * *
-     * Received Pub/Sub messages. The list will be empty if there are no more
-     * messages available in the backlog, or if no messages could be returned
+     * Optional. Received Pub/Sub messages. The list will be empty if there are no
+     * more messages available in the backlog, or if no messages could be returned
      * before the request timeout. For JSON, the response can be entirely
      * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
      * even if there are more messages available in the backlog.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public java.util.List getReceivedMessagesOrBuilderList() { @@ -892,52 +954,61 @@ public com.google.pubsub.v1.ReceivedMessageOrBuilder getReceivedMessagesOrBuilde return java.util.Collections.unmodifiableList(receivedMessages_); } } + /** * * *
-     * Received Pub/Sub messages. The list will be empty if there are no more
-     * messages available in the backlog, or if no messages could be returned
+     * Optional. Received Pub/Sub messages. The list will be empty if there are no
+     * more messages available in the backlog, or if no messages could be returned
      * before the request timeout. For JSON, the response can be entirely
      * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
      * even if there are more messages available in the backlog.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.ReceivedMessage.Builder addReceivedMessagesBuilder() { return getReceivedMessagesFieldBuilder() .addBuilder(com.google.pubsub.v1.ReceivedMessage.getDefaultInstance()); } + /** * * *
-     * Received Pub/Sub messages. The list will be empty if there are no more
-     * messages available in the backlog, or if no messages could be returned
+     * Optional. Received Pub/Sub messages. The list will be empty if there are no
+     * more messages available in the backlog, or if no messages could be returned
      * before the request timeout. For JSON, the response can be entirely
      * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
      * even if there are more messages available in the backlog.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.ReceivedMessage.Builder addReceivedMessagesBuilder(int index) { return getReceivedMessagesFieldBuilder() .addBuilder(index, com.google.pubsub.v1.ReceivedMessage.getDefaultInstance()); } + /** * * *
-     * Received Pub/Sub messages. The list will be empty if there are no more
-     * messages available in the backlog, or if no messages could be returned
+     * Optional. Received Pub/Sub messages. The list will be empty if there are no
+     * more messages available in the backlog, or if no messages could be returned
      * before the request timeout. For JSON, the response can be entirely
      * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
      * even if there are more messages available in the backlog.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public java.util.List getReceivedMessagesBuilderList() { diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PullResponseOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PullResponseOrBuilder.java index 16d1f7e5a..3cdb5f54b 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PullResponseOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PullResponseOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface PullResponseOrBuilder @@ -27,71 +28,85 @@ public interface PullResponseOrBuilder * * *
-   * Received Pub/Sub messages. The list will be empty if there are no more
-   * messages available in the backlog, or if no messages could be returned
+   * Optional. Received Pub/Sub messages. The list will be empty if there are no
+   * more messages available in the backlog, or if no messages could be returned
    * before the request timeout. For JSON, the response can be entirely
    * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
    * even if there are more messages available in the backlog.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ java.util.List getReceivedMessagesList(); + /** * * *
-   * Received Pub/Sub messages. The list will be empty if there are no more
-   * messages available in the backlog, or if no messages could be returned
+   * Optional. Received Pub/Sub messages. The list will be empty if there are no
+   * more messages available in the backlog, or if no messages could be returned
    * before the request timeout. For JSON, the response can be entirely
    * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
    * even if there are more messages available in the backlog.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.ReceivedMessage getReceivedMessages(int index); + /** * * *
-   * Received Pub/Sub messages. The list will be empty if there are no more
-   * messages available in the backlog, or if no messages could be returned
+   * Optional. Received Pub/Sub messages. The list will be empty if there are no
+   * more messages available in the backlog, or if no messages could be returned
    * before the request timeout. For JSON, the response can be entirely
    * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
    * even if there are more messages available in the backlog.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ int getReceivedMessagesCount(); + /** * * *
-   * Received Pub/Sub messages. The list will be empty if there are no more
-   * messages available in the backlog, or if no messages could be returned
+   * Optional. Received Pub/Sub messages. The list will be empty if there are no
+   * more messages available in the backlog, or if no messages could be returned
    * before the request timeout. For JSON, the response can be entirely
    * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
    * even if there are more messages available in the backlog.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ java.util.List getReceivedMessagesOrBuilderList(); + /** * * *
-   * Received Pub/Sub messages. The list will be empty if there are no more
-   * messages available in the backlog, or if no messages could be returned
+   * Optional. Received Pub/Sub messages. The list will be empty if there are no
+   * more messages available in the backlog, or if no messages could be returned
    * before the request timeout. For JSON, the response can be entirely
    * empty. The Pub/Sub system may return fewer than the `maxMessages` requested
    * even if there are more messages available in the backlog.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.ReceivedMessageOrBuilder getReceivedMessagesOrBuilder(int index); } diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PushConfig.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PushConfig.java index 7124ca38f..5a1b2985f 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PushConfig.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PushConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class PushConfig extends com.google.protobuf.GeneratedMessageV3 // @@protoc_insertion_point(message_implements:google.pubsub.v1.PushConfig) PushConfigOrBuilder { private static final long serialVersionUID = 0L; + // Use PushConfig.newBuilder() to construct. private PushConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -53,7 +55,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings({"rawtypes"}) @java.lang.Override - protected com.google.protobuf.MapField internalGetMapField(int number) { + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { switch (number) { case 2: return internalGetAttributes(); @@ -80,30 +83,31 @@ public interface OidcTokenOrBuilder * * *
-     * [Service account
+     * Optional. [Service account
      * email](https://cloud.google.com/iam/docs/service-accounts)
      * used for generating the OIDC token. For more information
      * on setting up authentication, see
      * [Push subscriptions](https://cloud.google.com/pubsub/docs/push).
      * 
* - * string service_account_email = 1; + * string service_account_email = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The serviceAccountEmail. */ java.lang.String getServiceAccountEmail(); + /** * * *
-     * [Service account
+     * Optional. [Service account
      * email](https://cloud.google.com/iam/docs/service-accounts)
      * used for generating the OIDC token. For more information
      * on setting up authentication, see
      * [Push subscriptions](https://cloud.google.com/pubsub/docs/push).
      * 
* - * string service_account_email = 1; + * string service_account_email = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for serviceAccountEmail. */ @@ -113,37 +117,41 @@ public interface OidcTokenOrBuilder * * *
-     * Audience to be used when generating OIDC token. The audience claim
-     * identifies the recipients that the JWT is intended for. The audience
-     * value is a single case-sensitive string. Having multiple values (array)
-     * for the audience field is not supported. More info about the OIDC JWT
-     * token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3
-     * Note: if not specified, the Push endpoint URL will be used.
+     * Optional. Audience to be used when generating OIDC token. The audience
+     * claim identifies the recipients that the JWT is intended for. The
+     * audience value is a single case-sensitive string. Having multiple values
+     * (array) for the audience field is not supported. More info about the OIDC
+     * JWT token audience here:
+     * https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified,
+     * the Push endpoint URL will be used.
      * 
* - * string audience = 2; + * string audience = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The audience. */ java.lang.String getAudience(); + /** * * *
-     * Audience to be used when generating OIDC token. The audience claim
-     * identifies the recipients that the JWT is intended for. The audience
-     * value is a single case-sensitive string. Having multiple values (array)
-     * for the audience field is not supported. More info about the OIDC JWT
-     * token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3
-     * Note: if not specified, the Push endpoint URL will be used.
+     * Optional. Audience to be used when generating OIDC token. The audience
+     * claim identifies the recipients that the JWT is intended for. The
+     * audience value is a single case-sensitive string. Having multiple values
+     * (array) for the audience field is not supported. More info about the OIDC
+     * JWT token audience here:
+     * https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified,
+     * the Push endpoint URL will be used.
      * 
* - * string audience = 2; + * string audience = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for audience. */ com.google.protobuf.ByteString getAudienceBytes(); } + /** * * @@ -160,6 +168,7 @@ public static final class OidcToken extends com.google.protobuf.GeneratedMessage // @@protoc_insertion_point(message_implements:google.pubsub.v1.PushConfig.OidcToken) OidcTokenOrBuilder { private static final long serialVersionUID = 0L; + // Use OidcToken.newBuilder() to construct. private OidcToken(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -195,18 +204,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object serviceAccountEmail_ = ""; + /** * * *
-     * [Service account
+     * Optional. [Service account
      * email](https://cloud.google.com/iam/docs/service-accounts)
      * used for generating the OIDC token. For more information
      * on setting up authentication, see
      * [Push subscriptions](https://cloud.google.com/pubsub/docs/push).
      * 
* - * string service_account_email = 1; + * string service_account_email = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The serviceAccountEmail. */ @@ -222,18 +232,19 @@ public java.lang.String getServiceAccountEmail() { return s; } } + /** * * *
-     * [Service account
+     * Optional. [Service account
      * email](https://cloud.google.com/iam/docs/service-accounts)
      * used for generating the OIDC token. For more information
      * on setting up authentication, see
      * [Push subscriptions](https://cloud.google.com/pubsub/docs/push).
      * 
* - * string service_account_email = 1; + * string service_account_email = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for serviceAccountEmail. */ @@ -254,19 +265,21 @@ public com.google.protobuf.ByteString getServiceAccountEmailBytes() { @SuppressWarnings("serial") private volatile java.lang.Object audience_ = ""; + /** * * *
-     * Audience to be used when generating OIDC token. The audience claim
-     * identifies the recipients that the JWT is intended for. The audience
-     * value is a single case-sensitive string. Having multiple values (array)
-     * for the audience field is not supported. More info about the OIDC JWT
-     * token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3
-     * Note: if not specified, the Push endpoint URL will be used.
+     * Optional. Audience to be used when generating OIDC token. The audience
+     * claim identifies the recipients that the JWT is intended for. The
+     * audience value is a single case-sensitive string. Having multiple values
+     * (array) for the audience field is not supported. More info about the OIDC
+     * JWT token audience here:
+     * https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified,
+     * the Push endpoint URL will be used.
      * 
* - * string audience = 2; + * string audience = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The audience. */ @@ -282,19 +295,21 @@ public java.lang.String getAudience() { return s; } } + /** * * *
-     * Audience to be used when generating OIDC token. The audience claim
-     * identifies the recipients that the JWT is intended for. The audience
-     * value is a single case-sensitive string. Having multiple values (array)
-     * for the audience field is not supported. More info about the OIDC JWT
-     * token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3
-     * Note: if not specified, the Push endpoint URL will be used.
+     * Optional. Audience to be used when generating OIDC token. The audience
+     * claim identifies the recipients that the JWT is intended for. The
+     * audience value is a single case-sensitive string. Having multiple values
+     * (array) for the audience field is not supported. More info about the OIDC
+     * JWT token audience here:
+     * https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified,
+     * the Push endpoint URL will be used.
      * 
* - * string audience = 2; + * string audience = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for audience. */ @@ -480,6 +495,7 @@ protected Builder newBuilderForType( Builder builder = new Builder(parent); return builder; } + /** * * @@ -683,18 +699,19 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object serviceAccountEmail_ = ""; + /** * * *
-       * [Service account
+       * Optional. [Service account
        * email](https://cloud.google.com/iam/docs/service-accounts)
        * used for generating the OIDC token. For more information
        * on setting up authentication, see
        * [Push subscriptions](https://cloud.google.com/pubsub/docs/push).
        * 
* - * string service_account_email = 1; + * string service_account_email = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The serviceAccountEmail. */ @@ -709,18 +726,19 @@ public java.lang.String getServiceAccountEmail() { return (java.lang.String) ref; } } + /** * * *
-       * [Service account
+       * Optional. [Service account
        * email](https://cloud.google.com/iam/docs/service-accounts)
        * used for generating the OIDC token. For more information
        * on setting up authentication, see
        * [Push subscriptions](https://cloud.google.com/pubsub/docs/push).
        * 
* - * string service_account_email = 1; + * string service_account_email = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for serviceAccountEmail. */ @@ -735,18 +753,19 @@ public com.google.protobuf.ByteString getServiceAccountEmailBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-       * [Service account
+       * Optional. [Service account
        * email](https://cloud.google.com/iam/docs/service-accounts)
        * used for generating the OIDC token. For more information
        * on setting up authentication, see
        * [Push subscriptions](https://cloud.google.com/pubsub/docs/push).
        * 
* - * string service_account_email = 1; + * string service_account_email = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The serviceAccountEmail to set. * @return This builder for chaining. @@ -760,18 +779,19 @@ public Builder setServiceAccountEmail(java.lang.String value) { onChanged(); return this; } + /** * * *
-       * [Service account
+       * Optional. [Service account
        * email](https://cloud.google.com/iam/docs/service-accounts)
        * used for generating the OIDC token. For more information
        * on setting up authentication, see
        * [Push subscriptions](https://cloud.google.com/pubsub/docs/push).
        * 
* - * string service_account_email = 1; + * string service_account_email = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -781,18 +801,19 @@ public Builder clearServiceAccountEmail() { onChanged(); return this; } + /** * * *
-       * [Service account
+       * Optional. [Service account
        * email](https://cloud.google.com/iam/docs/service-accounts)
        * used for generating the OIDC token. For more information
        * on setting up authentication, see
        * [Push subscriptions](https://cloud.google.com/pubsub/docs/push).
        * 
* - * string service_account_email = 1; + * string service_account_email = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for serviceAccountEmail to set. * @return This builder for chaining. @@ -809,19 +830,21 @@ public Builder setServiceAccountEmailBytes(com.google.protobuf.ByteString value) } private java.lang.Object audience_ = ""; + /** * * *
-       * Audience to be used when generating OIDC token. The audience claim
-       * identifies the recipients that the JWT is intended for. The audience
-       * value is a single case-sensitive string. Having multiple values (array)
-       * for the audience field is not supported. More info about the OIDC JWT
-       * token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3
-       * Note: if not specified, the Push endpoint URL will be used.
+       * Optional. Audience to be used when generating OIDC token. The audience
+       * claim identifies the recipients that the JWT is intended for. The
+       * audience value is a single case-sensitive string. Having multiple values
+       * (array) for the audience field is not supported. More info about the OIDC
+       * JWT token audience here:
+       * https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified,
+       * the Push endpoint URL will be used.
        * 
* - * string audience = 2; + * string audience = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The audience. */ @@ -836,19 +859,21 @@ public java.lang.String getAudience() { return (java.lang.String) ref; } } + /** * * *
-       * Audience to be used when generating OIDC token. The audience claim
-       * identifies the recipients that the JWT is intended for. The audience
-       * value is a single case-sensitive string. Having multiple values (array)
-       * for the audience field is not supported. More info about the OIDC JWT
-       * token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3
-       * Note: if not specified, the Push endpoint URL will be used.
+       * Optional. Audience to be used when generating OIDC token. The audience
+       * claim identifies the recipients that the JWT is intended for. The
+       * audience value is a single case-sensitive string. Having multiple values
+       * (array) for the audience field is not supported. More info about the OIDC
+       * JWT token audience here:
+       * https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified,
+       * the Push endpoint URL will be used.
        * 
* - * string audience = 2; + * string audience = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for audience. */ @@ -863,19 +888,21 @@ public com.google.protobuf.ByteString getAudienceBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-       * Audience to be used when generating OIDC token. The audience claim
-       * identifies the recipients that the JWT is intended for. The audience
-       * value is a single case-sensitive string. Having multiple values (array)
-       * for the audience field is not supported. More info about the OIDC JWT
-       * token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3
-       * Note: if not specified, the Push endpoint URL will be used.
+       * Optional. Audience to be used when generating OIDC token. The audience
+       * claim identifies the recipients that the JWT is intended for. The
+       * audience value is a single case-sensitive string. Having multiple values
+       * (array) for the audience field is not supported. More info about the OIDC
+       * JWT token audience here:
+       * https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified,
+       * the Push endpoint URL will be used.
        * 
* - * string audience = 2; + * string audience = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The audience to set. * @return This builder for chaining. @@ -889,19 +916,21 @@ public Builder setAudience(java.lang.String value) { onChanged(); return this; } + /** * * *
-       * Audience to be used when generating OIDC token. The audience claim
-       * identifies the recipients that the JWT is intended for. The audience
-       * value is a single case-sensitive string. Having multiple values (array)
-       * for the audience field is not supported. More info about the OIDC JWT
-       * token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3
-       * Note: if not specified, the Push endpoint URL will be used.
+       * Optional. Audience to be used when generating OIDC token. The audience
+       * claim identifies the recipients that the JWT is intended for. The
+       * audience value is a single case-sensitive string. Having multiple values
+       * (array) for the audience field is not supported. More info about the OIDC
+       * JWT token audience here:
+       * https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified,
+       * the Push endpoint URL will be used.
        * 
* - * string audience = 2; + * string audience = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -911,19 +940,21 @@ public Builder clearAudience() { onChanged(); return this; } + /** * * *
-       * Audience to be used when generating OIDC token. The audience claim
-       * identifies the recipients that the JWT is intended for. The audience
-       * value is a single case-sensitive string. Having multiple values (array)
-       * for the audience field is not supported. More info about the OIDC JWT
-       * token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3
-       * Note: if not specified, the Push endpoint URL will be used.
+       * Optional. Audience to be used when generating OIDC token. The audience
+       * claim identifies the recipients that the JWT is intended for. The
+       * audience value is a single case-sensitive string. Having multiple values
+       * (array) for the audience field is not supported. More info about the OIDC
+       * JWT token audience here:
+       * https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified,
+       * the Push endpoint URL will be used.
        * 
* - * string audience = 2; + * string audience = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for audience to set. * @return This builder for chaining. @@ -1007,6 +1038,7 @@ public interface PubsubWrapperOrBuilder extends // @@protoc_insertion_point(interface_extends:google.pubsub.v1.PushConfig.PubsubWrapper) com.google.protobuf.MessageOrBuilder {} + /** * * @@ -1023,6 +1055,7 @@ public static final class PubsubWrapper extends com.google.protobuf.GeneratedMes // @@protoc_insertion_point(message_implements:google.pubsub.v1.PushConfig.PubsubWrapper) PubsubWrapperOrBuilder { private static final long serialVersionUID = 0L; + // Use PubsubWrapper.newBuilder() to construct. private PubsubWrapper(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -1202,6 +1235,7 @@ protected Builder newBuilderForType( Builder builder = new Builder(parent); return builder; } + /** * * @@ -1438,17 +1472,18 @@ public interface NoWrapperOrBuilder * * *
-     * When true, writes the Pub/Sub message metadata to
+     * Optional. When true, writes the Pub/Sub message metadata to
      * `x-goog-pubsub-<KEY>:<VAL>` headers of the HTTP request. Writes the
      * Pub/Sub message attributes to `<KEY>:<VAL>` headers of the HTTP request.
      * 
* - * bool write_metadata = 1; + * bool write_metadata = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The writeMetadata. */ boolean getWriteMetadata(); } + /** * * @@ -1463,6 +1498,7 @@ public static final class NoWrapper extends com.google.protobuf.GeneratedMessage // @@protoc_insertion_point(message_implements:google.pubsub.v1.PushConfig.NoWrapper) NoWrapperOrBuilder { private static final long serialVersionUID = 0L; + // Use NoWrapper.newBuilder() to construct. private NoWrapper(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -1493,16 +1529,17 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { public static final int WRITE_METADATA_FIELD_NUMBER = 1; private boolean writeMetadata_ = false; + /** * * *
-     * When true, writes the Pub/Sub message metadata to
+     * Optional. When true, writes the Pub/Sub message metadata to
      * `x-goog-pubsub-<KEY>:<VAL>` headers of the HTTP request. Writes the
      * Pub/Sub message attributes to `<KEY>:<VAL>` headers of the HTTP request.
      * 
* - * bool write_metadata = 1; + * bool write_metadata = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The writeMetadata. */ @@ -1671,6 +1708,7 @@ protected Builder newBuilderForType( Builder builder = new Builder(parent); return builder; } + /** * * @@ -1855,16 +1893,17 @@ public Builder mergeFrom( private int bitField0_; private boolean writeMetadata_; + /** * * *
-       * When true, writes the Pub/Sub message metadata to
+       * Optional. When true, writes the Pub/Sub message metadata to
        * `x-goog-pubsub-<KEY>:<VAL>` headers of the HTTP request. Writes the
        * Pub/Sub message attributes to `<KEY>:<VAL>` headers of the HTTP request.
        * 
* - * bool write_metadata = 1; + * bool write_metadata = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The writeMetadata. */ @@ -1872,16 +1911,17 @@ public Builder mergeFrom( public boolean getWriteMetadata() { return writeMetadata_; } + /** * * *
-       * When true, writes the Pub/Sub message metadata to
+       * Optional. When true, writes the Pub/Sub message metadata to
        * `x-goog-pubsub-<KEY>:<VAL>` headers of the HTTP request. Writes the
        * Pub/Sub message attributes to `<KEY>:<VAL>` headers of the HTTP request.
        * 
* - * bool write_metadata = 1; + * bool write_metadata = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The writeMetadata to set. * @return This builder for chaining. @@ -1893,16 +1933,17 @@ public Builder setWriteMetadata(boolean value) { onChanged(); return this; } + /** * * *
-       * When true, writes the Pub/Sub message metadata to
+       * Optional. When true, writes the Pub/Sub message metadata to
        * `x-goog-pubsub-<KEY>:<VAL>` headers of the HTTP request. Writes the
        * Pub/Sub message attributes to `<KEY>:<VAL>` headers of the HTTP request.
        * 
* - * bool write_metadata = 1; + * bool write_metadata = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -1993,6 +2034,7 @@ public enum AuthenticationMethodCase private AuthenticationMethodCase(int value) { this.value = value; } + /** * @param value The number of the enum to look for. * @return The enum associated with the given number. @@ -2040,6 +2082,7 @@ public enum WrapperCase private WrapperCase(int value) { this.value = value; } + /** * @param value The number of the enum to look for. * @return The enum associated with the given number. @@ -2076,15 +2119,16 @@ public WrapperCase getWrapperCase() { @SuppressWarnings("serial") private volatile java.lang.Object pushEndpoint_ = ""; + /** * * *
-   * A URL locating the endpoint to which messages should be pushed.
+   * Optional. A URL locating the endpoint to which messages should be pushed.
    * For example, a Webhook endpoint might use `https://example.com/push`.
    * 
* - * string push_endpoint = 1; + * string push_endpoint = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pushEndpoint. */ @@ -2100,15 +2144,16 @@ public java.lang.String getPushEndpoint() { return s; } } + /** * * *
-   * A URL locating the endpoint to which messages should be pushed.
+   * Optional. A URL locating the endpoint to which messages should be pushed.
    * For example, a Webhook endpoint might use `https://example.com/push`.
    * 
* - * string push_endpoint = 1; + * string push_endpoint = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for pushEndpoint. */ @@ -2151,12 +2196,13 @@ private com.google.protobuf.MapField interna public int getAttributesCount() { return internalGetAttributes().getMap().size(); } + /** * * *
-   * Endpoint configuration attributes that can be used to control different
-   * aspects of the message delivery.
+   * Optional. Endpoint configuration attributes that can be used to control
+   * different aspects of the message delivery.
    *
    * The only currently supported attribute is `x-goog-version`, which you can
    * use to change the format of the pushed message. This attribute
@@ -2178,7 +2224,8 @@ public int getAttributesCount() {
    * `attributes { "x-goog-version": "v1" }`
    * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public boolean containsAttributes(java.lang.String key) { @@ -2187,18 +2234,20 @@ public boolean containsAttributes(java.lang.String key) { } return internalGetAttributes().getMap().containsKey(key); } + /** Use {@link #getAttributesMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getAttributes() { return getAttributesMap(); } + /** * * *
-   * Endpoint configuration attributes that can be used to control different
-   * aspects of the message delivery.
+   * Optional. Endpoint configuration attributes that can be used to control
+   * different aspects of the message delivery.
    *
    * The only currently supported attribute is `x-goog-version`, which you can
    * use to change the format of the pushed message. This attribute
@@ -2220,18 +2269,20 @@ public java.util.Map getAttributes() {
    * `attributes { "x-goog-version": "v1" }`
    * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public java.util.Map getAttributesMap() { return internalGetAttributes().getMap(); } + /** * * *
-   * Endpoint configuration attributes that can be used to control different
-   * aspects of the message delivery.
+   * Optional. Endpoint configuration attributes that can be used to control
+   * different aspects of the message delivery.
    *
    * The only currently supported attribute is `x-goog-version`, which you can
    * use to change the format of the pushed message. This attribute
@@ -2253,7 +2304,8 @@ public java.util.Map getAttributesMap() {
    * `attributes { "x-goog-version": "v1" }`
    * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public /* nullable */ java.lang.String getAttributesOrDefault( @@ -2266,12 +2318,13 @@ public java.util.Map getAttributesMap() { java.util.Map map = internalGetAttributes().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } + /** * * *
-   * Endpoint configuration attributes that can be used to control different
-   * aspects of the message delivery.
+   * Optional. Endpoint configuration attributes that can be used to control
+   * different aspects of the message delivery.
    *
    * The only currently supported attribute is `x-goog-version`, which you can
    * use to change the format of the pushed message. This attribute
@@ -2293,7 +2346,8 @@ public java.util.Map getAttributesMap() {
    * `attributes { "x-goog-version": "v1" }`
    * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public java.lang.String getAttributesOrThrow(java.lang.String key) { @@ -2308,15 +2362,19 @@ public java.lang.String getAttributesOrThrow(java.lang.String key) { } public static final int OIDC_TOKEN_FIELD_NUMBER = 3; + /** * * *
-   * If specified, Pub/Sub will generate and attach an OIDC JWT token as an
-   * `Authorization` header in the HTTP request for every pushed message.
+   * Optional. If specified, Pub/Sub will generate and attach an OIDC JWT
+   * token as an `Authorization` header in the HTTP request for every pushed
+   * message.
    * 
* - * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3; + * + * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the oidcToken field is set. */ @@ -2324,15 +2382,19 @@ public java.lang.String getAttributesOrThrow(java.lang.String key) { public boolean hasOidcToken() { return authenticationMethodCase_ == 3; } + /** * * *
-   * If specified, Pub/Sub will generate and attach an OIDC JWT token as an
-   * `Authorization` header in the HTTP request for every pushed message.
+   * Optional. If specified, Pub/Sub will generate and attach an OIDC JWT
+   * token as an `Authorization` header in the HTTP request for every pushed
+   * message.
    * 
* - * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3; + * + * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The oidcToken. */ @@ -2343,15 +2405,19 @@ public com.google.pubsub.v1.PushConfig.OidcToken getOidcToken() { } return com.google.pubsub.v1.PushConfig.OidcToken.getDefaultInstance(); } + /** * * *
-   * If specified, Pub/Sub will generate and attach an OIDC JWT token as an
-   * `Authorization` header in the HTTP request for every pushed message.
+   * Optional. If specified, Pub/Sub will generate and attach an OIDC JWT
+   * token as an `Authorization` header in the HTTP request for every pushed
+   * message.
    * 
* - * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3; + * + * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.PushConfig.OidcTokenOrBuilder getOidcTokenOrBuilder() { @@ -2362,16 +2428,19 @@ public com.google.pubsub.v1.PushConfig.OidcTokenOrBuilder getOidcTokenOrBuilder( } public static final int PUBSUB_WRAPPER_FIELD_NUMBER = 4; + /** * * *
-   * When set, the payload to the push endpoint is in the form of the JSON
-   * representation of a PubsubMessage
+   * Optional. When set, the payload to the push endpoint is in the form of
+   * the JSON representation of a PubsubMessage
    * (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage).
    * 
* - * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4; + * + * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the pubsubWrapper field is set. */ @@ -2379,16 +2448,19 @@ public com.google.pubsub.v1.PushConfig.OidcTokenOrBuilder getOidcTokenOrBuilder( public boolean hasPubsubWrapper() { return wrapperCase_ == 4; } + /** * * *
-   * When set, the payload to the push endpoint is in the form of the JSON
-   * representation of a PubsubMessage
+   * Optional. When set, the payload to the push endpoint is in the form of
+   * the JSON representation of a PubsubMessage
    * (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage).
    * 
* - * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4; + * + * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The pubsubWrapper. */ @@ -2399,16 +2471,19 @@ public com.google.pubsub.v1.PushConfig.PubsubWrapper getPubsubWrapper() { } return com.google.pubsub.v1.PushConfig.PubsubWrapper.getDefaultInstance(); } + /** * * *
-   * When set, the payload to the push endpoint is in the form of the JSON
-   * representation of a PubsubMessage
+   * Optional. When set, the payload to the push endpoint is in the form of
+   * the JSON representation of a PubsubMessage
    * (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage).
    * 
* - * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4; + * + * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.PushConfig.PubsubWrapperOrBuilder getPubsubWrapperOrBuilder() { @@ -2419,14 +2494,17 @@ public com.google.pubsub.v1.PushConfig.PubsubWrapperOrBuilder getPubsubWrapperOr } public static final int NO_WRAPPER_FIELD_NUMBER = 5; + /** * * *
-   * When set, the payload to the push endpoint is not wrapped.
+   * Optional. When set, the payload to the push endpoint is not wrapped.
    * 
* - * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5; + * + * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the noWrapper field is set. */ @@ -2434,14 +2512,17 @@ public com.google.pubsub.v1.PushConfig.PubsubWrapperOrBuilder getPubsubWrapperOr public boolean hasNoWrapper() { return wrapperCase_ == 5; } + /** * * *
-   * When set, the payload to the push endpoint is not wrapped.
+   * Optional. When set, the payload to the push endpoint is not wrapped.
    * 
* - * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5; + * + * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The noWrapper. */ @@ -2452,14 +2533,17 @@ public com.google.pubsub.v1.PushConfig.NoWrapper getNoWrapper() { } return com.google.pubsub.v1.PushConfig.NoWrapper.getDefaultInstance(); } + /** * * *
-   * When set, the payload to the push endpoint is not wrapped.
+   * Optional. When set, the payload to the push endpoint is not wrapped.
    * 
* - * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5; + * + * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.PushConfig.NoWrapperOrBuilder getNoWrapperOrBuilder() { @@ -2706,6 +2790,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -2725,7 +2810,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMapField(int number) { + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { switch (number) { case 2: return internalGetAttributes(); @@ -2735,7 +2821,8 @@ protected com.google.protobuf.MapField internalGetMapField(int number) { } @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMutableMapField(int number) { + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { switch (number) { case 2: return internalGetMutableAttributes(); @@ -3029,15 +3116,16 @@ public Builder clearWrapper() { private int bitField0_; private java.lang.Object pushEndpoint_ = ""; + /** * * *
-     * A URL locating the endpoint to which messages should be pushed.
+     * Optional. A URL locating the endpoint to which messages should be pushed.
      * For example, a Webhook endpoint might use `https://example.com/push`.
      * 
* - * string push_endpoint = 1; + * string push_endpoint = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pushEndpoint. */ @@ -3052,15 +3140,16 @@ public java.lang.String getPushEndpoint() { return (java.lang.String) ref; } } + /** * * *
-     * A URL locating the endpoint to which messages should be pushed.
+     * Optional. A URL locating the endpoint to which messages should be pushed.
      * For example, a Webhook endpoint might use `https://example.com/push`.
      * 
* - * string push_endpoint = 1; + * string push_endpoint = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for pushEndpoint. */ @@ -3075,15 +3164,16 @@ public com.google.protobuf.ByteString getPushEndpointBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * A URL locating the endpoint to which messages should be pushed.
+     * Optional. A URL locating the endpoint to which messages should be pushed.
      * For example, a Webhook endpoint might use `https://example.com/push`.
      * 
* - * string push_endpoint = 1; + * string push_endpoint = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The pushEndpoint to set. * @return This builder for chaining. @@ -3097,15 +3187,16 @@ public Builder setPushEndpoint(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * A URL locating the endpoint to which messages should be pushed.
+     * Optional. A URL locating the endpoint to which messages should be pushed.
      * For example, a Webhook endpoint might use `https://example.com/push`.
      * 
* - * string push_endpoint = 1; + * string push_endpoint = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -3115,15 +3206,16 @@ public Builder clearPushEndpoint() { onChanged(); return this; } + /** * * *
-     * A URL locating the endpoint to which messages should be pushed.
+     * Optional. A URL locating the endpoint to which messages should be pushed.
      * For example, a Webhook endpoint might use `https://example.com/push`.
      * 
* - * string push_endpoint = 1; + * string push_endpoint = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for pushEndpoint to set. * @return This builder for chaining. @@ -3167,12 +3259,13 @@ public Builder setPushEndpointBytes(com.google.protobuf.ByteString value) { public int getAttributesCount() { return internalGetAttributes().getMap().size(); } + /** * * *
-     * Endpoint configuration attributes that can be used to control different
-     * aspects of the message delivery.
+     * Optional. Endpoint configuration attributes that can be used to control
+     * different aspects of the message delivery.
      *
      * The only currently supported attribute is `x-goog-version`, which you can
      * use to change the format of the pushed message. This attribute
@@ -3194,7 +3287,8 @@ public int getAttributesCount() {
      * `attributes { "x-goog-version": "v1" }`
      * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public boolean containsAttributes(java.lang.String key) { @@ -3203,18 +3297,20 @@ public boolean containsAttributes(java.lang.String key) { } return internalGetAttributes().getMap().containsKey(key); } + /** Use {@link #getAttributesMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getAttributes() { return getAttributesMap(); } + /** * * *
-     * Endpoint configuration attributes that can be used to control different
-     * aspects of the message delivery.
+     * Optional. Endpoint configuration attributes that can be used to control
+     * different aspects of the message delivery.
      *
      * The only currently supported attribute is `x-goog-version`, which you can
      * use to change the format of the pushed message. This attribute
@@ -3236,18 +3332,20 @@ public java.util.Map getAttributes() {
      * `attributes { "x-goog-version": "v1" }`
      * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public java.util.Map getAttributesMap() { return internalGetAttributes().getMap(); } + /** * * *
-     * Endpoint configuration attributes that can be used to control different
-     * aspects of the message delivery.
+     * Optional. Endpoint configuration attributes that can be used to control
+     * different aspects of the message delivery.
      *
      * The only currently supported attribute is `x-goog-version`, which you can
      * use to change the format of the pushed message. This attribute
@@ -3269,7 +3367,8 @@ public java.util.Map getAttributesMap() {
      * `attributes { "x-goog-version": "v1" }`
      * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public /* nullable */ java.lang.String getAttributesOrDefault( @@ -3282,12 +3381,13 @@ public java.util.Map getAttributesMap() { java.util.Map map = internalGetAttributes().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } + /** * * *
-     * Endpoint configuration attributes that can be used to control different
-     * aspects of the message delivery.
+     * Optional. Endpoint configuration attributes that can be used to control
+     * different aspects of the message delivery.
      *
      * The only currently supported attribute is `x-goog-version`, which you can
      * use to change the format of the pushed message. This attribute
@@ -3309,7 +3409,8 @@ public java.util.Map getAttributesMap() {
      * `attributes { "x-goog-version": "v1" }`
      * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public java.lang.String getAttributesOrThrow(java.lang.String key) { @@ -3328,12 +3429,13 @@ public Builder clearAttributes() { internalGetMutableAttributes().getMutableMap().clear(); return this; } + /** * * *
-     * Endpoint configuration attributes that can be used to control different
-     * aspects of the message delivery.
+     * Optional. Endpoint configuration attributes that can be used to control
+     * different aspects of the message delivery.
      *
      * The only currently supported attribute is `x-goog-version`, which you can
      * use to change the format of the pushed message. This attribute
@@ -3355,7 +3457,8 @@ public Builder clearAttributes() {
      * `attributes { "x-goog-version": "v1" }`
      * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder removeAttributes(java.lang.String key) { if (key == null) { @@ -3364,18 +3467,20 @@ public Builder removeAttributes(java.lang.String key) { internalGetMutableAttributes().getMutableMap().remove(key); return this; } + /** Use alternate mutation accessors instead. */ @java.lang.Deprecated public java.util.Map getMutableAttributes() { bitField0_ |= 0x00000002; return internalGetMutableAttributes().getMutableMap(); } + /** * * *
-     * Endpoint configuration attributes that can be used to control different
-     * aspects of the message delivery.
+     * Optional. Endpoint configuration attributes that can be used to control
+     * different aspects of the message delivery.
      *
      * The only currently supported attribute is `x-goog-version`, which you can
      * use to change the format of the pushed message. This attribute
@@ -3397,7 +3502,8 @@ public java.util.Map getMutableAttributes()
      * `attributes { "x-goog-version": "v1" }`
      * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder putAttributes(java.lang.String key, java.lang.String value) { if (key == null) { @@ -3410,12 +3516,13 @@ public Builder putAttributes(java.lang.String key, java.lang.String value) { bitField0_ |= 0x00000002; return this; } + /** * * *
-     * Endpoint configuration attributes that can be used to control different
-     * aspects of the message delivery.
+     * Optional. Endpoint configuration attributes that can be used to control
+     * different aspects of the message delivery.
      *
      * The only currently supported attribute is `x-goog-version`, which you can
      * use to change the format of the pushed message. This attribute
@@ -3437,7 +3544,8 @@ public Builder putAttributes(java.lang.String key, java.lang.String value) {
      * `attributes { "x-goog-version": "v1" }`
      * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder putAllAttributes(java.util.Map values) { internalGetMutableAttributes().getMutableMap().putAll(values); @@ -3450,15 +3558,19 @@ public Builder putAllAttributes(java.util.Map oidcTokenBuilder_; + /** * * *
-     * If specified, Pub/Sub will generate and attach an OIDC JWT token as an
-     * `Authorization` header in the HTTP request for every pushed message.
+     * Optional. If specified, Pub/Sub will generate and attach an OIDC JWT
+     * token as an `Authorization` header in the HTTP request for every pushed
+     * message.
      * 
* - * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3; + * + * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the oidcToken field is set. */ @@ -3466,15 +3578,19 @@ public Builder putAllAttributes(java.util.Map - * If specified, Pub/Sub will generate and attach an OIDC JWT token as an - * `Authorization` header in the HTTP request for every pushed message. + * Optional. If specified, Pub/Sub will generate and attach an OIDC JWT + * token as an `Authorization` header in the HTTP request for every pushed + * message. * * - * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3; + * + * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The oidcToken. */ @@ -3492,15 +3608,19 @@ public com.google.pubsub.v1.PushConfig.OidcToken getOidcToken() { return com.google.pubsub.v1.PushConfig.OidcToken.getDefaultInstance(); } } + /** * * *
-     * If specified, Pub/Sub will generate and attach an OIDC JWT token as an
-     * `Authorization` header in the HTTP request for every pushed message.
+     * Optional. If specified, Pub/Sub will generate and attach an OIDC JWT
+     * token as an `Authorization` header in the HTTP request for every pushed
+     * message.
      * 
* - * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3; + * + * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setOidcToken(com.google.pubsub.v1.PushConfig.OidcToken value) { if (oidcTokenBuilder_ == null) { @@ -3515,15 +3635,19 @@ public Builder setOidcToken(com.google.pubsub.v1.PushConfig.OidcToken value) { authenticationMethodCase_ = 3; return this; } + /** * * *
-     * If specified, Pub/Sub will generate and attach an OIDC JWT token as an
-     * `Authorization` header in the HTTP request for every pushed message.
+     * Optional. If specified, Pub/Sub will generate and attach an OIDC JWT
+     * token as an `Authorization` header in the HTTP request for every pushed
+     * message.
      * 
* - * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3; + * + * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setOidcToken(com.google.pubsub.v1.PushConfig.OidcToken.Builder builderForValue) { if (oidcTokenBuilder_ == null) { @@ -3535,15 +3659,19 @@ public Builder setOidcToken(com.google.pubsub.v1.PushConfig.OidcToken.Builder bu authenticationMethodCase_ = 3; return this; } + /** * * *
-     * If specified, Pub/Sub will generate and attach an OIDC JWT token as an
-     * `Authorization` header in the HTTP request for every pushed message.
+     * Optional. If specified, Pub/Sub will generate and attach an OIDC JWT
+     * token as an `Authorization` header in the HTTP request for every pushed
+     * message.
      * 
* - * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3; + * + * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder mergeOidcToken(com.google.pubsub.v1.PushConfig.OidcToken value) { if (oidcTokenBuilder_ == null) { @@ -3569,15 +3697,19 @@ public Builder mergeOidcToken(com.google.pubsub.v1.PushConfig.OidcToken value) { authenticationMethodCase_ = 3; return this; } + /** * * *
-     * If specified, Pub/Sub will generate and attach an OIDC JWT token as an
-     * `Authorization` header in the HTTP request for every pushed message.
+     * Optional. If specified, Pub/Sub will generate and attach an OIDC JWT
+     * token as an `Authorization` header in the HTTP request for every pushed
+     * message.
      * 
* - * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3; + * + * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder clearOidcToken() { if (oidcTokenBuilder_ == null) { @@ -3595,28 +3727,36 @@ public Builder clearOidcToken() { } return this; } + /** * * *
-     * If specified, Pub/Sub will generate and attach an OIDC JWT token as an
-     * `Authorization` header in the HTTP request for every pushed message.
+     * Optional. If specified, Pub/Sub will generate and attach an OIDC JWT
+     * token as an `Authorization` header in the HTTP request for every pushed
+     * message.
      * 
* - * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3; + * + * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.PushConfig.OidcToken.Builder getOidcTokenBuilder() { return getOidcTokenFieldBuilder().getBuilder(); } + /** * * *
-     * If specified, Pub/Sub will generate and attach an OIDC JWT token as an
-     * `Authorization` header in the HTTP request for every pushed message.
+     * Optional. If specified, Pub/Sub will generate and attach an OIDC JWT
+     * token as an `Authorization` header in the HTTP request for every pushed
+     * message.
      * 
* - * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3; + * + * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.PushConfig.OidcTokenOrBuilder getOidcTokenOrBuilder() { @@ -3629,15 +3769,19 @@ public com.google.pubsub.v1.PushConfig.OidcTokenOrBuilder getOidcTokenOrBuilder( return com.google.pubsub.v1.PushConfig.OidcToken.getDefaultInstance(); } } + /** * * *
-     * If specified, Pub/Sub will generate and attach an OIDC JWT token as an
-     * `Authorization` header in the HTTP request for every pushed message.
+     * Optional. If specified, Pub/Sub will generate and attach an OIDC JWT
+     * token as an `Authorization` header in the HTTP request for every pushed
+     * message.
      * 
* - * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3; + * + * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ private com.google.protobuf.SingleFieldBuilderV3< com.google.pubsub.v1.PushConfig.OidcToken, @@ -3668,16 +3812,19 @@ public com.google.pubsub.v1.PushConfig.OidcTokenOrBuilder getOidcTokenOrBuilder( com.google.pubsub.v1.PushConfig.PubsubWrapper.Builder, com.google.pubsub.v1.PushConfig.PubsubWrapperOrBuilder> pubsubWrapperBuilder_; + /** * * *
-     * When set, the payload to the push endpoint is in the form of the JSON
-     * representation of a PubsubMessage
+     * Optional. When set, the payload to the push endpoint is in the form of
+     * the JSON representation of a PubsubMessage
      * (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage).
      * 
* - * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4; + * + * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the pubsubWrapper field is set. */ @@ -3685,16 +3832,19 @@ public com.google.pubsub.v1.PushConfig.OidcTokenOrBuilder getOidcTokenOrBuilder( public boolean hasPubsubWrapper() { return wrapperCase_ == 4; } + /** * * *
-     * When set, the payload to the push endpoint is in the form of the JSON
-     * representation of a PubsubMessage
+     * Optional. When set, the payload to the push endpoint is in the form of
+     * the JSON representation of a PubsubMessage
      * (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage).
      * 
* - * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4; + * + * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The pubsubWrapper. */ @@ -3712,16 +3862,19 @@ public com.google.pubsub.v1.PushConfig.PubsubWrapper getPubsubWrapper() { return com.google.pubsub.v1.PushConfig.PubsubWrapper.getDefaultInstance(); } } + /** * * *
-     * When set, the payload to the push endpoint is in the form of the JSON
-     * representation of a PubsubMessage
+     * Optional. When set, the payload to the push endpoint is in the form of
+     * the JSON representation of a PubsubMessage
      * (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage).
      * 
* - * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4; + * + * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setPubsubWrapper(com.google.pubsub.v1.PushConfig.PubsubWrapper value) { if (pubsubWrapperBuilder_ == null) { @@ -3736,16 +3889,19 @@ public Builder setPubsubWrapper(com.google.pubsub.v1.PushConfig.PubsubWrapper va wrapperCase_ = 4; return this; } + /** * * *
-     * When set, the payload to the push endpoint is in the form of the JSON
-     * representation of a PubsubMessage
+     * Optional. When set, the payload to the push endpoint is in the form of
+     * the JSON representation of a PubsubMessage
      * (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage).
      * 
* - * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4; + * + * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setPubsubWrapper( com.google.pubsub.v1.PushConfig.PubsubWrapper.Builder builderForValue) { @@ -3758,16 +3914,19 @@ public Builder setPubsubWrapper( wrapperCase_ = 4; return this; } + /** * * *
-     * When set, the payload to the push endpoint is in the form of the JSON
-     * representation of a PubsubMessage
+     * Optional. When set, the payload to the push endpoint is in the form of
+     * the JSON representation of a PubsubMessage
      * (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage).
      * 
* - * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4; + * + * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder mergePubsubWrapper(com.google.pubsub.v1.PushConfig.PubsubWrapper value) { if (pubsubWrapperBuilder_ == null) { @@ -3792,16 +3951,19 @@ public Builder mergePubsubWrapper(com.google.pubsub.v1.PushConfig.PubsubWrapper wrapperCase_ = 4; return this; } + /** * * *
-     * When set, the payload to the push endpoint is in the form of the JSON
-     * representation of a PubsubMessage
+     * Optional. When set, the payload to the push endpoint is in the form of
+     * the JSON representation of a PubsubMessage
      * (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage).
      * 
* - * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4; + * + * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder clearPubsubWrapper() { if (pubsubWrapperBuilder_ == null) { @@ -3819,30 +3981,36 @@ public Builder clearPubsubWrapper() { } return this; } + /** * * *
-     * When set, the payload to the push endpoint is in the form of the JSON
-     * representation of a PubsubMessage
+     * Optional. When set, the payload to the push endpoint is in the form of
+     * the JSON representation of a PubsubMessage
      * (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage).
      * 
* - * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4; + * + * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.PushConfig.PubsubWrapper.Builder getPubsubWrapperBuilder() { return getPubsubWrapperFieldBuilder().getBuilder(); } + /** * * *
-     * When set, the payload to the push endpoint is in the form of the JSON
-     * representation of a PubsubMessage
+     * Optional. When set, the payload to the push endpoint is in the form of
+     * the JSON representation of a PubsubMessage
      * (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage).
      * 
* - * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4; + * + * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.PushConfig.PubsubWrapperOrBuilder getPubsubWrapperOrBuilder() { @@ -3855,16 +4023,19 @@ public com.google.pubsub.v1.PushConfig.PubsubWrapperOrBuilder getPubsubWrapperOr return com.google.pubsub.v1.PushConfig.PubsubWrapper.getDefaultInstance(); } } + /** * * *
-     * When set, the payload to the push endpoint is in the form of the JSON
-     * representation of a PubsubMessage
+     * Optional. When set, the payload to the push endpoint is in the form of
+     * the JSON representation of a PubsubMessage
      * (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage).
      * 
* - * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4; + * + * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ private com.google.protobuf.SingleFieldBuilderV3< com.google.pubsub.v1.PushConfig.PubsubWrapper, @@ -3895,14 +4066,17 @@ public com.google.pubsub.v1.PushConfig.PubsubWrapperOrBuilder getPubsubWrapperOr com.google.pubsub.v1.PushConfig.NoWrapper.Builder, com.google.pubsub.v1.PushConfig.NoWrapperOrBuilder> noWrapperBuilder_; + /** * * *
-     * When set, the payload to the push endpoint is not wrapped.
+     * Optional. When set, the payload to the push endpoint is not wrapped.
      * 
* - * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5; + * + * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the noWrapper field is set. */ @@ -3910,14 +4084,17 @@ public com.google.pubsub.v1.PushConfig.PubsubWrapperOrBuilder getPubsubWrapperOr public boolean hasNoWrapper() { return wrapperCase_ == 5; } + /** * * *
-     * When set, the payload to the push endpoint is not wrapped.
+     * Optional. When set, the payload to the push endpoint is not wrapped.
      * 
* - * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5; + * + * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The noWrapper. */ @@ -3935,14 +4112,17 @@ public com.google.pubsub.v1.PushConfig.NoWrapper getNoWrapper() { return com.google.pubsub.v1.PushConfig.NoWrapper.getDefaultInstance(); } } + /** * * *
-     * When set, the payload to the push endpoint is not wrapped.
+     * Optional. When set, the payload to the push endpoint is not wrapped.
      * 
* - * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5; + * + * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setNoWrapper(com.google.pubsub.v1.PushConfig.NoWrapper value) { if (noWrapperBuilder_ == null) { @@ -3957,14 +4137,17 @@ public Builder setNoWrapper(com.google.pubsub.v1.PushConfig.NoWrapper value) { wrapperCase_ = 5; return this; } + /** * * *
-     * When set, the payload to the push endpoint is not wrapped.
+     * Optional. When set, the payload to the push endpoint is not wrapped.
      * 
* - * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5; + * + * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setNoWrapper(com.google.pubsub.v1.PushConfig.NoWrapper.Builder builderForValue) { if (noWrapperBuilder_ == null) { @@ -3976,14 +4159,17 @@ public Builder setNoWrapper(com.google.pubsub.v1.PushConfig.NoWrapper.Builder bu wrapperCase_ = 5; return this; } + /** * * *
-     * When set, the payload to the push endpoint is not wrapped.
+     * Optional. When set, the payload to the push endpoint is not wrapped.
      * 
* - * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5; + * + * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder mergeNoWrapper(com.google.pubsub.v1.PushConfig.NoWrapper value) { if (noWrapperBuilder_ == null) { @@ -4008,14 +4194,17 @@ public Builder mergeNoWrapper(com.google.pubsub.v1.PushConfig.NoWrapper value) { wrapperCase_ = 5; return this; } + /** * * *
-     * When set, the payload to the push endpoint is not wrapped.
+     * Optional. When set, the payload to the push endpoint is not wrapped.
      * 
* - * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5; + * + * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder clearNoWrapper() { if (noWrapperBuilder_ == null) { @@ -4033,26 +4222,32 @@ public Builder clearNoWrapper() { } return this; } + /** * * *
-     * When set, the payload to the push endpoint is not wrapped.
+     * Optional. When set, the payload to the push endpoint is not wrapped.
      * 
* - * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5; + * + * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.PushConfig.NoWrapper.Builder getNoWrapperBuilder() { return getNoWrapperFieldBuilder().getBuilder(); } + /** * * *
-     * When set, the payload to the push endpoint is not wrapped.
+     * Optional. When set, the payload to the push endpoint is not wrapped.
      * 
* - * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5; + * + * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.PushConfig.NoWrapperOrBuilder getNoWrapperOrBuilder() { @@ -4065,14 +4260,17 @@ public com.google.pubsub.v1.PushConfig.NoWrapperOrBuilder getNoWrapperOrBuilder( return com.google.pubsub.v1.PushConfig.NoWrapper.getDefaultInstance(); } } + /** * * *
-     * When set, the payload to the push endpoint is not wrapped.
+     * Optional. When set, the payload to the push endpoint is not wrapped.
      * 
* - * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5; + * + * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5 [(.google.api.field_behavior) = OPTIONAL]; + * */ private com.google.protobuf.SingleFieldBuilderV3< com.google.pubsub.v1.PushConfig.NoWrapper, diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PushConfigOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PushConfigOrBuilder.java index dade5167a..77f4f69a1 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PushConfigOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/PushConfigOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface PushConfigOrBuilder @@ -27,24 +28,25 @@ public interface PushConfigOrBuilder * * *
-   * A URL locating the endpoint to which messages should be pushed.
+   * Optional. A URL locating the endpoint to which messages should be pushed.
    * For example, a Webhook endpoint might use `https://example.com/push`.
    * 
* - * string push_endpoint = 1; + * string push_endpoint = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The pushEndpoint. */ java.lang.String getPushEndpoint(); + /** * * *
-   * A URL locating the endpoint to which messages should be pushed.
+   * Optional. A URL locating the endpoint to which messages should be pushed.
    * For example, a Webhook endpoint might use `https://example.com/push`.
    * 
* - * string push_endpoint = 1; + * string push_endpoint = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for pushEndpoint. */ @@ -54,8 +56,8 @@ public interface PushConfigOrBuilder * * *
-   * Endpoint configuration attributes that can be used to control different
-   * aspects of the message delivery.
+   * Optional. Endpoint configuration attributes that can be used to control
+   * different aspects of the message delivery.
    *
    * The only currently supported attribute is `x-goog-version`, which you can
    * use to change the format of the pushed message. This attribute
@@ -77,15 +79,17 @@ public interface PushConfigOrBuilder
    * `attributes { "x-goog-version": "v1" }`
    * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ int getAttributesCount(); + /** * * *
-   * Endpoint configuration attributes that can be used to control different
-   * aspects of the message delivery.
+   * Optional. Endpoint configuration attributes that can be used to control
+   * different aspects of the message delivery.
    *
    * The only currently supported attribute is `x-goog-version`, which you can
    * use to change the format of the pushed message. This attribute
@@ -107,18 +111,21 @@ public interface PushConfigOrBuilder
    * `attributes { "x-goog-version": "v1" }`
    * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ boolean containsAttributes(java.lang.String key); + /** Use {@link #getAttributesMap()} instead. */ @java.lang.Deprecated java.util.Map getAttributes(); + /** * * *
-   * Endpoint configuration attributes that can be used to control different
-   * aspects of the message delivery.
+   * Optional. Endpoint configuration attributes that can be used to control
+   * different aspects of the message delivery.
    *
    * The only currently supported attribute is `x-goog-version`, which you can
    * use to change the format of the pushed message. This attribute
@@ -140,15 +147,17 @@ public interface PushConfigOrBuilder
    * `attributes { "x-goog-version": "v1" }`
    * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ java.util.Map getAttributesMap(); + /** * * *
-   * Endpoint configuration attributes that can be used to control different
-   * aspects of the message delivery.
+   * Optional. Endpoint configuration attributes that can be used to control
+   * different aspects of the message delivery.
    *
    * The only currently supported attribute is `x-goog-version`, which you can
    * use to change the format of the pushed message. This attribute
@@ -170,19 +179,21 @@ public interface PushConfigOrBuilder
    * `attributes { "x-goog-version": "v1" }`
    * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ /* nullable */ java.lang.String getAttributesOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue); + /** * * *
-   * Endpoint configuration attributes that can be used to control different
-   * aspects of the message delivery.
+   * Optional. Endpoint configuration attributes that can be used to control
+   * different aspects of the message delivery.
    *
    * The only currently supported attribute is `x-goog-version`, which you can
    * use to change the format of the pushed message. This attribute
@@ -204,7 +215,8 @@ java.lang.String getAttributesOrDefault(
    * `attributes { "x-goog-version": "v1" }`
    * 
* - * map<string, string> attributes = 2; + * map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ java.lang.String getAttributesOrThrow(java.lang.String key); @@ -212,37 +224,48 @@ java.lang.String getAttributesOrDefault( * * *
-   * If specified, Pub/Sub will generate and attach an OIDC JWT token as an
-   * `Authorization` header in the HTTP request for every pushed message.
+   * Optional. If specified, Pub/Sub will generate and attach an OIDC JWT
+   * token as an `Authorization` header in the HTTP request for every pushed
+   * message.
    * 
* - * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3; + * + * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the oidcToken field is set. */ boolean hasOidcToken(); + /** * * *
-   * If specified, Pub/Sub will generate and attach an OIDC JWT token as an
-   * `Authorization` header in the HTTP request for every pushed message.
+   * Optional. If specified, Pub/Sub will generate and attach an OIDC JWT
+   * token as an `Authorization` header in the HTTP request for every pushed
+   * message.
    * 
* - * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3; + * + * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The oidcToken. */ com.google.pubsub.v1.PushConfig.OidcToken getOidcToken(); + /** * * *
-   * If specified, Pub/Sub will generate and attach an OIDC JWT token as an
-   * `Authorization` header in the HTTP request for every pushed message.
+   * Optional. If specified, Pub/Sub will generate and attach an OIDC JWT
+   * token as an `Authorization` header in the HTTP request for every pushed
+   * message.
    * 
* - * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3; + * + * .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.PushConfig.OidcTokenOrBuilder getOidcTokenOrBuilder(); @@ -250,40 +273,48 @@ java.lang.String getAttributesOrDefault( * * *
-   * When set, the payload to the push endpoint is in the form of the JSON
-   * representation of a PubsubMessage
+   * Optional. When set, the payload to the push endpoint is in the form of
+   * the JSON representation of a PubsubMessage
    * (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage).
    * 
* - * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4; + * + * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the pubsubWrapper field is set. */ boolean hasPubsubWrapper(); + /** * * *
-   * When set, the payload to the push endpoint is in the form of the JSON
-   * representation of a PubsubMessage
+   * Optional. When set, the payload to the push endpoint is in the form of
+   * the JSON representation of a PubsubMessage
    * (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage).
    * 
* - * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4; + * + * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The pubsubWrapper. */ com.google.pubsub.v1.PushConfig.PubsubWrapper getPubsubWrapper(); + /** * * *
-   * When set, the payload to the push endpoint is in the form of the JSON
-   * representation of a PubsubMessage
+   * Optional. When set, the payload to the push endpoint is in the form of
+   * the JSON representation of a PubsubMessage
    * (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage).
    * 
* - * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4; + * + * .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.PushConfig.PubsubWrapperOrBuilder getPubsubWrapperOrBuilder(); @@ -291,34 +322,42 @@ java.lang.String getAttributesOrDefault( * * *
-   * When set, the payload to the push endpoint is not wrapped.
+   * Optional. When set, the payload to the push endpoint is not wrapped.
    * 
* - * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5; + * + * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the noWrapper field is set. */ boolean hasNoWrapper(); + /** * * *
-   * When set, the payload to the push endpoint is not wrapped.
+   * Optional. When set, the payload to the push endpoint is not wrapped.
    * 
* - * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5; + * + * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The noWrapper. */ com.google.pubsub.v1.PushConfig.NoWrapper getNoWrapper(); + /** * * *
-   * When set, the payload to the push endpoint is not wrapped.
+   * Optional. When set, the payload to the push endpoint is not wrapped.
    * 
* - * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5; + * + * .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.PushConfig.NoWrapperOrBuilder getNoWrapperOrBuilder(); diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ReceivedMessage.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ReceivedMessage.java index 3e70473df..6d9320a05 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ReceivedMessage.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ReceivedMessage.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ReceivedMessage extends com.google.protobuf.GeneratedMessageV // @@protoc_insertion_point(message_implements:google.pubsub.v1.ReceivedMessage) ReceivedMessageOrBuilder { private static final long serialVersionUID = 0L; + // Use ReceivedMessage.newBuilder() to construct. private ReceivedMessage(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -62,18 +64,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { com.google.pubsub.v1.ReceivedMessage.Builder.class); } + private int bitField0_; public static final int ACK_ID_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object ackId_ = ""; + /** * * *
-   * This ID can be used to acknowledge the received message.
+   * Optional. This ID can be used to acknowledge the received message.
    * 
* - * string ack_id = 1; + * string ack_id = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The ackId. */ @@ -89,14 +93,15 @@ public java.lang.String getAckId() { return s; } } + /** * * *
-   * This ID can be used to acknowledge the received message.
+   * Optional. This ID can be used to acknowledge the received message.
    * 
* - * string ack_id = 1; + * string ack_id = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for ackId. */ @@ -115,29 +120,33 @@ public com.google.protobuf.ByteString getAckIdBytes() { public static final int MESSAGE_FIELD_NUMBER = 2; private com.google.pubsub.v1.PubsubMessage message_; + /** * * *
-   * The message.
+   * Optional. The message.
    * 
* - * .google.pubsub.v1.PubsubMessage message = 2; + * .google.pubsub.v1.PubsubMessage message = 2 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the message field is set. */ @java.lang.Override public boolean hasMessage() { - return message_ != null; + return ((bitField0_ & 0x00000001) != 0); } + /** * * *
-   * The message.
+   * Optional. The message.
    * 
* - * .google.pubsub.v1.PubsubMessage message = 2; + * .google.pubsub.v1.PubsubMessage message = 2 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The message. */ @@ -145,14 +154,16 @@ public boolean hasMessage() { public com.google.pubsub.v1.PubsubMessage getMessage() { return message_ == null ? com.google.pubsub.v1.PubsubMessage.getDefaultInstance() : message_; } + /** * * *
-   * The message.
+   * Optional. The message.
    * 
* - * .google.pubsub.v1.PubsubMessage message = 2; + * .google.pubsub.v1.PubsubMessage message = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.PubsubMessageOrBuilder getMessageOrBuilder() { @@ -161,12 +172,13 @@ public com.google.pubsub.v1.PubsubMessageOrBuilder getMessageOrBuilder() { public static final int DELIVERY_ATTEMPT_FIELD_NUMBER = 3; private int deliveryAttempt_ = 0; + /** * * *
-   * The approximate number of times that Cloud Pub/Sub has attempted to deliver
-   * the associated message to a subscriber.
+   * Optional. The approximate number of times that Pub/Sub has attempted to
+   * deliver the associated message to a subscriber.
    *
    * More precisely, this is 1 + (number of NACKs) +
    * (number of ack_deadline exceeds) for this message.
@@ -183,7 +195,7 @@ public com.google.pubsub.v1.PubsubMessageOrBuilder getMessageOrBuilder() {
    * If a DeadLetterPolicy is not set on the subscription, this will be 0.
    * 
* - * int32 delivery_attempt = 3; + * int32 delivery_attempt = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The deliveryAttempt. */ @@ -209,7 +221,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ackId_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, ackId_); } - if (message_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(2, getMessage()); } if (deliveryAttempt_ != 0) { @@ -227,7 +239,7 @@ public int getSerializedSize() { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ackId_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, ackId_); } - if (message_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getMessage()); } if (deliveryAttempt_ != 0) { @@ -372,6 +384,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -401,10 +414,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } // Construct using com.google.pubsub.v1.ReceivedMessage.newBuilder() - private Builder() {} + private Builder() { + maybeForceBuilderInitialization(); + } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getMessageFieldBuilder(); + } } @java.lang.Override @@ -456,12 +478,15 @@ private void buildPartial0(com.google.pubsub.v1.ReceivedMessage result) { if (((from_bitField0_ & 0x00000001) != 0)) { result.ackId_ = ackId_; } + int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000002) != 0)) { result.message_ = messageBuilder_ == null ? message_ : messageBuilder_.build(); + to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000004) != 0)) { result.deliveryAttempt_ = deliveryAttempt_; } + result.bitField0_ |= to_bitField0_; } @java.lang.Override @@ -584,14 +609,15 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object ackId_ = ""; + /** * * *
-     * This ID can be used to acknowledge the received message.
+     * Optional. This ID can be used to acknowledge the received message.
      * 
* - * string ack_id = 1; + * string ack_id = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The ackId. */ @@ -606,14 +632,15 @@ public java.lang.String getAckId() { return (java.lang.String) ref; } } + /** * * *
-     * This ID can be used to acknowledge the received message.
+     * Optional. This ID can be used to acknowledge the received message.
      * 
* - * string ack_id = 1; + * string ack_id = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for ackId. */ @@ -628,14 +655,15 @@ public com.google.protobuf.ByteString getAckIdBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * This ID can be used to acknowledge the received message.
+     * Optional. This ID can be used to acknowledge the received message.
      * 
* - * string ack_id = 1; + * string ack_id = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The ackId to set. * @return This builder for chaining. @@ -649,14 +677,15 @@ public Builder setAckId(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * This ID can be used to acknowledge the received message.
+     * Optional. This ID can be used to acknowledge the received message.
      * 
* - * string ack_id = 1; + * string ack_id = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -666,14 +695,15 @@ public Builder clearAckId() { onChanged(); return this; } + /** * * *
-     * This ID can be used to acknowledge the received message.
+     * Optional. This ID can be used to acknowledge the received message.
      * 
* - * string ack_id = 1; + * string ack_id = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for ackId to set. * @return This builder for chaining. @@ -695,28 +725,32 @@ public Builder setAckIdBytes(com.google.protobuf.ByteString value) { com.google.pubsub.v1.PubsubMessage.Builder, com.google.pubsub.v1.PubsubMessageOrBuilder> messageBuilder_; + /** * * *
-     * The message.
+     * Optional. The message.
      * 
* - * .google.pubsub.v1.PubsubMessage message = 2; + * .google.pubsub.v1.PubsubMessage message = 2 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the message field is set. */ public boolean hasMessage() { return ((bitField0_ & 0x00000002) != 0); } + /** * * *
-     * The message.
+     * Optional. The message.
      * 
* - * .google.pubsub.v1.PubsubMessage message = 2; + * .google.pubsub.v1.PubsubMessage message = 2 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The message. */ @@ -729,14 +763,16 @@ public com.google.pubsub.v1.PubsubMessage getMessage() { return messageBuilder_.getMessage(); } } + /** * * *
-     * The message.
+     * Optional. The message.
      * 
* - * .google.pubsub.v1.PubsubMessage message = 2; + * .google.pubsub.v1.PubsubMessage message = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setMessage(com.google.pubsub.v1.PubsubMessage value) { if (messageBuilder_ == null) { @@ -751,14 +787,16 @@ public Builder setMessage(com.google.pubsub.v1.PubsubMessage value) { onChanged(); return this; } + /** * * *
-     * The message.
+     * Optional. The message.
      * 
* - * .google.pubsub.v1.PubsubMessage message = 2; + * .google.pubsub.v1.PubsubMessage message = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setMessage(com.google.pubsub.v1.PubsubMessage.Builder builderForValue) { if (messageBuilder_ == null) { @@ -770,14 +808,16 @@ public Builder setMessage(com.google.pubsub.v1.PubsubMessage.Builder builderForV onChanged(); return this; } + /** * * *
-     * The message.
+     * Optional. The message.
      * 
* - * .google.pubsub.v1.PubsubMessage message = 2; + * .google.pubsub.v1.PubsubMessage message = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder mergeMessage(com.google.pubsub.v1.PubsubMessage value) { if (messageBuilder_ == null) { @@ -791,18 +831,22 @@ public Builder mergeMessage(com.google.pubsub.v1.PubsubMessage value) { } else { messageBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000002; - onChanged(); + if (message_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } return this; } + /** * * *
-     * The message.
+     * Optional. The message.
      * 
* - * .google.pubsub.v1.PubsubMessage message = 2; + * .google.pubsub.v1.PubsubMessage message = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder clearMessage() { bitField0_ = (bitField0_ & ~0x00000002); @@ -814,28 +858,32 @@ public Builder clearMessage() { onChanged(); return this; } + /** * * *
-     * The message.
+     * Optional. The message.
      * 
* - * .google.pubsub.v1.PubsubMessage message = 2; + * .google.pubsub.v1.PubsubMessage message = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.PubsubMessage.Builder getMessageBuilder() { bitField0_ |= 0x00000002; onChanged(); return getMessageFieldBuilder().getBuilder(); } + /** * * *
-     * The message.
+     * Optional. The message.
      * 
* - * .google.pubsub.v1.PubsubMessage message = 2; + * .google.pubsub.v1.PubsubMessage message = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.PubsubMessageOrBuilder getMessageOrBuilder() { if (messageBuilder_ != null) { @@ -846,14 +894,16 @@ public com.google.pubsub.v1.PubsubMessageOrBuilder getMessageOrBuilder() { : message_; } } + /** * * *
-     * The message.
+     * Optional. The message.
      * 
* - * .google.pubsub.v1.PubsubMessage message = 2; + * .google.pubsub.v1.PubsubMessage message = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ private com.google.protobuf.SingleFieldBuilderV3< com.google.pubsub.v1.PubsubMessage, @@ -873,12 +923,13 @@ public com.google.pubsub.v1.PubsubMessageOrBuilder getMessageOrBuilder() { } private int deliveryAttempt_; + /** * * *
-     * The approximate number of times that Cloud Pub/Sub has attempted to deliver
-     * the associated message to a subscriber.
+     * Optional. The approximate number of times that Pub/Sub has attempted to
+     * deliver the associated message to a subscriber.
      *
      * More precisely, this is 1 + (number of NACKs) +
      * (number of ack_deadline exceeds) for this message.
@@ -895,7 +946,7 @@ public com.google.pubsub.v1.PubsubMessageOrBuilder getMessageOrBuilder() {
      * If a DeadLetterPolicy is not set on the subscription, this will be 0.
      * 
* - * int32 delivery_attempt = 3; + * int32 delivery_attempt = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The deliveryAttempt. */ @@ -903,12 +954,13 @@ public com.google.pubsub.v1.PubsubMessageOrBuilder getMessageOrBuilder() { public int getDeliveryAttempt() { return deliveryAttempt_; } + /** * * *
-     * The approximate number of times that Cloud Pub/Sub has attempted to deliver
-     * the associated message to a subscriber.
+     * Optional. The approximate number of times that Pub/Sub has attempted to
+     * deliver the associated message to a subscriber.
      *
      * More precisely, this is 1 + (number of NACKs) +
      * (number of ack_deadline exceeds) for this message.
@@ -925,7 +977,7 @@ public int getDeliveryAttempt() {
      * If a DeadLetterPolicy is not set on the subscription, this will be 0.
      * 
* - * int32 delivery_attempt = 3; + * int32 delivery_attempt = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The deliveryAttempt to set. * @return This builder for chaining. @@ -937,12 +989,13 @@ public Builder setDeliveryAttempt(int value) { onChanged(); return this; } + /** * * *
-     * The approximate number of times that Cloud Pub/Sub has attempted to deliver
-     * the associated message to a subscriber.
+     * Optional. The approximate number of times that Pub/Sub has attempted to
+     * deliver the associated message to a subscriber.
      *
      * More precisely, this is 1 + (number of NACKs) +
      * (number of ack_deadline exceeds) for this message.
@@ -959,7 +1012,7 @@ public Builder setDeliveryAttempt(int value) {
      * If a DeadLetterPolicy is not set on the subscription, this will be 0.
      * 
* - * int32 delivery_attempt = 3; + * int32 delivery_attempt = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ReceivedMessageOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ReceivedMessageOrBuilder.java index d5617c652..75d446b0d 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ReceivedMessageOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ReceivedMessageOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ReceivedMessageOrBuilder @@ -27,22 +28,23 @@ public interface ReceivedMessageOrBuilder * * *
-   * This ID can be used to acknowledge the received message.
+   * Optional. This ID can be used to acknowledge the received message.
    * 
* - * string ack_id = 1; + * string ack_id = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The ackId. */ java.lang.String getAckId(); + /** * * *
-   * This ID can be used to acknowledge the received message.
+   * Optional. This ID can be used to acknowledge the received message.
    * 
* - * string ack_id = 1; + * string ack_id = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for ackId. */ @@ -52,34 +54,39 @@ public interface ReceivedMessageOrBuilder * * *
-   * The message.
+   * Optional. The message.
    * 
* - * .google.pubsub.v1.PubsubMessage message = 2; + * .google.pubsub.v1.PubsubMessage message = 2 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the message field is set. */ boolean hasMessage(); + /** * * *
-   * The message.
+   * Optional. The message.
    * 
* - * .google.pubsub.v1.PubsubMessage message = 2; + * .google.pubsub.v1.PubsubMessage message = 2 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The message. */ com.google.pubsub.v1.PubsubMessage getMessage(); + /** * * *
-   * The message.
+   * Optional. The message.
    * 
* - * .google.pubsub.v1.PubsubMessage message = 2; + * .google.pubsub.v1.PubsubMessage message = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.PubsubMessageOrBuilder getMessageOrBuilder(); @@ -87,8 +94,8 @@ public interface ReceivedMessageOrBuilder * * *
-   * The approximate number of times that Cloud Pub/Sub has attempted to deliver
-   * the associated message to a subscriber.
+   * Optional. The approximate number of times that Pub/Sub has attempted to
+   * deliver the associated message to a subscriber.
    *
    * More precisely, this is 1 + (number of NACKs) +
    * (number of ack_deadline exceeds) for this message.
@@ -105,7 +112,7 @@ public interface ReceivedMessageOrBuilder
    * If a DeadLetterPolicy is not set on the subscription, this will be 0.
    * 
* - * int32 delivery_attempt = 3; + * int32 delivery_attempt = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The deliveryAttempt. */ diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/RetryPolicy.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/RetryPolicy.java index aee326393..f693b46a0 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/RetryPolicy.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/RetryPolicy.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,18 +16,19 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** * * *
- * A policy that specifies how Cloud Pub/Sub retries message delivery.
+ * A policy that specifies how Pub/Sub retries message delivery.
  *
  * Retry delay will be exponential based on provided minimum and maximum
  * backoffs. https://en.wikipedia.org/wiki/Exponential_backoff.
  *
- * RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded
+ * RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
  * events for a given message.
  *
  * Retry Policy is implemented on a best effort basis. At times, the delay
@@ -42,6 +43,7 @@ public final class RetryPolicy extends com.google.protobuf.GeneratedMessageV3
     // @@protoc_insertion_point(message_implements:google.pubsub.v1.RetryPolicy)
     RetryPolicyOrBuilder {
   private static final long serialVersionUID = 0L;
+
   // Use RetryPolicy.newBuilder() to construct.
   private RetryPolicy(com.google.protobuf.GeneratedMessageV3.Builder builder) {
     super(builder);
@@ -68,33 +70,38 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.pubsub.v1.RetryPolicy.class, com.google.pubsub.v1.RetryPolicy.Builder.class);
   }
 
+  private int bitField0_;
   public static final int MINIMUM_BACKOFF_FIELD_NUMBER = 1;
   private com.google.protobuf.Duration minimumBackoff_;
+
   /**
    *
    *
    * 
-   * The minimum delay between consecutive deliveries of a given message.
-   * Value should be between 0 and 600 seconds. Defaults to 10 seconds.
+   * Optional. The minimum delay between consecutive deliveries of a given
+   * message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
    * 
* - * .google.protobuf.Duration minimum_backoff = 1; + * .google.protobuf.Duration minimum_backoff = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the minimumBackoff field is set. */ @java.lang.Override public boolean hasMinimumBackoff() { - return minimumBackoff_ != null; + return ((bitField0_ & 0x00000001) != 0); } + /** * * *
-   * The minimum delay between consecutive deliveries of a given message.
-   * Value should be between 0 and 600 seconds. Defaults to 10 seconds.
+   * Optional. The minimum delay between consecutive deliveries of a given
+   * message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
    * 
* - * .google.protobuf.Duration minimum_backoff = 1; + * .google.protobuf.Duration minimum_backoff = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The minimumBackoff. */ @@ -104,15 +111,17 @@ public com.google.protobuf.Duration getMinimumBackoff() { ? com.google.protobuf.Duration.getDefaultInstance() : minimumBackoff_; } + /** * * *
-   * The minimum delay between consecutive deliveries of a given message.
-   * Value should be between 0 and 600 seconds. Defaults to 10 seconds.
+   * Optional. The minimum delay between consecutive deliveries of a given
+   * message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
    * 
* - * .google.protobuf.Duration minimum_backoff = 1; + * .google.protobuf.Duration minimum_backoff = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getMinimumBackoffOrBuilder() { @@ -123,31 +132,37 @@ public com.google.protobuf.DurationOrBuilder getMinimumBackoffOrBuilder() { public static final int MAXIMUM_BACKOFF_FIELD_NUMBER = 2; private com.google.protobuf.Duration maximumBackoff_; + /** * * *
-   * The maximum delay between consecutive deliveries of a given message.
-   * Value should be between 0 and 600 seconds. Defaults to 600 seconds.
+   * Optional. The maximum delay between consecutive deliveries of a given
+   * message. Value should be between 0 and 600 seconds. Defaults to 600
+   * seconds.
    * 
* - * .google.protobuf.Duration maximum_backoff = 2; + * .google.protobuf.Duration maximum_backoff = 2 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the maximumBackoff field is set. */ @java.lang.Override public boolean hasMaximumBackoff() { - return maximumBackoff_ != null; + return ((bitField0_ & 0x00000002) != 0); } + /** * * *
-   * The maximum delay between consecutive deliveries of a given message.
-   * Value should be between 0 and 600 seconds. Defaults to 600 seconds.
+   * Optional. The maximum delay between consecutive deliveries of a given
+   * message. Value should be between 0 and 600 seconds. Defaults to 600
+   * seconds.
    * 
* - * .google.protobuf.Duration maximum_backoff = 2; + * .google.protobuf.Duration maximum_backoff = 2 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The maximumBackoff. */ @@ -157,15 +172,18 @@ public com.google.protobuf.Duration getMaximumBackoff() { ? com.google.protobuf.Duration.getDefaultInstance() : maximumBackoff_; } + /** * * *
-   * The maximum delay between consecutive deliveries of a given message.
-   * Value should be between 0 and 600 seconds. Defaults to 600 seconds.
+   * Optional. The maximum delay between consecutive deliveries of a given
+   * message. Value should be between 0 and 600 seconds. Defaults to 600
+   * seconds.
    * 
* - * .google.protobuf.Duration maximum_backoff = 2; + * .google.protobuf.Duration maximum_backoff = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getMaximumBackoffOrBuilder() { @@ -188,10 +206,10 @@ public final boolean isInitialized() { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (minimumBackoff_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(1, getMinimumBackoff()); } - if (maximumBackoff_ != null) { + if (((bitField0_ & 0x00000002) != 0)) { output.writeMessage(2, getMaximumBackoff()); } getUnknownFields().writeTo(output); @@ -203,10 +221,10 @@ public int getSerializedSize() { if (size != -1) return size; size = 0; - if (minimumBackoff_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMinimumBackoff()); } - if (maximumBackoff_ != null) { + if (((bitField0_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getMaximumBackoff()); } size += getUnknownFields().getSerializedSize(); @@ -350,16 +368,17 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * *
-   * A policy that specifies how Cloud Pub/Sub retries message delivery.
+   * A policy that specifies how Pub/Sub retries message delivery.
    *
    * Retry delay will be exponential based on provided minimum and maximum
    * backoffs. https://en.wikipedia.org/wiki/Exponential_backoff.
    *
-   * RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded
+   * RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
    * events for a given message.
    *
    * Retry Policy is implemented on a best effort basis. At times, the delay
@@ -389,10 +408,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.pubsub.v1.RetryPolicy.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getMinimumBackoffFieldBuilder();
+        getMaximumBackoffFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -444,14 +473,18 @@ public com.google.pubsub.v1.RetryPolicy buildPartial() {
 
     private void buildPartial0(com.google.pubsub.v1.RetryPolicy result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.minimumBackoff_ =
             minimumBackoffBuilder_ == null ? minimumBackoff_ : minimumBackoffBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.maximumBackoff_ =
             maximumBackoffBuilder_ == null ? maximumBackoff_ : maximumBackoffBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -568,30 +601,36 @@ public Builder mergeFrom(
             com.google.protobuf.Duration.Builder,
             com.google.protobuf.DurationOrBuilder>
         minimumBackoffBuilder_;
+
     /**
      *
      *
      * 
-     * The minimum delay between consecutive deliveries of a given message.
-     * Value should be between 0 and 600 seconds. Defaults to 10 seconds.
+     * Optional. The minimum delay between consecutive deliveries of a given
+     * message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
      * 
* - * .google.protobuf.Duration minimum_backoff = 1; + * + * .google.protobuf.Duration minimum_backoff = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the minimumBackoff field is set. */ public boolean hasMinimumBackoff() { return ((bitField0_ & 0x00000001) != 0); } + /** * * *
-     * The minimum delay between consecutive deliveries of a given message.
-     * Value should be between 0 and 600 seconds. Defaults to 10 seconds.
+     * Optional. The minimum delay between consecutive deliveries of a given
+     * message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
      * 
* - * .google.protobuf.Duration minimum_backoff = 1; + * + * .google.protobuf.Duration minimum_backoff = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The minimumBackoff. */ @@ -604,15 +643,18 @@ public com.google.protobuf.Duration getMinimumBackoff() { return minimumBackoffBuilder_.getMessage(); } } + /** * * *
-     * The minimum delay between consecutive deliveries of a given message.
-     * Value should be between 0 and 600 seconds. Defaults to 10 seconds.
+     * Optional. The minimum delay between consecutive deliveries of a given
+     * message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
      * 
* - * .google.protobuf.Duration minimum_backoff = 1; + * + * .google.protobuf.Duration minimum_backoff = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setMinimumBackoff(com.google.protobuf.Duration value) { if (minimumBackoffBuilder_ == null) { @@ -627,15 +669,18 @@ public Builder setMinimumBackoff(com.google.protobuf.Duration value) { onChanged(); return this; } + /** * * *
-     * The minimum delay between consecutive deliveries of a given message.
-     * Value should be between 0 and 600 seconds. Defaults to 10 seconds.
+     * Optional. The minimum delay between consecutive deliveries of a given
+     * message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
      * 
* - * .google.protobuf.Duration minimum_backoff = 1; + * + * .google.protobuf.Duration minimum_backoff = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setMinimumBackoff(com.google.protobuf.Duration.Builder builderForValue) { if (minimumBackoffBuilder_ == null) { @@ -647,15 +692,18 @@ public Builder setMinimumBackoff(com.google.protobuf.Duration.Builder builderFor onChanged(); return this; } + /** * * *
-     * The minimum delay between consecutive deliveries of a given message.
-     * Value should be between 0 and 600 seconds. Defaults to 10 seconds.
+     * Optional. The minimum delay between consecutive deliveries of a given
+     * message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
      * 
* - * .google.protobuf.Duration minimum_backoff = 1; + * + * .google.protobuf.Duration minimum_backoff = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder mergeMinimumBackoff(com.google.protobuf.Duration value) { if (minimumBackoffBuilder_ == null) { @@ -669,19 +717,24 @@ public Builder mergeMinimumBackoff(com.google.protobuf.Duration value) { } else { minimumBackoffBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000001; - onChanged(); + if (minimumBackoff_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } return this; } + /** * * *
-     * The minimum delay between consecutive deliveries of a given message.
-     * Value should be between 0 and 600 seconds. Defaults to 10 seconds.
+     * Optional. The minimum delay between consecutive deliveries of a given
+     * message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
      * 
* - * .google.protobuf.Duration minimum_backoff = 1; + * + * .google.protobuf.Duration minimum_backoff = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder clearMinimumBackoff() { bitField0_ = (bitField0_ & ~0x00000001); @@ -693,30 +746,36 @@ public Builder clearMinimumBackoff() { onChanged(); return this; } + /** * * *
-     * The minimum delay between consecutive deliveries of a given message.
-     * Value should be between 0 and 600 seconds. Defaults to 10 seconds.
+     * Optional. The minimum delay between consecutive deliveries of a given
+     * message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
      * 
* - * .google.protobuf.Duration minimum_backoff = 1; + * + * .google.protobuf.Duration minimum_backoff = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.protobuf.Duration.Builder getMinimumBackoffBuilder() { bitField0_ |= 0x00000001; onChanged(); return getMinimumBackoffFieldBuilder().getBuilder(); } + /** * * *
-     * The minimum delay between consecutive deliveries of a given message.
-     * Value should be between 0 and 600 seconds. Defaults to 10 seconds.
+     * Optional. The minimum delay between consecutive deliveries of a given
+     * message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
      * 
* - * .google.protobuf.Duration minimum_backoff = 1; + * + * .google.protobuf.Duration minimum_backoff = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.protobuf.DurationOrBuilder getMinimumBackoffOrBuilder() { if (minimumBackoffBuilder_ != null) { @@ -727,15 +786,18 @@ public com.google.protobuf.DurationOrBuilder getMinimumBackoffOrBuilder() { : minimumBackoff_; } } + /** * * *
-     * The minimum delay between consecutive deliveries of a given message.
-     * Value should be between 0 and 600 seconds. Defaults to 10 seconds.
+     * Optional. The minimum delay between consecutive deliveries of a given
+     * message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
      * 
* - * .google.protobuf.Duration minimum_backoff = 1; + * + * .google.protobuf.Duration minimum_backoff = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, @@ -760,30 +822,38 @@ public com.google.protobuf.DurationOrBuilder getMinimumBackoffOrBuilder() { com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> maximumBackoffBuilder_; + /** * * *
-     * The maximum delay between consecutive deliveries of a given message.
-     * Value should be between 0 and 600 seconds. Defaults to 600 seconds.
+     * Optional. The maximum delay between consecutive deliveries of a given
+     * message. Value should be between 0 and 600 seconds. Defaults to 600
+     * seconds.
      * 
* - * .google.protobuf.Duration maximum_backoff = 2; + * + * .google.protobuf.Duration maximum_backoff = 2 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the maximumBackoff field is set. */ public boolean hasMaximumBackoff() { return ((bitField0_ & 0x00000002) != 0); } + /** * * *
-     * The maximum delay between consecutive deliveries of a given message.
-     * Value should be between 0 and 600 seconds. Defaults to 600 seconds.
+     * Optional. The maximum delay between consecutive deliveries of a given
+     * message. Value should be between 0 and 600 seconds. Defaults to 600
+     * seconds.
      * 
* - * .google.protobuf.Duration maximum_backoff = 2; + * + * .google.protobuf.Duration maximum_backoff = 2 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The maximumBackoff. */ @@ -796,15 +866,19 @@ public com.google.protobuf.Duration getMaximumBackoff() { return maximumBackoffBuilder_.getMessage(); } } + /** * * *
-     * The maximum delay between consecutive deliveries of a given message.
-     * Value should be between 0 and 600 seconds. Defaults to 600 seconds.
+     * Optional. The maximum delay between consecutive deliveries of a given
+     * message. Value should be between 0 and 600 seconds. Defaults to 600
+     * seconds.
      * 
* - * .google.protobuf.Duration maximum_backoff = 2; + * + * .google.protobuf.Duration maximum_backoff = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setMaximumBackoff(com.google.protobuf.Duration value) { if (maximumBackoffBuilder_ == null) { @@ -819,15 +893,19 @@ public Builder setMaximumBackoff(com.google.protobuf.Duration value) { onChanged(); return this; } + /** * * *
-     * The maximum delay between consecutive deliveries of a given message.
-     * Value should be between 0 and 600 seconds. Defaults to 600 seconds.
+     * Optional. The maximum delay between consecutive deliveries of a given
+     * message. Value should be between 0 and 600 seconds. Defaults to 600
+     * seconds.
      * 
* - * .google.protobuf.Duration maximum_backoff = 2; + * + * .google.protobuf.Duration maximum_backoff = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setMaximumBackoff(com.google.protobuf.Duration.Builder builderForValue) { if (maximumBackoffBuilder_ == null) { @@ -839,15 +917,19 @@ public Builder setMaximumBackoff(com.google.protobuf.Duration.Builder builderFor onChanged(); return this; } + /** * * *
-     * The maximum delay between consecutive deliveries of a given message.
-     * Value should be between 0 and 600 seconds. Defaults to 600 seconds.
+     * Optional. The maximum delay between consecutive deliveries of a given
+     * message. Value should be between 0 and 600 seconds. Defaults to 600
+     * seconds.
      * 
* - * .google.protobuf.Duration maximum_backoff = 2; + * + * .google.protobuf.Duration maximum_backoff = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder mergeMaximumBackoff(com.google.protobuf.Duration value) { if (maximumBackoffBuilder_ == null) { @@ -861,19 +943,25 @@ public Builder mergeMaximumBackoff(com.google.protobuf.Duration value) { } else { maximumBackoffBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000002; - onChanged(); + if (maximumBackoff_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } return this; } + /** * * *
-     * The maximum delay between consecutive deliveries of a given message.
-     * Value should be between 0 and 600 seconds. Defaults to 600 seconds.
+     * Optional. The maximum delay between consecutive deliveries of a given
+     * message. Value should be between 0 and 600 seconds. Defaults to 600
+     * seconds.
      * 
* - * .google.protobuf.Duration maximum_backoff = 2; + * + * .google.protobuf.Duration maximum_backoff = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder clearMaximumBackoff() { bitField0_ = (bitField0_ & ~0x00000002); @@ -885,30 +973,38 @@ public Builder clearMaximumBackoff() { onChanged(); return this; } + /** * * *
-     * The maximum delay between consecutive deliveries of a given message.
-     * Value should be between 0 and 600 seconds. Defaults to 600 seconds.
+     * Optional. The maximum delay between consecutive deliveries of a given
+     * message. Value should be between 0 and 600 seconds. Defaults to 600
+     * seconds.
      * 
* - * .google.protobuf.Duration maximum_backoff = 2; + * + * .google.protobuf.Duration maximum_backoff = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.protobuf.Duration.Builder getMaximumBackoffBuilder() { bitField0_ |= 0x00000002; onChanged(); return getMaximumBackoffFieldBuilder().getBuilder(); } + /** * * *
-     * The maximum delay between consecutive deliveries of a given message.
-     * Value should be between 0 and 600 seconds. Defaults to 600 seconds.
+     * Optional. The maximum delay between consecutive deliveries of a given
+     * message. Value should be between 0 and 600 seconds. Defaults to 600
+     * seconds.
      * 
* - * .google.protobuf.Duration maximum_backoff = 2; + * + * .google.protobuf.Duration maximum_backoff = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.protobuf.DurationOrBuilder getMaximumBackoffOrBuilder() { if (maximumBackoffBuilder_ != null) { @@ -919,15 +1015,19 @@ public com.google.protobuf.DurationOrBuilder getMaximumBackoffOrBuilder() { : maximumBackoff_; } } + /** * * *
-     * The maximum delay between consecutive deliveries of a given message.
-     * Value should be between 0 and 600 seconds. Defaults to 600 seconds.
+     * Optional. The maximum delay between consecutive deliveries of a given
+     * message. Value should be between 0 and 600 seconds. Defaults to 600
+     * seconds.
      * 
* - * .google.protobuf.Duration maximum_backoff = 2; + * + * .google.protobuf.Duration maximum_backoff = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/RetryPolicyOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/RetryPolicyOrBuilder.java index 967fa903c..1e52a739d 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/RetryPolicyOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/RetryPolicyOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface RetryPolicyOrBuilder @@ -27,37 +28,42 @@ public interface RetryPolicyOrBuilder * * *
-   * The minimum delay between consecutive deliveries of a given message.
-   * Value should be between 0 and 600 seconds. Defaults to 10 seconds.
+   * Optional. The minimum delay between consecutive deliveries of a given
+   * message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
    * 
* - * .google.protobuf.Duration minimum_backoff = 1; + * .google.protobuf.Duration minimum_backoff = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the minimumBackoff field is set. */ boolean hasMinimumBackoff(); + /** * * *
-   * The minimum delay between consecutive deliveries of a given message.
-   * Value should be between 0 and 600 seconds. Defaults to 10 seconds.
+   * Optional. The minimum delay between consecutive deliveries of a given
+   * message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
    * 
* - * .google.protobuf.Duration minimum_backoff = 1; + * .google.protobuf.Duration minimum_backoff = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The minimumBackoff. */ com.google.protobuf.Duration getMinimumBackoff(); + /** * * *
-   * The minimum delay between consecutive deliveries of a given message.
-   * Value should be between 0 and 600 seconds. Defaults to 10 seconds.
+   * Optional. The minimum delay between consecutive deliveries of a given
+   * message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
    * 
* - * .google.protobuf.Duration minimum_backoff = 1; + * .google.protobuf.Duration minimum_backoff = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.protobuf.DurationOrBuilder getMinimumBackoffOrBuilder(); @@ -65,37 +71,45 @@ public interface RetryPolicyOrBuilder * * *
-   * The maximum delay between consecutive deliveries of a given message.
-   * Value should be between 0 and 600 seconds. Defaults to 600 seconds.
+   * Optional. The maximum delay between consecutive deliveries of a given
+   * message. Value should be between 0 and 600 seconds. Defaults to 600
+   * seconds.
    * 
* - * .google.protobuf.Duration maximum_backoff = 2; + * .google.protobuf.Duration maximum_backoff = 2 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the maximumBackoff field is set. */ boolean hasMaximumBackoff(); + /** * * *
-   * The maximum delay between consecutive deliveries of a given message.
-   * Value should be between 0 and 600 seconds. Defaults to 600 seconds.
+   * Optional. The maximum delay between consecutive deliveries of a given
+   * message. Value should be between 0 and 600 seconds. Defaults to 600
+   * seconds.
    * 
* - * .google.protobuf.Duration maximum_backoff = 2; + * .google.protobuf.Duration maximum_backoff = 2 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The maximumBackoff. */ com.google.protobuf.Duration getMaximumBackoff(); + /** * * *
-   * The maximum delay between consecutive deliveries of a given message.
-   * Value should be between 0 and 600 seconds. Defaults to 600 seconds.
+   * Optional. The maximum delay between consecutive deliveries of a given
+   * message. Value should be between 0 and 600 seconds. Defaults to 600
+   * seconds.
    * 
* - * .google.protobuf.Duration maximum_backoff = 2; + * .google.protobuf.Duration maximum_backoff = 2 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.protobuf.DurationOrBuilder getMaximumBackoffOrBuilder(); } diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/RollbackSchemaRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/RollbackSchemaRequest.java index 6de995c70..23d85bd5f 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/RollbackSchemaRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/RollbackSchemaRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class RollbackSchemaRequest extends com.google.protobuf.GeneratedMe // @@protoc_insertion_point(message_implements:google.pubsub.v1.RollbackSchemaRequest) RollbackSchemaRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use RollbackSchemaRequest.newBuilder() to construct. private RollbackSchemaRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -67,6 +69,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object name_ = ""; + /** * * @@ -92,6 +95,7 @@ public java.lang.String getName() { return s; } } + /** * * @@ -122,6 +126,7 @@ public com.google.protobuf.ByteString getNameBytes() { @SuppressWarnings("serial") private volatile java.lang.Object revisionId_ = ""; + /** * * @@ -148,6 +153,7 @@ public java.lang.String getRevisionId() { return s; } } + /** * * @@ -343,6 +349,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -541,6 +548,7 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object name_ = ""; + /** * * @@ -565,6 +573,7 @@ public java.lang.String getName() { return (java.lang.String) ref; } } + /** * * @@ -589,6 +598,7 @@ public com.google.protobuf.ByteString getNameBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -612,6 +622,7 @@ public Builder setName(java.lang.String value) { onChanged(); return this; } + /** * * @@ -631,6 +642,7 @@ public Builder clearName() { onChanged(); return this; } + /** * * @@ -657,6 +669,7 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) { } private java.lang.Object revisionId_ = ""; + /** * * @@ -682,6 +695,7 @@ public java.lang.String getRevisionId() { return (java.lang.String) ref; } } + /** * * @@ -707,6 +721,7 @@ public com.google.protobuf.ByteString getRevisionIdBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -731,6 +746,7 @@ public Builder setRevisionId(java.lang.String value) { onChanged(); return this; } + /** * * @@ -751,6 +767,7 @@ public Builder clearRevisionId() { onChanged(); return this; } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/RollbackSchemaRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/RollbackSchemaRequestOrBuilder.java index b7562292e..03006247f 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/RollbackSchemaRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/RollbackSchemaRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface RollbackSchemaRequestOrBuilder @@ -37,6 +38,7 @@ public interface RollbackSchemaRequestOrBuilder * @return The name. */ java.lang.String getName(); + /** * * @@ -67,6 +69,7 @@ public interface RollbackSchemaRequestOrBuilder * @return The revisionId. */ java.lang.String getRevisionId(); + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Schema.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Schema.java index 7cdbcff9e..d59728407 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Schema.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Schema.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class Schema extends com.google.protobuf.GeneratedMessageV3 // @@protoc_insertion_point(message_implements:google.pubsub.v1.Schema) SchemaOrBuilder { private static final long serialVersionUID = 0L; + // Use Schema.newBuilder() to construct. private Schema(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -116,6 +118,7 @@ public enum Type implements com.google.protobuf.ProtocolMessageEnum { * TYPE_UNSPECIFIED = 0; */ public static final int TYPE_UNSPECIFIED_VALUE = 0; + /** * * @@ -126,6 +129,7 @@ public enum Type implements com.google.protobuf.ProtocolMessageEnum { * PROTOCOL_BUFFER = 1; */ public static final int PROTOCOL_BUFFER_VALUE = 1; + /** * * @@ -220,10 +224,12 @@ private Type(int value) { // @@protoc_insertion_point(enum_scope:google.pubsub.v1.Schema.Type) } + private int bitField0_; public static final int NAME_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object name_ = ""; + /** * * @@ -248,6 +254,7 @@ public java.lang.String getName() { return s; } } + /** * * @@ -275,6 +282,7 @@ public com.google.protobuf.ByteString getNameBytes() { public static final int TYPE_FIELD_NUMBER = 2; private int type_ = 0; + /** * * @@ -290,6 +298,7 @@ public com.google.protobuf.ByteString getNameBytes() { public int getTypeValue() { return type_; } + /** * * @@ -311,6 +320,7 @@ public com.google.pubsub.v1.Schema.Type getType() { @SuppressWarnings("serial") private volatile java.lang.Object definition_ = ""; + /** * * @@ -336,6 +346,7 @@ public java.lang.String getDefinition() { return s; } } + /** * * @@ -366,6 +377,7 @@ public com.google.protobuf.ByteString getDefinitionBytes() { @SuppressWarnings("serial") private volatile java.lang.Object revisionId_ = ""; + /** * * @@ -391,6 +403,7 @@ public java.lang.String getRevisionId() { return s; } } + /** * * @@ -419,6 +432,7 @@ public com.google.protobuf.ByteString getRevisionIdBytes() { public static final int REVISION_CREATE_TIME_FIELD_NUMBER = 6; private com.google.protobuf.Timestamp revisionCreateTime_; + /** * * @@ -434,8 +448,9 @@ public com.google.protobuf.ByteString getRevisionIdBytes() { */ @java.lang.Override public boolean hasRevisionCreateTime() { - return revisionCreateTime_ != null; + return ((bitField0_ & 0x00000001) != 0); } + /** * * @@ -455,6 +470,7 @@ public com.google.protobuf.Timestamp getRevisionCreateTime() { ? com.google.protobuf.Timestamp.getDefaultInstance() : revisionCreateTime_; } + /** * * @@ -499,7 +515,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(revisionId_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 4, revisionId_); } - if (revisionCreateTime_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(6, getRevisionCreateTime()); } getUnknownFields().writeTo(output); @@ -523,7 +539,7 @@ public int getSerializedSize() { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(revisionId_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, revisionId_); } - if (revisionCreateTime_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getRevisionCreateTime()); } size += getUnknownFields().getSerializedSize(); @@ -671,6 +687,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -698,10 +715,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } // Construct using com.google.pubsub.v1.Schema.newBuilder() - private Builder() {} + private Builder() { + maybeForceBuilderInitialization(); + } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getRevisionCreateTimeFieldBuilder(); + } } @java.lang.Override @@ -763,12 +789,15 @@ private void buildPartial0(com.google.pubsub.v1.Schema result) { if (((from_bitField0_ & 0x00000008) != 0)) { result.revisionId_ = revisionId_; } + int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000010) != 0)) { result.revisionCreateTime_ = revisionCreateTimeBuilder_ == null ? revisionCreateTime_ : revisionCreateTimeBuilder_.build(); + to_bitField0_ |= 0x00000001; } + result.bitField0_ |= to_bitField0_; } @java.lang.Override @@ -914,6 +943,7 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object name_ = ""; + /** * * @@ -937,6 +967,7 @@ public java.lang.String getName() { return (java.lang.String) ref; } } + /** * * @@ -960,6 +991,7 @@ public com.google.protobuf.ByteString getNameBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -982,6 +1014,7 @@ public Builder setName(java.lang.String value) { onChanged(); return this; } + /** * * @@ -1000,6 +1033,7 @@ public Builder clearName() { onChanged(); return this; } + /** * * @@ -1025,6 +1059,7 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) { } private int type_ = 0; + /** * * @@ -1040,6 +1075,7 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) { public int getTypeValue() { return type_; } + /** * * @@ -1058,6 +1094,7 @@ public Builder setTypeValue(int value) { onChanged(); return this; } + /** * * @@ -1074,6 +1111,7 @@ public com.google.pubsub.v1.Schema.Type getType() { com.google.pubsub.v1.Schema.Type result = com.google.pubsub.v1.Schema.Type.forNumber(type_); return result == null ? com.google.pubsub.v1.Schema.Type.UNRECOGNIZED : result; } + /** * * @@ -1095,6 +1133,7 @@ public Builder setType(com.google.pubsub.v1.Schema.Type value) { onChanged(); return this; } + /** * * @@ -1114,6 +1153,7 @@ public Builder clearType() { } private java.lang.Object definition_ = ""; + /** * * @@ -1138,6 +1178,7 @@ public java.lang.String getDefinition() { return (java.lang.String) ref; } } + /** * * @@ -1162,6 +1203,7 @@ public com.google.protobuf.ByteString getDefinitionBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -1185,6 +1227,7 @@ public Builder setDefinition(java.lang.String value) { onChanged(); return this; } + /** * * @@ -1204,6 +1247,7 @@ public Builder clearDefinition() { onChanged(); return this; } + /** * * @@ -1230,6 +1274,7 @@ public Builder setDefinitionBytes(com.google.protobuf.ByteString value) { } private java.lang.Object revisionId_ = ""; + /** * * @@ -1254,6 +1299,7 @@ public java.lang.String getRevisionId() { return (java.lang.String) ref; } } + /** * * @@ -1278,6 +1324,7 @@ public com.google.protobuf.ByteString getRevisionIdBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -1301,6 +1348,7 @@ public Builder setRevisionId(java.lang.String value) { onChanged(); return this; } + /** * * @@ -1320,6 +1368,7 @@ public Builder clearRevisionId() { onChanged(); return this; } + /** * * @@ -1351,6 +1400,7 @@ public Builder setRevisionIdBytes(com.google.protobuf.ByteString value) { com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> revisionCreateTimeBuilder_; + /** * * @@ -1367,6 +1417,7 @@ public Builder setRevisionIdBytes(com.google.protobuf.ByteString value) { public boolean hasRevisionCreateTime() { return ((bitField0_ & 0x00000010) != 0); } + /** * * @@ -1389,6 +1440,7 @@ public com.google.protobuf.Timestamp getRevisionCreateTime() { return revisionCreateTimeBuilder_.getMessage(); } } + /** * * @@ -1413,6 +1465,7 @@ public Builder setRevisionCreateTime(com.google.protobuf.Timestamp value) { onChanged(); return this; } + /** * * @@ -1434,6 +1487,7 @@ public Builder setRevisionCreateTime(com.google.protobuf.Timestamp.Builder build onChanged(); return this; } + /** * * @@ -1457,10 +1511,13 @@ public Builder mergeRevisionCreateTime(com.google.protobuf.Timestamp value) { } else { revisionCreateTimeBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000010; - onChanged(); + if (revisionCreateTime_ != null) { + bitField0_ |= 0x00000010; + onChanged(); + } return this; } + /** * * @@ -1482,6 +1539,7 @@ public Builder clearRevisionCreateTime() { onChanged(); return this; } + /** * * @@ -1498,6 +1556,7 @@ public com.google.protobuf.Timestamp.Builder getRevisionCreateTimeBuilder() { onChanged(); return getRevisionCreateTimeFieldBuilder().getBuilder(); } + /** * * @@ -1518,6 +1577,7 @@ public com.google.protobuf.TimestampOrBuilder getRevisionCreateTimeOrBuilder() { : revisionCreateTime_; } } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaName.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaName.java index 2d8968ddf..c1199db1a 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaName.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaName.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaOrBuilder.java index 98612c8c1..4dd47945e 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface SchemaOrBuilder @@ -36,6 +37,7 @@ public interface SchemaOrBuilder * @return The name. */ java.lang.String getName(); + /** * * @@ -62,6 +64,7 @@ public interface SchemaOrBuilder * @return The enum numeric value on the wire for type. */ int getTypeValue(); + /** * * @@ -89,6 +92,7 @@ public interface SchemaOrBuilder * @return The definition. */ java.lang.String getDefinition(); + /** * * @@ -118,6 +122,7 @@ public interface SchemaOrBuilder * @return The revisionId. */ java.lang.String getRevisionId(); + /** * * @@ -147,6 +152,7 @@ public interface SchemaOrBuilder * @return Whether the revisionCreateTime field is set. */ boolean hasRevisionCreateTime(); + /** * * @@ -161,6 +167,7 @@ public interface SchemaOrBuilder * @return The revisionCreateTime. */ com.google.protobuf.Timestamp getRevisionCreateTime(); + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaProto.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaProto.java index 296a9bc5c..88776c194 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaProto.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaProto.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public final class SchemaProto { @@ -101,107 +102,106 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\027google/api/client.proto\032\037google/api/fie" + "ld_behavior.proto\032\031google/api/resource.p" + "roto\032\033google/protobuf/empty.proto\032\037googl" - + "e/protobuf/timestamp.proto\"\276\002\n\006Schema\022\022\n" - + "\004name\030\001 \001(\tB\004\342A\001\002\022+\n\004type\030\002 \001(\0162\035.google" - + ".pubsub.v1.Schema.Type\022\022\n\ndefinition\030\003 \001" - + "(\t\022\032\n\013revision_id\030\004 \001(\tB\005\342A\002\005\003\022>\n\024revisi" + + "e/protobuf/timestamp.proto\"\275\002\n\006Schema\022\021\n" + + "\004name\030\001 \001(\tB\003\340A\002\022+\n\004type\030\002 \001(\0162\035.google." + + "pubsub.v1.Schema.Type\022\022\n\ndefinition\030\003 \001(" + + "\t\022\033\n\013revision_id\030\004 \001(\tB\006\340A\005\340A\003\022=\n\024revisi" + "on_create_time\030\006 \001(\0132\032.google.protobuf.T" - + "imestampB\004\342A\001\003\";\n\004Type\022\024\n\020TYPE_UNSPECIFI" - + "ED\020\000\022\023\n\017PROTOCOL_BUFFER\020\001\022\010\n\004AVRO\020\002:F\352AC" - + "\n\034pubsub.googleapis.com/Schema\022#projects" - + "/{project}/schemas/{schema}\"\217\001\n\023CreateSc" - + "hemaRequest\0225\n\006parent\030\001 \001(\tB%\342A\001\002\372A\036\022\034pu" - + "bsub.googleapis.com/Schema\022.\n\006schema\030\002 \001" - + "(\0132\030.google.pubsub.v1.SchemaB\004\342A\001\002\022\021\n\tsc" - + "hema_id\030\003 \001(\t\"s\n\020GetSchemaRequest\0223\n\004nam" - + "e\030\001 \001(\tB%\342A\001\002\372A\036\n\034pubsub.googleapis.com/" - + "Schema\022*\n\004view\030\002 \001(\0162\034.google.pubsub.v1." - + "SchemaView\"\255\001\n\022ListSchemasRequest\022D\n\006par" - + "ent\030\001 \001(\tB4\342A\001\002\372A-\n+cloudresourcemanager" - + ".googleapis.com/Project\022*\n\004view\030\002 \001(\0162\034." - + "google.pubsub.v1.SchemaView\022\021\n\tpage_size" - + "\030\003 \001(\005\022\022\n\npage_token\030\004 \001(\t\"Y\n\023ListSchema" - + "sResponse\022)\n\007schemas\030\001 \003(\0132\030.google.pubs" - + "ub.v1.Schema\022\027\n\017next_page_token\030\002 \001(\t\"\244\001" - + "\n\032ListSchemaRevisionsRequest\0223\n\004name\030\001 \001" - + "(\tB%\342A\001\002\372A\036\n\034pubsub.googleapis.com/Schem" - + "a\022*\n\004view\030\002 \001(\0162\034.google.pubsub.v1.Schem" - + "aView\022\021\n\tpage_size\030\003 \001(\005\022\022\n\npage_token\030\004" - + " \001(\t\"a\n\033ListSchemaRevisionsResponse\022)\n\007s" - + "chemas\030\001 \003(\0132\030.google.pubsub.v1.Schema\022\027" - + "\n\017next_page_token\030\002 \001(\t\"z\n\023CommitSchemaR" - + "equest\0223\n\004name\030\001 \001(\tB%\342A\001\002\372A\036\n\034pubsub.go" - + "ogleapis.com/Schema\022.\n\006schema\030\002 \001(\0132\030.go" - + "ogle.pubsub.v1.SchemaB\004\342A\001\002\"g\n\025RollbackS" - + "chemaRequest\0223\n\004name\030\001 \001(\tB%\342A\001\002\372A\036\n\034pub" - + "sub.googleapis.com/Schema\022\031\n\013revision_id" - + "\030\002 \001(\tB\004\342A\001\002\"o\n\033DeleteSchemaRevisionRequ" - + "est\0223\n\004name\030\001 \001(\tB%\342A\001\002\372A\036\n\034pubsub.googl" - + "eapis.com/Schema\022\033\n\013revision_id\030\002 \001(\tB\006\030" - + "\001\342A\001\001\"J\n\023DeleteSchemaRequest\0223\n\004name\030\001 \001" - + "(\tB%\342A\001\002\372A\036\n\034pubsub.googleapis.com/Schem" - + "a\"\215\001\n\025ValidateSchemaRequest\022D\n\006parent\030\001 " - + "\001(\tB4\342A\001\002\372A-\n+cloudresourcemanager.googl" - + "eapis.com/Project\022.\n\006schema\030\002 \001(\0132\030.goog" - + "le.pubsub.v1.SchemaB\004\342A\001\002\"\030\n\026ValidateSch" - + "emaResponse\"\213\002\n\026ValidateMessageRequest\022D" - + "\n\006parent\030\001 \001(\tB4\342A\001\002\372A-\n+cloudresourcema" - + "nager.googleapis.com/Project\0221\n\004name\030\002 \001" - + "(\tB!\372A\036\n\034pubsub.googleapis.com/SchemaH\000\022" - + "*\n\006schema\030\003 \001(\0132\030.google.pubsub.v1.Schem" - + "aH\000\022\017\n\007message\030\004 \001(\014\022,\n\010encoding\030\005 \001(\0162\032" - + ".google.pubsub.v1.EncodingB\r\n\013schema_spe" - + "c\"\031\n\027ValidateMessageResponse*>\n\nSchemaVi" - + "ew\022\033\n\027SCHEMA_VIEW_UNSPECIFIED\020\000\022\t\n\005BASIC" - + "\020\001\022\010\n\004FULL\020\002*:\n\010Encoding\022\030\n\024ENCODING_UNS" - + "PECIFIED\020\000\022\010\n\004JSON\020\001\022\n\n\006BINARY\020\0022\210\r\n\rSch" - + "emaService\022\232\001\n\014CreateSchema\022%.google.pub" - + "sub.v1.CreateSchemaRequest\032\030.google.pubs" - + "ub.v1.Schema\"I\332A\027parent,schema,schema_id" - + "\202\323\344\223\002)\"\037/v1/{parent=projects/*}/schemas:" - + "\006schema\022y\n\tGetSchema\022\".google.pubsub.v1." - + "GetSchemaRequest\032\030.google.pubsub.v1.Sche" - + "ma\".\332A\004name\202\323\344\223\002!\022\037/v1/{name=projects/*/" - + "schemas/*}\022\214\001\n\013ListSchemas\022$.google.pubs" - + "ub.v1.ListSchemasRequest\032%.google.pubsub" - + ".v1.ListSchemasResponse\"0\332A\006parent\202\323\344\223\002!" - + "\022\037/v1/{parent=projects/*}/schemas\022\260\001\n\023Li" - + "stSchemaRevisions\022,.google.pubsub.v1.Lis" - + "tSchemaRevisionsRequest\032-.google.pubsub." - + "v1.ListSchemaRevisionsResponse\"<\332A\004name\202" - + "\323\344\223\002/\022-/v1/{name=projects/*/schemas/*}:l" - + "istRevisions\022\220\001\n\014CommitSchema\022%.google.p" - + "ubsub.v1.CommitSchemaRequest\032\030.google.pu" - + "bsub.v1.Schema\"?\332A\013name,schema\202\323\344\223\002+\"&/v" - + "1/{name=projects/*/schemas/*}:commit:\001*\022" - + "\233\001\n\016RollbackSchema\022\'.google.pubsub.v1.Ro" - + "llbackSchemaRequest\032\030.google.pubsub.v1.S" - + "chema\"F\332A\020name,revision_id\202\323\344\223\002-\"(/v1/{n" - + "ame=projects/*/schemas/*}:rollback:\001*\022\252\001" - + "\n\024DeleteSchemaRevision\022-.google.pubsub.v" - + "1.DeleteSchemaRevisionRequest\032\030.google.p" - + "ubsub.v1.Schema\"I\332A\020name,revision_id\202\323\344\223" - + "\0020*./v1/{name=projects/*/schemas/*}:dele" - + "teRevision\022}\n\014DeleteSchema\022%.google.pubs" - + "ub.v1.DeleteSchemaRequest\032\026.google.proto" - + "buf.Empty\".\332A\004name\202\323\344\223\002!*\037/v1/{name=proj" - + "ects/*/schemas/*}\022\250\001\n\016ValidateSchema\022\'.g" - + "oogle.pubsub.v1.ValidateSchemaRequest\032(." - + "google.pubsub.v1.ValidateSchemaResponse\"" - + "C\332A\rparent,schema\202\323\344\223\002-\"(/v1/{parent=pro" - + "jects/*}/schemas:validate:\001*\022\242\001\n\017Validat" - + "eMessage\022(.google.pubsub.v1.ValidateMess" - + "ageRequest\032).google.pubsub.v1.ValidateMe" - + "ssageResponse\":\202\323\344\223\0024\"//v1/{parent=proje" - + "cts/*}/schemas:validateMessage:\001*\032p\312A\025pu" - + "bsub.googleapis.com\322AUhttps://www.google" - + "apis.com/auth/cloud-platform,https://www" - + ".googleapis.com/auth/pubsubB\252\001\n\024com.goog" - + "le.pubsub.v1B\013SchemaProtoP\001Z2cloud.googl" - + "e.com/go/pubsub/apiv1/pubsubpb;pubsubpb\370" - + "\001\001\252\002\026Google.Cloud.PubSub.V1\312\002\026Google\\Clo" - + "ud\\PubSub\\V1\352\002\031Google::Cloud::PubSub::V1" - + "b\006proto3" + + "imestampB\003\340A\003\";\n\004Type\022\024\n\020TYPE_UNSPECIFIE" + + "D\020\000\022\023\n\017PROTOCOL_BUFFER\020\001\022\010\n\004AVRO\020\002:F\352AC\n" + + "\034pubsub.googleapis.com/Schema\022#projects/" + + "{project}/schemas/{schema}\"\215\001\n\023CreateSch" + + "emaRequest\0224\n\006parent\030\001 \001(\tB$\340A\002\372A\036\022\034pubs" + + "ub.googleapis.com/Schema\022-\n\006schema\030\002 \001(\013" + + "2\030.google.pubsub.v1.SchemaB\003\340A\002\022\021\n\tschem" + + "a_id\030\003 \001(\t\"r\n\020GetSchemaRequest\0222\n\004name\030\001" + + " \001(\tB$\340A\002\372A\036\n\034pubsub.googleapis.com/Sche" + + "ma\022*\n\004view\030\002 \001(\0162\034.google.pubsub.v1.Sche" + + "maView\"\254\001\n\022ListSchemasRequest\022C\n\006parent\030" + + "\001 \001(\tB3\340A\002\372A-\n+cloudresourcemanager.goog" + + "leapis.com/Project\022*\n\004view\030\002 \001(\0162\034.googl" + + "e.pubsub.v1.SchemaView\022\021\n\tpage_size\030\003 \001(" + + "\005\022\022\n\npage_token\030\004 \001(\t\"Y\n\023ListSchemasResp" + + "onse\022)\n\007schemas\030\001 \003(\0132\030.google.pubsub.v1" + + ".Schema\022\027\n\017next_page_token\030\002 \001(\t\"\243\001\n\032Lis" + + "tSchemaRevisionsRequest\0222\n\004name\030\001 \001(\tB$\340" + + "A\002\372A\036\n\034pubsub.googleapis.com/Schema\022*\n\004v" + + "iew\030\002 \001(\0162\034.google.pubsub.v1.SchemaView\022" + + "\021\n\tpage_size\030\003 \001(\005\022\022\n\npage_token\030\004 \001(\t\"a" + + "\n\033ListSchemaRevisionsResponse\022)\n\007schemas" + + "\030\001 \003(\0132\030.google.pubsub.v1.Schema\022\027\n\017next" + + "_page_token\030\002 \001(\t\"x\n\023CommitSchemaRequest" + + "\0222\n\004name\030\001 \001(\tB$\340A\002\372A\036\n\034pubsub.googleapi" + + "s.com/Schema\022-\n\006schema\030\002 \001(\0132\030.google.pu" + + "bsub.v1.SchemaB\003\340A\002\"e\n\025RollbackSchemaReq" + + "uest\0222\n\004name\030\001 \001(\tB$\340A\002\372A\036\n\034pubsub.googl" + + "eapis.com/Schema\022\030\n\013revision_id\030\002 \001(\tB\003\340" + + "A\002\"m\n\033DeleteSchemaRevisionRequest\0222\n\004nam" + + "e\030\001 \001(\tB$\340A\002\372A\036\n\034pubsub.googleapis.com/S" + + "chema\022\032\n\013revision_id\030\002 \001(\tB\005\030\001\340A\001\"I\n\023Del" + + "eteSchemaRequest\0222\n\004name\030\001 \001(\tB$\340A\002\372A\036\n\034" + + "pubsub.googleapis.com/Schema\"\213\001\n\025Validat" + + "eSchemaRequest\022C\n\006parent\030\001 \001(\tB3\340A\002\372A-\n+" + + "cloudresourcemanager.googleapis.com/Proj" + + "ect\022-\n\006schema\030\002 \001(\0132\030.google.pubsub.v1.S" + + "chemaB\003\340A\002\"\030\n\026ValidateSchemaResponse\"\212\002\n" + + "\026ValidateMessageRequest\022C\n\006parent\030\001 \001(\tB" + + "3\340A\002\372A-\n+cloudresourcemanager.googleapis" + + ".com/Project\0221\n\004name\030\002 \001(\tB!\372A\036\n\034pubsub." + + "googleapis.com/SchemaH\000\022*\n\006schema\030\003 \001(\0132" + + "\030.google.pubsub.v1.SchemaH\000\022\017\n\007message\030\004" + + " \001(\014\022,\n\010encoding\030\005 \001(\0162\032.google.pubsub.v" + + "1.EncodingB\r\n\013schema_spec\"\031\n\027ValidateMes" + + "sageResponse*>\n\nSchemaView\022\033\n\027SCHEMA_VIE" + + "W_UNSPECIFIED\020\000\022\t\n\005BASIC\020\001\022\010\n\004FULL\020\002*:\n\010" + + "Encoding\022\030\n\024ENCODING_UNSPECIFIED\020\000\022\010\n\004JS" + + "ON\020\001\022\n\n\006BINARY\020\0022\210\r\n\rSchemaService\022\232\001\n\014C" + + "reateSchema\022%.google.pubsub.v1.CreateSch" + + "emaRequest\032\030.google.pubsub.v1.Schema\"I\332A" + + "\027parent,schema,schema_id\202\323\344\223\002)\"\037/v1/{par" + + "ent=projects/*}/schemas:\006schema\022y\n\tGetSc" + + "hema\022\".google.pubsub.v1.GetSchemaRequest" + + "\032\030.google.pubsub.v1.Schema\".\332A\004name\202\323\344\223\002" + + "!\022\037/v1/{name=projects/*/schemas/*}\022\214\001\n\013L" + + "istSchemas\022$.google.pubsub.v1.ListSchema" + + "sRequest\032%.google.pubsub.v1.ListSchemasR" + + "esponse\"0\332A\006parent\202\323\344\223\002!\022\037/v1/{parent=pr" + + "ojects/*}/schemas\022\260\001\n\023ListSchemaRevision" + + "s\022,.google.pubsub.v1.ListSchemaRevisions" + + "Request\032-.google.pubsub.v1.ListSchemaRev" + + "isionsResponse\"<\332A\004name\202\323\344\223\002/\022-/v1/{name" + + "=projects/*/schemas/*}:listRevisions\022\220\001\n" + + "\014CommitSchema\022%.google.pubsub.v1.CommitS" + + "chemaRequest\032\030.google.pubsub.v1.Schema\"?" + + "\332A\013name,schema\202\323\344\223\002+\"&/v1/{name=projects" + + "/*/schemas/*}:commit:\001*\022\233\001\n\016RollbackSche" + + "ma\022\'.google.pubsub.v1.RollbackSchemaRequ" + + "est\032\030.google.pubsub.v1.Schema\"F\332A\020name,r" + + "evision_id\202\323\344\223\002-\"(/v1/{name=projects/*/s" + + "chemas/*}:rollback:\001*\022\252\001\n\024DeleteSchemaRe" + + "vision\022-.google.pubsub.v1.DeleteSchemaRe" + + "visionRequest\032\030.google.pubsub.v1.Schema\"" + + "I\332A\020name,revision_id\202\323\344\223\0020*./v1/{name=pr" + + "ojects/*/schemas/*}:deleteRevision\022}\n\014De" + + "leteSchema\022%.google.pubsub.v1.DeleteSche" + + "maRequest\032\026.google.protobuf.Empty\".\332A\004na" + + "me\202\323\344\223\002!*\037/v1/{name=projects/*/schemas/*" + + "}\022\250\001\n\016ValidateSchema\022\'.google.pubsub.v1." + + "ValidateSchemaRequest\032(.google.pubsub.v1" + + ".ValidateSchemaResponse\"C\332A\rparent,schem" + + "a\202\323\344\223\002-\"(/v1/{parent=projects/*}/schemas" + + ":validate:\001*\022\242\001\n\017ValidateMessage\022(.googl" + + "e.pubsub.v1.ValidateMessageRequest\032).goo" + + "gle.pubsub.v1.ValidateMessageResponse\":\202" + + "\323\344\223\0024\"//v1/{parent=projects/*}/schemas:v" + + "alidateMessage:\001*\032p\312A\025pubsub.googleapis." + + "com\322AUhttps://www.googleapis.com/auth/cl" + + "oud-platform,https://www.googleapis.com/" + + "auth/pubsubB\252\001\n\024com.google.pubsub.v1B\013Sc" + + "hemaProtoP\001Z5cloud.google.com/go/pubsub/" + + "v2/apiv1/pubsubpb;pubsubpb\252\002\026Google.Clou" + + "d.PubSub.V1\312\002\026Google\\Cloud\\PubSub\\V1\352\002\031G" + + "oogle::Cloud::PubSub::V1b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaSettings.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaSettings.java index e43b99679..eed46924c 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaSettings.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaSettings.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class SchemaSettings extends com.google.protobuf.GeneratedMessageV3 // @@protoc_insertion_point(message_implements:google.pubsub.v1.SchemaSettings) SchemaSettingsOrBuilder { private static final long serialVersionUID = 0L; + // Use SchemaSettings.newBuilder() to construct. private SchemaSettings(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -69,6 +71,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object schema_ = ""; + /** * * @@ -97,6 +100,7 @@ public java.lang.String getSchema() { return s; } } + /** * * @@ -128,14 +132,15 @@ public com.google.protobuf.ByteString getSchemaBytes() { public static final int ENCODING_FIELD_NUMBER = 2; private int encoding_ = 0; + /** * * *
-   * The encoding of messages validated against `schema`.
+   * Optional. The encoding of messages validated against `schema`.
    * 
* - * .google.pubsub.v1.Encoding encoding = 2; + * .google.pubsub.v1.Encoding encoding = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The enum numeric value on the wire for encoding. */ @@ -143,14 +148,15 @@ public com.google.protobuf.ByteString getSchemaBytes() { public int getEncodingValue() { return encoding_; } + /** * * *
-   * The encoding of messages validated against `schema`.
+   * Optional. The encoding of messages validated against `schema`.
    * 
* - * .google.pubsub.v1.Encoding encoding = 2; + * .google.pubsub.v1.Encoding encoding = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The encoding. */ @@ -164,16 +170,17 @@ public com.google.pubsub.v1.Encoding getEncoding() { @SuppressWarnings("serial") private volatile java.lang.Object firstRevisionId_ = ""; + /** * * *
-   * The minimum (inclusive) revision allowed for validating messages. If empty
-   * or not present, allow any revision to be validated against last_revision or
-   * any revision created before.
+   * Optional. The minimum (inclusive) revision allowed for validating messages.
+   * If empty or not present, allow any revision to be validated against
+   * last_revision or any revision created before.
    * 
* - * string first_revision_id = 3; + * string first_revision_id = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The firstRevisionId. */ @@ -189,16 +196,17 @@ public java.lang.String getFirstRevisionId() { return s; } } + /** * * *
-   * The minimum (inclusive) revision allowed for validating messages. If empty
-   * or not present, allow any revision to be validated against last_revision or
-   * any revision created before.
+   * Optional. The minimum (inclusive) revision allowed for validating messages.
+   * If empty or not present, allow any revision to be validated against
+   * last_revision or any revision created before.
    * 
* - * string first_revision_id = 3; + * string first_revision_id = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for firstRevisionId. */ @@ -219,16 +227,17 @@ public com.google.protobuf.ByteString getFirstRevisionIdBytes() { @SuppressWarnings("serial") private volatile java.lang.Object lastRevisionId_ = ""; + /** * * *
-   * The maximum (inclusive) revision allowed for validating messages. If empty
-   * or not present, allow any revision to be validated against first_revision
-   * or any revision created after.
+   * Optional. The maximum (inclusive) revision allowed for validating messages.
+   * If empty or not present, allow any revision to be validated against
+   * first_revision or any revision created after.
    * 
* - * string last_revision_id = 4; + * string last_revision_id = 4 [(.google.api.field_behavior) = OPTIONAL]; * * @return The lastRevisionId. */ @@ -244,16 +253,17 @@ public java.lang.String getLastRevisionId() { return s; } } + /** * * *
-   * The maximum (inclusive) revision allowed for validating messages. If empty
-   * or not present, allow any revision to be validated against first_revision
-   * or any revision created after.
+   * Optional. The maximum (inclusive) revision allowed for validating messages.
+   * If empty or not present, allow any revision to be validated against
+   * first_revision or any revision created after.
    * 
* - * string last_revision_id = 4; + * string last_revision_id = 4 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for lastRevisionId. */ @@ -454,6 +464,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -679,6 +690,7 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object schema_ = ""; + /** * * @@ -706,6 +718,7 @@ public java.lang.String getSchema() { return (java.lang.String) ref; } } + /** * * @@ -733,6 +746,7 @@ public com.google.protobuf.ByteString getSchemaBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -759,6 +773,7 @@ public Builder setSchema(java.lang.String value) { onChanged(); return this; } + /** * * @@ -781,6 +796,7 @@ public Builder clearSchema() { onChanged(); return this; } + /** * * @@ -810,14 +826,16 @@ public Builder setSchemaBytes(com.google.protobuf.ByteString value) { } private int encoding_ = 0; + /** * * *
-     * The encoding of messages validated against `schema`.
+     * Optional. The encoding of messages validated against `schema`.
      * 
* - * .google.pubsub.v1.Encoding encoding = 2; + * .google.pubsub.v1.Encoding encoding = 2 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The enum numeric value on the wire for encoding. */ @@ -825,14 +843,16 @@ public Builder setSchemaBytes(com.google.protobuf.ByteString value) { public int getEncodingValue() { return encoding_; } + /** * * *
-     * The encoding of messages validated against `schema`.
+     * Optional. The encoding of messages validated against `schema`.
      * 
* - * .google.pubsub.v1.Encoding encoding = 2; + * .google.pubsub.v1.Encoding encoding = 2 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param value The enum numeric value on the wire for encoding to set. * @return This builder for chaining. @@ -843,14 +863,16 @@ public Builder setEncodingValue(int value) { onChanged(); return this; } + /** * * *
-     * The encoding of messages validated against `schema`.
+     * Optional. The encoding of messages validated against `schema`.
      * 
* - * .google.pubsub.v1.Encoding encoding = 2; + * .google.pubsub.v1.Encoding encoding = 2 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The encoding. */ @@ -859,14 +881,16 @@ public com.google.pubsub.v1.Encoding getEncoding() { com.google.pubsub.v1.Encoding result = com.google.pubsub.v1.Encoding.forNumber(encoding_); return result == null ? com.google.pubsub.v1.Encoding.UNRECOGNIZED : result; } + /** * * *
-     * The encoding of messages validated against `schema`.
+     * Optional. The encoding of messages validated against `schema`.
      * 
* - * .google.pubsub.v1.Encoding encoding = 2; + * .google.pubsub.v1.Encoding encoding = 2 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param value The encoding to set. * @return This builder for chaining. @@ -880,14 +904,16 @@ public Builder setEncoding(com.google.pubsub.v1.Encoding value) { onChanged(); return this; } + /** * * *
-     * The encoding of messages validated against `schema`.
+     * Optional. The encoding of messages validated against `schema`.
      * 
* - * .google.pubsub.v1.Encoding encoding = 2; + * .google.pubsub.v1.Encoding encoding = 2 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return This builder for chaining. */ @@ -899,16 +925,17 @@ public Builder clearEncoding() { } private java.lang.Object firstRevisionId_ = ""; + /** * * *
-     * The minimum (inclusive) revision allowed for validating messages. If empty
-     * or not present, allow any revision to be validated against last_revision or
-     * any revision created before.
+     * Optional. The minimum (inclusive) revision allowed for validating messages.
+     * If empty or not present, allow any revision to be validated against
+     * last_revision or any revision created before.
      * 
* - * string first_revision_id = 3; + * string first_revision_id = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The firstRevisionId. */ @@ -923,16 +950,17 @@ public java.lang.String getFirstRevisionId() { return (java.lang.String) ref; } } + /** * * *
-     * The minimum (inclusive) revision allowed for validating messages. If empty
-     * or not present, allow any revision to be validated against last_revision or
-     * any revision created before.
+     * Optional. The minimum (inclusive) revision allowed for validating messages.
+     * If empty or not present, allow any revision to be validated against
+     * last_revision or any revision created before.
      * 
* - * string first_revision_id = 3; + * string first_revision_id = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for firstRevisionId. */ @@ -947,16 +975,17 @@ public com.google.protobuf.ByteString getFirstRevisionIdBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * The minimum (inclusive) revision allowed for validating messages. If empty
-     * or not present, allow any revision to be validated against last_revision or
-     * any revision created before.
+     * Optional. The minimum (inclusive) revision allowed for validating messages.
+     * If empty or not present, allow any revision to be validated against
+     * last_revision or any revision created before.
      * 
* - * string first_revision_id = 3; + * string first_revision_id = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The firstRevisionId to set. * @return This builder for chaining. @@ -970,16 +999,17 @@ public Builder setFirstRevisionId(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The minimum (inclusive) revision allowed for validating messages. If empty
-     * or not present, allow any revision to be validated against last_revision or
-     * any revision created before.
+     * Optional. The minimum (inclusive) revision allowed for validating messages.
+     * If empty or not present, allow any revision to be validated against
+     * last_revision or any revision created before.
      * 
* - * string first_revision_id = 3; + * string first_revision_id = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -989,16 +1019,17 @@ public Builder clearFirstRevisionId() { onChanged(); return this; } + /** * * *
-     * The minimum (inclusive) revision allowed for validating messages. If empty
-     * or not present, allow any revision to be validated against last_revision or
-     * any revision created before.
+     * Optional. The minimum (inclusive) revision allowed for validating messages.
+     * If empty or not present, allow any revision to be validated against
+     * last_revision or any revision created before.
      * 
* - * string first_revision_id = 3; + * string first_revision_id = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for firstRevisionId to set. * @return This builder for chaining. @@ -1015,16 +1046,17 @@ public Builder setFirstRevisionIdBytes(com.google.protobuf.ByteString value) { } private java.lang.Object lastRevisionId_ = ""; + /** * * *
-     * The maximum (inclusive) revision allowed for validating messages. If empty
-     * or not present, allow any revision to be validated against first_revision
-     * or any revision created after.
+     * Optional. The maximum (inclusive) revision allowed for validating messages.
+     * If empty or not present, allow any revision to be validated against
+     * first_revision or any revision created after.
      * 
* - * string last_revision_id = 4; + * string last_revision_id = 4 [(.google.api.field_behavior) = OPTIONAL]; * * @return The lastRevisionId. */ @@ -1039,16 +1071,17 @@ public java.lang.String getLastRevisionId() { return (java.lang.String) ref; } } + /** * * *
-     * The maximum (inclusive) revision allowed for validating messages. If empty
-     * or not present, allow any revision to be validated against first_revision
-     * or any revision created after.
+     * Optional. The maximum (inclusive) revision allowed for validating messages.
+     * If empty or not present, allow any revision to be validated against
+     * first_revision or any revision created after.
      * 
* - * string last_revision_id = 4; + * string last_revision_id = 4 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for lastRevisionId. */ @@ -1063,16 +1096,17 @@ public com.google.protobuf.ByteString getLastRevisionIdBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * The maximum (inclusive) revision allowed for validating messages. If empty
-     * or not present, allow any revision to be validated against first_revision
-     * or any revision created after.
+     * Optional. The maximum (inclusive) revision allowed for validating messages.
+     * If empty or not present, allow any revision to be validated against
+     * first_revision or any revision created after.
      * 
* - * string last_revision_id = 4; + * string last_revision_id = 4 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The lastRevisionId to set. * @return This builder for chaining. @@ -1086,16 +1120,17 @@ public Builder setLastRevisionId(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The maximum (inclusive) revision allowed for validating messages. If empty
-     * or not present, allow any revision to be validated against first_revision
-     * or any revision created after.
+     * Optional. The maximum (inclusive) revision allowed for validating messages.
+     * If empty or not present, allow any revision to be validated against
+     * first_revision or any revision created after.
      * 
* - * string last_revision_id = 4; + * string last_revision_id = 4 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -1105,16 +1140,17 @@ public Builder clearLastRevisionId() { onChanged(); return this; } + /** * * *
-     * The maximum (inclusive) revision allowed for validating messages. If empty
-     * or not present, allow any revision to be validated against first_revision
-     * or any revision created after.
+     * Optional. The maximum (inclusive) revision allowed for validating messages.
+     * If empty or not present, allow any revision to be validated against
+     * first_revision or any revision created after.
      * 
* - * string last_revision_id = 4; + * string last_revision_id = 4 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for lastRevisionId to set. * @return This builder for chaining. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaSettingsOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaSettingsOrBuilder.java index b65abdf20..928da4bd3 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaSettingsOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaSettingsOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface SchemaSettingsOrBuilder @@ -40,6 +41,7 @@ public interface SchemaSettingsOrBuilder * @return The schema. */ java.lang.String getSchema(); + /** * * @@ -62,22 +64,23 @@ public interface SchemaSettingsOrBuilder * * *
-   * The encoding of messages validated against `schema`.
+   * Optional. The encoding of messages validated against `schema`.
    * 
* - * .google.pubsub.v1.Encoding encoding = 2; + * .google.pubsub.v1.Encoding encoding = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The enum numeric value on the wire for encoding. */ int getEncodingValue(); + /** * * *
-   * The encoding of messages validated against `schema`.
+   * Optional. The encoding of messages validated against `schema`.
    * 
* - * .google.pubsub.v1.Encoding encoding = 2; + * .google.pubsub.v1.Encoding encoding = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The encoding. */ @@ -87,26 +90,27 @@ public interface SchemaSettingsOrBuilder * * *
-   * The minimum (inclusive) revision allowed for validating messages. If empty
-   * or not present, allow any revision to be validated against last_revision or
-   * any revision created before.
+   * Optional. The minimum (inclusive) revision allowed for validating messages.
+   * If empty or not present, allow any revision to be validated against
+   * last_revision or any revision created before.
    * 
* - * string first_revision_id = 3; + * string first_revision_id = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The firstRevisionId. */ java.lang.String getFirstRevisionId(); + /** * * *
-   * The minimum (inclusive) revision allowed for validating messages. If empty
-   * or not present, allow any revision to be validated against last_revision or
-   * any revision created before.
+   * Optional. The minimum (inclusive) revision allowed for validating messages.
+   * If empty or not present, allow any revision to be validated against
+   * last_revision or any revision created before.
    * 
* - * string first_revision_id = 3; + * string first_revision_id = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for firstRevisionId. */ @@ -116,26 +120,27 @@ public interface SchemaSettingsOrBuilder * * *
-   * The maximum (inclusive) revision allowed for validating messages. If empty
-   * or not present, allow any revision to be validated against first_revision
-   * or any revision created after.
+   * Optional. The maximum (inclusive) revision allowed for validating messages.
+   * If empty or not present, allow any revision to be validated against
+   * first_revision or any revision created after.
    * 
* - * string last_revision_id = 4; + * string last_revision_id = 4 [(.google.api.field_behavior) = OPTIONAL]; * * @return The lastRevisionId. */ java.lang.String getLastRevisionId(); + /** * * *
-   * The maximum (inclusive) revision allowed for validating messages. If empty
-   * or not present, allow any revision to be validated against first_revision
-   * or any revision created after.
+   * Optional. The maximum (inclusive) revision allowed for validating messages.
+   * If empty or not present, allow any revision to be validated against
+   * first_revision or any revision created after.
    * 
* - * string last_revision_id = 4; + * string last_revision_id = 4 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for lastRevisionId. */ diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaView.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaView.java index c9ff100cd..d896d5400 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaView.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SchemaView.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -73,6 +74,7 @@ public enum SchemaView implements com.google.protobuf.ProtocolMessageEnum { * SCHEMA_VIEW_UNSPECIFIED = 0; */ public static final int SCHEMA_VIEW_UNSPECIFIED_VALUE = 0; + /** * * @@ -83,6 +85,7 @@ public enum SchemaView implements com.google.protobuf.ProtocolMessageEnum { * BASIC = 1; */ public static final int BASIC_VALUE = 1; + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SeekRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SeekRequest.java index 4cded2d70..d4c4155bd 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SeekRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SeekRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class SeekRequest extends com.google.protobuf.GeneratedMessageV3 // @@protoc_insertion_point(message_implements:google.pubsub.v1.SeekRequest) SeekRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use SeekRequest.newBuilder() to construct. private SeekRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -77,6 +79,7 @@ public enum TargetCase private TargetCase(int value) { this.value = value; } + /** * @param value The number of the enum to look for. * @return The enum associated with the given number. @@ -113,6 +116,7 @@ public TargetCase getTargetCase() { @SuppressWarnings("serial") private volatile java.lang.Object subscription_ = ""; + /** * * @@ -138,6 +142,7 @@ public java.lang.String getSubscription() { return s; } } + /** * * @@ -165,11 +170,12 @@ public com.google.protobuf.ByteString getSubscriptionBytes() { } public static final int TIME_FIELD_NUMBER = 2; + /** * * *
-   * The time to seek to.
+   * Optional. The time to seek to.
    * Messages retained in the subscription that were published before this
    * time are marked as acknowledged, and messages retained in the
    * subscription that were published after this time are marked as
@@ -182,7 +188,7 @@ public com.google.protobuf.ByteString getSubscriptionBytes() {
    * and already-expunged messages will not be restored.
    * 
* - * .google.protobuf.Timestamp time = 2; + * .google.protobuf.Timestamp time = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return Whether the time field is set. */ @@ -190,11 +196,12 @@ public com.google.protobuf.ByteString getSubscriptionBytes() { public boolean hasTime() { return targetCase_ == 2; } + /** * * *
-   * The time to seek to.
+   * Optional. The time to seek to.
    * Messages retained in the subscription that were published before this
    * time are marked as acknowledged, and messages retained in the
    * subscription that were published after this time are marked as
@@ -207,7 +214,7 @@ public boolean hasTime() {
    * and already-expunged messages will not be restored.
    * 
* - * .google.protobuf.Timestamp time = 2; + * .google.protobuf.Timestamp time = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The time. */ @@ -218,11 +225,12 @@ public com.google.protobuf.Timestamp getTime() { } return com.google.protobuf.Timestamp.getDefaultInstance(); } + /** * * *
-   * The time to seek to.
+   * Optional. The time to seek to.
    * Messages retained in the subscription that were published before this
    * time are marked as acknowledged, and messages retained in the
    * subscription that were published after this time are marked as
@@ -235,7 +243,7 @@ public com.google.protobuf.Timestamp getTime() {
    * and already-expunged messages will not be restored.
    * 
* - * .google.protobuf.Timestamp time = 2; + * .google.protobuf.Timestamp time = 2 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public com.google.protobuf.TimestampOrBuilder getTimeOrBuilder() { @@ -246,32 +254,38 @@ public com.google.protobuf.TimestampOrBuilder getTimeOrBuilder() { } public static final int SNAPSHOT_FIELD_NUMBER = 3; + /** * * *
-   * The snapshot to seek to. The snapshot's topic must be the same as that of
-   * the provided subscription.
-   * Format is `projects/{project}/snapshots/{snap}`.
+   * Optional. The snapshot to seek to. The snapshot's topic must be the same
+   * as that of the provided subscription. Format is
+   * `projects/{project}/snapshots/{snap}`.
    * 
* - * string snapshot = 3 [(.google.api.resource_reference) = { ... } + * + * string snapshot = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return Whether the snapshot field is set. */ public boolean hasSnapshot() { return targetCase_ == 3; } + /** * * *
-   * The snapshot to seek to. The snapshot's topic must be the same as that of
-   * the provided subscription.
-   * Format is `projects/{project}/snapshots/{snap}`.
+   * Optional. The snapshot to seek to. The snapshot's topic must be the same
+   * as that of the provided subscription. Format is
+   * `projects/{project}/snapshots/{snap}`.
    * 
* - * string snapshot = 3 [(.google.api.resource_reference) = { ... } + * + * string snapshot = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The snapshot. */ @@ -291,16 +305,19 @@ public java.lang.String getSnapshot() { return s; } } + /** * * *
-   * The snapshot to seek to. The snapshot's topic must be the same as that of
-   * the provided subscription.
-   * Format is `projects/{project}/snapshots/{snap}`.
+   * Optional. The snapshot to seek to. The snapshot's topic must be the same
+   * as that of the provided subscription. Format is
+   * `projects/{project}/snapshots/{snap}`.
    * 
* - * string snapshot = 3 [(.google.api.resource_reference) = { ... } + * + * string snapshot = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The bytes for snapshot. */ @@ -515,6 +532,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -756,6 +774,7 @@ public Builder clearTarget() { private int bitField0_; private java.lang.Object subscription_ = ""; + /** * * @@ -780,6 +799,7 @@ public java.lang.String getSubscription() { return (java.lang.String) ref; } } + /** * * @@ -804,6 +824,7 @@ public com.google.protobuf.ByteString getSubscriptionBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -827,6 +848,7 @@ public Builder setSubscription(java.lang.String value) { onChanged(); return this; } + /** * * @@ -846,6 +868,7 @@ public Builder clearSubscription() { onChanged(); return this; } + /** * * @@ -876,11 +899,12 @@ public Builder setSubscriptionBytes(com.google.protobuf.ByteString value) { com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> timeBuilder_; + /** * * *
-     * The time to seek to.
+     * Optional. The time to seek to.
      * Messages retained in the subscription that were published before this
      * time are marked as acknowledged, and messages retained in the
      * subscription that were published after this time are marked as
@@ -893,7 +917,7 @@ public Builder setSubscriptionBytes(com.google.protobuf.ByteString value) {
      * and already-expunged messages will not be restored.
      * 
* - * .google.protobuf.Timestamp time = 2; + * .google.protobuf.Timestamp time = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return Whether the time field is set. */ @@ -901,11 +925,12 @@ public Builder setSubscriptionBytes(com.google.protobuf.ByteString value) { public boolean hasTime() { return targetCase_ == 2; } + /** * * *
-     * The time to seek to.
+     * Optional. The time to seek to.
      * Messages retained in the subscription that were published before this
      * time are marked as acknowledged, and messages retained in the
      * subscription that were published after this time are marked as
@@ -918,7 +943,7 @@ public boolean hasTime() {
      * and already-expunged messages will not be restored.
      * 
* - * .google.protobuf.Timestamp time = 2; + * .google.protobuf.Timestamp time = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The time. */ @@ -936,11 +961,12 @@ public com.google.protobuf.Timestamp getTime() { return com.google.protobuf.Timestamp.getDefaultInstance(); } } + /** * * *
-     * The time to seek to.
+     * Optional. The time to seek to.
      * Messages retained in the subscription that were published before this
      * time are marked as acknowledged, and messages retained in the
      * subscription that were published after this time are marked as
@@ -953,7 +979,7 @@ public com.google.protobuf.Timestamp getTime() {
      * and already-expunged messages will not be restored.
      * 
* - * .google.protobuf.Timestamp time = 2; + * .google.protobuf.Timestamp time = 2 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder setTime(com.google.protobuf.Timestamp value) { if (timeBuilder_ == null) { @@ -968,11 +994,12 @@ public Builder setTime(com.google.protobuf.Timestamp value) { targetCase_ = 2; return this; } + /** * * *
-     * The time to seek to.
+     * Optional. The time to seek to.
      * Messages retained in the subscription that were published before this
      * time are marked as acknowledged, and messages retained in the
      * subscription that were published after this time are marked as
@@ -985,7 +1012,7 @@ public Builder setTime(com.google.protobuf.Timestamp value) {
      * and already-expunged messages will not be restored.
      * 
* - * .google.protobuf.Timestamp time = 2; + * .google.protobuf.Timestamp time = 2 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder setTime(com.google.protobuf.Timestamp.Builder builderForValue) { if (timeBuilder_ == null) { @@ -997,11 +1024,12 @@ public Builder setTime(com.google.protobuf.Timestamp.Builder builderForValue) { targetCase_ = 2; return this; } + /** * * *
-     * The time to seek to.
+     * Optional. The time to seek to.
      * Messages retained in the subscription that were published before this
      * time are marked as acknowledged, and messages retained in the
      * subscription that were published after this time are marked as
@@ -1014,7 +1042,7 @@ public Builder setTime(com.google.protobuf.Timestamp.Builder builderForValue) {
      * and already-expunged messages will not be restored.
      * 
* - * .google.protobuf.Timestamp time = 2; + * .google.protobuf.Timestamp time = 2 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder mergeTime(com.google.protobuf.Timestamp value) { if (timeBuilder_ == null) { @@ -1037,11 +1065,12 @@ public Builder mergeTime(com.google.protobuf.Timestamp value) { targetCase_ = 2; return this; } + /** * * *
-     * The time to seek to.
+     * Optional. The time to seek to.
      * Messages retained in the subscription that were published before this
      * time are marked as acknowledged, and messages retained in the
      * subscription that were published after this time are marked as
@@ -1054,7 +1083,7 @@ public Builder mergeTime(com.google.protobuf.Timestamp value) {
      * and already-expunged messages will not be restored.
      * 
* - * .google.protobuf.Timestamp time = 2; + * .google.protobuf.Timestamp time = 2 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder clearTime() { if (timeBuilder_ == null) { @@ -1072,11 +1101,12 @@ public Builder clearTime() { } return this; } + /** * * *
-     * The time to seek to.
+     * Optional. The time to seek to.
      * Messages retained in the subscription that were published before this
      * time are marked as acknowledged, and messages retained in the
      * subscription that were published after this time are marked as
@@ -1089,16 +1119,17 @@ public Builder clearTime() {
      * and already-expunged messages will not be restored.
      * 
* - * .google.protobuf.Timestamp time = 2; + * .google.protobuf.Timestamp time = 2 [(.google.api.field_behavior) = OPTIONAL]; */ public com.google.protobuf.Timestamp.Builder getTimeBuilder() { return getTimeFieldBuilder().getBuilder(); } + /** * * *
-     * The time to seek to.
+     * Optional. The time to seek to.
      * Messages retained in the subscription that were published before this
      * time are marked as acknowledged, and messages retained in the
      * subscription that were published after this time are marked as
@@ -1111,7 +1142,7 @@ public com.google.protobuf.Timestamp.Builder getTimeBuilder() {
      * and already-expunged messages will not be restored.
      * 
* - * .google.protobuf.Timestamp time = 2; + * .google.protobuf.Timestamp time = 2 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public com.google.protobuf.TimestampOrBuilder getTimeOrBuilder() { @@ -1124,11 +1155,12 @@ public com.google.protobuf.TimestampOrBuilder getTimeOrBuilder() { return com.google.protobuf.Timestamp.getDefaultInstance(); } } + /** * * *
-     * The time to seek to.
+     * Optional. The time to seek to.
      * Messages retained in the subscription that were published before this
      * time are marked as acknowledged, and messages retained in the
      * subscription that were published after this time are marked as
@@ -1141,7 +1173,7 @@ public com.google.protobuf.TimestampOrBuilder getTimeOrBuilder() {
      * and already-expunged messages will not be restored.
      * 
* - * .google.protobuf.Timestamp time = 2; + * .google.protobuf.Timestamp time = 2 [(.google.api.field_behavior) = OPTIONAL]; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, @@ -1169,12 +1201,14 @@ public com.google.protobuf.TimestampOrBuilder getTimeOrBuilder() { * * *
-     * The snapshot to seek to. The snapshot's topic must be the same as that of
-     * the provided subscription.
-     * Format is `projects/{project}/snapshots/{snap}`.
+     * Optional. The snapshot to seek to. The snapshot's topic must be the same
+     * as that of the provided subscription. Format is
+     * `projects/{project}/snapshots/{snap}`.
      * 
* - * string snapshot = 3 [(.google.api.resource_reference) = { ... } + * + * string snapshot = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return Whether the snapshot field is set. */ @@ -1182,16 +1216,19 @@ public com.google.protobuf.TimestampOrBuilder getTimeOrBuilder() { public boolean hasSnapshot() { return targetCase_ == 3; } + /** * * *
-     * The snapshot to seek to. The snapshot's topic must be the same as that of
-     * the provided subscription.
-     * Format is `projects/{project}/snapshots/{snap}`.
+     * Optional. The snapshot to seek to. The snapshot's topic must be the same
+     * as that of the provided subscription. Format is
+     * `projects/{project}/snapshots/{snap}`.
      * 
* - * string snapshot = 3 [(.google.api.resource_reference) = { ... } + * + * string snapshot = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The snapshot. */ @@ -1212,16 +1249,19 @@ public java.lang.String getSnapshot() { return (java.lang.String) ref; } } + /** * * *
-     * The snapshot to seek to. The snapshot's topic must be the same as that of
-     * the provided subscription.
-     * Format is `projects/{project}/snapshots/{snap}`.
+     * Optional. The snapshot to seek to. The snapshot's topic must be the same
+     * as that of the provided subscription. Format is
+     * `projects/{project}/snapshots/{snap}`.
      * 
* - * string snapshot = 3 [(.google.api.resource_reference) = { ... } + * + * string snapshot = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The bytes for snapshot. */ @@ -1242,16 +1282,19 @@ public com.google.protobuf.ByteString getSnapshotBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * The snapshot to seek to. The snapshot's topic must be the same as that of
-     * the provided subscription.
-     * Format is `projects/{project}/snapshots/{snap}`.
+     * Optional. The snapshot to seek to. The snapshot's topic must be the same
+     * as that of the provided subscription. Format is
+     * `projects/{project}/snapshots/{snap}`.
      * 
* - * string snapshot = 3 [(.google.api.resource_reference) = { ... } + * + * string snapshot = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param value The snapshot to set. * @return This builder for chaining. @@ -1265,16 +1308,19 @@ public Builder setSnapshot(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The snapshot to seek to. The snapshot's topic must be the same as that of
-     * the provided subscription.
-     * Format is `projects/{project}/snapshots/{snap}`.
+     * Optional. The snapshot to seek to. The snapshot's topic must be the same
+     * as that of the provided subscription. Format is
+     * `projects/{project}/snapshots/{snap}`.
      * 
* - * string snapshot = 3 [(.google.api.resource_reference) = { ... } + * + * string snapshot = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return This builder for chaining. */ @@ -1286,16 +1332,19 @@ public Builder clearSnapshot() { } return this; } + /** * * *
-     * The snapshot to seek to. The snapshot's topic must be the same as that of
-     * the provided subscription.
-     * Format is `projects/{project}/snapshots/{snap}`.
+     * Optional. The snapshot to seek to. The snapshot's topic must be the same
+     * as that of the provided subscription. Format is
+     * `projects/{project}/snapshots/{snap}`.
      * 
* - * string snapshot = 3 [(.google.api.resource_reference) = { ... } + * + * string snapshot = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param value The bytes for snapshot to set. * @return This builder for chaining. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SeekRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SeekRequestOrBuilder.java index 009aaa5f8..a912d7eeb 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SeekRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SeekRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface SeekRequestOrBuilder @@ -37,6 +38,7 @@ public interface SeekRequestOrBuilder * @return The subscription. */ java.lang.String getSubscription(); + /** * * @@ -56,7 +58,7 @@ public interface SeekRequestOrBuilder * * *
-   * The time to seek to.
+   * Optional. The time to seek to.
    * Messages retained in the subscription that were published before this
    * time are marked as acknowledged, and messages retained in the
    * subscription that were published after this time are marked as
@@ -69,16 +71,17 @@ public interface SeekRequestOrBuilder
    * and already-expunged messages will not be restored.
    * 
* - * .google.protobuf.Timestamp time = 2; + * .google.protobuf.Timestamp time = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return Whether the time field is set. */ boolean hasTime(); + /** * * *
-   * The time to seek to.
+   * Optional. The time to seek to.
    * Messages retained in the subscription that were published before this
    * time are marked as acknowledged, and messages retained in the
    * subscription that were published after this time are marked as
@@ -91,16 +94,17 @@ public interface SeekRequestOrBuilder
    * and already-expunged messages will not be restored.
    * 
* - * .google.protobuf.Timestamp time = 2; + * .google.protobuf.Timestamp time = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The time. */ com.google.protobuf.Timestamp getTime(); + /** * * *
-   * The time to seek to.
+   * Optional. The time to seek to.
    * Messages retained in the subscription that were published before this
    * time are marked as acknowledged, and messages retained in the
    * subscription that were published after this time are marked as
@@ -113,7 +117,7 @@ public interface SeekRequestOrBuilder
    * and already-expunged messages will not be restored.
    * 
* - * .google.protobuf.Timestamp time = 2; + * .google.protobuf.Timestamp time = 2 [(.google.api.field_behavior) = OPTIONAL]; */ com.google.protobuf.TimestampOrBuilder getTimeOrBuilder(); @@ -121,40 +125,48 @@ public interface SeekRequestOrBuilder * * *
-   * The snapshot to seek to. The snapshot's topic must be the same as that of
-   * the provided subscription.
-   * Format is `projects/{project}/snapshots/{snap}`.
+   * Optional. The snapshot to seek to. The snapshot's topic must be the same
+   * as that of the provided subscription. Format is
+   * `projects/{project}/snapshots/{snap}`.
    * 
* - * string snapshot = 3 [(.google.api.resource_reference) = { ... } + * + * string snapshot = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return Whether the snapshot field is set. */ boolean hasSnapshot(); + /** * * *
-   * The snapshot to seek to. The snapshot's topic must be the same as that of
-   * the provided subscription.
-   * Format is `projects/{project}/snapshots/{snap}`.
+   * Optional. The snapshot to seek to. The snapshot's topic must be the same
+   * as that of the provided subscription. Format is
+   * `projects/{project}/snapshots/{snap}`.
    * 
* - * string snapshot = 3 [(.google.api.resource_reference) = { ... } + * + * string snapshot = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The snapshot. */ java.lang.String getSnapshot(); + /** * * *
-   * The snapshot to seek to. The snapshot's topic must be the same as that of
-   * the provided subscription.
-   * Format is `projects/{project}/snapshots/{snap}`.
+   * Optional. The snapshot to seek to. The snapshot's topic must be the same
+   * as that of the provided subscription. Format is
+   * `projects/{project}/snapshots/{snap}`.
    * 
* - * string snapshot = 3 [(.google.api.resource_reference) = { ... } + * + * string snapshot = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The bytes for snapshot. */ diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SeekResponse.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SeekResponse.java index 141e78c27..804b7792b 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SeekResponse.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SeekResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class SeekResponse extends com.google.protobuf.GeneratedMessageV3 // @@protoc_insertion_point(message_implements:google.pubsub.v1.SeekResponse) SeekResponseOrBuilder { private static final long serialVersionUID = 0L; + // Use SeekResponse.newBuilder() to construct. private SeekResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -208,6 +210,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SeekResponseOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SeekResponseOrBuilder.java index 9b2fd097d..80a4ce8e8 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SeekResponseOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SeekResponseOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface SeekResponseOrBuilder diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Snapshot.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Snapshot.java index bbf7ea473..4c03d1272 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Snapshot.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Snapshot.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -36,6 +37,7 @@ public final class Snapshot extends com.google.protobuf.GeneratedMessageV3 // @@protoc_insertion_point(message_implements:google.pubsub.v1.Snapshot) SnapshotOrBuilder { private static final long serialVersionUID = 0L; + // Use Snapshot.newBuilder() to construct. private Snapshot(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -58,7 +60,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings({"rawtypes"}) @java.lang.Override - protected com.google.protobuf.MapField internalGetMapField(int number) { + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { switch (number) { case 4: return internalGetLabels(); @@ -76,18 +79,20 @@ protected com.google.protobuf.MapField internalGetMapField(int number) { com.google.pubsub.v1.Snapshot.class, com.google.pubsub.v1.Snapshot.Builder.class); } + private int bitField0_; public static final int NAME_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object name_ = ""; + /** * * *
-   * The name of the snapshot.
+   * Optional. The name of the snapshot.
    * 
* - * string name = 1; + * string name = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The name. */ @@ -103,14 +108,15 @@ public java.lang.String getName() { return s; } } + /** * * *
-   * The name of the snapshot.
+   * Optional. The name of the snapshot.
    * 
* - * string name = 1; + * string name = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for name. */ @@ -131,14 +137,18 @@ public com.google.protobuf.ByteString getNameBytes() { @SuppressWarnings("serial") private volatile java.lang.Object topic_ = ""; + /** * * *
-   * The name of the topic from which this snapshot is retaining messages.
+   * Optional. The name of the topic from which this snapshot is retaining
+   * messages.
    * 
* - * string topic = 2 [(.google.api.resource_reference) = { ... } + * + * string topic = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The topic. */ @@ -154,14 +164,18 @@ public java.lang.String getTopic() { return s; } } + /** * * *
-   * The name of the topic from which this snapshot is retaining messages.
+   * Optional. The name of the topic from which this snapshot is retaining
+   * messages.
    * 
* - * string topic = 2 [(.google.api.resource_reference) = { ... } + * + * string topic = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The bytes for topic. */ @@ -180,11 +194,12 @@ public com.google.protobuf.ByteString getTopicBytes() { public static final int EXPIRE_TIME_FIELD_NUMBER = 3; private com.google.protobuf.Timestamp expireTime_; + /** * * *
-   * The snapshot is guaranteed to exist up until this time.
+   * Optional. The snapshot is guaranteed to exist up until this time.
    * A newly-created snapshot expires no later than 7 days from the time of its
    * creation. Its exact lifetime is determined at creation by the existing
    * backlog in the source subscription. Specifically, the lifetime of the
@@ -196,19 +211,21 @@ public com.google.protobuf.ByteString getTopicBytes() {
    * snapshot that would expire in less than 1 hour after creation.
    * 
* - * .google.protobuf.Timestamp expire_time = 3; + * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the expireTime field is set. */ @java.lang.Override public boolean hasExpireTime() { - return expireTime_ != null; + return ((bitField0_ & 0x00000001) != 0); } + /** * * *
-   * The snapshot is guaranteed to exist up until this time.
+   * Optional. The snapshot is guaranteed to exist up until this time.
    * A newly-created snapshot expires no later than 7 days from the time of its
    * creation. Its exact lifetime is determined at creation by the existing
    * backlog in the source subscription. Specifically, the lifetime of the
@@ -220,7 +237,8 @@ public boolean hasExpireTime() {
    * snapshot that would expire in less than 1 hour after creation.
    * 
* - * .google.protobuf.Timestamp expire_time = 3; + * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The expireTime. */ @@ -228,11 +246,12 @@ public boolean hasExpireTime() { public com.google.protobuf.Timestamp getExpireTime() { return expireTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : expireTime_; } + /** * * *
-   * The snapshot is guaranteed to exist up until this time.
+   * Optional. The snapshot is guaranteed to exist up until this time.
    * A newly-created snapshot expires no later than 7 days from the time of its
    * creation. Its exact lifetime is determined at creation by the existing
    * backlog in the source subscription. Specifically, the lifetime of the
@@ -244,7 +263,8 @@ public com.google.protobuf.Timestamp getExpireTime() {
    * snapshot that would expire in less than 1 hour after creation.
    * 
* - * .google.protobuf.Timestamp expire_time = 3; + * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.protobuf.TimestampOrBuilder getExpireTimeOrBuilder() { @@ -277,15 +297,16 @@ private com.google.protobuf.MapField interna public int getLabelsCount() { return internalGetLabels().getMap().size(); } + /** * * *
-   * See [Creating and managing labels]
+   * Optional. See [Creating and managing labels]
    * (https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 4; + * map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public boolean containsLabels(java.lang.String key) { @@ -294,35 +315,38 @@ public boolean containsLabels(java.lang.String key) { } return internalGetLabels().getMap().containsKey(key); } + /** Use {@link #getLabelsMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getLabels() { return getLabelsMap(); } + /** * * *
-   * See [Creating and managing labels]
+   * Optional. See [Creating and managing labels]
    * (https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 4; + * map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public java.util.Map getLabelsMap() { return internalGetLabels().getMap(); } + /** * * *
-   * See [Creating and managing labels]
+   * Optional. See [Creating and managing labels]
    * (https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 4; + * map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public /* nullable */ java.lang.String getLabelsOrDefault( @@ -335,15 +359,16 @@ public java.util.Map getLabelsMap() { java.util.Map map = internalGetLabels().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } + /** * * *
-   * See [Creating and managing labels]
+   * Optional. See [Creating and managing labels]
    * (https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 4; + * map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public java.lang.String getLabelsOrThrow(java.lang.String key) { @@ -377,7 +402,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(topic_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, topic_); } - if (expireTime_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(3, getExpireTime()); } com.google.protobuf.GeneratedMessageV3.serializeStringMapTo( @@ -397,7 +422,7 @@ public int getSerializedSize() { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(topic_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, topic_); } - if (expireTime_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getExpireTime()); } for (java.util.Map.Entry entry : @@ -554,6 +579,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -576,7 +602,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMapField(int number) { + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { switch (number) { case 4: return internalGetLabels(); @@ -586,7 +613,8 @@ protected com.google.protobuf.MapField internalGetMapField(int number) { } @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMutableMapField(int number) { + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { switch (number) { case 4: return internalGetMutableLabels(); @@ -605,10 +633,19 @@ protected com.google.protobuf.MapField internalGetMutableMapField(int number) { } // Construct using com.google.pubsub.v1.Snapshot.newBuilder() - private Builder() {} + private Builder() { + maybeForceBuilderInitialization(); + } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getExpireTimeFieldBuilder(); + } } @java.lang.Override @@ -663,13 +700,16 @@ private void buildPartial0(com.google.pubsub.v1.Snapshot result) { if (((from_bitField0_ & 0x00000002) != 0)) { result.topic_ = topic_; } + int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000004) != 0)) { result.expireTime_ = expireTimeBuilder_ == null ? expireTime_ : expireTimeBuilder_.build(); + to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000008) != 0)) { result.labels_ = internalGetLabels(); result.labels_.makeImmutable(); } + result.bitField0_ |= to_bitField0_; } @java.lang.Override @@ -808,14 +848,15 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object name_ = ""; + /** * * *
-     * The name of the snapshot.
+     * Optional. The name of the snapshot.
      * 
* - * string name = 1; + * string name = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The name. */ @@ -830,14 +871,15 @@ public java.lang.String getName() { return (java.lang.String) ref; } } + /** * * *
-     * The name of the snapshot.
+     * Optional. The name of the snapshot.
      * 
* - * string name = 1; + * string name = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for name. */ @@ -852,14 +894,15 @@ public com.google.protobuf.ByteString getNameBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * The name of the snapshot.
+     * Optional. The name of the snapshot.
      * 
* - * string name = 1; + * string name = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The name to set. * @return This builder for chaining. @@ -873,14 +916,15 @@ public Builder setName(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The name of the snapshot.
+     * Optional. The name of the snapshot.
      * 
* - * string name = 1; + * string name = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -890,14 +934,15 @@ public Builder clearName() { onChanged(); return this; } + /** * * *
-     * The name of the snapshot.
+     * Optional. The name of the snapshot.
      * 
* - * string name = 1; + * string name = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for name to set. * @return This builder for chaining. @@ -914,14 +959,18 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) { } private java.lang.Object topic_ = ""; + /** * * *
-     * The name of the topic from which this snapshot is retaining messages.
+     * Optional. The name of the topic from which this snapshot is retaining
+     * messages.
      * 
* - * string topic = 2 [(.google.api.resource_reference) = { ... } + * + * string topic = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The topic. */ @@ -936,14 +985,18 @@ public java.lang.String getTopic() { return (java.lang.String) ref; } } + /** * * *
-     * The name of the topic from which this snapshot is retaining messages.
+     * Optional. The name of the topic from which this snapshot is retaining
+     * messages.
      * 
* - * string topic = 2 [(.google.api.resource_reference) = { ... } + * + * string topic = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The bytes for topic. */ @@ -958,14 +1011,18 @@ public com.google.protobuf.ByteString getTopicBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * The name of the topic from which this snapshot is retaining messages.
+     * Optional. The name of the topic from which this snapshot is retaining
+     * messages.
      * 
* - * string topic = 2 [(.google.api.resource_reference) = { ... } + * + * string topic = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param value The topic to set. * @return This builder for chaining. @@ -979,14 +1036,18 @@ public Builder setTopic(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The name of the topic from which this snapshot is retaining messages.
+     * Optional. The name of the topic from which this snapshot is retaining
+     * messages.
      * 
* - * string topic = 2 [(.google.api.resource_reference) = { ... } + * + * string topic = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return This builder for chaining. */ @@ -996,14 +1057,18 @@ public Builder clearTopic() { onChanged(); return this; } + /** * * *
-     * The name of the topic from which this snapshot is retaining messages.
+     * Optional. The name of the topic from which this snapshot is retaining
+     * messages.
      * 
* - * string topic = 2 [(.google.api.resource_reference) = { ... } + * + * string topic = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param value The bytes for topic to set. * @return This builder for chaining. @@ -1025,11 +1090,12 @@ public Builder setTopicBytes(com.google.protobuf.ByteString value) { com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> expireTimeBuilder_; + /** * * *
-     * The snapshot is guaranteed to exist up until this time.
+     * Optional. The snapshot is guaranteed to exist up until this time.
      * A newly-created snapshot expires no later than 7 days from the time of its
      * creation. Its exact lifetime is determined at creation by the existing
      * backlog in the source subscription. Specifically, the lifetime of the
@@ -1041,18 +1107,20 @@ public Builder setTopicBytes(com.google.protobuf.ByteString value) {
      * snapshot that would expire in less than 1 hour after creation.
      * 
* - * .google.protobuf.Timestamp expire_time = 3; + * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the expireTime field is set. */ public boolean hasExpireTime() { return ((bitField0_ & 0x00000004) != 0); } + /** * * *
-     * The snapshot is guaranteed to exist up until this time.
+     * Optional. The snapshot is guaranteed to exist up until this time.
      * A newly-created snapshot expires no later than 7 days from the time of its
      * creation. Its exact lifetime is determined at creation by the existing
      * backlog in the source subscription. Specifically, the lifetime of the
@@ -1064,7 +1132,8 @@ public boolean hasExpireTime() {
      * snapshot that would expire in less than 1 hour after creation.
      * 
* - * .google.protobuf.Timestamp expire_time = 3; + * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The expireTime. */ @@ -1077,11 +1146,12 @@ public com.google.protobuf.Timestamp getExpireTime() { return expireTimeBuilder_.getMessage(); } } + /** * * *
-     * The snapshot is guaranteed to exist up until this time.
+     * Optional. The snapshot is guaranteed to exist up until this time.
      * A newly-created snapshot expires no later than 7 days from the time of its
      * creation. Its exact lifetime is determined at creation by the existing
      * backlog in the source subscription. Specifically, the lifetime of the
@@ -1093,7 +1163,8 @@ public com.google.protobuf.Timestamp getExpireTime() {
      * snapshot that would expire in less than 1 hour after creation.
      * 
* - * .google.protobuf.Timestamp expire_time = 3; + * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setExpireTime(com.google.protobuf.Timestamp value) { if (expireTimeBuilder_ == null) { @@ -1108,11 +1179,12 @@ public Builder setExpireTime(com.google.protobuf.Timestamp value) { onChanged(); return this; } + /** * * *
-     * The snapshot is guaranteed to exist up until this time.
+     * Optional. The snapshot is guaranteed to exist up until this time.
      * A newly-created snapshot expires no later than 7 days from the time of its
      * creation. Its exact lifetime is determined at creation by the existing
      * backlog in the source subscription. Specifically, the lifetime of the
@@ -1124,7 +1196,8 @@ public Builder setExpireTime(com.google.protobuf.Timestamp value) {
      * snapshot that would expire in less than 1 hour after creation.
      * 
* - * .google.protobuf.Timestamp expire_time = 3; + * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setExpireTime(com.google.protobuf.Timestamp.Builder builderForValue) { if (expireTimeBuilder_ == null) { @@ -1136,11 +1209,12 @@ public Builder setExpireTime(com.google.protobuf.Timestamp.Builder builderForVal onChanged(); return this; } + /** * * *
-     * The snapshot is guaranteed to exist up until this time.
+     * Optional. The snapshot is guaranteed to exist up until this time.
      * A newly-created snapshot expires no later than 7 days from the time of its
      * creation. Its exact lifetime is determined at creation by the existing
      * backlog in the source subscription. Specifically, the lifetime of the
@@ -1152,7 +1226,8 @@ public Builder setExpireTime(com.google.protobuf.Timestamp.Builder builderForVal
      * snapshot that would expire in less than 1 hour after creation.
      * 
* - * .google.protobuf.Timestamp expire_time = 3; + * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder mergeExpireTime(com.google.protobuf.Timestamp value) { if (expireTimeBuilder_ == null) { @@ -1166,15 +1241,18 @@ public Builder mergeExpireTime(com.google.protobuf.Timestamp value) { } else { expireTimeBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000004; - onChanged(); + if (expireTime_ != null) { + bitField0_ |= 0x00000004; + onChanged(); + } return this; } + /** * * *
-     * The snapshot is guaranteed to exist up until this time.
+     * Optional. The snapshot is guaranteed to exist up until this time.
      * A newly-created snapshot expires no later than 7 days from the time of its
      * creation. Its exact lifetime is determined at creation by the existing
      * backlog in the source subscription. Specifically, the lifetime of the
@@ -1186,7 +1264,8 @@ public Builder mergeExpireTime(com.google.protobuf.Timestamp value) {
      * snapshot that would expire in less than 1 hour after creation.
      * 
* - * .google.protobuf.Timestamp expire_time = 3; + * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder clearExpireTime() { bitField0_ = (bitField0_ & ~0x00000004); @@ -1198,11 +1277,12 @@ public Builder clearExpireTime() { onChanged(); return this; } + /** * * *
-     * The snapshot is guaranteed to exist up until this time.
+     * Optional. The snapshot is guaranteed to exist up until this time.
      * A newly-created snapshot expires no later than 7 days from the time of its
      * creation. Its exact lifetime is determined at creation by the existing
      * backlog in the source subscription. Specifically, the lifetime of the
@@ -1214,18 +1294,20 @@ public Builder clearExpireTime() {
      * snapshot that would expire in less than 1 hour after creation.
      * 
* - * .google.protobuf.Timestamp expire_time = 3; + * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.protobuf.Timestamp.Builder getExpireTimeBuilder() { bitField0_ |= 0x00000004; onChanged(); return getExpireTimeFieldBuilder().getBuilder(); } + /** * * *
-     * The snapshot is guaranteed to exist up until this time.
+     * Optional. The snapshot is guaranteed to exist up until this time.
      * A newly-created snapshot expires no later than 7 days from the time of its
      * creation. Its exact lifetime is determined at creation by the existing
      * backlog in the source subscription. Specifically, the lifetime of the
@@ -1237,7 +1319,8 @@ public com.google.protobuf.Timestamp.Builder getExpireTimeBuilder() {
      * snapshot that would expire in less than 1 hour after creation.
      * 
* - * .google.protobuf.Timestamp expire_time = 3; + * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.protobuf.TimestampOrBuilder getExpireTimeOrBuilder() { if (expireTimeBuilder_ != null) { @@ -1248,11 +1331,12 @@ public com.google.protobuf.TimestampOrBuilder getExpireTimeOrBuilder() { : expireTime_; } } + /** * * *
-     * The snapshot is guaranteed to exist up until this time.
+     * Optional. The snapshot is guaranteed to exist up until this time.
      * A newly-created snapshot expires no later than 7 days from the time of its
      * creation. Its exact lifetime is determined at creation by the existing
      * backlog in the source subscription. Specifically, the lifetime of the
@@ -1264,7 +1348,8 @@ public com.google.protobuf.TimestampOrBuilder getExpireTimeOrBuilder() {
      * snapshot that would expire in less than 1 hour after creation.
      * 
* - * .google.protobuf.Timestamp expire_time = 3; + * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, @@ -1308,15 +1393,16 @@ private com.google.protobuf.MapField interna public int getLabelsCount() { return internalGetLabels().getMap().size(); } + /** * * *
-     * See [Creating and managing labels]
+     * Optional. See [Creating and managing labels]
      * (https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 4; + * map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public boolean containsLabels(java.lang.String key) { @@ -1325,35 +1411,38 @@ public boolean containsLabels(java.lang.String key) { } return internalGetLabels().getMap().containsKey(key); } + /** Use {@link #getLabelsMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getLabels() { return getLabelsMap(); } + /** * * *
-     * See [Creating and managing labels]
+     * Optional. See [Creating and managing labels]
      * (https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 4; + * map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public java.util.Map getLabelsMap() { return internalGetLabels().getMap(); } + /** * * *
-     * See [Creating and managing labels]
+     * Optional. See [Creating and managing labels]
      * (https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 4; + * map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public /* nullable */ java.lang.String getLabelsOrDefault( @@ -1366,15 +1455,16 @@ public java.util.Map getLabelsMap() { java.util.Map map = internalGetLabels().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } + /** * * *
-     * See [Creating and managing labels]
+     * Optional. See [Creating and managing labels]
      * (https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 4; + * map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public java.lang.String getLabelsOrThrow(java.lang.String key) { @@ -1393,15 +1483,16 @@ public Builder clearLabels() { internalGetMutableLabels().getMutableMap().clear(); return this; } + /** * * *
-     * See [Creating and managing labels]
+     * Optional. See [Creating and managing labels]
      * (https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 4; + * map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder removeLabels(java.lang.String key) { if (key == null) { @@ -1410,21 +1501,23 @@ public Builder removeLabels(java.lang.String key) { internalGetMutableLabels().getMutableMap().remove(key); return this; } + /** Use alternate mutation accessors instead. */ @java.lang.Deprecated public java.util.Map getMutableLabels() { bitField0_ |= 0x00000008; return internalGetMutableLabels().getMutableMap(); } + /** * * *
-     * See [Creating and managing labels]
+     * Optional. See [Creating and managing labels]
      * (https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 4; + * map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder putLabels(java.lang.String key, java.lang.String value) { if (key == null) { @@ -1437,15 +1530,16 @@ public Builder putLabels(java.lang.String key, java.lang.String value) { bitField0_ |= 0x00000008; return this; } + /** * * *
-     * See [Creating and managing labels]
+     * Optional. See [Creating and managing labels]
      * (https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 4; + * map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder putAllLabels(java.util.Map values) { internalGetMutableLabels().getMutableMap().putAll(values); diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SnapshotName.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SnapshotName.java index 4642f2323..824bcd085 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SnapshotName.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SnapshotName.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SnapshotOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SnapshotOrBuilder.java index 89d6b8dbc..2d5b3ad62 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SnapshotOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SnapshotOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface SnapshotOrBuilder @@ -27,22 +28,23 @@ public interface SnapshotOrBuilder * * *
-   * The name of the snapshot.
+   * Optional. The name of the snapshot.
    * 
* - * string name = 1; + * string name = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The name. */ java.lang.String getName(); + /** * * *
-   * The name of the snapshot.
+   * Optional. The name of the snapshot.
    * 
* - * string name = 1; + * string name = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for name. */ @@ -52,22 +54,29 @@ public interface SnapshotOrBuilder * * *
-   * The name of the topic from which this snapshot is retaining messages.
+   * Optional. The name of the topic from which this snapshot is retaining
+   * messages.
    * 
* - * string topic = 2 [(.google.api.resource_reference) = { ... } + * + * string topic = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The topic. */ java.lang.String getTopic(); + /** * * *
-   * The name of the topic from which this snapshot is retaining messages.
+   * Optional. The name of the topic from which this snapshot is retaining
+   * messages.
    * 
* - * string topic = 2 [(.google.api.resource_reference) = { ... } + * + * string topic = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The bytes for topic. */ @@ -77,7 +86,7 @@ public interface SnapshotOrBuilder * * *
-   * The snapshot is guaranteed to exist up until this time.
+   * Optional. The snapshot is guaranteed to exist up until this time.
    * A newly-created snapshot expires no later than 7 days from the time of its
    * creation. Its exact lifetime is determined at creation by the existing
    * backlog in the source subscription. Specifically, the lifetime of the
@@ -89,16 +98,18 @@ public interface SnapshotOrBuilder
    * snapshot that would expire in less than 1 hour after creation.
    * 
* - * .google.protobuf.Timestamp expire_time = 3; + * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the expireTime field is set. */ boolean hasExpireTime(); + /** * * *
-   * The snapshot is guaranteed to exist up until this time.
+   * Optional. The snapshot is guaranteed to exist up until this time.
    * A newly-created snapshot expires no later than 7 days from the time of its
    * creation. Its exact lifetime is determined at creation by the existing
    * backlog in the source subscription. Specifically, the lifetime of the
@@ -110,16 +121,18 @@ public interface SnapshotOrBuilder
    * snapshot that would expire in less than 1 hour after creation.
    * 
* - * .google.protobuf.Timestamp expire_time = 3; + * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The expireTime. */ com.google.protobuf.Timestamp getExpireTime(); + /** * * *
-   * The snapshot is guaranteed to exist up until this time.
+   * Optional. The snapshot is guaranteed to exist up until this time.
    * A newly-created snapshot expires no later than 7 days from the time of its
    * creation. Its exact lifetime is determined at creation by the existing
    * backlog in the source subscription. Specifically, the lifetime of the
@@ -131,7 +144,8 @@ public interface SnapshotOrBuilder
    * snapshot that would expire in less than 1 hour after creation.
    * 
* - * .google.protobuf.Timestamp expire_time = 3; + * .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.protobuf.TimestampOrBuilder getExpireTimeOrBuilder(); @@ -139,62 +153,67 @@ public interface SnapshotOrBuilder * * *
-   * See [Creating and managing labels]
+   * Optional. See [Creating and managing labels]
    * (https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 4; + * map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL]; */ int getLabelsCount(); + /** * * *
-   * See [Creating and managing labels]
+   * Optional. See [Creating and managing labels]
    * (https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 4; + * map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL]; */ boolean containsLabels(java.lang.String key); + /** Use {@link #getLabelsMap()} instead. */ @java.lang.Deprecated java.util.Map getLabels(); + /** * * *
-   * See [Creating and managing labels]
+   * Optional. See [Creating and managing labels]
    * (https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 4; + * map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL]; */ java.util.Map getLabelsMap(); + /** * * *
-   * See [Creating and managing labels]
+   * Optional. See [Creating and managing labels]
    * (https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 4; + * map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL]; */ /* nullable */ java.lang.String getLabelsOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue); + /** * * *
-   * See [Creating and managing labels]
+   * Optional. See [Creating and managing labels]
    * (https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 4; + * map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL]; */ java.lang.String getLabelsOrThrow(java.lang.String key); } diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/StreamingPullRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/StreamingPullRequest.java index 20d715043..b24d3d922 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/StreamingPullRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/StreamingPullRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -23,7 +24,7 @@ * *
  * Request for the `StreamingPull` streaming RPC method. This request is used to
- * establish the initial stream as well as to stream acknowledgements and ack
+ * establish the initial stream as well as to stream acknowledgments and ack
  * deadline modifications from the client to the server.
  * 
* @@ -34,6 +35,7 @@ public final class StreamingPullRequest extends com.google.protobuf.GeneratedMes // @@protoc_insertion_point(message_implements:google.pubsub.v1.StreamingPullRequest) StreamingPullRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use StreamingPullRequest.newBuilder() to construct. private StreamingPullRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -72,6 +74,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private volatile java.lang.Object subscription_ = ""; + /** * * @@ -100,6 +103,7 @@ public java.lang.String getSubscription() { return s; } } + /** * * @@ -134,54 +138,57 @@ public com.google.protobuf.ByteString getSubscriptionBytes() { @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList ackIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); + /** * * *
-   * List of acknowledgement IDs for acknowledging previously received messages
-   * (received on this stream or a different stream). If an ack ID has expired,
-   * the corresponding message may be redelivered later. Acknowledging a message
-   * more than once will not result in an error. If the acknowledgement ID is
-   * malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
+   * Optional. List of acknowledgment IDs for acknowledging previously received
+   * messages (received on this stream or a different stream). If an ack ID has
+   * expired, the corresponding message may be redelivered later. Acknowledging
+   * a message more than once will not result in an error. If the acknowledgment
+   * ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
    * 
* - * repeated string ack_ids = 2; + * repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the ackIds. */ public com.google.protobuf.ProtocolStringList getAckIdsList() { return ackIds_; } + /** * * *
-   * List of acknowledgement IDs for acknowledging previously received messages
-   * (received on this stream or a different stream). If an ack ID has expired,
-   * the corresponding message may be redelivered later. Acknowledging a message
-   * more than once will not result in an error. If the acknowledgement ID is
-   * malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
+   * Optional. List of acknowledgment IDs for acknowledging previously received
+   * messages (received on this stream or a different stream). If an ack ID has
+   * expired, the corresponding message may be redelivered later. Acknowledging
+   * a message more than once will not result in an error. If the acknowledgment
+   * ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
    * 
* - * repeated string ack_ids = 2; + * repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of ackIds. */ public int getAckIdsCount() { return ackIds_.size(); } + /** * * *
-   * List of acknowledgement IDs for acknowledging previously received messages
-   * (received on this stream or a different stream). If an ack ID has expired,
-   * the corresponding message may be redelivered later. Acknowledging a message
-   * more than once will not result in an error. If the acknowledgement ID is
-   * malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
+   * Optional. List of acknowledgment IDs for acknowledging previously received
+   * messages (received on this stream or a different stream). If an ack ID has
+   * expired, the corresponding message may be redelivered later. Acknowledging
+   * a message more than once will not result in an error. If the acknowledgment
+   * ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
    * 
* - * repeated string ack_ids = 2; + * repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The ackIds at the given index. @@ -189,18 +196,19 @@ public int getAckIdsCount() { public java.lang.String getAckIds(int index) { return ackIds_.get(index); } + /** * * *
-   * List of acknowledgement IDs for acknowledging previously received messages
-   * (received on this stream or a different stream). If an ack ID has expired,
-   * the corresponding message may be redelivered later. Acknowledging a message
-   * more than once will not result in an error. If the acknowledgement ID is
-   * malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
+   * Optional. List of acknowledgment IDs for acknowledging previously received
+   * messages (received on this stream or a different stream). If an ack ID has
+   * expired, the corresponding message may be redelivered later. Acknowledging
+   * a message more than once will not result in an error. If the acknowledgment
+   * ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
    * 
* - * repeated string ack_ids = 2; + * repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the ackIds at the given index. @@ -212,12 +220,13 @@ public com.google.protobuf.ByteString getAckIdsBytes(int index) { public static final int MODIFY_DEADLINE_SECONDS_FIELD_NUMBER = 3; @SuppressWarnings("serial") - private com.google.protobuf.Internal.IntList modifyDeadlineSeconds_; + private com.google.protobuf.Internal.IntList modifyDeadlineSeconds_ = emptyIntList(); + /** * * *
-   * The list of new ack deadlines for the IDs listed in
+   * Optional. The list of new ack deadlines for the IDs listed in
    * `modify_deadline_ack_ids`. The size of this list must be the same as the
    * size of `modify_deadline_ack_ids`. If it differs the stream will be aborted
    * with `INVALID_ARGUMENT`. Each element in this list is applied to the
@@ -230,7 +239,8 @@ public com.google.protobuf.ByteString getAckIdsBytes(int index) {
    * be aborted with status `INVALID_ARGUMENT`.
    * 
* - * repeated int32 modify_deadline_seconds = 3; + * repeated int32 modify_deadline_seconds = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return A list containing the modifyDeadlineSeconds. */ @@ -238,11 +248,12 @@ public com.google.protobuf.ByteString getAckIdsBytes(int index) { public java.util.List getModifyDeadlineSecondsList() { return modifyDeadlineSeconds_; } + /** * * *
-   * The list of new ack deadlines for the IDs listed in
+   * Optional. The list of new ack deadlines for the IDs listed in
    * `modify_deadline_ack_ids`. The size of this list must be the same as the
    * size of `modify_deadline_ack_ids`. If it differs the stream will be aborted
    * with `INVALID_ARGUMENT`. Each element in this list is applied to the
@@ -255,18 +266,20 @@ public java.util.List getModifyDeadlineSecondsList() {
    * be aborted with status `INVALID_ARGUMENT`.
    * 
* - * repeated int32 modify_deadline_seconds = 3; + * repeated int32 modify_deadline_seconds = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The count of modifyDeadlineSeconds. */ public int getModifyDeadlineSecondsCount() { return modifyDeadlineSeconds_.size(); } + /** * * *
-   * The list of new ack deadlines for the IDs listed in
+   * Optional. The list of new ack deadlines for the IDs listed in
    * `modify_deadline_ack_ids`. The size of this list must be the same as the
    * size of `modify_deadline_ack_ids`. If it differs the stream will be aborted
    * with `INVALID_ARGUMENT`. Each element in this list is applied to the
@@ -279,7 +292,8 @@ public int getModifyDeadlineSecondsCount() {
    * be aborted with status `INVALID_ARGUMENT`.
    * 
* - * repeated int32 modify_deadline_seconds = 3; + * repeated int32 modify_deadline_seconds = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the element to return. * @return The modifyDeadlineSeconds at the given index. @@ -295,54 +309,60 @@ public int getModifyDeadlineSeconds(int index) { @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList modifyDeadlineAckIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); + /** * * *
-   * List of acknowledgement IDs whose deadline will be modified based on the
-   * corresponding element in `modify_deadline_seconds`. This field can be used
-   * to indicate that more time is needed to process a message by the
+   * Optional. List of acknowledgment IDs whose deadline will be modified based
+   * on the corresponding element in `modify_deadline_seconds`. This field can
+   * be used to indicate that more time is needed to process a message by the
    * subscriber, or to make the message available for redelivery if the
    * processing was interrupted.
    * 
* - * repeated string modify_deadline_ack_ids = 4; + * repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return A list containing the modifyDeadlineAckIds. */ public com.google.protobuf.ProtocolStringList getModifyDeadlineAckIdsList() { return modifyDeadlineAckIds_; } + /** * * *
-   * List of acknowledgement IDs whose deadline will be modified based on the
-   * corresponding element in `modify_deadline_seconds`. This field can be used
-   * to indicate that more time is needed to process a message by the
+   * Optional. List of acknowledgment IDs whose deadline will be modified based
+   * on the corresponding element in `modify_deadline_seconds`. This field can
+   * be used to indicate that more time is needed to process a message by the
    * subscriber, or to make the message available for redelivery if the
    * processing was interrupted.
    * 
* - * repeated string modify_deadline_ack_ids = 4; + * repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The count of modifyDeadlineAckIds. */ public int getModifyDeadlineAckIdsCount() { return modifyDeadlineAckIds_.size(); } + /** * * *
-   * List of acknowledgement IDs whose deadline will be modified based on the
-   * corresponding element in `modify_deadline_seconds`. This field can be used
-   * to indicate that more time is needed to process a message by the
+   * Optional. List of acknowledgment IDs whose deadline will be modified based
+   * on the corresponding element in `modify_deadline_seconds`. This field can
+   * be used to indicate that more time is needed to process a message by the
    * subscriber, or to make the message available for redelivery if the
    * processing was interrupted.
    * 
* - * repeated string modify_deadline_ack_ids = 4; + * repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the element to return. * @return The modifyDeadlineAckIds at the given index. @@ -350,18 +370,20 @@ public int getModifyDeadlineAckIdsCount() { public java.lang.String getModifyDeadlineAckIds(int index) { return modifyDeadlineAckIds_.get(index); } + /** * * *
-   * List of acknowledgement IDs whose deadline will be modified based on the
-   * corresponding element in `modify_deadline_seconds`. This field can be used
-   * to indicate that more time is needed to process a message by the
+   * Optional. List of acknowledgment IDs whose deadline will be modified based
+   * on the corresponding element in `modify_deadline_seconds`. This field can
+   * be used to indicate that more time is needed to process a message by the
    * subscriber, or to make the message available for redelivery if the
    * processing was interrupted.
    * 
* - * repeated string modify_deadline_ack_ids = 4; + * repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the value to return. * @return The bytes of the modifyDeadlineAckIds at the given index. @@ -372,6 +394,7 @@ public com.google.protobuf.ByteString getModifyDeadlineAckIdsBytes(int index) { public static final int STREAM_ACK_DEADLINE_SECONDS_FIELD_NUMBER = 5; private int streamAckDeadlineSeconds_ = 0; + /** * * @@ -395,19 +418,20 @@ public int getStreamAckDeadlineSeconds() { @SuppressWarnings("serial") private volatile java.lang.Object clientId_ = ""; + /** * * *
-   * A unique identifier that is used to distinguish client instances from each
-   * other. Only needs to be provided on the initial request. When a stream
-   * disconnects and reconnects for the same stream, the client_id should be set
-   * to the same value so that state associated with the old stream can be
-   * transferred to the new stream. The same client_id should not be used for
+   * Optional. A unique identifier that is used to distinguish client instances
+   * from each other. Only needs to be provided on the initial request. When a
+   * stream disconnects and reconnects for the same stream, the client_id should
+   * be set to the same value so that state associated with the old stream can
+   * be transferred to the new stream. The same client_id should not be used for
    * different client instances.
    * 
* - * string client_id = 6; + * string client_id = 6 [(.google.api.field_behavior) = OPTIONAL]; * * @return The clientId. */ @@ -423,19 +447,20 @@ public java.lang.String getClientId() { return s; } } + /** * * *
-   * A unique identifier that is used to distinguish client instances from each
-   * other. Only needs to be provided on the initial request. When a stream
-   * disconnects and reconnects for the same stream, the client_id should be set
-   * to the same value so that state associated with the old stream can be
-   * transferred to the new stream. The same client_id should not be used for
+   * Optional. A unique identifier that is used to distinguish client instances
+   * from each other. Only needs to be provided on the initial request. When a
+   * stream disconnects and reconnects for the same stream, the client_id should
+   * be set to the same value so that state associated with the old stream can
+   * be transferred to the new stream. The same client_id should not be used for
    * different client instances.
    * 
* - * string client_id = 6; + * string client_id = 6 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for clientId. */ @@ -454,12 +479,13 @@ public com.google.protobuf.ByteString getClientIdBytes() { public static final int MAX_OUTSTANDING_MESSAGES_FIELD_NUMBER = 7; private long maxOutstandingMessages_ = 0L; + /** * * *
-   * Flow control settings for the maximum number of outstanding messages. When
-   * there are `max_outstanding_messages` or more currently sent to the
+   * Optional. Flow control settings for the maximum number of outstanding
+   * messages. When there are `max_outstanding_messages` currently sent to the
    * streaming pull client that have not yet been acked or nacked, the server
    * stops sending more messages. The sending of messages resumes once the
    * number of outstanding messages is less than this value. If the value is
@@ -469,7 +495,7 @@ public com.google.protobuf.ByteString getClientIdBytes() {
    * `INVALID_ARGUMENT`.
    * 
* - * int64 max_outstanding_messages = 7; + * int64 max_outstanding_messages = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @return The maxOutstandingMessages. */ @@ -480,22 +506,23 @@ public long getMaxOutstandingMessages() { public static final int MAX_OUTSTANDING_BYTES_FIELD_NUMBER = 8; private long maxOutstandingBytes_ = 0L; + /** * * *
-   * Flow control settings for the maximum number of outstanding bytes. When
-   * there are `max_outstanding_bytes` or more worth of messages currently sent
-   * to the streaming pull client that have not yet been acked or nacked, the
-   * server will stop sending more messages. The sending of messages resumes
-   * once the number of outstanding bytes is less than this value. If the value
-   * is <= 0, there is no limit to the number of outstanding bytes. This
-   * property can only be set on the initial StreamingPullRequest. If it is set
-   * on a subsequent request, the stream will be aborted with status
+   * Optional. Flow control settings for the maximum number of outstanding
+   * bytes. When there are `max_outstanding_bytes` or more worth of messages
+   * currently sent to the streaming pull client that have not yet been acked or
+   * nacked, the server will stop sending more messages. The sending of messages
+   * resumes once the number of outstanding bytes is less than this value. If
+   * the value is <= 0, there is no limit to the number of outstanding bytes.
+   * This property can only be set on the initial StreamingPullRequest. If it is
+   * set on a subsequent request, the stream will be aborted with status
    * `INVALID_ARGUMENT`.
    * 
* - * int64 max_outstanding_bytes = 8; + * int64 max_outstanding_bytes = 8 [(.google.api.field_behavior) = OPTIONAL]; * * @return The maxOutstandingBytes. */ @@ -504,6 +531,27 @@ public long getMaxOutstandingBytes() { return maxOutstandingBytes_; } + public static final int PROTOCOL_VERSION_FIELD_NUMBER = 10; + private long protocolVersion_ = 0L; + + /** + * + * + *
+   * Optional. The protocol version used by the client. This property can only
+   * be set on the initial StreamingPullRequest. If it is set on a subsequent
+   * request, the stream will be aborted with status `INVALID_ARGUMENT`.
+   * 
+ * + * int64 protocol_version = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The protocolVersion. + */ + @java.lang.Override + public long getProtocolVersion() { + return protocolVersion_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -548,6 +596,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (maxOutstandingBytes_ != 0L) { output.writeInt64(8, maxOutstandingBytes_); } + if (protocolVersion_ != 0L) { + output.writeInt64(10, protocolVersion_); + } getUnknownFields().writeTo(output); } @@ -602,6 +653,9 @@ public int getSerializedSize() { if (maxOutstandingBytes_ != 0L) { size += com.google.protobuf.CodedOutputStream.computeInt64Size(8, maxOutstandingBytes_); } + if (protocolVersion_ != 0L) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(10, protocolVersion_); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -626,6 +680,7 @@ public boolean equals(final java.lang.Object obj) { if (!getClientId().equals(other.getClientId())) return false; if (getMaxOutstandingMessages() != other.getMaxOutstandingMessages()) return false; if (getMaxOutstandingBytes() != other.getMaxOutstandingBytes()) return false; + if (getProtocolVersion() != other.getProtocolVersion()) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -659,6 +714,8 @@ public int hashCode() { hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMaxOutstandingMessages()); hash = (37 * hash) + MAX_OUTSTANDING_BYTES_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMaxOutstandingBytes()); + hash = (37 * hash) + PROTOCOL_VERSION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getProtocolVersion()); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -759,12 +816,13 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * *
    * Request for the `StreamingPull` streaming RPC method. This request is used to
-   * establish the initial stream as well as to stream acknowledgements and ack
+   * establish the initial stream as well as to stream acknowledgments and ack
    * deadline modifications from the client to the server.
    * 
* @@ -808,6 +866,7 @@ public Builder clear() { clientId_ = ""; maxOutstandingMessages_ = 0L; maxOutstandingBytes_ = 0L; + protocolVersion_ = 0L; return this; } @@ -835,7 +894,6 @@ public com.google.pubsub.v1.StreamingPullRequest build() { public com.google.pubsub.v1.StreamingPullRequest buildPartial() { com.google.pubsub.v1.StreamingPullRequest result = new com.google.pubsub.v1.StreamingPullRequest(this); - buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } @@ -843,14 +901,6 @@ public com.google.pubsub.v1.StreamingPullRequest buildPartial() { return result; } - private void buildPartialRepeatedFields(com.google.pubsub.v1.StreamingPullRequest result) { - if (((bitField0_ & 0x00000004) != 0)) { - modifyDeadlineSeconds_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00000004); - } - result.modifyDeadlineSeconds_ = modifyDeadlineSeconds_; - } - private void buildPartial0(com.google.pubsub.v1.StreamingPullRequest result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { @@ -860,6 +910,10 @@ private void buildPartial0(com.google.pubsub.v1.StreamingPullRequest result) { ackIds_.makeImmutable(); result.ackIds_ = ackIds_; } + if (((from_bitField0_ & 0x00000004) != 0)) { + modifyDeadlineSeconds_.makeImmutable(); + result.modifyDeadlineSeconds_ = modifyDeadlineSeconds_; + } if (((from_bitField0_ & 0x00000008) != 0)) { modifyDeadlineAckIds_.makeImmutable(); result.modifyDeadlineAckIds_ = modifyDeadlineAckIds_; @@ -876,6 +930,9 @@ private void buildPartial0(com.google.pubsub.v1.StreamingPullRequest result) { if (((from_bitField0_ & 0x00000080) != 0)) { result.maxOutstandingBytes_ = maxOutstandingBytes_; } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.protocolVersion_ = protocolVersion_; + } } @java.lang.Override @@ -941,7 +998,8 @@ public Builder mergeFrom(com.google.pubsub.v1.StreamingPullRequest other) { if (!other.modifyDeadlineSeconds_.isEmpty()) { if (modifyDeadlineSeconds_.isEmpty()) { modifyDeadlineSeconds_ = other.modifyDeadlineSeconds_; - bitField0_ = (bitField0_ & ~0x00000004); + modifyDeadlineSeconds_.makeImmutable(); + bitField0_ |= 0x00000004; } else { ensureModifyDeadlineSecondsIsMutable(); modifyDeadlineSeconds_.addAll(other.modifyDeadlineSeconds_); @@ -972,6 +1030,9 @@ public Builder mergeFrom(com.google.pubsub.v1.StreamingPullRequest other) { if (other.getMaxOutstandingBytes() != 0L) { setMaxOutstandingBytes(other.getMaxOutstandingBytes()); } + if (other.getProtocolVersion() != 0L) { + setProtocolVersion(other.getProtocolVersion()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -1060,6 +1121,12 @@ public Builder mergeFrom( bitField0_ |= 0x00000080; break; } // case 64 + case 80: + { + protocolVersion_ = input.readInt64(); + bitField0_ |= 0x00000100; + break; + } // case 80 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -1080,6 +1147,7 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object subscription_ = ""; + /** * * @@ -1107,6 +1175,7 @@ public java.lang.String getSubscription() { return (java.lang.String) ref; } } + /** * * @@ -1134,6 +1203,7 @@ public com.google.protobuf.ByteString getSubscriptionBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -1160,6 +1230,7 @@ public Builder setSubscription(java.lang.String value) { onChanged(); return this; } + /** * * @@ -1182,6 +1253,7 @@ public Builder clearSubscription() { onChanged(); return this; } + /** * * @@ -1219,18 +1291,19 @@ private void ensureAckIdsIsMutable() { } bitField0_ |= 0x00000002; } + /** * * *
-     * List of acknowledgement IDs for acknowledging previously received messages
-     * (received on this stream or a different stream). If an ack ID has expired,
-     * the corresponding message may be redelivered later. Acknowledging a message
-     * more than once will not result in an error. If the acknowledgement ID is
-     * malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
+     * Optional. List of acknowledgment IDs for acknowledging previously received
+     * messages (received on this stream or a different stream). If an ack ID has
+     * expired, the corresponding message may be redelivered later. Acknowledging
+     * a message more than once will not result in an error. If the acknowledgment
+     * ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
      * 
* - * repeated string ack_ids = 2; + * repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the ackIds. */ @@ -1238,36 +1311,38 @@ public com.google.protobuf.ProtocolStringList getAckIdsList() { ackIds_.makeImmutable(); return ackIds_; } + /** * * *
-     * List of acknowledgement IDs for acknowledging previously received messages
-     * (received on this stream or a different stream). If an ack ID has expired,
-     * the corresponding message may be redelivered later. Acknowledging a message
-     * more than once will not result in an error. If the acknowledgement ID is
-     * malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
+     * Optional. List of acknowledgment IDs for acknowledging previously received
+     * messages (received on this stream or a different stream). If an ack ID has
+     * expired, the corresponding message may be redelivered later. Acknowledging
+     * a message more than once will not result in an error. If the acknowledgment
+     * ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
      * 
* - * repeated string ack_ids = 2; + * repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of ackIds. */ public int getAckIdsCount() { return ackIds_.size(); } + /** * * *
-     * List of acknowledgement IDs for acknowledging previously received messages
-     * (received on this stream or a different stream). If an ack ID has expired,
-     * the corresponding message may be redelivered later. Acknowledging a message
-     * more than once will not result in an error. If the acknowledgement ID is
-     * malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
+     * Optional. List of acknowledgment IDs for acknowledging previously received
+     * messages (received on this stream or a different stream). If an ack ID has
+     * expired, the corresponding message may be redelivered later. Acknowledging
+     * a message more than once will not result in an error. If the acknowledgment
+     * ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
      * 
* - * repeated string ack_ids = 2; + * repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The ackIds at the given index. @@ -1275,18 +1350,19 @@ public int getAckIdsCount() { public java.lang.String getAckIds(int index) { return ackIds_.get(index); } + /** * * *
-     * List of acknowledgement IDs for acknowledging previously received messages
-     * (received on this stream or a different stream). If an ack ID has expired,
-     * the corresponding message may be redelivered later. Acknowledging a message
-     * more than once will not result in an error. If the acknowledgement ID is
-     * malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
+     * Optional. List of acknowledgment IDs for acknowledging previously received
+     * messages (received on this stream or a different stream). If an ack ID has
+     * expired, the corresponding message may be redelivered later. Acknowledging
+     * a message more than once will not result in an error. If the acknowledgment
+     * ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
      * 
* - * repeated string ack_ids = 2; + * repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the ackIds at the given index. @@ -1294,18 +1370,19 @@ public java.lang.String getAckIds(int index) { public com.google.protobuf.ByteString getAckIdsBytes(int index) { return ackIds_.getByteString(index); } + /** * * *
-     * List of acknowledgement IDs for acknowledging previously received messages
-     * (received on this stream or a different stream). If an ack ID has expired,
-     * the corresponding message may be redelivered later. Acknowledging a message
-     * more than once will not result in an error. If the acknowledgement ID is
-     * malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
+     * Optional. List of acknowledgment IDs for acknowledging previously received
+     * messages (received on this stream or a different stream). If an ack ID has
+     * expired, the corresponding message may be redelivered later. Acknowledging
+     * a message more than once will not result in an error. If the acknowledgment
+     * ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
      * 
* - * repeated string ack_ids = 2; + * repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index to set the value at. * @param value The ackIds to set. @@ -1321,18 +1398,19 @@ public Builder setAckIds(int index, java.lang.String value) { onChanged(); return this; } + /** * * *
-     * List of acknowledgement IDs for acknowledging previously received messages
-     * (received on this stream or a different stream). If an ack ID has expired,
-     * the corresponding message may be redelivered later. Acknowledging a message
-     * more than once will not result in an error. If the acknowledgement ID is
-     * malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
+     * Optional. List of acknowledgment IDs for acknowledging previously received
+     * messages (received on this stream or a different stream). If an ack ID has
+     * expired, the corresponding message may be redelivered later. Acknowledging
+     * a message more than once will not result in an error. If the acknowledgment
+     * ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
      * 
* - * repeated string ack_ids = 2; + * repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The ackIds to add. * @return This builder for chaining. @@ -1347,18 +1425,19 @@ public Builder addAckIds(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * List of acknowledgement IDs for acknowledging previously received messages
-     * (received on this stream or a different stream). If an ack ID has expired,
-     * the corresponding message may be redelivered later. Acknowledging a message
-     * more than once will not result in an error. If the acknowledgement ID is
-     * malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
+     * Optional. List of acknowledgment IDs for acknowledging previously received
+     * messages (received on this stream or a different stream). If an ack ID has
+     * expired, the corresponding message may be redelivered later. Acknowledging
+     * a message more than once will not result in an error. If the acknowledgment
+     * ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
      * 
* - * repeated string ack_ids = 2; + * repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param values The ackIds to add. * @return This builder for chaining. @@ -1370,18 +1449,19 @@ public Builder addAllAckIds(java.lang.Iterable values) { onChanged(); return this; } + /** * * *
-     * List of acknowledgement IDs for acknowledging previously received messages
-     * (received on this stream or a different stream). If an ack ID has expired,
-     * the corresponding message may be redelivered later. Acknowledging a message
-     * more than once will not result in an error. If the acknowledgement ID is
-     * malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
+     * Optional. List of acknowledgment IDs for acknowledging previously received
+     * messages (received on this stream or a different stream). If an ack ID has
+     * expired, the corresponding message may be redelivered later. Acknowledging
+     * a message more than once will not result in an error. If the acknowledgment
+     * ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
      * 
* - * repeated string ack_ids = 2; + * repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -1392,18 +1472,19 @@ public Builder clearAckIds() { onChanged(); return this; } + /** * * *
-     * List of acknowledgement IDs for acknowledging previously received messages
-     * (received on this stream or a different stream). If an ack ID has expired,
-     * the corresponding message may be redelivered later. Acknowledging a message
-     * more than once will not result in an error. If the acknowledgement ID is
-     * malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
+     * Optional. List of acknowledgment IDs for acknowledging previously received
+     * messages (received on this stream or a different stream). If an ack ID has
+     * expired, the corresponding message may be redelivered later. Acknowledging
+     * a message more than once will not result in an error. If the acknowledgment
+     * ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
      * 
* - * repeated string ack_ids = 2; + * repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes of the ackIds to add. * @return This builder for chaining. @@ -1423,16 +1504,17 @@ public Builder addAckIdsBytes(com.google.protobuf.ByteString value) { private com.google.protobuf.Internal.IntList modifyDeadlineSeconds_ = emptyIntList(); private void ensureModifyDeadlineSecondsIsMutable() { - if (!((bitField0_ & 0x00000004) != 0)) { - modifyDeadlineSeconds_ = mutableCopy(modifyDeadlineSeconds_); - bitField0_ |= 0x00000004; + if (!modifyDeadlineSeconds_.isModifiable()) { + modifyDeadlineSeconds_ = makeMutableCopy(modifyDeadlineSeconds_); } + bitField0_ |= 0x00000004; } + /** * * *
-     * The list of new ack deadlines for the IDs listed in
+     * Optional. The list of new ack deadlines for the IDs listed in
      * `modify_deadline_ack_ids`. The size of this list must be the same as the
      * size of `modify_deadline_ack_ids`. If it differs the stream will be aborted
      * with `INVALID_ARGUMENT`. Each element in this list is applied to the
@@ -1445,20 +1527,21 @@ private void ensureModifyDeadlineSecondsIsMutable() {
      * be aborted with status `INVALID_ARGUMENT`.
      * 
* - * repeated int32 modify_deadline_seconds = 3; + * repeated int32 modify_deadline_seconds = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return A list containing the modifyDeadlineSeconds. */ public java.util.List getModifyDeadlineSecondsList() { - return ((bitField0_ & 0x00000004) != 0) - ? java.util.Collections.unmodifiableList(modifyDeadlineSeconds_) - : modifyDeadlineSeconds_; + modifyDeadlineSeconds_.makeImmutable(); + return modifyDeadlineSeconds_; } + /** * * *
-     * The list of new ack deadlines for the IDs listed in
+     * Optional. The list of new ack deadlines for the IDs listed in
      * `modify_deadline_ack_ids`. The size of this list must be the same as the
      * size of `modify_deadline_ack_ids`. If it differs the stream will be aborted
      * with `INVALID_ARGUMENT`. Each element in this list is applied to the
@@ -1471,18 +1554,20 @@ public java.util.List getModifyDeadlineSecondsList() {
      * be aborted with status `INVALID_ARGUMENT`.
      * 
* - * repeated int32 modify_deadline_seconds = 3; + * repeated int32 modify_deadline_seconds = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The count of modifyDeadlineSeconds. */ public int getModifyDeadlineSecondsCount() { return modifyDeadlineSeconds_.size(); } + /** * * *
-     * The list of new ack deadlines for the IDs listed in
+     * Optional. The list of new ack deadlines for the IDs listed in
      * `modify_deadline_ack_ids`. The size of this list must be the same as the
      * size of `modify_deadline_ack_ids`. If it differs the stream will be aborted
      * with `INVALID_ARGUMENT`. Each element in this list is applied to the
@@ -1495,7 +1580,8 @@ public int getModifyDeadlineSecondsCount() {
      * be aborted with status `INVALID_ARGUMENT`.
      * 
* - * repeated int32 modify_deadline_seconds = 3; + * repeated int32 modify_deadline_seconds = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the element to return. * @return The modifyDeadlineSeconds at the given index. @@ -1503,11 +1589,12 @@ public int getModifyDeadlineSecondsCount() { public int getModifyDeadlineSeconds(int index) { return modifyDeadlineSeconds_.getInt(index); } + /** * * *
-     * The list of new ack deadlines for the IDs listed in
+     * Optional. The list of new ack deadlines for the IDs listed in
      * `modify_deadline_ack_ids`. The size of this list must be the same as the
      * size of `modify_deadline_ack_ids`. If it differs the stream will be aborted
      * with `INVALID_ARGUMENT`. Each element in this list is applied to the
@@ -1520,7 +1607,8 @@ public int getModifyDeadlineSeconds(int index) {
      * be aborted with status `INVALID_ARGUMENT`.
      * 
* - * repeated int32 modify_deadline_seconds = 3; + * repeated int32 modify_deadline_seconds = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index to set the value at. * @param value The modifyDeadlineSeconds to set. @@ -1530,14 +1618,16 @@ public Builder setModifyDeadlineSeconds(int index, int value) { ensureModifyDeadlineSecondsIsMutable(); modifyDeadlineSeconds_.setInt(index, value); + bitField0_ |= 0x00000004; onChanged(); return this; } + /** * * *
-     * The list of new ack deadlines for the IDs listed in
+     * Optional. The list of new ack deadlines for the IDs listed in
      * `modify_deadline_ack_ids`. The size of this list must be the same as the
      * size of `modify_deadline_ack_ids`. If it differs the stream will be aborted
      * with `INVALID_ARGUMENT`. Each element in this list is applied to the
@@ -1550,7 +1640,8 @@ public Builder setModifyDeadlineSeconds(int index, int value) {
      * be aborted with status `INVALID_ARGUMENT`.
      * 
* - * repeated int32 modify_deadline_seconds = 3; + * repeated int32 modify_deadline_seconds = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param value The modifyDeadlineSeconds to add. * @return This builder for chaining. @@ -1559,14 +1650,16 @@ public Builder addModifyDeadlineSeconds(int value) { ensureModifyDeadlineSecondsIsMutable(); modifyDeadlineSeconds_.addInt(value); + bitField0_ |= 0x00000004; onChanged(); return this; } + /** * * *
-     * The list of new ack deadlines for the IDs listed in
+     * Optional. The list of new ack deadlines for the IDs listed in
      * `modify_deadline_ack_ids`. The size of this list must be the same as the
      * size of `modify_deadline_ack_ids`. If it differs the stream will be aborted
      * with `INVALID_ARGUMENT`. Each element in this list is applied to the
@@ -1579,7 +1672,8 @@ public Builder addModifyDeadlineSeconds(int value) {
      * be aborted with status `INVALID_ARGUMENT`.
      * 
* - * repeated int32 modify_deadline_seconds = 3; + * repeated int32 modify_deadline_seconds = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param values The modifyDeadlineSeconds to add. * @return This builder for chaining. @@ -1588,14 +1682,16 @@ public Builder addAllModifyDeadlineSeconds( java.lang.Iterable values) { ensureModifyDeadlineSecondsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll(values, modifyDeadlineSeconds_); + bitField0_ |= 0x00000004; onChanged(); return this; } + /** * * *
-     * The list of new ack deadlines for the IDs listed in
+     * Optional. The list of new ack deadlines for the IDs listed in
      * `modify_deadline_ack_ids`. The size of this list must be the same as the
      * size of `modify_deadline_ack_ids`. If it differs the stream will be aborted
      * with `INVALID_ARGUMENT`. Each element in this list is applied to the
@@ -1608,7 +1704,8 @@ public Builder addAllModifyDeadlineSeconds(
      * be aborted with status `INVALID_ARGUMENT`.
      * 
* - * repeated int32 modify_deadline_seconds = 3; + * repeated int32 modify_deadline_seconds = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return This builder for chaining. */ @@ -1628,18 +1725,20 @@ private void ensureModifyDeadlineAckIdsIsMutable() { } bitField0_ |= 0x00000008; } + /** * * *
-     * List of acknowledgement IDs whose deadline will be modified based on the
-     * corresponding element in `modify_deadline_seconds`. This field can be used
-     * to indicate that more time is needed to process a message by the
+     * Optional. List of acknowledgment IDs whose deadline will be modified based
+     * on the corresponding element in `modify_deadline_seconds`. This field can
+     * be used to indicate that more time is needed to process a message by the
      * subscriber, or to make the message available for redelivery if the
      * processing was interrupted.
      * 
* - * repeated string modify_deadline_ack_ids = 4; + * repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return A list containing the modifyDeadlineAckIds. */ @@ -1647,36 +1746,40 @@ public com.google.protobuf.ProtocolStringList getModifyDeadlineAckIdsList() { modifyDeadlineAckIds_.makeImmutable(); return modifyDeadlineAckIds_; } + /** * * *
-     * List of acknowledgement IDs whose deadline will be modified based on the
-     * corresponding element in `modify_deadline_seconds`. This field can be used
-     * to indicate that more time is needed to process a message by the
+     * Optional. List of acknowledgment IDs whose deadline will be modified based
+     * on the corresponding element in `modify_deadline_seconds`. This field can
+     * be used to indicate that more time is needed to process a message by the
      * subscriber, or to make the message available for redelivery if the
      * processing was interrupted.
      * 
* - * repeated string modify_deadline_ack_ids = 4; + * repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The count of modifyDeadlineAckIds. */ public int getModifyDeadlineAckIdsCount() { return modifyDeadlineAckIds_.size(); } + /** * * *
-     * List of acknowledgement IDs whose deadline will be modified based on the
-     * corresponding element in `modify_deadline_seconds`. This field can be used
-     * to indicate that more time is needed to process a message by the
+     * Optional. List of acknowledgment IDs whose deadline will be modified based
+     * on the corresponding element in `modify_deadline_seconds`. This field can
+     * be used to indicate that more time is needed to process a message by the
      * subscriber, or to make the message available for redelivery if the
      * processing was interrupted.
      * 
* - * repeated string modify_deadline_ack_ids = 4; + * repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the element to return. * @return The modifyDeadlineAckIds at the given index. @@ -1684,18 +1787,20 @@ public int getModifyDeadlineAckIdsCount() { public java.lang.String getModifyDeadlineAckIds(int index) { return modifyDeadlineAckIds_.get(index); } + /** * * *
-     * List of acknowledgement IDs whose deadline will be modified based on the
-     * corresponding element in `modify_deadline_seconds`. This field can be used
-     * to indicate that more time is needed to process a message by the
+     * Optional. List of acknowledgment IDs whose deadline will be modified based
+     * on the corresponding element in `modify_deadline_seconds`. This field can
+     * be used to indicate that more time is needed to process a message by the
      * subscriber, or to make the message available for redelivery if the
      * processing was interrupted.
      * 
* - * repeated string modify_deadline_ack_ids = 4; + * repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the value to return. * @return The bytes of the modifyDeadlineAckIds at the given index. @@ -1703,18 +1808,20 @@ public java.lang.String getModifyDeadlineAckIds(int index) { public com.google.protobuf.ByteString getModifyDeadlineAckIdsBytes(int index) { return modifyDeadlineAckIds_.getByteString(index); } + /** * * *
-     * List of acknowledgement IDs whose deadline will be modified based on the
-     * corresponding element in `modify_deadline_seconds`. This field can be used
-     * to indicate that more time is needed to process a message by the
+     * Optional. List of acknowledgment IDs whose deadline will be modified based
+     * on the corresponding element in `modify_deadline_seconds`. This field can
+     * be used to indicate that more time is needed to process a message by the
      * subscriber, or to make the message available for redelivery if the
      * processing was interrupted.
      * 
* - * repeated string modify_deadline_ack_ids = 4; + * repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index to set the value at. * @param value The modifyDeadlineAckIds to set. @@ -1730,18 +1837,20 @@ public Builder setModifyDeadlineAckIds(int index, java.lang.String value) { onChanged(); return this; } + /** * * *
-     * List of acknowledgement IDs whose deadline will be modified based on the
-     * corresponding element in `modify_deadline_seconds`. This field can be used
-     * to indicate that more time is needed to process a message by the
+     * Optional. List of acknowledgment IDs whose deadline will be modified based
+     * on the corresponding element in `modify_deadline_seconds`. This field can
+     * be used to indicate that more time is needed to process a message by the
      * subscriber, or to make the message available for redelivery if the
      * processing was interrupted.
      * 
* - * repeated string modify_deadline_ack_ids = 4; + * repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param value The modifyDeadlineAckIds to add. * @return This builder for chaining. @@ -1756,18 +1865,20 @@ public Builder addModifyDeadlineAckIds(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * List of acknowledgement IDs whose deadline will be modified based on the
-     * corresponding element in `modify_deadline_seconds`. This field can be used
-     * to indicate that more time is needed to process a message by the
+     * Optional. List of acknowledgment IDs whose deadline will be modified based
+     * on the corresponding element in `modify_deadline_seconds`. This field can
+     * be used to indicate that more time is needed to process a message by the
      * subscriber, or to make the message available for redelivery if the
      * processing was interrupted.
      * 
* - * repeated string modify_deadline_ack_ids = 4; + * repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param values The modifyDeadlineAckIds to add. * @return This builder for chaining. @@ -1779,18 +1890,20 @@ public Builder addAllModifyDeadlineAckIds(java.lang.Iterable v onChanged(); return this; } + /** * * *
-     * List of acknowledgement IDs whose deadline will be modified based on the
-     * corresponding element in `modify_deadline_seconds`. This field can be used
-     * to indicate that more time is needed to process a message by the
+     * Optional. List of acknowledgment IDs whose deadline will be modified based
+     * on the corresponding element in `modify_deadline_seconds`. This field can
+     * be used to indicate that more time is needed to process a message by the
      * subscriber, or to make the message available for redelivery if the
      * processing was interrupted.
      * 
* - * repeated string modify_deadline_ack_ids = 4; + * repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return This builder for chaining. */ @@ -1801,18 +1914,20 @@ public Builder clearModifyDeadlineAckIds() { onChanged(); return this; } + /** * * *
-     * List of acknowledgement IDs whose deadline will be modified based on the
-     * corresponding element in `modify_deadline_seconds`. This field can be used
-     * to indicate that more time is needed to process a message by the
+     * Optional. List of acknowledgment IDs whose deadline will be modified based
+     * on the corresponding element in `modify_deadline_seconds`. This field can
+     * be used to indicate that more time is needed to process a message by the
      * subscriber, or to make the message available for redelivery if the
      * processing was interrupted.
      * 
* - * repeated string modify_deadline_ack_ids = 4; + * repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param value The bytes of the modifyDeadlineAckIds to add. * @return This builder for chaining. @@ -1830,6 +1945,7 @@ public Builder addModifyDeadlineAckIdsBytes(com.google.protobuf.ByteString value } private int streamAckDeadlineSeconds_; + /** * * @@ -1848,6 +1964,7 @@ public Builder addModifyDeadlineAckIdsBytes(com.google.protobuf.ByteString value public int getStreamAckDeadlineSeconds() { return streamAckDeadlineSeconds_; } + /** * * @@ -1870,6 +1987,7 @@ public Builder setStreamAckDeadlineSeconds(int value) { onChanged(); return this; } + /** * * @@ -1892,19 +2010,20 @@ public Builder clearStreamAckDeadlineSeconds() { } private java.lang.Object clientId_ = ""; + /** * * *
-     * A unique identifier that is used to distinguish client instances from each
-     * other. Only needs to be provided on the initial request. When a stream
-     * disconnects and reconnects for the same stream, the client_id should be set
-     * to the same value so that state associated with the old stream can be
-     * transferred to the new stream. The same client_id should not be used for
+     * Optional. A unique identifier that is used to distinguish client instances
+     * from each other. Only needs to be provided on the initial request. When a
+     * stream disconnects and reconnects for the same stream, the client_id should
+     * be set to the same value so that state associated with the old stream can
+     * be transferred to the new stream. The same client_id should not be used for
      * different client instances.
      * 
* - * string client_id = 6; + * string client_id = 6 [(.google.api.field_behavior) = OPTIONAL]; * * @return The clientId. */ @@ -1919,19 +2038,20 @@ public java.lang.String getClientId() { return (java.lang.String) ref; } } + /** * * *
-     * A unique identifier that is used to distinguish client instances from each
-     * other. Only needs to be provided on the initial request. When a stream
-     * disconnects and reconnects for the same stream, the client_id should be set
-     * to the same value so that state associated with the old stream can be
-     * transferred to the new stream. The same client_id should not be used for
+     * Optional. A unique identifier that is used to distinguish client instances
+     * from each other. Only needs to be provided on the initial request. When a
+     * stream disconnects and reconnects for the same stream, the client_id should
+     * be set to the same value so that state associated with the old stream can
+     * be transferred to the new stream. The same client_id should not be used for
      * different client instances.
      * 
* - * string client_id = 6; + * string client_id = 6 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for clientId. */ @@ -1946,19 +2066,20 @@ public com.google.protobuf.ByteString getClientIdBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * A unique identifier that is used to distinguish client instances from each
-     * other. Only needs to be provided on the initial request. When a stream
-     * disconnects and reconnects for the same stream, the client_id should be set
-     * to the same value so that state associated with the old stream can be
-     * transferred to the new stream. The same client_id should not be used for
+     * Optional. A unique identifier that is used to distinguish client instances
+     * from each other. Only needs to be provided on the initial request. When a
+     * stream disconnects and reconnects for the same stream, the client_id should
+     * be set to the same value so that state associated with the old stream can
+     * be transferred to the new stream. The same client_id should not be used for
      * different client instances.
      * 
* - * string client_id = 6; + * string client_id = 6 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The clientId to set. * @return This builder for chaining. @@ -1972,19 +2093,20 @@ public Builder setClientId(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * A unique identifier that is used to distinguish client instances from each
-     * other. Only needs to be provided on the initial request. When a stream
-     * disconnects and reconnects for the same stream, the client_id should be set
-     * to the same value so that state associated with the old stream can be
-     * transferred to the new stream. The same client_id should not be used for
+     * Optional. A unique identifier that is used to distinguish client instances
+     * from each other. Only needs to be provided on the initial request. When a
+     * stream disconnects and reconnects for the same stream, the client_id should
+     * be set to the same value so that state associated with the old stream can
+     * be transferred to the new stream. The same client_id should not be used for
      * different client instances.
      * 
* - * string client_id = 6; + * string client_id = 6 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -1994,19 +2116,20 @@ public Builder clearClientId() { onChanged(); return this; } + /** * * *
-     * A unique identifier that is used to distinguish client instances from each
-     * other. Only needs to be provided on the initial request. When a stream
-     * disconnects and reconnects for the same stream, the client_id should be set
-     * to the same value so that state associated with the old stream can be
-     * transferred to the new stream. The same client_id should not be used for
+     * Optional. A unique identifier that is used to distinguish client instances
+     * from each other. Only needs to be provided on the initial request. When a
+     * stream disconnects and reconnects for the same stream, the client_id should
+     * be set to the same value so that state associated with the old stream can
+     * be transferred to the new stream. The same client_id should not be used for
      * different client instances.
      * 
* - * string client_id = 6; + * string client_id = 6 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for clientId to set. * @return This builder for chaining. @@ -2023,12 +2146,13 @@ public Builder setClientIdBytes(com.google.protobuf.ByteString value) { } private long maxOutstandingMessages_; + /** * * *
-     * Flow control settings for the maximum number of outstanding messages. When
-     * there are `max_outstanding_messages` or more currently sent to the
+     * Optional. Flow control settings for the maximum number of outstanding
+     * messages. When there are `max_outstanding_messages` currently sent to the
      * streaming pull client that have not yet been acked or nacked, the server
      * stops sending more messages. The sending of messages resumes once the
      * number of outstanding messages is less than this value. If the value is
@@ -2038,7 +2162,7 @@ public Builder setClientIdBytes(com.google.protobuf.ByteString value) {
      * `INVALID_ARGUMENT`.
      * 
* - * int64 max_outstanding_messages = 7; + * int64 max_outstanding_messages = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @return The maxOutstandingMessages. */ @@ -2046,12 +2170,13 @@ public Builder setClientIdBytes(com.google.protobuf.ByteString value) { public long getMaxOutstandingMessages() { return maxOutstandingMessages_; } + /** * * *
-     * Flow control settings for the maximum number of outstanding messages. When
-     * there are `max_outstanding_messages` or more currently sent to the
+     * Optional. Flow control settings for the maximum number of outstanding
+     * messages. When there are `max_outstanding_messages` currently sent to the
      * streaming pull client that have not yet been acked or nacked, the server
      * stops sending more messages. The sending of messages resumes once the
      * number of outstanding messages is less than this value. If the value is
@@ -2061,7 +2186,7 @@ public long getMaxOutstandingMessages() {
      * `INVALID_ARGUMENT`.
      * 
* - * int64 max_outstanding_messages = 7; + * int64 max_outstanding_messages = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The maxOutstandingMessages to set. * @return This builder for chaining. @@ -2073,12 +2198,13 @@ public Builder setMaxOutstandingMessages(long value) { onChanged(); return this; } + /** * * *
-     * Flow control settings for the maximum number of outstanding messages. When
-     * there are `max_outstanding_messages` or more currently sent to the
+     * Optional. Flow control settings for the maximum number of outstanding
+     * messages. When there are `max_outstanding_messages` currently sent to the
      * streaming pull client that have not yet been acked or nacked, the server
      * stops sending more messages. The sending of messages resumes once the
      * number of outstanding messages is less than this value. If the value is
@@ -2088,7 +2214,7 @@ public Builder setMaxOutstandingMessages(long value) {
      * `INVALID_ARGUMENT`.
      * 
* - * int64 max_outstanding_messages = 7; + * int64 max_outstanding_messages = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -2100,22 +2226,23 @@ public Builder clearMaxOutstandingMessages() { } private long maxOutstandingBytes_; + /** * * *
-     * Flow control settings for the maximum number of outstanding bytes. When
-     * there are `max_outstanding_bytes` or more worth of messages currently sent
-     * to the streaming pull client that have not yet been acked or nacked, the
-     * server will stop sending more messages. The sending of messages resumes
-     * once the number of outstanding bytes is less than this value. If the value
-     * is <= 0, there is no limit to the number of outstanding bytes. This
-     * property can only be set on the initial StreamingPullRequest. If it is set
-     * on a subsequent request, the stream will be aborted with status
+     * Optional. Flow control settings for the maximum number of outstanding
+     * bytes. When there are `max_outstanding_bytes` or more worth of messages
+     * currently sent to the streaming pull client that have not yet been acked or
+     * nacked, the server will stop sending more messages. The sending of messages
+     * resumes once the number of outstanding bytes is less than this value. If
+     * the value is <= 0, there is no limit to the number of outstanding bytes.
+     * This property can only be set on the initial StreamingPullRequest. If it is
+     * set on a subsequent request, the stream will be aborted with status
      * `INVALID_ARGUMENT`.
      * 
* - * int64 max_outstanding_bytes = 8; + * int64 max_outstanding_bytes = 8 [(.google.api.field_behavior) = OPTIONAL]; * * @return The maxOutstandingBytes. */ @@ -2123,22 +2250,23 @@ public Builder clearMaxOutstandingMessages() { public long getMaxOutstandingBytes() { return maxOutstandingBytes_; } + /** * * *
-     * Flow control settings for the maximum number of outstanding bytes. When
-     * there are `max_outstanding_bytes` or more worth of messages currently sent
-     * to the streaming pull client that have not yet been acked or nacked, the
-     * server will stop sending more messages. The sending of messages resumes
-     * once the number of outstanding bytes is less than this value. If the value
-     * is <= 0, there is no limit to the number of outstanding bytes. This
-     * property can only be set on the initial StreamingPullRequest. If it is set
-     * on a subsequent request, the stream will be aborted with status
+     * Optional. Flow control settings for the maximum number of outstanding
+     * bytes. When there are `max_outstanding_bytes` or more worth of messages
+     * currently sent to the streaming pull client that have not yet been acked or
+     * nacked, the server will stop sending more messages. The sending of messages
+     * resumes once the number of outstanding bytes is less than this value. If
+     * the value is <= 0, there is no limit to the number of outstanding bytes.
+     * This property can only be set on the initial StreamingPullRequest. If it is
+     * set on a subsequent request, the stream will be aborted with status
      * `INVALID_ARGUMENT`.
      * 
* - * int64 max_outstanding_bytes = 8; + * int64 max_outstanding_bytes = 8 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The maxOutstandingBytes to set. * @return This builder for chaining. @@ -2150,22 +2278,23 @@ public Builder setMaxOutstandingBytes(long value) { onChanged(); return this; } + /** * * *
-     * Flow control settings for the maximum number of outstanding bytes. When
-     * there are `max_outstanding_bytes` or more worth of messages currently sent
-     * to the streaming pull client that have not yet been acked or nacked, the
-     * server will stop sending more messages. The sending of messages resumes
-     * once the number of outstanding bytes is less than this value. If the value
-     * is <= 0, there is no limit to the number of outstanding bytes. This
-     * property can only be set on the initial StreamingPullRequest. If it is set
-     * on a subsequent request, the stream will be aborted with status
+     * Optional. Flow control settings for the maximum number of outstanding
+     * bytes. When there are `max_outstanding_bytes` or more worth of messages
+     * currently sent to the streaming pull client that have not yet been acked or
+     * nacked, the server will stop sending more messages. The sending of messages
+     * resumes once the number of outstanding bytes is less than this value. If
+     * the value is <= 0, there is no limit to the number of outstanding bytes.
+     * This property can only be set on the initial StreamingPullRequest. If it is
+     * set on a subsequent request, the stream will be aborted with status
      * `INVALID_ARGUMENT`.
      * 
* - * int64 max_outstanding_bytes = 8; + * int64 max_outstanding_bytes = 8 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -2176,6 +2305,68 @@ public Builder clearMaxOutstandingBytes() { return this; } + private long protocolVersion_; + + /** + * + * + *
+     * Optional. The protocol version used by the client. This property can only
+     * be set on the initial StreamingPullRequest. If it is set on a subsequent
+     * request, the stream will be aborted with status `INVALID_ARGUMENT`.
+     * 
+ * + * int64 protocol_version = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The protocolVersion. + */ + @java.lang.Override + public long getProtocolVersion() { + return protocolVersion_; + } + + /** + * + * + *
+     * Optional. The protocol version used by the client. This property can only
+     * be set on the initial StreamingPullRequest. If it is set on a subsequent
+     * request, the stream will be aborted with status `INVALID_ARGUMENT`.
+     * 
+ * + * int64 protocol_version = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The protocolVersion to set. + * @return This builder for chaining. + */ + public Builder setProtocolVersion(long value) { + + protocolVersion_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The protocol version used by the client. This property can only
+     * be set on the initial StreamingPullRequest. If it is set on a subsequent
+     * request, the stream will be aborted with status `INVALID_ARGUMENT`.
+     * 
+ * + * int64 protocol_version = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearProtocolVersion() { + bitField0_ = (bitField0_ & ~0x00000100); + protocolVersion_ = 0L; + onChanged(); + return this; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/StreamingPullRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/StreamingPullRequestOrBuilder.java index 1a8ca38b5..d23cb626e 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/StreamingPullRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/StreamingPullRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface StreamingPullRequestOrBuilder @@ -40,6 +41,7 @@ public interface StreamingPullRequestOrBuilder * @return The subscription. */ java.lang.String getSubscription(); + /** * * @@ -62,63 +64,66 @@ public interface StreamingPullRequestOrBuilder * * *
-   * List of acknowledgement IDs for acknowledging previously received messages
-   * (received on this stream or a different stream). If an ack ID has expired,
-   * the corresponding message may be redelivered later. Acknowledging a message
-   * more than once will not result in an error. If the acknowledgement ID is
-   * malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
+   * Optional. List of acknowledgment IDs for acknowledging previously received
+   * messages (received on this stream or a different stream). If an ack ID has
+   * expired, the corresponding message may be redelivered later. Acknowledging
+   * a message more than once will not result in an error. If the acknowledgment
+   * ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
    * 
* - * repeated string ack_ids = 2; + * repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the ackIds. */ java.util.List getAckIdsList(); + /** * * *
-   * List of acknowledgement IDs for acknowledging previously received messages
-   * (received on this stream or a different stream). If an ack ID has expired,
-   * the corresponding message may be redelivered later. Acknowledging a message
-   * more than once will not result in an error. If the acknowledgement ID is
-   * malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
+   * Optional. List of acknowledgment IDs for acknowledging previously received
+   * messages (received on this stream or a different stream). If an ack ID has
+   * expired, the corresponding message may be redelivered later. Acknowledging
+   * a message more than once will not result in an error. If the acknowledgment
+   * ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
    * 
* - * repeated string ack_ids = 2; + * repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of ackIds. */ int getAckIdsCount(); + /** * * *
-   * List of acknowledgement IDs for acknowledging previously received messages
-   * (received on this stream or a different stream). If an ack ID has expired,
-   * the corresponding message may be redelivered later. Acknowledging a message
-   * more than once will not result in an error. If the acknowledgement ID is
-   * malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
+   * Optional. List of acknowledgment IDs for acknowledging previously received
+   * messages (received on this stream or a different stream). If an ack ID has
+   * expired, the corresponding message may be redelivered later. Acknowledging
+   * a message more than once will not result in an error. If the acknowledgment
+   * ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
    * 
* - * repeated string ack_ids = 2; + * repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The ackIds at the given index. */ java.lang.String getAckIds(int index); + /** * * *
-   * List of acknowledgement IDs for acknowledging previously received messages
-   * (received on this stream or a different stream). If an ack ID has expired,
-   * the corresponding message may be redelivered later. Acknowledging a message
-   * more than once will not result in an error. If the acknowledgement ID is
-   * malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
+   * Optional. List of acknowledgment IDs for acknowledging previously received
+   * messages (received on this stream or a different stream). If an ack ID has
+   * expired, the corresponding message may be redelivered later. Acknowledging
+   * a message more than once will not result in an error. If the acknowledgment
+   * ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
    * 
* - * repeated string ack_ids = 2; + * repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the ackIds at the given index. @@ -129,7 +134,7 @@ public interface StreamingPullRequestOrBuilder * * *
-   * The list of new ack deadlines for the IDs listed in
+   * Optional. The list of new ack deadlines for the IDs listed in
    * `modify_deadline_ack_ids`. The size of this list must be the same as the
    * size of `modify_deadline_ack_ids`. If it differs the stream will be aborted
    * with `INVALID_ARGUMENT`. Each element in this list is applied to the
@@ -142,16 +147,18 @@ public interface StreamingPullRequestOrBuilder
    * be aborted with status `INVALID_ARGUMENT`.
    * 
* - * repeated int32 modify_deadline_seconds = 3; + * repeated int32 modify_deadline_seconds = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return A list containing the modifyDeadlineSeconds. */ java.util.List getModifyDeadlineSecondsList(); + /** * * *
-   * The list of new ack deadlines for the IDs listed in
+   * Optional. The list of new ack deadlines for the IDs listed in
    * `modify_deadline_ack_ids`. The size of this list must be the same as the
    * size of `modify_deadline_ack_ids`. If it differs the stream will be aborted
    * with `INVALID_ARGUMENT`. Each element in this list is applied to the
@@ -164,16 +171,18 @@ public interface StreamingPullRequestOrBuilder
    * be aborted with status `INVALID_ARGUMENT`.
    * 
* - * repeated int32 modify_deadline_seconds = 3; + * repeated int32 modify_deadline_seconds = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The count of modifyDeadlineSeconds. */ int getModifyDeadlineSecondsCount(); + /** * * *
-   * The list of new ack deadlines for the IDs listed in
+   * Optional. The list of new ack deadlines for the IDs listed in
    * `modify_deadline_ack_ids`. The size of this list must be the same as the
    * size of `modify_deadline_ack_ids`. If it differs the stream will be aborted
    * with `INVALID_ARGUMENT`. Each element in this list is applied to the
@@ -186,7 +195,8 @@ public interface StreamingPullRequestOrBuilder
    * be aborted with status `INVALID_ARGUMENT`.
    * 
* - * repeated int32 modify_deadline_seconds = 3; + * repeated int32 modify_deadline_seconds = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the element to return. * @return The modifyDeadlineSeconds at the given index. @@ -197,63 +207,70 @@ public interface StreamingPullRequestOrBuilder * * *
-   * List of acknowledgement IDs whose deadline will be modified based on the
-   * corresponding element in `modify_deadline_seconds`. This field can be used
-   * to indicate that more time is needed to process a message by the
+   * Optional. List of acknowledgment IDs whose deadline will be modified based
+   * on the corresponding element in `modify_deadline_seconds`. This field can
+   * be used to indicate that more time is needed to process a message by the
    * subscriber, or to make the message available for redelivery if the
    * processing was interrupted.
    * 
* - * repeated string modify_deadline_ack_ids = 4; + * repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return A list containing the modifyDeadlineAckIds. */ java.util.List getModifyDeadlineAckIdsList(); + /** * * *
-   * List of acknowledgement IDs whose deadline will be modified based on the
-   * corresponding element in `modify_deadline_seconds`. This field can be used
-   * to indicate that more time is needed to process a message by the
+   * Optional. List of acknowledgment IDs whose deadline will be modified based
+   * on the corresponding element in `modify_deadline_seconds`. This field can
+   * be used to indicate that more time is needed to process a message by the
    * subscriber, or to make the message available for redelivery if the
    * processing was interrupted.
    * 
* - * repeated string modify_deadline_ack_ids = 4; + * repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The count of modifyDeadlineAckIds. */ int getModifyDeadlineAckIdsCount(); + /** * * *
-   * List of acknowledgement IDs whose deadline will be modified based on the
-   * corresponding element in `modify_deadline_seconds`. This field can be used
-   * to indicate that more time is needed to process a message by the
+   * Optional. List of acknowledgment IDs whose deadline will be modified based
+   * on the corresponding element in `modify_deadline_seconds`. This field can
+   * be used to indicate that more time is needed to process a message by the
    * subscriber, or to make the message available for redelivery if the
    * processing was interrupted.
    * 
* - * repeated string modify_deadline_ack_ids = 4; + * repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the element to return. * @return The modifyDeadlineAckIds at the given index. */ java.lang.String getModifyDeadlineAckIds(int index); + /** * * *
-   * List of acknowledgement IDs whose deadline will be modified based on the
-   * corresponding element in `modify_deadline_seconds`. This field can be used
-   * to indicate that more time is needed to process a message by the
+   * Optional. List of acknowledgment IDs whose deadline will be modified based
+   * on the corresponding element in `modify_deadline_seconds`. This field can
+   * be used to indicate that more time is needed to process a message by the
    * subscriber, or to make the message available for redelivery if the
    * processing was interrupted.
    * 
* - * repeated string modify_deadline_ack_ids = 4; + * repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the value to return. * @return The bytes of the modifyDeadlineAckIds at the given index. @@ -280,32 +297,33 @@ public interface StreamingPullRequestOrBuilder * * *
-   * A unique identifier that is used to distinguish client instances from each
-   * other. Only needs to be provided on the initial request. When a stream
-   * disconnects and reconnects for the same stream, the client_id should be set
-   * to the same value so that state associated with the old stream can be
-   * transferred to the new stream. The same client_id should not be used for
+   * Optional. A unique identifier that is used to distinguish client instances
+   * from each other. Only needs to be provided on the initial request. When a
+   * stream disconnects and reconnects for the same stream, the client_id should
+   * be set to the same value so that state associated with the old stream can
+   * be transferred to the new stream. The same client_id should not be used for
    * different client instances.
    * 
* - * string client_id = 6; + * string client_id = 6 [(.google.api.field_behavior) = OPTIONAL]; * * @return The clientId. */ java.lang.String getClientId(); + /** * * *
-   * A unique identifier that is used to distinguish client instances from each
-   * other. Only needs to be provided on the initial request. When a stream
-   * disconnects and reconnects for the same stream, the client_id should be set
-   * to the same value so that state associated with the old stream can be
-   * transferred to the new stream. The same client_id should not be used for
+   * Optional. A unique identifier that is used to distinguish client instances
+   * from each other. Only needs to be provided on the initial request. When a
+   * stream disconnects and reconnects for the same stream, the client_id should
+   * be set to the same value so that state associated with the old stream can
+   * be transferred to the new stream. The same client_id should not be used for
    * different client instances.
    * 
* - * string client_id = 6; + * string client_id = 6 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for clientId. */ @@ -315,8 +333,8 @@ public interface StreamingPullRequestOrBuilder * * *
-   * Flow control settings for the maximum number of outstanding messages. When
-   * there are `max_outstanding_messages` or more currently sent to the
+   * Optional. Flow control settings for the maximum number of outstanding
+   * messages. When there are `max_outstanding_messages` currently sent to the
    * streaming pull client that have not yet been acked or nacked, the server
    * stops sending more messages. The sending of messages resumes once the
    * number of outstanding messages is less than this value. If the value is
@@ -326,7 +344,7 @@ public interface StreamingPullRequestOrBuilder
    * `INVALID_ARGUMENT`.
    * 
* - * int64 max_outstanding_messages = 7; + * int64 max_outstanding_messages = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @return The maxOutstandingMessages. */ @@ -336,20 +354,35 @@ public interface StreamingPullRequestOrBuilder * * *
-   * Flow control settings for the maximum number of outstanding bytes. When
-   * there are `max_outstanding_bytes` or more worth of messages currently sent
-   * to the streaming pull client that have not yet been acked or nacked, the
-   * server will stop sending more messages. The sending of messages resumes
-   * once the number of outstanding bytes is less than this value. If the value
-   * is <= 0, there is no limit to the number of outstanding bytes. This
-   * property can only be set on the initial StreamingPullRequest. If it is set
-   * on a subsequent request, the stream will be aborted with status
+   * Optional. Flow control settings for the maximum number of outstanding
+   * bytes. When there are `max_outstanding_bytes` or more worth of messages
+   * currently sent to the streaming pull client that have not yet been acked or
+   * nacked, the server will stop sending more messages. The sending of messages
+   * resumes once the number of outstanding bytes is less than this value. If
+   * the value is <= 0, there is no limit to the number of outstanding bytes.
+   * This property can only be set on the initial StreamingPullRequest. If it is
+   * set on a subsequent request, the stream will be aborted with status
    * `INVALID_ARGUMENT`.
    * 
* - * int64 max_outstanding_bytes = 8; + * int64 max_outstanding_bytes = 8 [(.google.api.field_behavior) = OPTIONAL]; * * @return The maxOutstandingBytes. */ long getMaxOutstandingBytes(); + + /** + * + * + *
+   * Optional. The protocol version used by the client. This property can only
+   * be set on the initial StreamingPullRequest. If it is set on a subsequent
+   * request, the stream will be aborted with status `INVALID_ARGUMENT`.
+   * 
+ * + * int64 protocol_version = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The protocolVersion. + */ + long getProtocolVersion(); } diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/StreamingPullResponse.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/StreamingPullResponse.java index 52505da10..bf36bc06f 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/StreamingPullResponse.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/StreamingPullResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -33,6 +34,7 @@ public final class StreamingPullResponse extends com.google.protobuf.GeneratedMe // @@protoc_insertion_point(message_implements:google.pubsub.v1.StreamingPullResponse) StreamingPullResponseOrBuilder { private static final long serialVersionUID = 0L; + // Use StreamingPullResponse.newBuilder() to construct. private StreamingPullResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -72,47 +74,50 @@ public interface AcknowledgeConfirmationOrBuilder * * *
-     * Successfully processed acknowledgement IDs.
+     * Optional. Successfully processed acknowledgment IDs.
      * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the ackIds. */ java.util.List getAckIdsList(); + /** * * *
-     * Successfully processed acknowledgement IDs.
+     * Optional. Successfully processed acknowledgment IDs.
      * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of ackIds. */ int getAckIdsCount(); + /** * * *
-     * Successfully processed acknowledgement IDs.
+     * Optional. Successfully processed acknowledgment IDs.
      * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The ackIds at the given index. */ java.lang.String getAckIds(int index); + /** * * *
-     * Successfully processed acknowledgement IDs.
+     * Optional. Successfully processed acknowledgment IDs.
      * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the ackIds at the given index. @@ -123,51 +128,54 @@ public interface AcknowledgeConfirmationOrBuilder * * *
-     * List of acknowledgement IDs that were malformed or whose acknowledgement
-     * deadline has expired.
+     * Optional. List of acknowledgment IDs that were malformed or whose
+     * acknowledgment deadline has expired.
      * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the invalidAckIds. */ java.util.List getInvalidAckIdsList(); + /** * * *
-     * List of acknowledgement IDs that were malformed or whose acknowledgement
-     * deadline has expired.
+     * Optional. List of acknowledgment IDs that were malformed or whose
+     * acknowledgment deadline has expired.
      * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of invalidAckIds. */ int getInvalidAckIdsCount(); + /** * * *
-     * List of acknowledgement IDs that were malformed or whose acknowledgement
-     * deadline has expired.
+     * Optional. List of acknowledgment IDs that were malformed or whose
+     * acknowledgment deadline has expired.
      * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The invalidAckIds at the given index. */ java.lang.String getInvalidAckIds(int index); + /** * * *
-     * List of acknowledgement IDs that were malformed or whose acknowledgement
-     * deadline has expired.
+     * Optional. List of acknowledgment IDs that were malformed or whose
+     * acknowledgment deadline has expired.
      * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the invalidAckIds at the given index. @@ -178,47 +186,50 @@ public interface AcknowledgeConfirmationOrBuilder * * *
-     * List of acknowledgement IDs that were out of order.
+     * Optional. List of acknowledgment IDs that were out of order.
      * 
* - * repeated string unordered_ack_ids = 3; + * repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the unorderedAckIds. */ java.util.List getUnorderedAckIdsList(); + /** * * *
-     * List of acknowledgement IDs that were out of order.
+     * Optional. List of acknowledgment IDs that were out of order.
      * 
* - * repeated string unordered_ack_ids = 3; + * repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of unorderedAckIds. */ int getUnorderedAckIdsCount(); + /** * * *
-     * List of acknowledgement IDs that were out of order.
+     * Optional. List of acknowledgment IDs that were out of order.
      * 
* - * repeated string unordered_ack_ids = 3; + * repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The unorderedAckIds at the given index. */ java.lang.String getUnorderedAckIds(int index); + /** * * *
-     * List of acknowledgement IDs that were out of order.
+     * Optional. List of acknowledgment IDs that were out of order.
      * 
* - * repeated string unordered_ack_ids = 3; + * repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the unorderedAckIds at the given index. @@ -229,58 +240,70 @@ public interface AcknowledgeConfirmationOrBuilder * * *
-     * List of acknowledgement IDs that failed processing with temporary issues.
+     * Optional. List of acknowledgment IDs that failed processing with
+     * temporary issues.
      * 
* - * repeated string temporary_failed_ack_ids = 4; + * repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return A list containing the temporaryFailedAckIds. */ java.util.List getTemporaryFailedAckIdsList(); + /** * * *
-     * List of acknowledgement IDs that failed processing with temporary issues.
+     * Optional. List of acknowledgment IDs that failed processing with
+     * temporary issues.
      * 
* - * repeated string temporary_failed_ack_ids = 4; + * repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The count of temporaryFailedAckIds. */ int getTemporaryFailedAckIdsCount(); + /** * * *
-     * List of acknowledgement IDs that failed processing with temporary issues.
+     * Optional. List of acknowledgment IDs that failed processing with
+     * temporary issues.
      * 
* - * repeated string temporary_failed_ack_ids = 4; + * repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the element to return. * @return The temporaryFailedAckIds at the given index. */ java.lang.String getTemporaryFailedAckIds(int index); + /** * * *
-     * List of acknowledgement IDs that failed processing with temporary issues.
+     * Optional. List of acknowledgment IDs that failed processing with
+     * temporary issues.
      * 
* - * repeated string temporary_failed_ack_ids = 4; + * repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the value to return. * @return The bytes of the temporaryFailedAckIds at the given index. */ com.google.protobuf.ByteString getTemporaryFailedAckIdsBytes(int index); } + /** * * *
-   * Acknowledgement IDs sent in one or more previous requests to acknowledge a
+   * Acknowledgment IDs sent in one or more previous requests to acknowledge a
    * previously received message.
    * 
* @@ -291,6 +314,7 @@ public static final class AcknowledgeConfirmation extends com.google.protobuf.Ge // @@protoc_insertion_point(message_implements:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation) AcknowledgeConfirmationOrBuilder { private static final long serialVersionUID = 0L; + // Use AcknowledgeConfirmation.newBuilder() to construct. private AcknowledgeConfirmation(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -329,42 +353,45 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList ackIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); + /** * * *
-     * Successfully processed acknowledgement IDs.
+     * Optional. Successfully processed acknowledgment IDs.
      * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the ackIds. */ public com.google.protobuf.ProtocolStringList getAckIdsList() { return ackIds_; } + /** * * *
-     * Successfully processed acknowledgement IDs.
+     * Optional. Successfully processed acknowledgment IDs.
      * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of ackIds. */ public int getAckIdsCount() { return ackIds_.size(); } + /** * * *
-     * Successfully processed acknowledgement IDs.
+     * Optional. Successfully processed acknowledgment IDs.
      * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The ackIds at the given index. @@ -372,14 +399,15 @@ public int getAckIdsCount() { public java.lang.String getAckIds(int index) { return ackIds_.get(index); } + /** * * *
-     * Successfully processed acknowledgement IDs.
+     * Optional. Successfully processed acknowledgment IDs.
      * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the ackIds at the given index. @@ -393,45 +421,48 @@ public com.google.protobuf.ByteString getAckIdsBytes(int index) { @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList invalidAckIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); + /** * * *
-     * List of acknowledgement IDs that were malformed or whose acknowledgement
-     * deadline has expired.
+     * Optional. List of acknowledgment IDs that were malformed or whose
+     * acknowledgment deadline has expired.
      * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the invalidAckIds. */ public com.google.protobuf.ProtocolStringList getInvalidAckIdsList() { return invalidAckIds_; } + /** * * *
-     * List of acknowledgement IDs that were malformed or whose acknowledgement
-     * deadline has expired.
+     * Optional. List of acknowledgment IDs that were malformed or whose
+     * acknowledgment deadline has expired.
      * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of invalidAckIds. */ public int getInvalidAckIdsCount() { return invalidAckIds_.size(); } + /** * * *
-     * List of acknowledgement IDs that were malformed or whose acknowledgement
-     * deadline has expired.
+     * Optional. List of acknowledgment IDs that were malformed or whose
+     * acknowledgment deadline has expired.
      * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The invalidAckIds at the given index. @@ -439,15 +470,16 @@ public int getInvalidAckIdsCount() { public java.lang.String getInvalidAckIds(int index) { return invalidAckIds_.get(index); } + /** * * *
-     * List of acknowledgement IDs that were malformed or whose acknowledgement
-     * deadline has expired.
+     * Optional. List of acknowledgment IDs that were malformed or whose
+     * acknowledgment deadline has expired.
      * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the invalidAckIds at the given index. @@ -461,42 +493,45 @@ public com.google.protobuf.ByteString getInvalidAckIdsBytes(int index) { @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList unorderedAckIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); + /** * * *
-     * List of acknowledgement IDs that were out of order.
+     * Optional. List of acknowledgment IDs that were out of order.
      * 
* - * repeated string unordered_ack_ids = 3; + * repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the unorderedAckIds. */ public com.google.protobuf.ProtocolStringList getUnorderedAckIdsList() { return unorderedAckIds_; } + /** * * *
-     * List of acknowledgement IDs that were out of order.
+     * Optional. List of acknowledgment IDs that were out of order.
      * 
* - * repeated string unordered_ack_ids = 3; + * repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of unorderedAckIds. */ public int getUnorderedAckIdsCount() { return unorderedAckIds_.size(); } + /** * * *
-     * List of acknowledgement IDs that were out of order.
+     * Optional. List of acknowledgment IDs that were out of order.
      * 
* - * repeated string unordered_ack_ids = 3; + * repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The unorderedAckIds at the given index. @@ -504,14 +539,15 @@ public int getUnorderedAckIdsCount() { public java.lang.String getUnorderedAckIds(int index) { return unorderedAckIds_.get(index); } + /** * * *
-     * List of acknowledgement IDs that were out of order.
+     * Optional. List of acknowledgment IDs that were out of order.
      * 
* - * repeated string unordered_ack_ids = 3; + * repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the unorderedAckIds at the given index. @@ -525,42 +561,51 @@ public com.google.protobuf.ByteString getUnorderedAckIdsBytes(int index) { @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList temporaryFailedAckIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); + /** * * *
-     * List of acknowledgement IDs that failed processing with temporary issues.
+     * Optional. List of acknowledgment IDs that failed processing with
+     * temporary issues.
      * 
* - * repeated string temporary_failed_ack_ids = 4; + * repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return A list containing the temporaryFailedAckIds. */ public com.google.protobuf.ProtocolStringList getTemporaryFailedAckIdsList() { return temporaryFailedAckIds_; } + /** * * *
-     * List of acknowledgement IDs that failed processing with temporary issues.
+     * Optional. List of acknowledgment IDs that failed processing with
+     * temporary issues.
      * 
* - * repeated string temporary_failed_ack_ids = 4; + * repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The count of temporaryFailedAckIds. */ public int getTemporaryFailedAckIdsCount() { return temporaryFailedAckIds_.size(); } + /** * * *
-     * List of acknowledgement IDs that failed processing with temporary issues.
+     * Optional. List of acknowledgment IDs that failed processing with
+     * temporary issues.
      * 
* - * repeated string temporary_failed_ack_ids = 4; + * repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the element to return. * @return The temporaryFailedAckIds at the given index. @@ -568,14 +613,17 @@ public int getTemporaryFailedAckIdsCount() { public java.lang.String getTemporaryFailedAckIds(int index) { return temporaryFailedAckIds_.get(index); } + /** * * *
-     * List of acknowledgement IDs that failed processing with temporary issues.
+     * Optional. List of acknowledgment IDs that failed processing with
+     * temporary issues.
      * 
* - * repeated string temporary_failed_ack_ids = 4; + * repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the value to return. * @return The bytes of the temporaryFailedAckIds at the given index. @@ -803,11 +851,12 @@ protected Builder newBuilderForType( Builder builder = new Builder(parent); return builder; } + /** * * *
-     * Acknowledgement IDs sent in one or more previous requests to acknowledge a
+     * Acknowledgment IDs sent in one or more previous requests to acknowledge a
      * previously received message.
      * 
* @@ -1079,14 +1128,15 @@ private void ensureAckIdsIsMutable() { } bitField0_ |= 0x00000001; } + /** * * *
-       * Successfully processed acknowledgement IDs.
+       * Optional. Successfully processed acknowledgment IDs.
        * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the ackIds. */ @@ -1094,28 +1144,30 @@ public com.google.protobuf.ProtocolStringList getAckIdsList() { ackIds_.makeImmutable(); return ackIds_; } + /** * * *
-       * Successfully processed acknowledgement IDs.
+       * Optional. Successfully processed acknowledgment IDs.
        * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of ackIds. */ public int getAckIdsCount() { return ackIds_.size(); } + /** * * *
-       * Successfully processed acknowledgement IDs.
+       * Optional. Successfully processed acknowledgment IDs.
        * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The ackIds at the given index. @@ -1123,14 +1175,15 @@ public int getAckIdsCount() { public java.lang.String getAckIds(int index) { return ackIds_.get(index); } + /** * * *
-       * Successfully processed acknowledgement IDs.
+       * Optional. Successfully processed acknowledgment IDs.
        * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the ackIds at the given index. @@ -1138,14 +1191,15 @@ public java.lang.String getAckIds(int index) { public com.google.protobuf.ByteString getAckIdsBytes(int index) { return ackIds_.getByteString(index); } + /** * * *
-       * Successfully processed acknowledgement IDs.
+       * Optional. Successfully processed acknowledgment IDs.
        * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index to set the value at. * @param value The ackIds to set. @@ -1161,14 +1215,15 @@ public Builder setAckIds(int index, java.lang.String value) { onChanged(); return this; } + /** * * *
-       * Successfully processed acknowledgement IDs.
+       * Optional. Successfully processed acknowledgment IDs.
        * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The ackIds to add. * @return This builder for chaining. @@ -1183,14 +1238,15 @@ public Builder addAckIds(java.lang.String value) { onChanged(); return this; } + /** * * *
-       * Successfully processed acknowledgement IDs.
+       * Optional. Successfully processed acknowledgment IDs.
        * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param values The ackIds to add. * @return This builder for chaining. @@ -1202,14 +1258,15 @@ public Builder addAllAckIds(java.lang.Iterable values) { onChanged(); return this; } + /** * * *
-       * Successfully processed acknowledgement IDs.
+       * Optional. Successfully processed acknowledgment IDs.
        * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -1220,14 +1277,15 @@ public Builder clearAckIds() { onChanged(); return this; } + /** * * *
-       * Successfully processed acknowledgement IDs.
+       * Optional. Successfully processed acknowledgment IDs.
        * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes of the ackIds to add. * @return This builder for chaining. @@ -1253,15 +1311,16 @@ private void ensureInvalidAckIdsIsMutable() { } bitField0_ |= 0x00000002; } + /** * * *
-       * List of acknowledgement IDs that were malformed or whose acknowledgement
-       * deadline has expired.
+       * Optional. List of acknowledgment IDs that were malformed or whose
+       * acknowledgment deadline has expired.
        * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the invalidAckIds. */ @@ -1269,30 +1328,32 @@ public com.google.protobuf.ProtocolStringList getInvalidAckIdsList() { invalidAckIds_.makeImmutable(); return invalidAckIds_; } + /** * * *
-       * List of acknowledgement IDs that were malformed or whose acknowledgement
-       * deadline has expired.
+       * Optional. List of acknowledgment IDs that were malformed or whose
+       * acknowledgment deadline has expired.
        * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of invalidAckIds. */ public int getInvalidAckIdsCount() { return invalidAckIds_.size(); } + /** * * *
-       * List of acknowledgement IDs that were malformed or whose acknowledgement
-       * deadline has expired.
+       * Optional. List of acknowledgment IDs that were malformed or whose
+       * acknowledgment deadline has expired.
        * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The invalidAckIds at the given index. @@ -1300,15 +1361,16 @@ public int getInvalidAckIdsCount() { public java.lang.String getInvalidAckIds(int index) { return invalidAckIds_.get(index); } + /** * * *
-       * List of acknowledgement IDs that were malformed or whose acknowledgement
-       * deadline has expired.
+       * Optional. List of acknowledgment IDs that were malformed or whose
+       * acknowledgment deadline has expired.
        * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the invalidAckIds at the given index. @@ -1316,15 +1378,16 @@ public java.lang.String getInvalidAckIds(int index) { public com.google.protobuf.ByteString getInvalidAckIdsBytes(int index) { return invalidAckIds_.getByteString(index); } + /** * * *
-       * List of acknowledgement IDs that were malformed or whose acknowledgement
-       * deadline has expired.
+       * Optional. List of acknowledgment IDs that were malformed or whose
+       * acknowledgment deadline has expired.
        * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index to set the value at. * @param value The invalidAckIds to set. @@ -1340,15 +1403,16 @@ public Builder setInvalidAckIds(int index, java.lang.String value) { onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that were malformed or whose acknowledgement
-       * deadline has expired.
+       * Optional. List of acknowledgment IDs that were malformed or whose
+       * acknowledgment deadline has expired.
        * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The invalidAckIds to add. * @return This builder for chaining. @@ -1363,15 +1427,16 @@ public Builder addInvalidAckIds(java.lang.String value) { onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that were malformed or whose acknowledgement
-       * deadline has expired.
+       * Optional. List of acknowledgment IDs that were malformed or whose
+       * acknowledgment deadline has expired.
        * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param values The invalidAckIds to add. * @return This builder for chaining. @@ -1383,15 +1448,16 @@ public Builder addAllInvalidAckIds(java.lang.Iterable values) onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that were malformed or whose acknowledgement
-       * deadline has expired.
+       * Optional. List of acknowledgment IDs that were malformed or whose
+       * acknowledgment deadline has expired.
        * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -1402,15 +1468,16 @@ public Builder clearInvalidAckIds() { onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that were malformed or whose acknowledgement
-       * deadline has expired.
+       * Optional. List of acknowledgment IDs that were malformed or whose
+       * acknowledgment deadline has expired.
        * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes of the invalidAckIds to add. * @return This builder for chaining. @@ -1436,14 +1503,16 @@ private void ensureUnorderedAckIdsIsMutable() { } bitField0_ |= 0x00000004; } + /** * * *
-       * List of acknowledgement IDs that were out of order.
+       * Optional. List of acknowledgment IDs that were out of order.
        * 
* - * repeated string unordered_ack_ids = 3; + * repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return A list containing the unorderedAckIds. */ @@ -1451,28 +1520,32 @@ public com.google.protobuf.ProtocolStringList getUnorderedAckIdsList() { unorderedAckIds_.makeImmutable(); return unorderedAckIds_; } + /** * * *
-       * List of acknowledgement IDs that were out of order.
+       * Optional. List of acknowledgment IDs that were out of order.
        * 
* - * repeated string unordered_ack_ids = 3; + * repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The count of unorderedAckIds. */ public int getUnorderedAckIdsCount() { return unorderedAckIds_.size(); } + /** * * *
-       * List of acknowledgement IDs that were out of order.
+       * Optional. List of acknowledgment IDs that were out of order.
        * 
* - * repeated string unordered_ack_ids = 3; + * repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the element to return. * @return The unorderedAckIds at the given index. @@ -1480,14 +1553,16 @@ public int getUnorderedAckIdsCount() { public java.lang.String getUnorderedAckIds(int index) { return unorderedAckIds_.get(index); } + /** * * *
-       * List of acknowledgement IDs that were out of order.
+       * Optional. List of acknowledgment IDs that were out of order.
        * 
* - * repeated string unordered_ack_ids = 3; + * repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the value to return. * @return The bytes of the unorderedAckIds at the given index. @@ -1495,14 +1570,16 @@ public java.lang.String getUnorderedAckIds(int index) { public com.google.protobuf.ByteString getUnorderedAckIdsBytes(int index) { return unorderedAckIds_.getByteString(index); } + /** * * *
-       * List of acknowledgement IDs that were out of order.
+       * Optional. List of acknowledgment IDs that were out of order.
        * 
* - * repeated string unordered_ack_ids = 3; + * repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index to set the value at. * @param value The unorderedAckIds to set. @@ -1518,14 +1595,16 @@ public Builder setUnorderedAckIds(int index, java.lang.String value) { onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that were out of order.
+       * Optional. List of acknowledgment IDs that were out of order.
        * 
* - * repeated string unordered_ack_ids = 3; + * repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param value The unorderedAckIds to add. * @return This builder for chaining. @@ -1540,14 +1619,16 @@ public Builder addUnorderedAckIds(java.lang.String value) { onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that were out of order.
+       * Optional. List of acknowledgment IDs that were out of order.
        * 
* - * repeated string unordered_ack_ids = 3; + * repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param values The unorderedAckIds to add. * @return This builder for chaining. @@ -1559,14 +1640,16 @@ public Builder addAllUnorderedAckIds(java.lang.Iterable values onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that were out of order.
+       * Optional. List of acknowledgment IDs that were out of order.
        * 
* - * repeated string unordered_ack_ids = 3; + * repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return This builder for chaining. */ @@ -1577,14 +1660,16 @@ public Builder clearUnorderedAckIds() { onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that were out of order.
+       * Optional. List of acknowledgment IDs that were out of order.
        * 
* - * repeated string unordered_ack_ids = 3; + * repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param value The bytes of the unorderedAckIds to add. * @return This builder for chaining. @@ -1611,14 +1696,18 @@ private void ensureTemporaryFailedAckIdsIsMutable() { } bitField0_ |= 0x00000008; } + /** * * *
-       * List of acknowledgement IDs that failed processing with temporary issues.
+       * Optional. List of acknowledgment IDs that failed processing with
+       * temporary issues.
        * 
* - * repeated string temporary_failed_ack_ids = 4; + * + * repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return A list containing the temporaryFailedAckIds. */ @@ -1626,28 +1715,36 @@ public com.google.protobuf.ProtocolStringList getTemporaryFailedAckIdsList() { temporaryFailedAckIds_.makeImmutable(); return temporaryFailedAckIds_; } + /** * * *
-       * List of acknowledgement IDs that failed processing with temporary issues.
+       * Optional. List of acknowledgment IDs that failed processing with
+       * temporary issues.
        * 
* - * repeated string temporary_failed_ack_ids = 4; + * + * repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The count of temporaryFailedAckIds. */ public int getTemporaryFailedAckIdsCount() { return temporaryFailedAckIds_.size(); } + /** * * *
-       * List of acknowledgement IDs that failed processing with temporary issues.
+       * Optional. List of acknowledgment IDs that failed processing with
+       * temporary issues.
        * 
* - * repeated string temporary_failed_ack_ids = 4; + * + * repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the element to return. * @return The temporaryFailedAckIds at the given index. @@ -1655,14 +1752,18 @@ public int getTemporaryFailedAckIdsCount() { public java.lang.String getTemporaryFailedAckIds(int index) { return temporaryFailedAckIds_.get(index); } + /** * * *
-       * List of acknowledgement IDs that failed processing with temporary issues.
+       * Optional. List of acknowledgment IDs that failed processing with
+       * temporary issues.
        * 
* - * repeated string temporary_failed_ack_ids = 4; + * + * repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the value to return. * @return The bytes of the temporaryFailedAckIds at the given index. @@ -1670,14 +1771,18 @@ public java.lang.String getTemporaryFailedAckIds(int index) { public com.google.protobuf.ByteString getTemporaryFailedAckIdsBytes(int index) { return temporaryFailedAckIds_.getByteString(index); } + /** * * *
-       * List of acknowledgement IDs that failed processing with temporary issues.
+       * Optional. List of acknowledgment IDs that failed processing with
+       * temporary issues.
        * 
* - * repeated string temporary_failed_ack_ids = 4; + * + * repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index to set the value at. * @param value The temporaryFailedAckIds to set. @@ -1693,14 +1798,18 @@ public Builder setTemporaryFailedAckIds(int index, java.lang.String value) { onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that failed processing with temporary issues.
+       * Optional. List of acknowledgment IDs that failed processing with
+       * temporary issues.
        * 
* - * repeated string temporary_failed_ack_ids = 4; + * + * repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param value The temporaryFailedAckIds to add. * @return This builder for chaining. @@ -1715,14 +1824,18 @@ public Builder addTemporaryFailedAckIds(java.lang.String value) { onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that failed processing with temporary issues.
+       * Optional. List of acknowledgment IDs that failed processing with
+       * temporary issues.
        * 
* - * repeated string temporary_failed_ack_ids = 4; + * + * repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param values The temporaryFailedAckIds to add. * @return This builder for chaining. @@ -1734,14 +1847,18 @@ public Builder addAllTemporaryFailedAckIds(java.lang.Iterable onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that failed processing with temporary issues.
+       * Optional. List of acknowledgment IDs that failed processing with
+       * temporary issues.
        * 
* - * repeated string temporary_failed_ack_ids = 4; + * + * repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return This builder for chaining. */ @@ -1752,14 +1869,18 @@ public Builder clearTemporaryFailedAckIds() { onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that failed processing with temporary issues.
+       * Optional. List of acknowledgment IDs that failed processing with
+       * temporary issues.
        * 
* - * repeated string temporary_failed_ack_ids = 4; + * + * repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param value The bytes of the temporaryFailedAckIds to add. * @return This builder for chaining. @@ -1852,47 +1973,50 @@ public interface ModifyAckDeadlineConfirmationOrBuilder * * *
-     * Successfully processed acknowledgement IDs.
+     * Optional. Successfully processed acknowledgment IDs.
      * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the ackIds. */ java.util.List getAckIdsList(); + /** * * *
-     * Successfully processed acknowledgement IDs.
+     * Optional. Successfully processed acknowledgment IDs.
      * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of ackIds. */ int getAckIdsCount(); + /** * * *
-     * Successfully processed acknowledgement IDs.
+     * Optional. Successfully processed acknowledgment IDs.
      * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The ackIds at the given index. */ java.lang.String getAckIds(int index); + /** * * *
-     * Successfully processed acknowledgement IDs.
+     * Optional. Successfully processed acknowledgment IDs.
      * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the ackIds at the given index. @@ -1903,51 +2027,54 @@ public interface ModifyAckDeadlineConfirmationOrBuilder * * *
-     * List of acknowledgement IDs that were malformed or whose acknowledgement
-     * deadline has expired.
+     * Optional. List of acknowledgment IDs that were malformed or whose
+     * acknowledgment deadline has expired.
      * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the invalidAckIds. */ java.util.List getInvalidAckIdsList(); + /** * * *
-     * List of acknowledgement IDs that were malformed or whose acknowledgement
-     * deadline has expired.
+     * Optional. List of acknowledgment IDs that were malformed or whose
+     * acknowledgment deadline has expired.
      * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of invalidAckIds. */ int getInvalidAckIdsCount(); + /** * * *
-     * List of acknowledgement IDs that were malformed or whose acknowledgement
-     * deadline has expired.
+     * Optional. List of acknowledgment IDs that were malformed or whose
+     * acknowledgment deadline has expired.
      * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The invalidAckIds at the given index. */ java.lang.String getInvalidAckIds(int index); + /** * * *
-     * List of acknowledgement IDs that were malformed or whose acknowledgement
-     * deadline has expired.
+     * Optional. List of acknowledgment IDs that were malformed or whose
+     * acknowledgment deadline has expired.
      * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the invalidAckIds at the given index. @@ -1958,58 +2085,70 @@ public interface ModifyAckDeadlineConfirmationOrBuilder * * *
-     * List of acknowledgement IDs that failed processing with temporary issues.
+     * Optional. List of acknowledgment IDs that failed processing with
+     * temporary issues.
      * 
* - * repeated string temporary_failed_ack_ids = 3; + * repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return A list containing the temporaryFailedAckIds. */ java.util.List getTemporaryFailedAckIdsList(); + /** * * *
-     * List of acknowledgement IDs that failed processing with temporary issues.
+     * Optional. List of acknowledgment IDs that failed processing with
+     * temporary issues.
      * 
* - * repeated string temporary_failed_ack_ids = 3; + * repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The count of temporaryFailedAckIds. */ int getTemporaryFailedAckIdsCount(); + /** * * *
-     * List of acknowledgement IDs that failed processing with temporary issues.
+     * Optional. List of acknowledgment IDs that failed processing with
+     * temporary issues.
      * 
* - * repeated string temporary_failed_ack_ids = 3; + * repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the element to return. * @return The temporaryFailedAckIds at the given index. */ java.lang.String getTemporaryFailedAckIds(int index); + /** * * *
-     * List of acknowledgement IDs that failed processing with temporary issues.
+     * Optional. List of acknowledgment IDs that failed processing with
+     * temporary issues.
      * 
* - * repeated string temporary_failed_ack_ids = 3; + * repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the value to return. * @return The bytes of the temporaryFailedAckIds at the given index. */ com.google.protobuf.ByteString getTemporaryFailedAckIdsBytes(int index); } + /** * * *
-   * Acknowledgement IDs sent in one or more previous requests to modify the
+   * Acknowledgment IDs sent in one or more previous requests to modify the
    * deadline for a specific message.
    * 
* @@ -2021,6 +2160,7 @@ public static final class ModifyAckDeadlineConfirmation // @@protoc_insertion_point(message_implements:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation) ModifyAckDeadlineConfirmationOrBuilder { private static final long serialVersionUID = 0L; + // Use ModifyAckDeadlineConfirmation.newBuilder() to construct. private ModifyAckDeadlineConfirmation( com.google.protobuf.GeneratedMessageV3.Builder builder) { @@ -2060,42 +2200,45 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList ackIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); + /** * * *
-     * Successfully processed acknowledgement IDs.
+     * Optional. Successfully processed acknowledgment IDs.
      * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the ackIds. */ public com.google.protobuf.ProtocolStringList getAckIdsList() { return ackIds_; } + /** * * *
-     * Successfully processed acknowledgement IDs.
+     * Optional. Successfully processed acknowledgment IDs.
      * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of ackIds. */ public int getAckIdsCount() { return ackIds_.size(); } + /** * * *
-     * Successfully processed acknowledgement IDs.
+     * Optional. Successfully processed acknowledgment IDs.
      * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The ackIds at the given index. @@ -2103,14 +2246,15 @@ public int getAckIdsCount() { public java.lang.String getAckIds(int index) { return ackIds_.get(index); } + /** * * *
-     * Successfully processed acknowledgement IDs.
+     * Optional. Successfully processed acknowledgment IDs.
      * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the ackIds at the given index. @@ -2124,45 +2268,48 @@ public com.google.protobuf.ByteString getAckIdsBytes(int index) { @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList invalidAckIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); + /** * * *
-     * List of acknowledgement IDs that were malformed or whose acknowledgement
-     * deadline has expired.
+     * Optional. List of acknowledgment IDs that were malformed or whose
+     * acknowledgment deadline has expired.
      * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the invalidAckIds. */ public com.google.protobuf.ProtocolStringList getInvalidAckIdsList() { return invalidAckIds_; } + /** * * *
-     * List of acknowledgement IDs that were malformed or whose acknowledgement
-     * deadline has expired.
+     * Optional. List of acknowledgment IDs that were malformed or whose
+     * acknowledgment deadline has expired.
      * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of invalidAckIds. */ public int getInvalidAckIdsCount() { return invalidAckIds_.size(); } + /** * * *
-     * List of acknowledgement IDs that were malformed or whose acknowledgement
-     * deadline has expired.
+     * Optional. List of acknowledgment IDs that were malformed or whose
+     * acknowledgment deadline has expired.
      * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The invalidAckIds at the given index. @@ -2170,15 +2317,16 @@ public int getInvalidAckIdsCount() { public java.lang.String getInvalidAckIds(int index) { return invalidAckIds_.get(index); } + /** * * *
-     * List of acknowledgement IDs that were malformed or whose acknowledgement
-     * deadline has expired.
+     * Optional. List of acknowledgment IDs that were malformed or whose
+     * acknowledgment deadline has expired.
      * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the invalidAckIds at the given index. @@ -2192,42 +2340,51 @@ public com.google.protobuf.ByteString getInvalidAckIdsBytes(int index) { @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList temporaryFailedAckIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); + /** * * *
-     * List of acknowledgement IDs that failed processing with temporary issues.
+     * Optional. List of acknowledgment IDs that failed processing with
+     * temporary issues.
      * 
* - * repeated string temporary_failed_ack_ids = 3; + * repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return A list containing the temporaryFailedAckIds. */ public com.google.protobuf.ProtocolStringList getTemporaryFailedAckIdsList() { return temporaryFailedAckIds_; } + /** * * *
-     * List of acknowledgement IDs that failed processing with temporary issues.
+     * Optional. List of acknowledgment IDs that failed processing with
+     * temporary issues.
      * 
* - * repeated string temporary_failed_ack_ids = 3; + * repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The count of temporaryFailedAckIds. */ public int getTemporaryFailedAckIdsCount() { return temporaryFailedAckIds_.size(); } + /** * * *
-     * List of acknowledgement IDs that failed processing with temporary issues.
+     * Optional. List of acknowledgment IDs that failed processing with
+     * temporary issues.
      * 
* - * repeated string temporary_failed_ack_ids = 3; + * repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the element to return. * @return The temporaryFailedAckIds at the given index. @@ -2235,14 +2392,17 @@ public int getTemporaryFailedAckIdsCount() { public java.lang.String getTemporaryFailedAckIds(int index) { return temporaryFailedAckIds_.get(index); } + /** * * *
-     * List of acknowledgement IDs that failed processing with temporary issues.
+     * Optional. List of acknowledgment IDs that failed processing with
+     * temporary issues.
      * 
* - * repeated string temporary_failed_ack_ids = 3; + * repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the value to return. * @return The bytes of the temporaryFailedAckIds at the given index. @@ -2460,11 +2620,12 @@ protected Builder newBuilderForType( Builder builder = new Builder(parent); return builder; } + /** * * *
-     * Acknowledgement IDs sent in one or more previous requests to modify the
+     * Acknowledgment IDs sent in one or more previous requests to modify the
      * deadline for a specific message.
      * 
* @@ -2718,14 +2879,15 @@ private void ensureAckIdsIsMutable() { } bitField0_ |= 0x00000001; } + /** * * *
-       * Successfully processed acknowledgement IDs.
+       * Optional. Successfully processed acknowledgment IDs.
        * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the ackIds. */ @@ -2733,28 +2895,30 @@ public com.google.protobuf.ProtocolStringList getAckIdsList() { ackIds_.makeImmutable(); return ackIds_; } + /** * * *
-       * Successfully processed acknowledgement IDs.
+       * Optional. Successfully processed acknowledgment IDs.
        * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of ackIds. */ public int getAckIdsCount() { return ackIds_.size(); } + /** * * *
-       * Successfully processed acknowledgement IDs.
+       * Optional. Successfully processed acknowledgment IDs.
        * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The ackIds at the given index. @@ -2762,14 +2926,15 @@ public int getAckIdsCount() { public java.lang.String getAckIds(int index) { return ackIds_.get(index); } + /** * * *
-       * Successfully processed acknowledgement IDs.
+       * Optional. Successfully processed acknowledgment IDs.
        * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the ackIds at the given index. @@ -2777,14 +2942,15 @@ public java.lang.String getAckIds(int index) { public com.google.protobuf.ByteString getAckIdsBytes(int index) { return ackIds_.getByteString(index); } + /** * * *
-       * Successfully processed acknowledgement IDs.
+       * Optional. Successfully processed acknowledgment IDs.
        * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index to set the value at. * @param value The ackIds to set. @@ -2800,14 +2966,15 @@ public Builder setAckIds(int index, java.lang.String value) { onChanged(); return this; } + /** * * *
-       * Successfully processed acknowledgement IDs.
+       * Optional. Successfully processed acknowledgment IDs.
        * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The ackIds to add. * @return This builder for chaining. @@ -2822,14 +2989,15 @@ public Builder addAckIds(java.lang.String value) { onChanged(); return this; } + /** * * *
-       * Successfully processed acknowledgement IDs.
+       * Optional. Successfully processed acknowledgment IDs.
        * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param values The ackIds to add. * @return This builder for chaining. @@ -2841,14 +3009,15 @@ public Builder addAllAckIds(java.lang.Iterable values) { onChanged(); return this; } + /** * * *
-       * Successfully processed acknowledgement IDs.
+       * Optional. Successfully processed acknowledgment IDs.
        * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -2859,14 +3028,15 @@ public Builder clearAckIds() { onChanged(); return this; } + /** * * *
-       * Successfully processed acknowledgement IDs.
+       * Optional. Successfully processed acknowledgment IDs.
        * 
* - * repeated string ack_ids = 1; + * repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes of the ackIds to add. * @return This builder for chaining. @@ -2892,15 +3062,16 @@ private void ensureInvalidAckIdsIsMutable() { } bitField0_ |= 0x00000002; } + /** * * *
-       * List of acknowledgement IDs that were malformed or whose acknowledgement
-       * deadline has expired.
+       * Optional. List of acknowledgment IDs that were malformed or whose
+       * acknowledgment deadline has expired.
        * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return A list containing the invalidAckIds. */ @@ -2908,30 +3079,32 @@ public com.google.protobuf.ProtocolStringList getInvalidAckIdsList() { invalidAckIds_.makeImmutable(); return invalidAckIds_; } + /** * * *
-       * List of acknowledgement IDs that were malformed or whose acknowledgement
-       * deadline has expired.
+       * Optional. List of acknowledgment IDs that were malformed or whose
+       * acknowledgment deadline has expired.
        * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The count of invalidAckIds. */ public int getInvalidAckIdsCount() { return invalidAckIds_.size(); } + /** * * *
-       * List of acknowledgement IDs that were malformed or whose acknowledgement
-       * deadline has expired.
+       * Optional. List of acknowledgment IDs that were malformed or whose
+       * acknowledgment deadline has expired.
        * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the element to return. * @return The invalidAckIds at the given index. @@ -2939,15 +3112,16 @@ public int getInvalidAckIdsCount() { public java.lang.String getInvalidAckIds(int index) { return invalidAckIds_.get(index); } + /** * * *
-       * List of acknowledgement IDs that were malformed or whose acknowledgement
-       * deadline has expired.
+       * Optional. List of acknowledgment IDs that were malformed or whose
+       * acknowledgment deadline has expired.
        * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index of the value to return. * @return The bytes of the invalidAckIds at the given index. @@ -2955,15 +3129,16 @@ public java.lang.String getInvalidAckIds(int index) { public com.google.protobuf.ByteString getInvalidAckIdsBytes(int index) { return invalidAckIds_.getByteString(index); } + /** * * *
-       * List of acknowledgement IDs that were malformed or whose acknowledgement
-       * deadline has expired.
+       * Optional. List of acknowledgment IDs that were malformed or whose
+       * acknowledgment deadline has expired.
        * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param index The index to set the value at. * @param value The invalidAckIds to set. @@ -2979,15 +3154,16 @@ public Builder setInvalidAckIds(int index, java.lang.String value) { onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that were malformed or whose acknowledgement
-       * deadline has expired.
+       * Optional. List of acknowledgment IDs that were malformed or whose
+       * acknowledgment deadline has expired.
        * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The invalidAckIds to add. * @return This builder for chaining. @@ -3002,15 +3178,16 @@ public Builder addInvalidAckIds(java.lang.String value) { onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that were malformed or whose acknowledgement
-       * deadline has expired.
+       * Optional. List of acknowledgment IDs that were malformed or whose
+       * acknowledgment deadline has expired.
        * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param values The invalidAckIds to add. * @return This builder for chaining. @@ -3022,15 +3199,16 @@ public Builder addAllInvalidAckIds(java.lang.Iterable values) onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that were malformed or whose acknowledgement
-       * deadline has expired.
+       * Optional. List of acknowledgment IDs that were malformed or whose
+       * acknowledgment deadline has expired.
        * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -3041,15 +3219,16 @@ public Builder clearInvalidAckIds() { onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that were malformed or whose acknowledgement
-       * deadline has expired.
+       * Optional. List of acknowledgment IDs that were malformed or whose
+       * acknowledgment deadline has expired.
        * 
* - * repeated string invalid_ack_ids = 2; + * repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes of the invalidAckIds to add. * @return This builder for chaining. @@ -3076,14 +3255,18 @@ private void ensureTemporaryFailedAckIdsIsMutable() { } bitField0_ |= 0x00000004; } + /** * * *
-       * List of acknowledgement IDs that failed processing with temporary issues.
+       * Optional. List of acknowledgment IDs that failed processing with
+       * temporary issues.
        * 
* - * repeated string temporary_failed_ack_ids = 3; + * + * repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return A list containing the temporaryFailedAckIds. */ @@ -3091,28 +3274,36 @@ public com.google.protobuf.ProtocolStringList getTemporaryFailedAckIdsList() { temporaryFailedAckIds_.makeImmutable(); return temporaryFailedAckIds_; } + /** * * *
-       * List of acknowledgement IDs that failed processing with temporary issues.
+       * Optional. List of acknowledgment IDs that failed processing with
+       * temporary issues.
        * 
* - * repeated string temporary_failed_ack_ids = 3; + * + * repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The count of temporaryFailedAckIds. */ public int getTemporaryFailedAckIdsCount() { return temporaryFailedAckIds_.size(); } + /** * * *
-       * List of acknowledgement IDs that failed processing with temporary issues.
+       * Optional. List of acknowledgment IDs that failed processing with
+       * temporary issues.
        * 
* - * repeated string temporary_failed_ack_ids = 3; + * + * repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the element to return. * @return The temporaryFailedAckIds at the given index. @@ -3120,14 +3311,18 @@ public int getTemporaryFailedAckIdsCount() { public java.lang.String getTemporaryFailedAckIds(int index) { return temporaryFailedAckIds_.get(index); } + /** * * *
-       * List of acknowledgement IDs that failed processing with temporary issues.
+       * Optional. List of acknowledgment IDs that failed processing with
+       * temporary issues.
        * 
* - * repeated string temporary_failed_ack_ids = 3; + * + * repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index of the value to return. * @return The bytes of the temporaryFailedAckIds at the given index. @@ -3135,14 +3330,18 @@ public java.lang.String getTemporaryFailedAckIds(int index) { public com.google.protobuf.ByteString getTemporaryFailedAckIdsBytes(int index) { return temporaryFailedAckIds_.getByteString(index); } + /** * * *
-       * List of acknowledgement IDs that failed processing with temporary issues.
+       * Optional. List of acknowledgment IDs that failed processing with
+       * temporary issues.
        * 
* - * repeated string temporary_failed_ack_ids = 3; + * + * repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param index The index to set the value at. * @param value The temporaryFailedAckIds to set. @@ -3158,14 +3357,18 @@ public Builder setTemporaryFailedAckIds(int index, java.lang.String value) { onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that failed processing with temporary issues.
+       * Optional. List of acknowledgment IDs that failed processing with
+       * temporary issues.
        * 
* - * repeated string temporary_failed_ack_ids = 3; + * + * repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param value The temporaryFailedAckIds to add. * @return This builder for chaining. @@ -3180,14 +3383,18 @@ public Builder addTemporaryFailedAckIds(java.lang.String value) { onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that failed processing with temporary issues.
+       * Optional. List of acknowledgment IDs that failed processing with
+       * temporary issues.
        * 
* - * repeated string temporary_failed_ack_ids = 3; + * + * repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param values The temporaryFailedAckIds to add. * @return This builder for chaining. @@ -3199,14 +3406,18 @@ public Builder addAllTemporaryFailedAckIds(java.lang.Iterable onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that failed processing with temporary issues.
+       * Optional. List of acknowledgment IDs that failed processing with
+       * temporary issues.
        * 
* - * repeated string temporary_failed_ack_ids = 3; + * + * repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return This builder for chaining. */ @@ -3217,14 +3428,18 @@ public Builder clearTemporaryFailedAckIds() { onChanged(); return this; } + /** * * *
-       * List of acknowledgement IDs that failed processing with temporary issues.
+       * Optional. List of acknowledgment IDs that failed processing with
+       * temporary issues.
        * 
* - * repeated string temporary_failed_ack_ids = 3; + * + * repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param value The bytes of the temporaryFailedAckIds to add. * @return This builder for chaining. @@ -3318,10 +3533,12 @@ public interface SubscriptionPropertiesOrBuilder * * *
-     * True iff exactly once delivery is enabled for this subscription.
+     * Optional. True iff exactly once delivery is enabled for this
+     * subscription.
      * 
* - * bool exactly_once_delivery_enabled = 1; + * bool exactly_once_delivery_enabled = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The exactlyOnceDeliveryEnabled. */ @@ -3331,15 +3548,16 @@ public interface SubscriptionPropertiesOrBuilder * * *
-     * True iff message ordering is enabled for this subscription.
+     * Optional. True iff message ordering is enabled for this subscription.
      * 
* - * bool message_ordering_enabled = 2; + * bool message_ordering_enabled = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The messageOrderingEnabled. */ boolean getMessageOrderingEnabled(); } + /** * * @@ -3354,6 +3572,7 @@ public static final class SubscriptionProperties extends com.google.protobuf.Gen // @@protoc_insertion_point(message_implements:google.pubsub.v1.StreamingPullResponse.SubscriptionProperties) SubscriptionPropertiesOrBuilder { private static final long serialVersionUID = 0L; + // Use SubscriptionProperties.newBuilder() to construct. private SubscriptionProperties(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -3384,14 +3603,17 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { public static final int EXACTLY_ONCE_DELIVERY_ENABLED_FIELD_NUMBER = 1; private boolean exactlyOnceDeliveryEnabled_ = false; + /** * * *
-     * True iff exactly once delivery is enabled for this subscription.
+     * Optional. True iff exactly once delivery is enabled for this
+     * subscription.
      * 
* - * bool exactly_once_delivery_enabled = 1; + * bool exactly_once_delivery_enabled = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The exactlyOnceDeliveryEnabled. */ @@ -3402,14 +3624,15 @@ public boolean getExactlyOnceDeliveryEnabled() { public static final int MESSAGE_ORDERING_ENABLED_FIELD_NUMBER = 2; private boolean messageOrderingEnabled_ = false; + /** * * *
-     * True iff message ordering is enabled for this subscription.
+     * Optional. True iff message ordering is enabled for this subscription.
      * 
* - * bool message_ordering_enabled = 2; + * bool message_ordering_enabled = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The messageOrderingEnabled. */ @@ -3591,6 +3814,7 @@ protected Builder newBuilderForType( Builder builder = new Builder(parent); return builder; } + /** * * @@ -3796,14 +4020,17 @@ public Builder mergeFrom( private int bitField0_; private boolean exactlyOnceDeliveryEnabled_; + /** * * *
-       * True iff exactly once delivery is enabled for this subscription.
+       * Optional. True iff exactly once delivery is enabled for this
+       * subscription.
        * 
* - * bool exactly_once_delivery_enabled = 1; + * bool exactly_once_delivery_enabled = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The exactlyOnceDeliveryEnabled. */ @@ -3811,14 +4038,17 @@ public Builder mergeFrom( public boolean getExactlyOnceDeliveryEnabled() { return exactlyOnceDeliveryEnabled_; } + /** * * *
-       * True iff exactly once delivery is enabled for this subscription.
+       * Optional. True iff exactly once delivery is enabled for this
+       * subscription.
        * 
* - * bool exactly_once_delivery_enabled = 1; + * bool exactly_once_delivery_enabled = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @param value The exactlyOnceDeliveryEnabled to set. * @return This builder for chaining. @@ -3830,14 +4060,17 @@ public Builder setExactlyOnceDeliveryEnabled(boolean value) { onChanged(); return this; } + /** * * *
-       * True iff exactly once delivery is enabled for this subscription.
+       * Optional. True iff exactly once delivery is enabled for this
+       * subscription.
        * 
* - * bool exactly_once_delivery_enabled = 1; + * bool exactly_once_delivery_enabled = 1 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return This builder for chaining. */ @@ -3849,14 +4082,15 @@ public Builder clearExactlyOnceDeliveryEnabled() { } private boolean messageOrderingEnabled_; + /** * * *
-       * True iff message ordering is enabled for this subscription.
+       * Optional. True iff message ordering is enabled for this subscription.
        * 
* - * bool message_ordering_enabled = 2; + * bool message_ordering_enabled = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return The messageOrderingEnabled. */ @@ -3864,14 +4098,15 @@ public Builder clearExactlyOnceDeliveryEnabled() { public boolean getMessageOrderingEnabled() { return messageOrderingEnabled_; } + /** * * *
-       * True iff message ordering is enabled for this subscription.
+       * Optional. True iff message ordering is enabled for this subscription.
        * 
* - * bool message_ordering_enabled = 2; + * bool message_ordering_enabled = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The messageOrderingEnabled to set. * @return This builder for chaining. @@ -3883,14 +4118,15 @@ public Builder setMessageOrderingEnabled(boolean value) { onChanged(); return this; } + /** * * *
-       * True iff message ordering is enabled for this subscription.
+       * Optional. True iff message ordering is enabled for this subscription.
        * 
* - * bool message_ordering_enabled = 2; + * bool message_ordering_enabled = 2 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -3968,71 +4204,87 @@ public com.google.protobuf.Parser getParserForType() { } } + private int bitField0_; public static final int RECEIVED_MESSAGES_FIELD_NUMBER = 1; @SuppressWarnings("serial") private java.util.List receivedMessages_; + /** * * *
-   * Received Pub/Sub messages. This will not be empty.
+   * Optional. Received Pub/Sub messages.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public java.util.List getReceivedMessagesList() { return receivedMessages_; } + /** * * *
-   * Received Pub/Sub messages. This will not be empty.
+   * Optional. Received Pub/Sub messages.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public java.util.List getReceivedMessagesOrBuilderList() { return receivedMessages_; } + /** * * *
-   * Received Pub/Sub messages. This will not be empty.
+   * Optional. Received Pub/Sub messages.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public int getReceivedMessagesCount() { return receivedMessages_.size(); } + /** * * *
-   * Received Pub/Sub messages. This will not be empty.
+   * Optional. Received Pub/Sub messages.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.ReceivedMessage getReceivedMessages(int index) { return receivedMessages_.get(index); } + /** * * *
-   * Received Pub/Sub messages. This will not be empty.
+   * Optional. Received Pub/Sub messages.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.ReceivedMessageOrBuilder getReceivedMessagesOrBuilder(int index) { @@ -4042,34 +4294,36 @@ public com.google.pubsub.v1.ReceivedMessageOrBuilder getReceivedMessagesOrBuilde public static final int ACKNOWLEDGE_CONFIRMATION_FIELD_NUMBER = 5; private com.google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledgeConfirmation_; + /** * * *
-   * This field will only be set if `enable_exactly_once_delivery` is set to
-   * `true`.
+   * Optional. This field will only be set if `enable_exactly_once_delivery` is
+   * set to `true` and is not guaranteed to be populated.
    * 
* * - * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5; + * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5 [(.google.api.field_behavior) = OPTIONAL]; * * * @return Whether the acknowledgeConfirmation field is set. */ @java.lang.Override public boolean hasAcknowledgeConfirmation() { - return acknowledgeConfirmation_ != null; + return ((bitField0_ & 0x00000001) != 0); } + /** * * *
-   * This field will only be set if `enable_exactly_once_delivery` is set to
-   * `true`.
+   * Optional. This field will only be set if `enable_exactly_once_delivery` is
+   * set to `true` and is not guaranteed to be populated.
    * 
* * - * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5; + * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5 [(.google.api.field_behavior) = OPTIONAL]; * * * @return The acknowledgeConfirmation. @@ -4081,16 +4335,17 @@ public boolean hasAcknowledgeConfirmation() { ? com.google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.getDefaultInstance() : acknowledgeConfirmation_; } + /** * * *
-   * This field will only be set if `enable_exactly_once_delivery` is set to
-   * `true`.
+   * Optional. This field will only be set if `enable_exactly_once_delivery` is
+   * set to `true` and is not guaranteed to be populated.
    * 
* * - * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5; + * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5 [(.google.api.field_behavior) = OPTIONAL]; * */ @java.lang.Override @@ -4104,34 +4359,36 @@ public boolean hasAcknowledgeConfirmation() { public static final int MODIFY_ACK_DEADLINE_CONFIRMATION_FIELD_NUMBER = 3; private com.google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modifyAckDeadlineConfirmation_; + /** * * *
-   * This field will only be set if `enable_exactly_once_delivery` is set to
-   * `true`.
+   * Optional. This field will only be set if `enable_exactly_once_delivery` is
+   * set to `true` and is not guaranteed to be populated.
    * 
* * - * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3; + * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3 [(.google.api.field_behavior) = OPTIONAL]; * * * @return Whether the modifyAckDeadlineConfirmation field is set. */ @java.lang.Override public boolean hasModifyAckDeadlineConfirmation() { - return modifyAckDeadlineConfirmation_ != null; + return ((bitField0_ & 0x00000002) != 0); } + /** * * *
-   * This field will only be set if `enable_exactly_once_delivery` is set to
-   * `true`.
+   * Optional. This field will only be set if `enable_exactly_once_delivery` is
+   * set to `true` and is not guaranteed to be populated.
    * 
* * - * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3; + * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3 [(.google.api.field_behavior) = OPTIONAL]; * * * @return The modifyAckDeadlineConfirmation. @@ -4144,16 +4401,17 @@ public boolean hasModifyAckDeadlineConfirmation() { .getDefaultInstance() : modifyAckDeadlineConfirmation_; } + /** * * *
-   * This field will only be set if `enable_exactly_once_delivery` is set to
-   * `true`.
+   * Optional. This field will only be set if `enable_exactly_once_delivery` is
+   * set to `true` and is not guaranteed to be populated.
    * 
* * - * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3; + * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3 [(.google.api.field_behavior) = OPTIONAL]; * */ @java.lang.Override @@ -4167,32 +4425,34 @@ public boolean hasModifyAckDeadlineConfirmation() { public static final int SUBSCRIPTION_PROPERTIES_FIELD_NUMBER = 4; private com.google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscriptionProperties_; + /** * * *
-   * Properties associated with this subscription.
+   * Optional. Properties associated with this subscription.
    * 
* * - * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4; + * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4 [(.google.api.field_behavior) = OPTIONAL]; * * * @return Whether the subscriptionProperties field is set. */ @java.lang.Override public boolean hasSubscriptionProperties() { - return subscriptionProperties_ != null; + return ((bitField0_ & 0x00000004) != 0); } + /** * * *
-   * Properties associated with this subscription.
+   * Optional. Properties associated with this subscription.
    * 
* * - * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4; + * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4 [(.google.api.field_behavior) = OPTIONAL]; * * * @return The subscriptionProperties. @@ -4204,15 +4464,16 @@ public boolean hasSubscriptionProperties() { ? com.google.pubsub.v1.StreamingPullResponse.SubscriptionProperties.getDefaultInstance() : subscriptionProperties_; } + /** * * *
-   * Properties associated with this subscription.
+   * Optional. Properties associated with this subscription.
    * 
* * - * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4; + * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4 [(.google.api.field_behavior) = OPTIONAL]; * */ @java.lang.Override @@ -4240,13 +4501,13 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io for (int i = 0; i < receivedMessages_.size(); i++) { output.writeMessage(1, receivedMessages_.get(i)); } - if (modifyAckDeadlineConfirmation_ != null) { + if (((bitField0_ & 0x00000002) != 0)) { output.writeMessage(3, getModifyAckDeadlineConfirmation()); } - if (subscriptionProperties_ != null) { + if (((bitField0_ & 0x00000004) != 0)) { output.writeMessage(4, getSubscriptionProperties()); } - if (acknowledgeConfirmation_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(5, getAcknowledgeConfirmation()); } getUnknownFields().writeTo(output); @@ -4261,16 +4522,16 @@ public int getSerializedSize() { for (int i = 0; i < receivedMessages_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, receivedMessages_.get(i)); } - if (modifyAckDeadlineConfirmation_ != null) { + if (((bitField0_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize( 3, getModifyAckDeadlineConfirmation()); } - if (subscriptionProperties_ != null) { + if (((bitField0_ & 0x00000004) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getSubscriptionProperties()); } - if (acknowledgeConfirmation_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getAcknowledgeConfirmation()); } @@ -4432,6 +4693,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -4462,10 +4724,22 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } // Construct using com.google.pubsub.v1.StreamingPullResponse.newBuilder() - private Builder() {} + private Builder() { + maybeForceBuilderInitialization(); + } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getReceivedMessagesFieldBuilder(); + getAcknowledgeConfirmationFieldBuilder(); + getModifyAckDeadlineConfirmationFieldBuilder(); + getSubscriptionPropertiesFieldBuilder(); + } } @java.lang.Override @@ -4543,24 +4817,29 @@ private void buildPartialRepeatedFields(com.google.pubsub.v1.StreamingPullRespon private void buildPartial0(com.google.pubsub.v1.StreamingPullResponse result) { int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000002) != 0)) { result.acknowledgeConfirmation_ = acknowledgeConfirmationBuilder_ == null ? acknowledgeConfirmation_ : acknowledgeConfirmationBuilder_.build(); + to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000004) != 0)) { result.modifyAckDeadlineConfirmation_ = modifyAckDeadlineConfirmationBuilder_ == null ? modifyAckDeadlineConfirmation_ : modifyAckDeadlineConfirmationBuilder_.build(); + to_bitField0_ |= 0x00000002; } if (((from_bitField0_ & 0x00000008) != 0)) { result.subscriptionProperties_ = subscriptionPropertiesBuilder_ == null ? subscriptionProperties_ : subscriptionPropertiesBuilder_.build(); + to_bitField0_ |= 0x00000004; } + result.bitField0_ |= to_bitField0_; } @java.lang.Override @@ -4744,10 +5023,12 @@ private void ensureReceivedMessagesIsMutable() { * * *
-     * Received Pub/Sub messages. This will not be empty.
+     * Optional. Received Pub/Sub messages.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public java.util.List getReceivedMessagesList() { if (receivedMessagesBuilder_ == null) { @@ -4756,14 +5037,17 @@ public java.util.List getReceivedMessagesL return receivedMessagesBuilder_.getMessageList(); } } + /** * * *
-     * Received Pub/Sub messages. This will not be empty.
+     * Optional. Received Pub/Sub messages.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public int getReceivedMessagesCount() { if (receivedMessagesBuilder_ == null) { @@ -4772,14 +5056,17 @@ public int getReceivedMessagesCount() { return receivedMessagesBuilder_.getCount(); } } + /** * * *
-     * Received Pub/Sub messages. This will not be empty.
+     * Optional. Received Pub/Sub messages.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.ReceivedMessage getReceivedMessages(int index) { if (receivedMessagesBuilder_ == null) { @@ -4788,14 +5075,17 @@ public com.google.pubsub.v1.ReceivedMessage getReceivedMessages(int index) { return receivedMessagesBuilder_.getMessage(index); } } + /** * * *
-     * Received Pub/Sub messages. This will not be empty.
+     * Optional. Received Pub/Sub messages.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setReceivedMessages(int index, com.google.pubsub.v1.ReceivedMessage value) { if (receivedMessagesBuilder_ == null) { @@ -4810,14 +5100,17 @@ public Builder setReceivedMessages(int index, com.google.pubsub.v1.ReceivedMessa } return this; } + /** * * *
-     * Received Pub/Sub messages. This will not be empty.
+     * Optional. Received Pub/Sub messages.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setReceivedMessages( int index, com.google.pubsub.v1.ReceivedMessage.Builder builderForValue) { @@ -4830,14 +5123,17 @@ public Builder setReceivedMessages( } return this; } + /** * * *
-     * Received Pub/Sub messages. This will not be empty.
+     * Optional. Received Pub/Sub messages.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addReceivedMessages(com.google.pubsub.v1.ReceivedMessage value) { if (receivedMessagesBuilder_ == null) { @@ -4852,14 +5148,17 @@ public Builder addReceivedMessages(com.google.pubsub.v1.ReceivedMessage value) { } return this; } + /** * * *
-     * Received Pub/Sub messages. This will not be empty.
+     * Optional. Received Pub/Sub messages.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addReceivedMessages(int index, com.google.pubsub.v1.ReceivedMessage value) { if (receivedMessagesBuilder_ == null) { @@ -4874,14 +5173,17 @@ public Builder addReceivedMessages(int index, com.google.pubsub.v1.ReceivedMessa } return this; } + /** * * *
-     * Received Pub/Sub messages. This will not be empty.
+     * Optional. Received Pub/Sub messages.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addReceivedMessages( com.google.pubsub.v1.ReceivedMessage.Builder builderForValue) { @@ -4894,14 +5196,17 @@ public Builder addReceivedMessages( } return this; } + /** * * *
-     * Received Pub/Sub messages. This will not be empty.
+     * Optional. Received Pub/Sub messages.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addReceivedMessages( int index, com.google.pubsub.v1.ReceivedMessage.Builder builderForValue) { @@ -4914,14 +5219,17 @@ public Builder addReceivedMessages( } return this; } + /** * * *
-     * Received Pub/Sub messages. This will not be empty.
+     * Optional. Received Pub/Sub messages.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder addAllReceivedMessages( java.lang.Iterable values) { @@ -4934,14 +5242,17 @@ public Builder addAllReceivedMessages( } return this; } + /** * * *
-     * Received Pub/Sub messages. This will not be empty.
+     * Optional. Received Pub/Sub messages.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder clearReceivedMessages() { if (receivedMessagesBuilder_ == null) { @@ -4953,14 +5264,17 @@ public Builder clearReceivedMessages() { } return this; } + /** * * *
-     * Received Pub/Sub messages. This will not be empty.
+     * Optional. Received Pub/Sub messages.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder removeReceivedMessages(int index) { if (receivedMessagesBuilder_ == null) { @@ -4972,26 +5286,32 @@ public Builder removeReceivedMessages(int index) { } return this; } + /** * * *
-     * Received Pub/Sub messages. This will not be empty.
+     * Optional. Received Pub/Sub messages.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.ReceivedMessage.Builder getReceivedMessagesBuilder(int index) { return getReceivedMessagesFieldBuilder().getBuilder(index); } + /** * * *
-     * Received Pub/Sub messages. This will not be empty.
+     * Optional. Received Pub/Sub messages.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.ReceivedMessageOrBuilder getReceivedMessagesOrBuilder(int index) { if (receivedMessagesBuilder_ == null) { @@ -5000,14 +5320,17 @@ public com.google.pubsub.v1.ReceivedMessageOrBuilder getReceivedMessagesOrBuilde return receivedMessagesBuilder_.getMessageOrBuilder(index); } } + /** * * *
-     * Received Pub/Sub messages. This will not be empty.
+     * Optional. Received Pub/Sub messages.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public java.util.List getReceivedMessagesOrBuilderList() { @@ -5017,40 +5340,49 @@ public com.google.pubsub.v1.ReceivedMessageOrBuilder getReceivedMessagesOrBuilde return java.util.Collections.unmodifiableList(receivedMessages_); } } + /** * * *
-     * Received Pub/Sub messages. This will not be empty.
+     * Optional. Received Pub/Sub messages.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.ReceivedMessage.Builder addReceivedMessagesBuilder() { return getReceivedMessagesFieldBuilder() .addBuilder(com.google.pubsub.v1.ReceivedMessage.getDefaultInstance()); } + /** * * *
-     * Received Pub/Sub messages. This will not be empty.
+     * Optional. Received Pub/Sub messages.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.ReceivedMessage.Builder addReceivedMessagesBuilder(int index) { return getReceivedMessagesFieldBuilder() .addBuilder(index, com.google.pubsub.v1.ReceivedMessage.getDefaultInstance()); } + /** * * *
-     * Received Pub/Sub messages. This will not be empty.
+     * Optional. Received Pub/Sub messages.
      * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ public java.util.List getReceivedMessagesBuilderList() { @@ -5084,16 +5416,17 @@ public com.google.pubsub.v1.ReceivedMessage.Builder addReceivedMessagesBuilder(i com.google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.Builder, com.google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmationOrBuilder> acknowledgeConfirmationBuilder_; + /** * * *
-     * This field will only be set if `enable_exactly_once_delivery` is set to
-     * `true`.
+     * Optional. This field will only be set if `enable_exactly_once_delivery` is
+     * set to `true` and is not guaranteed to be populated.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5; + * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5 [(.google.api.field_behavior) = OPTIONAL]; * * * @return Whether the acknowledgeConfirmation field is set. @@ -5101,16 +5434,17 @@ public com.google.pubsub.v1.ReceivedMessage.Builder addReceivedMessagesBuilder(i public boolean hasAcknowledgeConfirmation() { return ((bitField0_ & 0x00000002) != 0); } + /** * * *
-     * This field will only be set if `enable_exactly_once_delivery` is set to
-     * `true`.
+     * Optional. This field will only be set if `enable_exactly_once_delivery` is
+     * set to `true` and is not guaranteed to be populated.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5; + * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5 [(.google.api.field_behavior) = OPTIONAL]; * * * @return The acknowledgeConfirmation. @@ -5126,16 +5460,17 @@ public boolean hasAcknowledgeConfirmation() { return acknowledgeConfirmationBuilder_.getMessage(); } } + /** * * *
-     * This field will only be set if `enable_exactly_once_delivery` is set to
-     * `true`.
+     * Optional. This field will only be set if `enable_exactly_once_delivery` is
+     * set to `true` and is not guaranteed to be populated.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5; + * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5 [(.google.api.field_behavior) = OPTIONAL]; * */ public Builder setAcknowledgeConfirmation( @@ -5152,16 +5487,17 @@ public Builder setAcknowledgeConfirmation( onChanged(); return this; } + /** * * *
-     * This field will only be set if `enable_exactly_once_delivery` is set to
-     * `true`.
+     * Optional. This field will only be set if `enable_exactly_once_delivery` is
+     * set to `true` and is not guaranteed to be populated.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5; + * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5 [(.google.api.field_behavior) = OPTIONAL]; * */ public Builder setAcknowledgeConfirmation( @@ -5176,16 +5512,17 @@ public Builder setAcknowledgeConfirmation( onChanged(); return this; } + /** * * *
-     * This field will only be set if `enable_exactly_once_delivery` is set to
-     * `true`.
+     * Optional. This field will only be set if `enable_exactly_once_delivery` is
+     * set to `true` and is not guaranteed to be populated.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5; + * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5 [(.google.api.field_behavior) = OPTIONAL]; * */ public Builder mergeAcknowledgeConfirmation( @@ -5203,20 +5540,23 @@ public Builder mergeAcknowledgeConfirmation( } else { acknowledgeConfirmationBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000002; - onChanged(); + if (acknowledgeConfirmation_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } return this; } + /** * * *
-     * This field will only be set if `enable_exactly_once_delivery` is set to
-     * `true`.
+     * Optional. This field will only be set if `enable_exactly_once_delivery` is
+     * set to `true` and is not guaranteed to be populated.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5; + * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5 [(.google.api.field_behavior) = OPTIONAL]; * */ public Builder clearAcknowledgeConfirmation() { @@ -5229,16 +5569,17 @@ public Builder clearAcknowledgeConfirmation() { onChanged(); return this; } + /** * * *
-     * This field will only be set if `enable_exactly_once_delivery` is set to
-     * `true`.
+     * Optional. This field will only be set if `enable_exactly_once_delivery` is
+     * set to `true` and is not guaranteed to be populated.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5; + * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5 [(.google.api.field_behavior) = OPTIONAL]; * */ public com.google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.Builder @@ -5247,16 +5588,17 @@ public Builder clearAcknowledgeConfirmation() { onChanged(); return getAcknowledgeConfirmationFieldBuilder().getBuilder(); } + /** * * *
-     * This field will only be set if `enable_exactly_once_delivery` is set to
-     * `true`.
+     * Optional. This field will only be set if `enable_exactly_once_delivery` is
+     * set to `true` and is not guaranteed to be populated.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5; + * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5 [(.google.api.field_behavior) = OPTIONAL]; * */ public com.google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmationOrBuilder @@ -5270,16 +5612,17 @@ public Builder clearAcknowledgeConfirmation() { : acknowledgeConfirmation_; } } + /** * * *
-     * This field will only be set if `enable_exactly_once_delivery` is set to
-     * `true`.
+     * Optional. This field will only be set if `enable_exactly_once_delivery` is
+     * set to `true` and is not guaranteed to be populated.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5; + * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5 [(.google.api.field_behavior) = OPTIONAL]; * */ private com.google.protobuf.SingleFieldBuilderV3< @@ -5306,16 +5649,17 @@ public Builder clearAcknowledgeConfirmation() { com.google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.Builder, com.google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmationOrBuilder> modifyAckDeadlineConfirmationBuilder_; + /** * * *
-     * This field will only be set if `enable_exactly_once_delivery` is set to
-     * `true`.
+     * Optional. This field will only be set if `enable_exactly_once_delivery` is
+     * set to `true` and is not guaranteed to be populated.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3; + * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3 [(.google.api.field_behavior) = OPTIONAL]; * * * @return Whether the modifyAckDeadlineConfirmation field is set. @@ -5323,16 +5667,17 @@ public Builder clearAcknowledgeConfirmation() { public boolean hasModifyAckDeadlineConfirmation() { return ((bitField0_ & 0x00000004) != 0); } + /** * * *
-     * This field will only be set if `enable_exactly_once_delivery` is set to
-     * `true`.
+     * Optional. This field will only be set if `enable_exactly_once_delivery` is
+     * set to `true` and is not guaranteed to be populated.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3; + * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3 [(.google.api.field_behavior) = OPTIONAL]; * * * @return The modifyAckDeadlineConfirmation. @@ -5348,16 +5693,17 @@ public boolean hasModifyAckDeadlineConfirmation() { return modifyAckDeadlineConfirmationBuilder_.getMessage(); } } + /** * * *
-     * This field will only be set if `enable_exactly_once_delivery` is set to
-     * `true`.
+     * Optional. This field will only be set if `enable_exactly_once_delivery` is
+     * set to `true` and is not guaranteed to be populated.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3; + * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3 [(.google.api.field_behavior) = OPTIONAL]; * */ public Builder setModifyAckDeadlineConfirmation( @@ -5374,16 +5720,17 @@ public Builder setModifyAckDeadlineConfirmation( onChanged(); return this; } + /** * * *
-     * This field will only be set if `enable_exactly_once_delivery` is set to
-     * `true`.
+     * Optional. This field will only be set if `enable_exactly_once_delivery` is
+     * set to `true` and is not guaranteed to be populated.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3; + * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3 [(.google.api.field_behavior) = OPTIONAL]; * */ public Builder setModifyAckDeadlineConfirmation( @@ -5398,16 +5745,17 @@ public Builder setModifyAckDeadlineConfirmation( onChanged(); return this; } + /** * * *
-     * This field will only be set if `enable_exactly_once_delivery` is set to
-     * `true`.
+     * Optional. This field will only be set if `enable_exactly_once_delivery` is
+     * set to `true` and is not guaranteed to be populated.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3; + * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3 [(.google.api.field_behavior) = OPTIONAL]; * */ public Builder mergeModifyAckDeadlineConfirmation( @@ -5425,20 +5773,23 @@ public Builder mergeModifyAckDeadlineConfirmation( } else { modifyAckDeadlineConfirmationBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000004; - onChanged(); + if (modifyAckDeadlineConfirmation_ != null) { + bitField0_ |= 0x00000004; + onChanged(); + } return this; } + /** * * *
-     * This field will only be set if `enable_exactly_once_delivery` is set to
-     * `true`.
+     * Optional. This field will only be set if `enable_exactly_once_delivery` is
+     * set to `true` and is not guaranteed to be populated.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3; + * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3 [(.google.api.field_behavior) = OPTIONAL]; * */ public Builder clearModifyAckDeadlineConfirmation() { @@ -5451,16 +5802,17 @@ public Builder clearModifyAckDeadlineConfirmation() { onChanged(); return this; } + /** * * *
-     * This field will only be set if `enable_exactly_once_delivery` is set to
-     * `true`.
+     * Optional. This field will only be set if `enable_exactly_once_delivery` is
+     * set to `true` and is not guaranteed to be populated.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3; + * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3 [(.google.api.field_behavior) = OPTIONAL]; * */ public com.google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.Builder @@ -5469,16 +5821,17 @@ public Builder clearModifyAckDeadlineConfirmation() { onChanged(); return getModifyAckDeadlineConfirmationFieldBuilder().getBuilder(); } + /** * * *
-     * This field will only be set if `enable_exactly_once_delivery` is set to
-     * `true`.
+     * Optional. This field will only be set if `enable_exactly_once_delivery` is
+     * set to `true` and is not guaranteed to be populated.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3; + * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3 [(.google.api.field_behavior) = OPTIONAL]; * */ public com.google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmationOrBuilder @@ -5492,16 +5845,17 @@ public Builder clearModifyAckDeadlineConfirmation() { : modifyAckDeadlineConfirmation_; } } + /** * * *
-     * This field will only be set if `enable_exactly_once_delivery` is set to
-     * `true`.
+     * Optional. This field will only be set if `enable_exactly_once_delivery` is
+     * set to `true` and is not guaranteed to be populated.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3; + * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3 [(.google.api.field_behavior) = OPTIONAL]; * */ private com.google.protobuf.SingleFieldBuilderV3< @@ -5528,15 +5882,16 @@ public Builder clearModifyAckDeadlineConfirmation() { com.google.pubsub.v1.StreamingPullResponse.SubscriptionProperties.Builder, com.google.pubsub.v1.StreamingPullResponse.SubscriptionPropertiesOrBuilder> subscriptionPropertiesBuilder_; + /** * * *
-     * Properties associated with this subscription.
+     * Optional. Properties associated with this subscription.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4; + * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4 [(.google.api.field_behavior) = OPTIONAL]; * * * @return Whether the subscriptionProperties field is set. @@ -5544,15 +5899,16 @@ public Builder clearModifyAckDeadlineConfirmation() { public boolean hasSubscriptionProperties() { return ((bitField0_ & 0x00000008) != 0); } + /** * * *
-     * Properties associated with this subscription.
+     * Optional. Properties associated with this subscription.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4; + * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4 [(.google.api.field_behavior) = OPTIONAL]; * * * @return The subscriptionProperties. @@ -5567,15 +5923,16 @@ public boolean hasSubscriptionProperties() { return subscriptionPropertiesBuilder_.getMessage(); } } + /** * * *
-     * Properties associated with this subscription.
+     * Optional. Properties associated with this subscription.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4; + * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4 [(.google.api.field_behavior) = OPTIONAL]; * */ public Builder setSubscriptionProperties( @@ -5592,15 +5949,16 @@ public Builder setSubscriptionProperties( onChanged(); return this; } + /** * * *
-     * Properties associated with this subscription.
+     * Optional. Properties associated with this subscription.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4; + * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4 [(.google.api.field_behavior) = OPTIONAL]; * */ public Builder setSubscriptionProperties( @@ -5614,15 +5972,16 @@ public Builder setSubscriptionProperties( onChanged(); return this; } + /** * * *
-     * Properties associated with this subscription.
+     * Optional. Properties associated with this subscription.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4; + * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4 [(.google.api.field_behavior) = OPTIONAL]; * */ public Builder mergeSubscriptionProperties( @@ -5640,19 +5999,22 @@ public Builder mergeSubscriptionProperties( } else { subscriptionPropertiesBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000008; - onChanged(); + if (subscriptionProperties_ != null) { + bitField0_ |= 0x00000008; + onChanged(); + } return this; } + /** * * *
-     * Properties associated with this subscription.
+     * Optional. Properties associated with this subscription.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4; + * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4 [(.google.api.field_behavior) = OPTIONAL]; * */ public Builder clearSubscriptionProperties() { @@ -5665,15 +6027,16 @@ public Builder clearSubscriptionProperties() { onChanged(); return this; } + /** * * *
-     * Properties associated with this subscription.
+     * Optional. Properties associated with this subscription.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4; + * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4 [(.google.api.field_behavior) = OPTIONAL]; * */ public com.google.pubsub.v1.StreamingPullResponse.SubscriptionProperties.Builder @@ -5682,15 +6045,16 @@ public Builder clearSubscriptionProperties() { onChanged(); return getSubscriptionPropertiesFieldBuilder().getBuilder(); } + /** * * *
-     * Properties associated with this subscription.
+     * Optional. Properties associated with this subscription.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4; + * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4 [(.google.api.field_behavior) = OPTIONAL]; * */ public com.google.pubsub.v1.StreamingPullResponse.SubscriptionPropertiesOrBuilder @@ -5703,15 +6067,16 @@ public Builder clearSubscriptionProperties() { : subscriptionProperties_; } } + /** * * *
-     * Properties associated with this subscription.
+     * Optional. Properties associated with this subscription.
      * 
* * - * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4; + * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4 [(.google.api.field_behavior) = OPTIONAL]; * */ private com.google.protobuf.SingleFieldBuilderV3< diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/StreamingPullResponseOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/StreamingPullResponseOrBuilder.java index e9d7b80f8..516c56f47 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/StreamingPullResponseOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/StreamingPullResponseOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface StreamingPullResponseOrBuilder @@ -27,51 +28,65 @@ public interface StreamingPullResponseOrBuilder * * *
-   * Received Pub/Sub messages. This will not be empty.
+   * Optional. Received Pub/Sub messages.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ java.util.List getReceivedMessagesList(); + /** * * *
-   * Received Pub/Sub messages. This will not be empty.
+   * Optional. Received Pub/Sub messages.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.ReceivedMessage getReceivedMessages(int index); + /** * * *
-   * Received Pub/Sub messages. This will not be empty.
+   * Optional. Received Pub/Sub messages.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ int getReceivedMessagesCount(); + /** * * *
-   * Received Pub/Sub messages. This will not be empty.
+   * Optional. Received Pub/Sub messages.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ java.util.List getReceivedMessagesOrBuilderList(); + /** * * *
-   * Received Pub/Sub messages. This will not be empty.
+   * Optional. Received Pub/Sub messages.
    * 
* - * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1; + * + * repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.ReceivedMessageOrBuilder getReceivedMessagesOrBuilder(int index); @@ -79,42 +94,44 @@ public interface StreamingPullResponseOrBuilder * * *
-   * This field will only be set if `enable_exactly_once_delivery` is set to
-   * `true`.
+   * Optional. This field will only be set if `enable_exactly_once_delivery` is
+   * set to `true` and is not guaranteed to be populated.
    * 
* * - * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5; + * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5 [(.google.api.field_behavior) = OPTIONAL]; * * * @return Whether the acknowledgeConfirmation field is set. */ boolean hasAcknowledgeConfirmation(); + /** * * *
-   * This field will only be set if `enable_exactly_once_delivery` is set to
-   * `true`.
+   * Optional. This field will only be set if `enable_exactly_once_delivery` is
+   * set to `true` and is not guaranteed to be populated.
    * 
* * - * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5; + * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5 [(.google.api.field_behavior) = OPTIONAL]; * * * @return The acknowledgeConfirmation. */ com.google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation getAcknowledgeConfirmation(); + /** * * *
-   * This field will only be set if `enable_exactly_once_delivery` is set to
-   * `true`.
+   * Optional. This field will only be set if `enable_exactly_once_delivery` is
+   * set to `true` and is not guaranteed to be populated.
    * 
* * - * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5; + * .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5 [(.google.api.field_behavior) = OPTIONAL]; * */ com.google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmationOrBuilder @@ -124,43 +141,45 @@ public interface StreamingPullResponseOrBuilder * * *
-   * This field will only be set if `enable_exactly_once_delivery` is set to
-   * `true`.
+   * Optional. This field will only be set if `enable_exactly_once_delivery` is
+   * set to `true` and is not guaranteed to be populated.
    * 
* * - * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3; + * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3 [(.google.api.field_behavior) = OPTIONAL]; * * * @return Whether the modifyAckDeadlineConfirmation field is set. */ boolean hasModifyAckDeadlineConfirmation(); + /** * * *
-   * This field will only be set if `enable_exactly_once_delivery` is set to
-   * `true`.
+   * Optional. This field will only be set if `enable_exactly_once_delivery` is
+   * set to `true` and is not guaranteed to be populated.
    * 
* * - * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3; + * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3 [(.google.api.field_behavior) = OPTIONAL]; * * * @return The modifyAckDeadlineConfirmation. */ com.google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation getModifyAckDeadlineConfirmation(); + /** * * *
-   * This field will only be set if `enable_exactly_once_delivery` is set to
-   * `true`.
+   * Optional. This field will only be set if `enable_exactly_once_delivery` is
+   * set to `true` and is not guaranteed to be populated.
    * 
* * - * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3; + * .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3 [(.google.api.field_behavior) = OPTIONAL]; * */ com.google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmationOrBuilder @@ -170,39 +189,41 @@ public interface StreamingPullResponseOrBuilder * * *
-   * Properties associated with this subscription.
+   * Optional. Properties associated with this subscription.
    * 
* * - * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4; + * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4 [(.google.api.field_behavior) = OPTIONAL]; * * * @return Whether the subscriptionProperties field is set. */ boolean hasSubscriptionProperties(); + /** * * *
-   * Properties associated with this subscription.
+   * Optional. Properties associated with this subscription.
    * 
* * - * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4; + * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4 [(.google.api.field_behavior) = OPTIONAL]; * * * @return The subscriptionProperties. */ com.google.pubsub.v1.StreamingPullResponse.SubscriptionProperties getSubscriptionProperties(); + /** * * *
-   * Properties associated with this subscription.
+   * Optional. Properties associated with this subscription.
    * 
* * - * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4; + * .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4 [(.google.api.field_behavior) = OPTIONAL]; * */ com.google.pubsub.v1.StreamingPullResponse.SubscriptionPropertiesOrBuilder diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Subscription.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Subscription.java index 6e21f6ef2..b36abdc68 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Subscription.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Subscription.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -34,6 +35,7 @@ public final class Subscription extends com.google.protobuf.GeneratedMessageV3 // @@protoc_insertion_point(message_implements:google.pubsub.v1.Subscription) SubscriptionOrBuilder { private static final long serialVersionUID = 0L; + // Use Subscription.newBuilder() to construct. private Subscription(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -44,6 +46,7 @@ private Subscription() { topic_ = ""; filter_ = ""; state_ = 0; + messageTransforms_ = java.util.Collections.emptyList(); } @java.lang.Override @@ -59,10 +62,13 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings({"rawtypes"}) @java.lang.Override - protected com.google.protobuf.MapField internalGetMapField(int number) { + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { switch (number) { case 9: return internalGetLabels(); + case 26: + return internalGetTags(); default: throw new RuntimeException("Invalid map field number: " + number); } @@ -133,6 +139,7 @@ public enum State implements com.google.protobuf.ProtocolMessageEnum { * STATE_UNSPECIFIED = 0; */ public static final int STATE_UNSPECIFIED_VALUE = 0; + /** * * @@ -143,6 +150,7 @@ public enum State implements com.google.protobuf.ProtocolMessageEnum { * ACTIVE = 1; */ public static final int ACTIVE_VALUE = 1; + /** * * @@ -239,1670 +247,3120 @@ private State(int value) { // @@protoc_insertion_point(enum_scope:google.pubsub.v1.Subscription.State) } - public static final int NAME_FIELD_NUMBER = 1; + public interface AnalyticsHubSubscriptionInfoOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo) + com.google.protobuf.MessageOrBuilder { - @SuppressWarnings("serial") - private volatile java.lang.Object name_ = ""; - /** - * - * - *
-   * Required. The name of the subscription. It must have the format
-   * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
-   * start with a letter, and contain only letters (`[A-Za-z]`), numbers
-   * (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
-   * plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
-   * in length, and it must not start with `"goog"`.
-   * 
- * - * string name = 1 [(.google.api.field_behavior) = REQUIRED]; - * - * @return The name. - */ - @java.lang.Override - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } + /** + * + * + *
+     * Optional. The name of the associated Analytics Hub listing resource.
+     * Pattern:
+     * "projects/{project}/locations/{location}/dataExchanges/{data_exchange}/listings/{listing}"
+     * 
+ * + * + * string listing = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * + * + * @return The listing. + */ + java.lang.String getListing(); + + /** + * + * + *
+     * Optional. The name of the associated Analytics Hub listing resource.
+     * Pattern:
+     * "projects/{project}/locations/{location}/dataExchanges/{data_exchange}/listings/{listing}"
+     * 
+ * + * + * string listing = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * + * + * @return The bytes for listing. + */ + com.google.protobuf.ByteString getListingBytes(); + + /** + * + * + *
+     * Optional. The name of the associated Analytics Hub subscription resource.
+     * Pattern:
+     * "projects/{project}/locations/{location}/subscriptions/{subscription}"
+     * 
+ * + * string subscription = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The subscription. + */ + java.lang.String getSubscription(); + + /** + * + * + *
+     * Optional. The name of the associated Analytics Hub subscription resource.
+     * Pattern:
+     * "projects/{project}/locations/{location}/subscriptions/{subscription}"
+     * 
+ * + * string subscription = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for subscription. + */ + com.google.protobuf.ByteString getSubscriptionBytes(); } + /** * * *
-   * Required. The name of the subscription. It must have the format
-   * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
-   * start with a letter, and contain only letters (`[A-Za-z]`), numbers
-   * (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
-   * plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
-   * in length, and it must not start with `"goog"`.
+   * Information about an associated [Analytics Hub
+   * subscription](https://cloud.google.com/bigquery/docs/analytics-hub-manage-subscriptions).
    * 
* - * string name = 1 [(.google.api.field_behavior) = REQUIRED]; - * - * @return The bytes for name. + * Protobuf type {@code google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo} */ - @java.lang.Override - public com.google.protobuf.ByteString getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + public static final class AnalyticsHubSubscriptionInfo + extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo) + AnalyticsHubSubscriptionInfoOrBuilder { + private static final long serialVersionUID = 0L; + + // Use AnalyticsHubSubscriptionInfo.newBuilder() to construct. + private AnalyticsHubSubscriptionInfo( + com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); } - } - public static final int TOPIC_FIELD_NUMBER = 2; + private AnalyticsHubSubscriptionInfo() { + listing_ = ""; + subscription_ = ""; + } - @SuppressWarnings("serial") - private volatile java.lang.Object topic_ = ""; - /** - * - * - *
-   * Required. The name of the topic from which this subscription is receiving
-   * messages. Format is `projects/{project}/topics/{topic}`. The value of this
-   * field will be `_deleted-topic_` if the topic has been deleted.
-   * 
- * - * - * string topic = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } - * - * - * @return The topic. - */ - @java.lang.Override - public java.lang.String getTopic() { - java.lang.Object ref = topic_; - 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(); - topic_ = s; - return s; + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new AnalyticsHubSubscriptionInfo(); } - } - /** - * - * - *
-   * Required. The name of the topic from which this subscription is receiving
-   * messages. Format is `projects/{project}/topics/{topic}`. The value of this
-   * field will be `_deleted-topic_` if the topic has been deleted.
-   * 
- * - * - * string topic = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } - * - * - * @return The bytes for topic. - */ - @java.lang.Override - public com.google.protobuf.ByteString getTopicBytes() { - java.lang.Object ref = topic_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - topic_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_Subscription_AnalyticsHubSubscriptionInfo_descriptor; } - } - public static final int PUSH_CONFIG_FIELD_NUMBER = 4; - private com.google.pubsub.v1.PushConfig pushConfig_; - /** - * - * - *
-   * If push delivery is used with this subscription, this field is
-   * used to configure it.
-   * 
- * - * .google.pubsub.v1.PushConfig push_config = 4; - * - * @return Whether the pushConfig field is set. - */ - @java.lang.Override - public boolean hasPushConfig() { - return pushConfig_ != null; - } - /** - * - * - *
-   * If push delivery is used with this subscription, this field is
-   * used to configure it.
-   * 
- * - * .google.pubsub.v1.PushConfig push_config = 4; - * - * @return The pushConfig. - */ - @java.lang.Override - public com.google.pubsub.v1.PushConfig getPushConfig() { - return pushConfig_ == null ? com.google.pubsub.v1.PushConfig.getDefaultInstance() : pushConfig_; - } - /** - * - * - *
-   * If push delivery is used with this subscription, this field is
-   * used to configure it.
-   * 
- * - * .google.pubsub.v1.PushConfig push_config = 4; - */ - @java.lang.Override - public com.google.pubsub.v1.PushConfigOrBuilder getPushConfigOrBuilder() { - return pushConfig_ == null ? com.google.pubsub.v1.PushConfig.getDefaultInstance() : pushConfig_; - } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_Subscription_AnalyticsHubSubscriptionInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.class, + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.Builder.class); + } - public static final int BIGQUERY_CONFIG_FIELD_NUMBER = 18; - private com.google.pubsub.v1.BigQueryConfig bigqueryConfig_; - /** - * - * - *
-   * If delivery to BigQuery is used with this subscription, this field is
-   * used to configure it.
-   * 
- * - * .google.pubsub.v1.BigQueryConfig bigquery_config = 18; - * - * @return Whether the bigqueryConfig field is set. - */ - @java.lang.Override - public boolean hasBigqueryConfig() { - return bigqueryConfig_ != null; - } - /** - * - * - *
-   * If delivery to BigQuery is used with this subscription, this field is
-   * used to configure it.
-   * 
- * - * .google.pubsub.v1.BigQueryConfig bigquery_config = 18; - * - * @return The bigqueryConfig. - */ - @java.lang.Override - public com.google.pubsub.v1.BigQueryConfig getBigqueryConfig() { - return bigqueryConfig_ == null - ? com.google.pubsub.v1.BigQueryConfig.getDefaultInstance() - : bigqueryConfig_; - } - /** - * - * - *
-   * If delivery to BigQuery is used with this subscription, this field is
-   * used to configure it.
-   * 
- * - * .google.pubsub.v1.BigQueryConfig bigquery_config = 18; - */ - @java.lang.Override - public com.google.pubsub.v1.BigQueryConfigOrBuilder getBigqueryConfigOrBuilder() { - return bigqueryConfig_ == null - ? com.google.pubsub.v1.BigQueryConfig.getDefaultInstance() - : bigqueryConfig_; - } + public static final int LISTING_FIELD_NUMBER = 1; - public static final int CLOUD_STORAGE_CONFIG_FIELD_NUMBER = 22; - private com.google.pubsub.v1.CloudStorageConfig cloudStorageConfig_; - /** - * - * - *
-   * If delivery to Google Cloud Storage is used with this subscription, this
-   * field is used to configure it.
-   * 
- * - * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22; - * - * @return Whether the cloudStorageConfig field is set. - */ - @java.lang.Override - public boolean hasCloudStorageConfig() { - return cloudStorageConfig_ != null; - } - /** - * - * - *
-   * If delivery to Google Cloud Storage is used with this subscription, this
-   * field is used to configure it.
-   * 
- * - * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22; - * - * @return The cloudStorageConfig. - */ - @java.lang.Override - public com.google.pubsub.v1.CloudStorageConfig getCloudStorageConfig() { - return cloudStorageConfig_ == null - ? com.google.pubsub.v1.CloudStorageConfig.getDefaultInstance() - : cloudStorageConfig_; - } - /** - * - * - *
-   * If delivery to Google Cloud Storage is used with this subscription, this
-   * field is used to configure it.
-   * 
- * - * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22; - */ - @java.lang.Override - public com.google.pubsub.v1.CloudStorageConfigOrBuilder getCloudStorageConfigOrBuilder() { - return cloudStorageConfig_ == null - ? com.google.pubsub.v1.CloudStorageConfig.getDefaultInstance() - : cloudStorageConfig_; - } + @SuppressWarnings("serial") + private volatile java.lang.Object listing_ = ""; - public static final int ACK_DEADLINE_SECONDS_FIELD_NUMBER = 5; - private int ackDeadlineSeconds_ = 0; - /** - * - * - *
-   * The approximate amount of time (on a best-effort basis) Pub/Sub waits for
-   * the subscriber to acknowledge receipt before resending the message. In the
-   * interval after the message is delivered and before it is acknowledged, it
-   * is considered to be _outstanding_. During that time period, the
-   * message will not be redelivered (on a best-effort basis).
-   *
-   * For pull subscriptions, this value is used as the initial value for the ack
-   * deadline. To override this value for a given message, call
-   * `ModifyAckDeadline` with the corresponding `ack_id` if using
-   * non-streaming pull or send the `ack_id` in a
-   * `StreamingModifyAckDeadlineRequest` if using streaming pull.
-   * The minimum custom deadline you can specify is 10 seconds.
-   * The maximum custom deadline you can specify is 600 seconds (10 minutes).
-   * If this parameter is 0, a default value of 10 seconds is used.
-   *
-   * For push delivery, this value is also used to set the request timeout for
-   * the call to the push endpoint.
-   *
-   * If the subscriber never acknowledges the message, the Pub/Sub
-   * system will eventually redeliver the message.
-   * 
- * - * int32 ack_deadline_seconds = 5; - * - * @return The ackDeadlineSeconds. - */ - @java.lang.Override - public int getAckDeadlineSeconds() { - return ackDeadlineSeconds_; - } + /** + * + * + *
+     * Optional. The name of the associated Analytics Hub listing resource.
+     * Pattern:
+     * "projects/{project}/locations/{location}/dataExchanges/{data_exchange}/listings/{listing}"
+     * 
+ * + * + * string listing = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * + * + * @return The listing. + */ + @java.lang.Override + public java.lang.String getListing() { + java.lang.Object ref = listing_; + 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(); + listing_ = s; + return s; + } + } - public static final int RETAIN_ACKED_MESSAGES_FIELD_NUMBER = 7; - private boolean retainAckedMessages_ = false; - /** - * - * - *
-   * Indicates whether to retain acknowledged messages. If true, then
-   * messages are not expunged from the subscription's backlog, even if they are
-   * acknowledged, until they fall out of the `message_retention_duration`
-   * window. This must be true if you would like to [`Seek` to a timestamp]
-   * (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) in
-   * the past to replay previously-acknowledged messages.
-   * 
- * - * bool retain_acked_messages = 7; - * - * @return The retainAckedMessages. - */ - @java.lang.Override - public boolean getRetainAckedMessages() { - return retainAckedMessages_; - } + /** + * + * + *
+     * Optional. The name of the associated Analytics Hub listing resource.
+     * Pattern:
+     * "projects/{project}/locations/{location}/dataExchanges/{data_exchange}/listings/{listing}"
+     * 
+ * + * + * string listing = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * + * + * @return The bytes for listing. + */ + @java.lang.Override + public com.google.protobuf.ByteString getListingBytes() { + java.lang.Object ref = listing_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + listing_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } - public static final int MESSAGE_RETENTION_DURATION_FIELD_NUMBER = 8; - private com.google.protobuf.Duration messageRetentionDuration_; - /** - * - * - *
-   * How long to retain unacknowledged messages in the subscription's backlog,
-   * from the moment a message is published.
-   * If `retain_acked_messages` is true, then this also configures the retention
-   * of acknowledged messages, and thus configures how far back in time a `Seek`
-   * can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
-   * minutes.
-   * 
- * - * .google.protobuf.Duration message_retention_duration = 8; - * - * @return Whether the messageRetentionDuration field is set. - */ - @java.lang.Override - public boolean hasMessageRetentionDuration() { - return messageRetentionDuration_ != null; - } - /** - * - * - *
-   * How long to retain unacknowledged messages in the subscription's backlog,
-   * from the moment a message is published.
-   * If `retain_acked_messages` is true, then this also configures the retention
-   * of acknowledged messages, and thus configures how far back in time a `Seek`
-   * can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
-   * minutes.
-   * 
- * - * .google.protobuf.Duration message_retention_duration = 8; - * - * @return The messageRetentionDuration. - */ - @java.lang.Override - public com.google.protobuf.Duration getMessageRetentionDuration() { - return messageRetentionDuration_ == null - ? com.google.protobuf.Duration.getDefaultInstance() - : messageRetentionDuration_; - } - /** - * - * - *
-   * How long to retain unacknowledged messages in the subscription's backlog,
-   * from the moment a message is published.
-   * If `retain_acked_messages` is true, then this also configures the retention
-   * of acknowledged messages, and thus configures how far back in time a `Seek`
-   * can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
-   * minutes.
-   * 
- * - * .google.protobuf.Duration message_retention_duration = 8; - */ - @java.lang.Override - public com.google.protobuf.DurationOrBuilder getMessageRetentionDurationOrBuilder() { - return messageRetentionDuration_ == null - ? com.google.protobuf.Duration.getDefaultInstance() - : messageRetentionDuration_; - } + public static final int SUBSCRIPTION_FIELD_NUMBER = 2; - public static final int LABELS_FIELD_NUMBER = 9; + @SuppressWarnings("serial") + private volatile java.lang.Object subscription_ = ""; - private static final class LabelsDefaultEntryHolder { - static final com.google.protobuf.MapEntry defaultEntry = - com.google.protobuf.MapEntry.newDefaultInstance( - com.google.pubsub.v1.PubsubProto - .internal_static_google_pubsub_v1_Subscription_LabelsEntry_descriptor, - com.google.protobuf.WireFormat.FieldType.STRING, - "", - com.google.protobuf.WireFormat.FieldType.STRING, - ""); - } + /** + * + * + *
+     * Optional. The name of the associated Analytics Hub subscription resource.
+     * Pattern:
+     * "projects/{project}/locations/{location}/subscriptions/{subscription}"
+     * 
+ * + * string subscription = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The subscription. + */ + @java.lang.Override + public java.lang.String getSubscription() { + java.lang.Object ref = subscription_; + 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(); + subscription_ = s; + return s; + } + } - @SuppressWarnings("serial") - private com.google.protobuf.MapField labels_; + /** + * + * + *
+     * Optional. The name of the associated Analytics Hub subscription resource.
+     * Pattern:
+     * "projects/{project}/locations/{location}/subscriptions/{subscription}"
+     * 
+ * + * string subscription = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for subscription. + */ + @java.lang.Override + public com.google.protobuf.ByteString getSubscriptionBytes() { + java.lang.Object ref = subscription_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + subscription_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } - private com.google.protobuf.MapField internalGetLabels() { - if (labels_ == null) { - return com.google.protobuf.MapField.emptyMapField(LabelsDefaultEntryHolder.defaultEntry); + 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; } - return labels_; - } - public int getLabelsCount() { - return internalGetLabels().getMap().size(); - } - /** - * - * - *
-   * See [Creating and managing
-   * labels](https://cloud.google.com/pubsub/docs/labels).
-   * 
- * - * map<string, string> labels = 9; - */ - @java.lang.Override - public boolean containsLabels(java.lang.String key) { - if (key == null) { - throw new NullPointerException("map key"); + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(listing_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, listing_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(subscription_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, subscription_); + } + getUnknownFields().writeTo(output); } - return internalGetLabels().getMap().containsKey(key); - } - /** Use {@link #getLabelsMap()} instead. */ - @java.lang.Override - @java.lang.Deprecated - public java.util.Map getLabels() { - return getLabelsMap(); - } - /** - * - * - *
-   * See [Creating and managing
-   * labels](https://cloud.google.com/pubsub/docs/labels).
-   * 
- * - * map<string, string> labels = 9; - */ - @java.lang.Override - public java.util.Map getLabelsMap() { - return internalGetLabels().getMap(); - } - /** - * - * - *
-   * See [Creating and managing
-   * labels](https://cloud.google.com/pubsub/docs/labels).
-   * 
- * - * map<string, string> labels = 9; - */ - @java.lang.Override - public /* nullable */ java.lang.String getLabelsOrDefault( - java.lang.String key, - /* nullable */ - java.lang.String defaultValue) { - if (key == null) { - throw new NullPointerException("map key"); + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(listing_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, listing_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(subscription_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, subscription_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; } - java.util.Map map = internalGetLabels().getMap(); - return map.containsKey(key) ? map.get(key) : defaultValue; - } - /** - * - * - *
-   * See [Creating and managing
-   * labels](https://cloud.google.com/pubsub/docs/labels).
-   * 
- * - * map<string, string> labels = 9; - */ - @java.lang.Override - public java.lang.String getLabelsOrThrow(java.lang.String key) { - if (key == null) { - throw new NullPointerException("map key"); + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo)) { + return super.equals(obj); + } + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo other = + (com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo) obj; + + if (!getListing().equals(other.getListing())) return false; + if (!getSubscription().equals(other.getSubscription())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; } - java.util.Map map = internalGetLabels().getMap(); - if (!map.containsKey(key)) { - throw new java.lang.IllegalArgumentException(); + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + LISTING_FIELD_NUMBER; + hash = (53 * hash) + getListing().hashCode(); + hash = (37 * hash) + SUBSCRIPTION_FIELD_NUMBER; + hash = (53 * hash) + getSubscription().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo 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.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo 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.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo 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.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo 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.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo 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; + } + + /** + * + * + *
+     * Information about an associated [Analytics Hub
+     * subscription](https://cloud.google.com/bigquery/docs/analytics-hub-manage-subscriptions).
+     * 
+ * + * Protobuf type {@code google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo) + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_Subscription_AnalyticsHubSubscriptionInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_Subscription_AnalyticsHubSubscriptionInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.class, + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.Builder.class); + } + + // Construct using com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + listing_ = ""; + subscription_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_Subscription_AnalyticsHubSubscriptionInfo_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo + getDefaultInstanceForType() { + return com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo build() { + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo buildPartial() { + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo result = + new com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.listing_ = listing_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.subscription_ = subscription_; + } + } + + @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.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo) { + return mergeFrom((com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo other) { + if (other + == com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.getDefaultInstance()) + return this; + if (!other.getListing().isEmpty()) { + listing_ = other.listing_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getSubscription().isEmpty()) { + subscription_ = other.subscription_; + 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: + { + listing_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + subscription_ = 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 listing_ = ""; + + /** + * + * + *
+       * Optional. The name of the associated Analytics Hub listing resource.
+       * Pattern:
+       * "projects/{project}/locations/{location}/dataExchanges/{data_exchange}/listings/{listing}"
+       * 
+ * + * + * string listing = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * + * + * @return The listing. + */ + public java.lang.String getListing() { + java.lang.Object ref = listing_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + listing_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. The name of the associated Analytics Hub listing resource.
+       * Pattern:
+       * "projects/{project}/locations/{location}/dataExchanges/{data_exchange}/listings/{listing}"
+       * 
+ * + * + * string listing = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * + * + * @return The bytes for listing. + */ + public com.google.protobuf.ByteString getListingBytes() { + java.lang.Object ref = listing_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + listing_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. The name of the associated Analytics Hub listing resource.
+       * Pattern:
+       * "projects/{project}/locations/{location}/dataExchanges/{data_exchange}/listings/{listing}"
+       * 
+ * + * + * string listing = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * + * + * @param value The listing to set. + * @return This builder for chaining. + */ + public Builder setListing(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + listing_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The name of the associated Analytics Hub listing resource.
+       * Pattern:
+       * "projects/{project}/locations/{location}/dataExchanges/{data_exchange}/listings/{listing}"
+       * 
+ * + * + * string listing = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * + * + * @return This builder for chaining. + */ + public Builder clearListing() { + listing_ = getDefaultInstance().getListing(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The name of the associated Analytics Hub listing resource.
+       * Pattern:
+       * "projects/{project}/locations/{location}/dataExchanges/{data_exchange}/listings/{listing}"
+       * 
+ * + * + * string listing = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * + * + * @param value The bytes for listing to set. + * @return This builder for chaining. + */ + public Builder setListingBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + listing_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object subscription_ = ""; + + /** + * + * + *
+       * Optional. The name of the associated Analytics Hub subscription resource.
+       * Pattern:
+       * "projects/{project}/locations/{location}/subscriptions/{subscription}"
+       * 
+ * + * string subscription = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The subscription. + */ + public java.lang.String getSubscription() { + java.lang.Object ref = subscription_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + subscription_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. The name of the associated Analytics Hub subscription resource.
+       * Pattern:
+       * "projects/{project}/locations/{location}/subscriptions/{subscription}"
+       * 
+ * + * string subscription = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for subscription. + */ + public com.google.protobuf.ByteString getSubscriptionBytes() { + java.lang.Object ref = subscription_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + subscription_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. The name of the associated Analytics Hub subscription resource.
+       * Pattern:
+       * "projects/{project}/locations/{location}/subscriptions/{subscription}"
+       * 
+ * + * string subscription = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The subscription to set. + * @return This builder for chaining. + */ + public Builder setSubscription(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + subscription_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The name of the associated Analytics Hub subscription resource.
+       * Pattern:
+       * "projects/{project}/locations/{location}/subscriptions/{subscription}"
+       * 
+ * + * string subscription = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearSubscription() { + subscription_ = getDefaultInstance().getSubscription(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The name of the associated Analytics Hub subscription resource.
+       * Pattern:
+       * "projects/{project}/locations/{location}/subscriptions/{subscription}"
+       * 
+ * + * string subscription = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for subscription to set. + * @return This builder for chaining. + */ + public Builder setSubscriptionBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + subscription_ = 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.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo) + } + + // @@protoc_insertion_point(class_scope:google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo) + private static final com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo(); + } + + public static com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AnalyticsHubSubscriptionInfo 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.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; } - return map.get(key); } - public static final int ENABLE_MESSAGE_ORDERING_FIELD_NUMBER = 10; - private boolean enableMessageOrdering_ = false; + private int bitField0_; + public static final int NAME_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + /** * * *
-   * If true, messages published with the same `ordering_key` in `PubsubMessage`
-   * will be delivered to the subscribers in the order in which they
-   * are received by the Pub/Sub system. Otherwise, they may be delivered in
-   * any order.
+   * Required. Identifier. The name of the subscription. It must have the format
+   * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
+   * start with a letter, and contain only letters (`[A-Za-z]`), numbers
+   * (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
+   * plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
+   * in length, and it must not start with `"goog"`.
    * 
* - * bool enable_message_ordering = 10; + * + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER]; + * * - * @return The enableMessageOrdering. + * @return The name. */ @java.lang.Override - public boolean getEnableMessageOrdering() { - return enableMessageOrdering_; + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } } - public static final int EXPIRATION_POLICY_FIELD_NUMBER = 11; - private com.google.pubsub.v1.ExpirationPolicy expirationPolicy_; /** * * *
-   * A policy that specifies the conditions for this subscription's expiration.
-   * A subscription is considered active as long as any connected subscriber is
-   * successfully consuming messages from the subscription or is issuing
-   * operations on the subscription. If `expiration_policy` is not set, a
-   * *default policy* with `ttl` of 31 days will be used. The minimum allowed
-   * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
-   * but `expiration_policy.ttl` is not set, the subscription never expires.
+   * Required. Identifier. The name of the subscription. It must have the format
+   * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
+   * start with a letter, and contain only letters (`[A-Za-z]`), numbers
+   * (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
+   * plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
+   * in length, and it must not start with `"goog"`.
    * 
* - * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11; - * - * @return Whether the expirationPolicy field is set. - */ - @java.lang.Override - public boolean hasExpirationPolicy() { - return expirationPolicy_ != null; - } - /** - * - * - *
-   * A policy that specifies the conditions for this subscription's expiration.
-   * A subscription is considered active as long as any connected subscriber is
-   * successfully consuming messages from the subscription or is issuing
-   * operations on the subscription. If `expiration_policy` is not set, a
-   * *default policy* with `ttl` of 31 days will be used. The minimum allowed
-   * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
-   * but `expiration_policy.ttl` is not set, the subscription never expires.
-   * 
- * - * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11; - * - * @return The expirationPolicy. - */ - @java.lang.Override - public com.google.pubsub.v1.ExpirationPolicy getExpirationPolicy() { - return expirationPolicy_ == null - ? com.google.pubsub.v1.ExpirationPolicy.getDefaultInstance() - : expirationPolicy_; - } - /** - * - * - *
-   * A policy that specifies the conditions for this subscription's expiration.
-   * A subscription is considered active as long as any connected subscriber is
-   * successfully consuming messages from the subscription or is issuing
-   * operations on the subscription. If `expiration_policy` is not set, a
-   * *default policy* with `ttl` of 31 days will be used. The minimum allowed
-   * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
-   * but `expiration_policy.ttl` is not set, the subscription never expires.
-   * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER]; + * * - * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11; + * @return The bytes for name. */ @java.lang.Override - public com.google.pubsub.v1.ExpirationPolicyOrBuilder getExpirationPolicyOrBuilder() { - return expirationPolicy_ == null - ? com.google.pubsub.v1.ExpirationPolicy.getDefaultInstance() - : expirationPolicy_; + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } - public static final int FILTER_FIELD_NUMBER = 12; + public static final int TOPIC_FIELD_NUMBER = 2; @SuppressWarnings("serial") - private volatile java.lang.Object filter_ = ""; + private volatile java.lang.Object topic_ = ""; + /** * * *
-   * An expression written in the Pub/Sub [filter
-   * language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
-   * then only `PubsubMessage`s whose `attributes` field matches the filter are
-   * delivered on this subscription. If empty, then no messages are filtered
-   * out.
+   * Required. The name of the topic from which this subscription is receiving
+   * messages. Format is `projects/{project}/topics/{topic}`. The value of this
+   * field will be `_deleted-topic_` if the topic has been deleted.
    * 
* - * string filter = 12; + * + * string topic = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * * - * @return The filter. + * @return The topic. */ @java.lang.Override - public java.lang.String getFilter() { - java.lang.Object ref = filter_; + public java.lang.String getTopic() { + java.lang.Object ref = topic_; 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(); - filter_ = s; + topic_ = s; return s; } } + /** * * *
-   * An expression written in the Pub/Sub [filter
-   * language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
-   * then only `PubsubMessage`s whose `attributes` field matches the filter are
-   * delivered on this subscription. If empty, then no messages are filtered
-   * out.
+   * Required. The name of the topic from which this subscription is receiving
+   * messages. Format is `projects/{project}/topics/{topic}`. The value of this
+   * field will be `_deleted-topic_` if the topic has been deleted.
    * 
* - * string filter = 12; + * + * string topic = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * * - * @return The bytes for filter. + * @return The bytes for topic. */ @java.lang.Override - public com.google.protobuf.ByteString getFilterBytes() { - java.lang.Object ref = filter_; + public com.google.protobuf.ByteString getTopicBytes() { + java.lang.Object ref = topic_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - filter_ = b; + topic_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int DEAD_LETTER_POLICY_FIELD_NUMBER = 13; - private com.google.pubsub.v1.DeadLetterPolicy deadLetterPolicy_; + public static final int PUSH_CONFIG_FIELD_NUMBER = 4; + private com.google.pubsub.v1.PushConfig pushConfig_; + /** * * *
-   * A policy that specifies the conditions for dead lettering messages in
-   * this subscription. If dead_letter_policy is not set, dead lettering
-   * is disabled.
-   *
-   * The Cloud Pub/Sub service account associated with this subscriptions's
-   * parent project (i.e.,
-   * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-   * permission to Acknowledge() messages on this subscription.
+   * Optional. If push delivery is used with this subscription, this field is
+   * used to configure it.
    * 
* - * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13; + * .google.pubsub.v1.PushConfig push_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * - * @return Whether the deadLetterPolicy field is set. + * @return Whether the pushConfig field is set. */ @java.lang.Override - public boolean hasDeadLetterPolicy() { - return deadLetterPolicy_ != null; + public boolean hasPushConfig() { + return ((bitField0_ & 0x00000001) != 0); } + /** * * *
-   * A policy that specifies the conditions for dead lettering messages in
-   * this subscription. If dead_letter_policy is not set, dead lettering
-   * is disabled.
-   *
-   * The Cloud Pub/Sub service account associated with this subscriptions's
-   * parent project (i.e.,
-   * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-   * permission to Acknowledge() messages on this subscription.
+   * Optional. If push delivery is used with this subscription, this field is
+   * used to configure it.
    * 
* - * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13; + * .google.pubsub.v1.PushConfig push_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * - * @return The deadLetterPolicy. + * @return The pushConfig. */ @java.lang.Override - public com.google.pubsub.v1.DeadLetterPolicy getDeadLetterPolicy() { - return deadLetterPolicy_ == null - ? com.google.pubsub.v1.DeadLetterPolicy.getDefaultInstance() - : deadLetterPolicy_; + public com.google.pubsub.v1.PushConfig getPushConfig() { + return pushConfig_ == null ? com.google.pubsub.v1.PushConfig.getDefaultInstance() : pushConfig_; } + /** * * *
-   * A policy that specifies the conditions for dead lettering messages in
-   * this subscription. If dead_letter_policy is not set, dead lettering
-   * is disabled.
-   *
-   * The Cloud Pub/Sub service account associated with this subscriptions's
-   * parent project (i.e.,
-   * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-   * permission to Acknowledge() messages on this subscription.
+   * Optional. If push delivery is used with this subscription, this field is
+   * used to configure it.
    * 
* - * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13; + * .google.pubsub.v1.PushConfig push_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override - public com.google.pubsub.v1.DeadLetterPolicyOrBuilder getDeadLetterPolicyOrBuilder() { - return deadLetterPolicy_ == null - ? com.google.pubsub.v1.DeadLetterPolicy.getDefaultInstance() - : deadLetterPolicy_; + public com.google.pubsub.v1.PushConfigOrBuilder getPushConfigOrBuilder() { + return pushConfig_ == null ? com.google.pubsub.v1.PushConfig.getDefaultInstance() : pushConfig_; } - public static final int RETRY_POLICY_FIELD_NUMBER = 14; - private com.google.pubsub.v1.RetryPolicy retryPolicy_; + public static final int BIGQUERY_CONFIG_FIELD_NUMBER = 18; + private com.google.pubsub.v1.BigQueryConfig bigqueryConfig_; + /** * * *
-   * A policy that specifies how Pub/Sub retries message delivery for this
-   * subscription.
-   *
-   * If not set, the default retry policy is applied. This generally implies
-   * that messages will be retried as soon as possible for healthy subscribers.
-   * RetryPolicy will be triggered on NACKs or acknowledgement deadline
-   * exceeded events for a given message.
+   * Optional. If delivery to BigQuery is used with this subscription, this
+   * field is used to configure it.
    * 
* - * .google.pubsub.v1.RetryPolicy retry_policy = 14; + * + * .google.pubsub.v1.BigQueryConfig bigquery_config = 18 [(.google.api.field_behavior) = OPTIONAL]; + * * - * @return Whether the retryPolicy field is set. + * @return Whether the bigqueryConfig field is set. */ @java.lang.Override - public boolean hasRetryPolicy() { - return retryPolicy_ != null; + public boolean hasBigqueryConfig() { + return ((bitField0_ & 0x00000002) != 0); } + /** * * *
-   * A policy that specifies how Pub/Sub retries message delivery for this
-   * subscription.
-   *
-   * If not set, the default retry policy is applied. This generally implies
-   * that messages will be retried as soon as possible for healthy subscribers.
-   * RetryPolicy will be triggered on NACKs or acknowledgement deadline
-   * exceeded events for a given message.
+   * Optional. If delivery to BigQuery is used with this subscription, this
+   * field is used to configure it.
    * 
* - * .google.pubsub.v1.RetryPolicy retry_policy = 14; - * - * @return The retryPolicy. - */ - @java.lang.Override - public com.google.pubsub.v1.RetryPolicy getRetryPolicy() { - return retryPolicy_ == null - ? com.google.pubsub.v1.RetryPolicy.getDefaultInstance() - : retryPolicy_; - } - /** - * - * - *
-   * A policy that specifies how Pub/Sub retries message delivery for this
-   * subscription.
-   *
-   * If not set, the default retry policy is applied. This generally implies
-   * that messages will be retried as soon as possible for healthy subscribers.
-   * RetryPolicy will be triggered on NACKs or acknowledgement deadline
-   * exceeded events for a given message.
-   * 
+ * + * .google.pubsub.v1.BigQueryConfig bigquery_config = 18 [(.google.api.field_behavior) = OPTIONAL]; + * * - * .google.pubsub.v1.RetryPolicy retry_policy = 14; + * @return The bigqueryConfig. */ @java.lang.Override - public com.google.pubsub.v1.RetryPolicyOrBuilder getRetryPolicyOrBuilder() { - return retryPolicy_ == null - ? com.google.pubsub.v1.RetryPolicy.getDefaultInstance() - : retryPolicy_; + public com.google.pubsub.v1.BigQueryConfig getBigqueryConfig() { + return bigqueryConfig_ == null + ? com.google.pubsub.v1.BigQueryConfig.getDefaultInstance() + : bigqueryConfig_; } - public static final int DETACHED_FIELD_NUMBER = 15; - private boolean detached_ = false; /** * * *
-   * Indicates whether the subscription is detached from its topic. Detached
-   * subscriptions don't receive messages from their topic and don't retain any
-   * backlog. `Pull` and `StreamingPull` requests will return
-   * FAILED_PRECONDITION. If the subscription is a push subscription, pushes to
-   * the endpoint will not be made.
+   * Optional. If delivery to BigQuery is used with this subscription, this
+   * field is used to configure it.
    * 
* - * bool detached = 15; - * - * @return The detached. + * + * .google.pubsub.v1.BigQueryConfig bigquery_config = 18 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override - public boolean getDetached() { - return detached_; + public com.google.pubsub.v1.BigQueryConfigOrBuilder getBigqueryConfigOrBuilder() { + return bigqueryConfig_ == null + ? com.google.pubsub.v1.BigQueryConfig.getDefaultInstance() + : bigqueryConfig_; } - public static final int ENABLE_EXACTLY_ONCE_DELIVERY_FIELD_NUMBER = 16; - private boolean enableExactlyOnceDelivery_ = false; + public static final int CLOUD_STORAGE_CONFIG_FIELD_NUMBER = 22; + private com.google.pubsub.v1.CloudStorageConfig cloudStorageConfig_; + /** * * *
-   * If true, Pub/Sub provides the following guarantees for the delivery of
-   * a message with a given value of `message_id` on this subscription:
-   *
-   * * The message sent to a subscriber is guaranteed not to be resent
-   * before the message's acknowledgement deadline expires.
-   * * An acknowledged message will not be resent to a subscriber.
-   *
-   * Note that subscribers may still receive multiple copies of a message
-   * when `enable_exactly_once_delivery` is true if the message was published
-   * multiple times by a publisher client. These copies are  considered distinct
-   * by Pub/Sub and have distinct `message_id` values.
+   * Optional. If delivery to Google Cloud Storage is used with this
+   * subscription, this field is used to configure it.
    * 
* - * bool enable_exactly_once_delivery = 16; + * + * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22 [(.google.api.field_behavior) = OPTIONAL]; + * * - * @return The enableExactlyOnceDelivery. + * @return Whether the cloudStorageConfig field is set. */ @java.lang.Override - public boolean getEnableExactlyOnceDelivery() { - return enableExactlyOnceDelivery_; + public boolean hasCloudStorageConfig() { + return ((bitField0_ & 0x00000004) != 0); } - public static final int TOPIC_MESSAGE_RETENTION_DURATION_FIELD_NUMBER = 17; - private com.google.protobuf.Duration topicMessageRetentionDuration_; /** * * *
-   * Output only. Indicates the minimum duration for which a message is retained
-   * after it is published to the subscription's topic. If this field is set,
-   * messages published to the subscription's topic in the last
-   * `topic_message_retention_duration` are always available to subscribers. See
-   * the `message_retention_duration` field in `Topic`. This field is set only
-   * in responses from the server; it is ignored if it is set in any requests.
+   * Optional. If delivery to Google Cloud Storage is used with this
+   * subscription, this field is used to configure it.
    * 
* * - * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22 [(.google.api.field_behavior) = OPTIONAL]; * * - * @return Whether the topicMessageRetentionDuration field is set. + * @return The cloudStorageConfig. */ @java.lang.Override - public boolean hasTopicMessageRetentionDuration() { - return topicMessageRetentionDuration_ != null; + public com.google.pubsub.v1.CloudStorageConfig getCloudStorageConfig() { + return cloudStorageConfig_ == null + ? com.google.pubsub.v1.CloudStorageConfig.getDefaultInstance() + : cloudStorageConfig_; } + /** * * *
-   * Output only. Indicates the minimum duration for which a message is retained
-   * after it is published to the subscription's topic. If this field is set,
-   * messages published to the subscription's topic in the last
-   * `topic_message_retention_duration` are always available to subscribers. See
-   * the `message_retention_duration` field in `Topic`. This field is set only
-   * in responses from the server; it is ignored if it is set in any requests.
+   * Optional. If delivery to Google Cloud Storage is used with this
+   * subscription, this field is used to configure it.
    * 
* * - * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22 [(.google.api.field_behavior) = OPTIONAL]; * - * - * @return The topicMessageRetentionDuration. */ @java.lang.Override - public com.google.protobuf.Duration getTopicMessageRetentionDuration() { - return topicMessageRetentionDuration_ == null - ? com.google.protobuf.Duration.getDefaultInstance() - : topicMessageRetentionDuration_; + public com.google.pubsub.v1.CloudStorageConfigOrBuilder getCloudStorageConfigOrBuilder() { + return cloudStorageConfig_ == null + ? com.google.pubsub.v1.CloudStorageConfig.getDefaultInstance() + : cloudStorageConfig_; } + + public static final int ACK_DEADLINE_SECONDS_FIELD_NUMBER = 5; + private int ackDeadlineSeconds_ = 0; + /** * * *
-   * Output only. Indicates the minimum duration for which a message is retained
-   * after it is published to the subscription's topic. If this field is set,
-   * messages published to the subscription's topic in the last
-   * `topic_message_retention_duration` are always available to subscribers. See
-   * the `message_retention_duration` field in `Topic`. This field is set only
-   * in responses from the server; it is ignored if it is set in any requests.
+   * Optional. The approximate amount of time (on a best-effort basis) Pub/Sub
+   * waits for the subscriber to acknowledge receipt before resending the
+   * message. In the interval after the message is delivered and before it is
+   * acknowledged, it is considered to be _outstanding_. During that time
+   * period, the message will not be redelivered (on a best-effort basis).
+   *
+   * For pull subscriptions, this value is used as the initial value for the ack
+   * deadline. To override this value for a given message, call
+   * `ModifyAckDeadline` with the corresponding `ack_id` if using
+   * non-streaming pull or send the `ack_id` in a
+   * `StreamingModifyAckDeadlineRequest` if using streaming pull.
+   * The minimum custom deadline you can specify is 10 seconds.
+   * The maximum custom deadline you can specify is 600 seconds (10 minutes).
+   * If this parameter is 0, a default value of 10 seconds is used.
+   *
+   * For push delivery, this value is also used to set the request timeout for
+   * the call to the push endpoint.
+   *
+   * If the subscriber never acknowledges the message, the Pub/Sub
+   * system will eventually redeliver the message.
+   * 
+ * + * int32 ack_deadline_seconds = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The ackDeadlineSeconds. + */ + @java.lang.Override + public int getAckDeadlineSeconds() { + return ackDeadlineSeconds_; + } + + public static final int RETAIN_ACKED_MESSAGES_FIELD_NUMBER = 7; + private boolean retainAckedMessages_ = false; + + /** + * + * + *
+   * Optional. Indicates whether to retain acknowledged messages. If true, then
+   * messages are not expunged from the subscription's backlog, even if they are
+   * acknowledged, until they fall out of the `message_retention_duration`
+   * window. This must be true if you would like to [`Seek` to a timestamp]
+   * (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) in
+   * the past to replay previously-acknowledged messages.
+   * 
+ * + * bool retain_acked_messages = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The retainAckedMessages. + */ + @java.lang.Override + public boolean getRetainAckedMessages() { + return retainAckedMessages_; + } + + public static final int MESSAGE_RETENTION_DURATION_FIELD_NUMBER = 8; + private com.google.protobuf.Duration messageRetentionDuration_; + + /** + * + * + *
+   * Optional. How long to retain unacknowledged messages in the subscription's
+   * backlog, from the moment a message is published. If `retain_acked_messages`
+   * is true, then this also configures the retention of acknowledged messages,
+   * and thus configures how far back in time a `Seek` can be done. Defaults to
+   * 7 days. Cannot be more than 31 days or less than 10 minutes.
    * 
* * - * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; * + * + * @return Whether the messageRetentionDuration field is set. */ @java.lang.Override - public com.google.protobuf.DurationOrBuilder getTopicMessageRetentionDurationOrBuilder() { - return topicMessageRetentionDuration_ == null - ? com.google.protobuf.Duration.getDefaultInstance() - : topicMessageRetentionDuration_; + public boolean hasMessageRetentionDuration() { + return ((bitField0_ & 0x00000008) != 0); } - public static final int STATE_FIELD_NUMBER = 19; - private int state_ = 0; /** * * *
-   * Output only. An output-only field indicating whether or not the
-   * subscription can receive messages.
+   * Optional. How long to retain unacknowledged messages in the subscription's
+   * backlog, from the moment a message is published. If `retain_acked_messages`
+   * is true, then this also configures the retention of acknowledged messages,
+   * and thus configures how far back in time a `Seek` can be done. Defaults to
+   * 7 days. Cannot be more than 31 days or less than 10 minutes.
    * 
* * - * .google.pubsub.v1.Subscription.State state = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; * * - * @return The enum numeric value on the wire for state. + * @return The messageRetentionDuration. */ @java.lang.Override - public int getStateValue() { - return state_; + public com.google.protobuf.Duration getMessageRetentionDuration() { + return messageRetentionDuration_ == null + ? com.google.protobuf.Duration.getDefaultInstance() + : messageRetentionDuration_; } + /** * * *
-   * Output only. An output-only field indicating whether or not the
-   * subscription can receive messages.
+   * Optional. How long to retain unacknowledged messages in the subscription's
+   * backlog, from the moment a message is published. If `retain_acked_messages`
+   * is true, then this also configures the retention of acknowledged messages,
+   * and thus configures how far back in time a `Seek` can be done. Defaults to
+   * 7 days. Cannot be more than 31 days or less than 10 minutes.
    * 
* * - * .google.pubsub.v1.Subscription.State state = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; * - * - * @return The state. */ @java.lang.Override - public com.google.pubsub.v1.Subscription.State getState() { - com.google.pubsub.v1.Subscription.State result = - com.google.pubsub.v1.Subscription.State.forNumber(state_); - return result == null ? com.google.pubsub.v1.Subscription.State.UNRECOGNIZED : result; + public com.google.protobuf.DurationOrBuilder getMessageRetentionDurationOrBuilder() { + return messageRetentionDuration_ == null + ? com.google.protobuf.Duration.getDefaultInstance() + : messageRetentionDuration_; } - private byte memoizedIsInitialized = -1; + public static final int LABELS_FIELD_NUMBER = 9; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + private static final class LabelsDefaultEntryHolder { + static final com.google.protobuf.MapEntry defaultEntry = + com.google.protobuf.MapEntry.newDefaultInstance( + com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_Subscription_LabelsEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.STRING, + ""); + } - memoizedIsInitialized = 1; - return true; + @SuppressWarnings("serial") + private com.google.protobuf.MapField labels_; + + private com.google.protobuf.MapField internalGetLabels() { + if (labels_ == null) { + return com.google.protobuf.MapField.emptyMapField(LabelsDefaultEntryHolder.defaultEntry); + } + return labels_; + } + + public int getLabelsCount() { + return internalGetLabels().getMap().size(); } + /** + * + * + *
+   * Optional. See [Creating and managing
+   * labels](https://cloud.google.com/pubsub/docs/labels).
+   * 
+ * + * map<string, string> labels = 9 [(.google.api.field_behavior) = OPTIONAL]; + */ @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(topic_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, topic_); - } - if (pushConfig_ != null) { - output.writeMessage(4, getPushConfig()); - } - if (ackDeadlineSeconds_ != 0) { - output.writeInt32(5, ackDeadlineSeconds_); - } - if (retainAckedMessages_ != false) { - output.writeBool(7, retainAckedMessages_); - } - if (messageRetentionDuration_ != null) { - output.writeMessage(8, getMessageRetentionDuration()); - } - com.google.protobuf.GeneratedMessageV3.serializeStringMapTo( - output, internalGetLabels(), LabelsDefaultEntryHolder.defaultEntry, 9); - if (enableMessageOrdering_ != false) { - output.writeBool(10, enableMessageOrdering_); - } - if (expirationPolicy_ != null) { - output.writeMessage(11, getExpirationPolicy()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(filter_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 12, filter_); - } - if (deadLetterPolicy_ != null) { - output.writeMessage(13, getDeadLetterPolicy()); - } - if (retryPolicy_ != null) { - output.writeMessage(14, getRetryPolicy()); - } - if (detached_ != false) { - output.writeBool(15, detached_); - } - if (enableExactlyOnceDelivery_ != false) { - output.writeBool(16, enableExactlyOnceDelivery_); - } - if (topicMessageRetentionDuration_ != null) { - output.writeMessage(17, getTopicMessageRetentionDuration()); - } - if (bigqueryConfig_ != null) { - output.writeMessage(18, getBigqueryConfig()); - } - if (state_ != com.google.pubsub.v1.Subscription.State.STATE_UNSPECIFIED.getNumber()) { - output.writeEnum(19, state_); - } - if (cloudStorageConfig_ != null) { - output.writeMessage(22, getCloudStorageConfig()); + public boolean containsLabels(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); } - getUnknownFields().writeTo(output); + return internalGetLabels().getMap().containsKey(key); } + /** Use {@link #getLabelsMap()} instead. */ @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; + @java.lang.Deprecated + public java.util.Map getLabels() { + return getLabelsMap(); + } - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(topic_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, topic_); - } - if (pushConfig_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getPushConfig()); - } - if (ackDeadlineSeconds_ != 0) { - size += com.google.protobuf.CodedOutputStream.computeInt32Size(5, ackDeadlineSeconds_); + /** + * + * + *
+   * Optional. See [Creating and managing
+   * labels](https://cloud.google.com/pubsub/docs/labels).
+   * 
+ * + * map<string, string> labels = 9 [(.google.api.field_behavior) = OPTIONAL]; + */ + @java.lang.Override + public java.util.Map getLabelsMap() { + return internalGetLabels().getMap(); + } + + /** + * + * + *
+   * Optional. See [Creating and managing
+   * labels](https://cloud.google.com/pubsub/docs/labels).
+   * 
+ * + * map<string, string> labels = 9 [(.google.api.field_behavior) = OPTIONAL]; + */ + @java.lang.Override + public /* nullable */ java.lang.String getLabelsOrDefault( + java.lang.String key, + /* nullable */ + java.lang.String defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); } - if (retainAckedMessages_ != false) { - size += com.google.protobuf.CodedOutputStream.computeBoolSize(7, retainAckedMessages_); + java.util.Map map = internalGetLabels().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + + /** + * + * + *
+   * Optional. See [Creating and managing
+   * labels](https://cloud.google.com/pubsub/docs/labels).
+   * 
+ * + * map<string, string> labels = 9 [(.google.api.field_behavior) = OPTIONAL]; + */ + @java.lang.Override + public java.lang.String getLabelsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); } - if (messageRetentionDuration_ != null) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize( - 8, getMessageRetentionDuration()); + java.util.Map map = internalGetLabels().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); } - for (java.util.Map.Entry entry : - internalGetLabels().getMap().entrySet()) { - com.google.protobuf.MapEntry labels__ = - LabelsDefaultEntryHolder.defaultEntry - .newBuilderForType() - .setKey(entry.getKey()) - .setValue(entry.getValue()) - .build(); - size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, labels__); - } - if (enableMessageOrdering_ != false) { - size += com.google.protobuf.CodedOutputStream.computeBoolSize(10, enableMessageOrdering_); - } - if (expirationPolicy_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(11, getExpirationPolicy()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(filter_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, filter_); - } - if (deadLetterPolicy_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(13, getDeadLetterPolicy()); - } - if (retryPolicy_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(14, getRetryPolicy()); - } - if (detached_ != false) { - size += com.google.protobuf.CodedOutputStream.computeBoolSize(15, detached_); - } - if (enableExactlyOnceDelivery_ != false) { - size += com.google.protobuf.CodedOutputStream.computeBoolSize(16, enableExactlyOnceDelivery_); - } - if (topicMessageRetentionDuration_ != null) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize( - 17, getTopicMessageRetentionDuration()); - } - if (bigqueryConfig_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(18, getBigqueryConfig()); - } - if (state_ != com.google.pubsub.v1.Subscription.State.STATE_UNSPECIFIED.getNumber()) { - size += com.google.protobuf.CodedOutputStream.computeEnumSize(19, state_); - } - if (cloudStorageConfig_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(22, getCloudStorageConfig()); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; + return map.get(key); } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof com.google.pubsub.v1.Subscription)) { - return super.equals(obj); - } - com.google.pubsub.v1.Subscription other = (com.google.pubsub.v1.Subscription) obj; - - if (!getName().equals(other.getName())) return false; - if (!getTopic().equals(other.getTopic())) return false; - if (hasPushConfig() != other.hasPushConfig()) return false; - if (hasPushConfig()) { - if (!getPushConfig().equals(other.getPushConfig())) return false; - } - if (hasBigqueryConfig() != other.hasBigqueryConfig()) return false; - if (hasBigqueryConfig()) { - if (!getBigqueryConfig().equals(other.getBigqueryConfig())) return false; - } - if (hasCloudStorageConfig() != other.hasCloudStorageConfig()) return false; - if (hasCloudStorageConfig()) { - if (!getCloudStorageConfig().equals(other.getCloudStorageConfig())) return false; - } - if (getAckDeadlineSeconds() != other.getAckDeadlineSeconds()) return false; - if (getRetainAckedMessages() != other.getRetainAckedMessages()) return false; - if (hasMessageRetentionDuration() != other.hasMessageRetentionDuration()) return false; - if (hasMessageRetentionDuration()) { - if (!getMessageRetentionDuration().equals(other.getMessageRetentionDuration())) return false; - } - if (!internalGetLabels().equals(other.internalGetLabels())) return false; - if (getEnableMessageOrdering() != other.getEnableMessageOrdering()) return false; - if (hasExpirationPolicy() != other.hasExpirationPolicy()) return false; - if (hasExpirationPolicy()) { - if (!getExpirationPolicy().equals(other.getExpirationPolicy())) return false; - } - if (!getFilter().equals(other.getFilter())) return false; - if (hasDeadLetterPolicy() != other.hasDeadLetterPolicy()) return false; - if (hasDeadLetterPolicy()) { - if (!getDeadLetterPolicy().equals(other.getDeadLetterPolicy())) return false; - } - if (hasRetryPolicy() != other.hasRetryPolicy()) return false; - if (hasRetryPolicy()) { - if (!getRetryPolicy().equals(other.getRetryPolicy())) return false; - } - if (getDetached() != other.getDetached()) return false; - if (getEnableExactlyOnceDelivery() != other.getEnableExactlyOnceDelivery()) return false; - if (hasTopicMessageRetentionDuration() != other.hasTopicMessageRetentionDuration()) - return false; - if (hasTopicMessageRetentionDuration()) { - if (!getTopicMessageRetentionDuration().equals(other.getTopicMessageRetentionDuration())) - return false; - } - if (state_ != other.state_) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } + public static final int ENABLE_MESSAGE_ORDERING_FIELD_NUMBER = 10; + private boolean enableMessageOrdering_ = false; + /** + * + * + *
+   * Optional. If true, messages published with the same `ordering_key` in
+   * `PubsubMessage` will be delivered to the subscribers in the order in which
+   * they are received by the Pub/Sub system. Otherwise, they may be delivered
+   * in any order.
+   * 
+ * + * bool enable_message_ordering = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The enableMessageOrdering. + */ @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + NAME_FIELD_NUMBER; - hash = (53 * hash) + getName().hashCode(); - hash = (37 * hash) + TOPIC_FIELD_NUMBER; - hash = (53 * hash) + getTopic().hashCode(); - if (hasPushConfig()) { - hash = (37 * hash) + PUSH_CONFIG_FIELD_NUMBER; - hash = (53 * hash) + getPushConfig().hashCode(); - } - if (hasBigqueryConfig()) { - hash = (37 * hash) + BIGQUERY_CONFIG_FIELD_NUMBER; - hash = (53 * hash) + getBigqueryConfig().hashCode(); - } - if (hasCloudStorageConfig()) { - hash = (37 * hash) + CLOUD_STORAGE_CONFIG_FIELD_NUMBER; - hash = (53 * hash) + getCloudStorageConfig().hashCode(); - } - hash = (37 * hash) + ACK_DEADLINE_SECONDS_FIELD_NUMBER; - hash = (53 * hash) + getAckDeadlineSeconds(); - hash = (37 * hash) + RETAIN_ACKED_MESSAGES_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getRetainAckedMessages()); - if (hasMessageRetentionDuration()) { - hash = (37 * hash) + MESSAGE_RETENTION_DURATION_FIELD_NUMBER; - hash = (53 * hash) + getMessageRetentionDuration().hashCode(); - } - if (!internalGetLabels().getMap().isEmpty()) { - hash = (37 * hash) + LABELS_FIELD_NUMBER; - hash = (53 * hash) + internalGetLabels().hashCode(); - } - hash = (37 * hash) + ENABLE_MESSAGE_ORDERING_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getEnableMessageOrdering()); - if (hasExpirationPolicy()) { - hash = (37 * hash) + EXPIRATION_POLICY_FIELD_NUMBER; - hash = (53 * hash) + getExpirationPolicy().hashCode(); - } - hash = (37 * hash) + FILTER_FIELD_NUMBER; - hash = (53 * hash) + getFilter().hashCode(); - if (hasDeadLetterPolicy()) { - hash = (37 * hash) + DEAD_LETTER_POLICY_FIELD_NUMBER; - hash = (53 * hash) + getDeadLetterPolicy().hashCode(); - } - if (hasRetryPolicy()) { - hash = (37 * hash) + RETRY_POLICY_FIELD_NUMBER; - hash = (53 * hash) + getRetryPolicy().hashCode(); - } - hash = (37 * hash) + DETACHED_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getDetached()); - hash = (37 * hash) + ENABLE_EXACTLY_ONCE_DELIVERY_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getEnableExactlyOnceDelivery()); - if (hasTopicMessageRetentionDuration()) { - hash = (37 * hash) + TOPIC_MESSAGE_RETENTION_DURATION_FIELD_NUMBER; - hash = (53 * hash) + getTopicMessageRetentionDuration().hashCode(); - } - hash = (37 * hash) + STATE_FIELD_NUMBER; - hash = (53 * hash) + state_; - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static com.google.pubsub.v1.Subscription parseFrom(java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); + public boolean getEnableMessageOrdering() { + return enableMessageOrdering_; } - public static com.google.pubsub.v1.Subscription parseFrom( - java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } + public static final int EXPIRATION_POLICY_FIELD_NUMBER = 11; + private com.google.pubsub.v1.ExpirationPolicy expirationPolicy_; - public static com.google.pubsub.v1.Subscription parseFrom(com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); + /** + * + * + *
+   * Optional. A policy that specifies the conditions for this subscription's
+   * expiration. A subscription is considered active as long as any connected
+   * subscriber is successfully consuming messages from the subscription or is
+   * issuing operations on the subscription. If `expiration_policy` is not set,
+   * a *default policy* with `ttl` of 31 days will be used. The minimum allowed
+   * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
+   * but `expiration_policy.ttl` is not set, the subscription never expires.
+   * 
+ * + * + * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the expirationPolicy field is set. + */ + @java.lang.Override + public boolean hasExpirationPolicy() { + return ((bitField0_ & 0x00000010) != 0); } - public static com.google.pubsub.v1.Subscription parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); + /** + * + * + *
+   * Optional. A policy that specifies the conditions for this subscription's
+   * expiration. A subscription is considered active as long as any connected
+   * subscriber is successfully consuming messages from the subscription or is
+   * issuing operations on the subscription. If `expiration_policy` is not set,
+   * a *default policy* with `ttl` of 31 days will be used. The minimum allowed
+   * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
+   * but `expiration_policy.ttl` is not set, the subscription never expires.
+   * 
+ * + * + * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The expirationPolicy. + */ + @java.lang.Override + public com.google.pubsub.v1.ExpirationPolicy getExpirationPolicy() { + return expirationPolicy_ == null + ? com.google.pubsub.v1.ExpirationPolicy.getDefaultInstance() + : expirationPolicy_; } - public static com.google.pubsub.v1.Subscription parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); + /** + * + * + *
+   * Optional. A policy that specifies the conditions for this subscription's
+   * expiration. A subscription is considered active as long as any connected
+   * subscriber is successfully consuming messages from the subscription or is
+   * issuing operations on the subscription. If `expiration_policy` is not set,
+   * a *default policy* with `ttl` of 31 days will be used. The minimum allowed
+   * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
+   * but `expiration_policy.ttl` is not set, the subscription never expires.
+   * 
+ * + * + * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.ExpirationPolicyOrBuilder getExpirationPolicyOrBuilder() { + return expirationPolicy_ == null + ? com.google.pubsub.v1.ExpirationPolicy.getDefaultInstance() + : expirationPolicy_; } - public static com.google.pubsub.v1.Subscription parseFrom( - byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } + public static final int FILTER_FIELD_NUMBER = 12; - public static com.google.pubsub.v1.Subscription parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); - } + @SuppressWarnings("serial") + private volatile java.lang.Object filter_ = ""; - public static com.google.pubsub.v1.Subscription parseFrom( - java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3.parseWithIOException( - PARSER, input, extensionRegistry); + /** + * + * + *
+   * Optional. An expression written in the Pub/Sub [filter
+   * language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
+   * then only `PubsubMessage`s whose `attributes` field matches the filter are
+   * delivered on this subscription. If empty, then no messages are filtered
+   * out.
+   * 
+ * + * string filter = 12 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The filter. + */ + @java.lang.Override + public java.lang.String getFilter() { + java.lang.Object ref = filter_; + 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(); + filter_ = s; + return s; + } } - public static com.google.pubsub.v1.Subscription parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + /** + * + * + *
+   * Optional. An expression written in the Pub/Sub [filter
+   * language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
+   * then only `PubsubMessage`s whose `attributes` field matches the filter are
+   * delivered on this subscription. If empty, then no messages are filtered
+   * out.
+   * 
+ * + * string filter = 12 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for filter. + */ + @java.lang.Override + public com.google.protobuf.ByteString getFilterBytes() { + java.lang.Object ref = filter_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + filter_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } - public static com.google.pubsub.v1.Subscription 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 final int DEAD_LETTER_POLICY_FIELD_NUMBER = 13; + private com.google.pubsub.v1.DeadLetterPolicy deadLetterPolicy_; - public static com.google.pubsub.v1.Subscription parseFrom( - com.google.protobuf.CodedInputStream input) throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + /** + * + * + *
+   * Optional. A policy that specifies the conditions for dead lettering
+   * messages in this subscription. If dead_letter_policy is not set, dead
+   * lettering is disabled.
+   *
+   * The Pub/Sub service account associated with this subscriptions's
+   * parent project (i.e.,
+   * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
+   * permission to Acknowledge() messages on this subscription.
+   * 
+ * + * + * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the deadLetterPolicy field is set. + */ + @java.lang.Override + public boolean hasDeadLetterPolicy() { + return ((bitField0_ & 0x00000020) != 0); } - public static com.google.pubsub.v1.Subscription parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3.parseWithIOException( - PARSER, input, extensionRegistry); + /** + * + * + *
+   * Optional. A policy that specifies the conditions for dead lettering
+   * messages in this subscription. If dead_letter_policy is not set, dead
+   * lettering is disabled.
+   *
+   * The Pub/Sub service account associated with this subscriptions's
+   * parent project (i.e.,
+   * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
+   * permission to Acknowledge() messages on this subscription.
+   * 
+ * + * + * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The deadLetterPolicy. + */ + @java.lang.Override + public com.google.pubsub.v1.DeadLetterPolicy getDeadLetterPolicy() { + return deadLetterPolicy_ == null + ? com.google.pubsub.v1.DeadLetterPolicy.getDefaultInstance() + : deadLetterPolicy_; } + /** + * + * + *
+   * Optional. A policy that specifies the conditions for dead lettering
+   * messages in this subscription. If dead_letter_policy is not set, dead
+   * lettering is disabled.
+   *
+   * The Pub/Sub service account associated with this subscriptions's
+   * parent project (i.e.,
+   * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
+   * permission to Acknowledge() messages on this subscription.
+   * 
+ * + * + * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ @java.lang.Override - public Builder newBuilderForType() { - return newBuilder(); + public com.google.pubsub.v1.DeadLetterPolicyOrBuilder getDeadLetterPolicyOrBuilder() { + return deadLetterPolicy_ == null + ? com.google.pubsub.v1.DeadLetterPolicy.getDefaultInstance() + : deadLetterPolicy_; } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } + public static final int RETRY_POLICY_FIELD_NUMBER = 14; + private com.google.pubsub.v1.RetryPolicy retryPolicy_; - public static Builder newBuilder(com.google.pubsub.v1.Subscription prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + /** + * + * + *
+   * Optional. A policy that specifies how Pub/Sub retries message delivery for
+   * this subscription.
+   *
+   * If not set, the default retry policy is applied. This generally implies
+   * that messages will be retried as soon as possible for healthy subscribers.
+   * RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
+   * events for a given message.
+   * 
+ * + * + * .google.pubsub.v1.RetryPolicy retry_policy = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the retryPolicy field is set. + */ + @java.lang.Override + public boolean hasRetryPolicy() { + return ((bitField0_ & 0x00000040) != 0); } + /** + * + * + *
+   * Optional. A policy that specifies how Pub/Sub retries message delivery for
+   * this subscription.
+   *
+   * If not set, the default retry policy is applied. This generally implies
+   * that messages will be retried as soon as possible for healthy subscribers.
+   * RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
+   * events for a given message.
+   * 
+ * + * + * .google.pubsub.v1.RetryPolicy retry_policy = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The retryPolicy. + */ @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + public com.google.pubsub.v1.RetryPolicy getRetryPolicy() { + return retryPolicy_ == null + ? com.google.pubsub.v1.RetryPolicy.getDefaultInstance() + : retryPolicy_; } + /** + * + * + *
+   * Optional. A policy that specifies how Pub/Sub retries message delivery for
+   * this subscription.
+   *
+   * If not set, the default retry policy is applied. This generally implies
+   * that messages will be retried as soon as possible for healthy subscribers.
+   * RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
+   * events for a given message.
+   * 
+ * + * + * .google.pubsub.v1.RetryPolicy retry_policy = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + */ @java.lang.Override - protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; + public com.google.pubsub.v1.RetryPolicyOrBuilder getRetryPolicyOrBuilder() { + return retryPolicy_ == null + ? com.google.pubsub.v1.RetryPolicy.getDefaultInstance() + : retryPolicy_; } + + public static final int DETACHED_FIELD_NUMBER = 15; + private boolean detached_ = false; + /** * * *
-   * A subscription resource. If none of `push_config`, `bigquery_config`, or
-   * `cloud_storage_config` is set, then the subscriber will pull and ack messages
-   * using API methods. At most one of these fields may be set.
+   * Optional. Indicates whether the subscription is detached from its topic.
+   * Detached subscriptions don't receive messages from their topic and don't
+   * retain any backlog. `Pull` and `StreamingPull` requests will return
+   * FAILED_PRECONDITION. If the subscription is a push subscription, pushes to
+   * the endpoint will not be made.
    * 
* - * Protobuf type {@code google.pubsub.v1.Subscription} + * bool detached = 15 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The detached. */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder - implements - // @@protoc_insertion_point(builder_implements:google.pubsub.v1.Subscription) - com.google.pubsub.v1.SubscriptionOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return com.google.pubsub.v1.PubsubProto - .internal_static_google_pubsub_v1_Subscription_descriptor; - } + @java.lang.Override + public boolean getDetached() { + return detached_; + } - @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMapField(int number) { - switch (number) { - case 9: - return internalGetLabels(); - default: - throw new RuntimeException("Invalid map field number: " + number); - } - } + public static final int ENABLE_EXACTLY_ONCE_DELIVERY_FIELD_NUMBER = 16; + private boolean enableExactlyOnceDelivery_ = false; - @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMutableMapField(int number) { - switch (number) { - case 9: - return internalGetMutableLabels(); - default: - throw new RuntimeException("Invalid map field number: " + number); - } - } + /** + * + * + *
+   * Optional. If true, Pub/Sub provides the following guarantees for the
+   * delivery of a message with a given value of `message_id` on this
+   * subscription:
+   *
+   * * The message sent to a subscriber is guaranteed not to be resent
+   * before the message's acknowledgment deadline expires.
+   * * An acknowledged message will not be resent to a subscriber.
+   *
+   * Note that subscribers may still receive multiple copies of a message
+   * when `enable_exactly_once_delivery` is true if the message was published
+   * multiple times by a publisher client. These copies are  considered distinct
+   * by Pub/Sub and have distinct `message_id` values.
+   * 
+ * + * bool enable_exactly_once_delivery = 16 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The enableExactlyOnceDelivery. + */ + @java.lang.Override + public boolean getEnableExactlyOnceDelivery() { + return enableExactlyOnceDelivery_; + } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return com.google.pubsub.v1.PubsubProto - .internal_static_google_pubsub_v1_Subscription_fieldAccessorTable - .ensureFieldAccessorsInitialized( - com.google.pubsub.v1.Subscription.class, - com.google.pubsub.v1.Subscription.Builder.class); - } + public static final int TOPIC_MESSAGE_RETENTION_DURATION_FIELD_NUMBER = 17; + private com.google.protobuf.Duration topicMessageRetentionDuration_; - // Construct using com.google.pubsub.v1.Subscription.newBuilder() - private Builder() {} + /** + * + * + *
+   * Output only. Indicates the minimum duration for which a message is retained
+   * after it is published to the subscription's topic. If this field is set,
+   * messages published to the subscription's topic in the last
+   * `topic_message_retention_duration` are always available to subscribers. See
+   * the `message_retention_duration` field in `Topic`. This field is set only
+   * in responses from the server; it is ignored if it is set in any requests.
+   * 
+ * + * + * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the topicMessageRetentionDuration field is set. + */ + @java.lang.Override + public boolean hasTopicMessageRetentionDuration() { + return ((bitField0_ & 0x00000080) != 0); + } - private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - } + /** + * + * + *
+   * Output only. Indicates the minimum duration for which a message is retained
+   * after it is published to the subscription's topic. If this field is set,
+   * messages published to the subscription's topic in the last
+   * `topic_message_retention_duration` are always available to subscribers. See
+   * the `message_retention_duration` field in `Topic`. This field is set only
+   * in responses from the server; it is ignored if it is set in any requests.
+   * 
+ * + * + * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The topicMessageRetentionDuration. + */ + @java.lang.Override + public com.google.protobuf.Duration getTopicMessageRetentionDuration() { + return topicMessageRetentionDuration_ == null + ? com.google.protobuf.Duration.getDefaultInstance() + : topicMessageRetentionDuration_; + } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - name_ = ""; - topic_ = ""; - pushConfig_ = null; - if (pushConfigBuilder_ != null) { - pushConfigBuilder_.dispose(); - pushConfigBuilder_ = null; - } - bigqueryConfig_ = null; - if (bigqueryConfigBuilder_ != null) { - bigqueryConfigBuilder_.dispose(); - bigqueryConfigBuilder_ = null; - } - cloudStorageConfig_ = null; - if (cloudStorageConfigBuilder_ != null) { - cloudStorageConfigBuilder_.dispose(); - cloudStorageConfigBuilder_ = null; - } - ackDeadlineSeconds_ = 0; - retainAckedMessages_ = false; - messageRetentionDuration_ = null; - if (messageRetentionDurationBuilder_ != null) { - messageRetentionDurationBuilder_.dispose(); - messageRetentionDurationBuilder_ = null; - } - internalGetMutableLabels().clear(); - enableMessageOrdering_ = false; - expirationPolicy_ = null; - if (expirationPolicyBuilder_ != null) { - expirationPolicyBuilder_.dispose(); - expirationPolicyBuilder_ = null; - } - filter_ = ""; - deadLetterPolicy_ = null; - if (deadLetterPolicyBuilder_ != null) { - deadLetterPolicyBuilder_.dispose(); - deadLetterPolicyBuilder_ = null; - } - retryPolicy_ = null; - if (retryPolicyBuilder_ != null) { - retryPolicyBuilder_.dispose(); - retryPolicyBuilder_ = null; - } - detached_ = false; - enableExactlyOnceDelivery_ = false; - topicMessageRetentionDuration_ = null; - if (topicMessageRetentionDurationBuilder_ != null) { - topicMessageRetentionDurationBuilder_.dispose(); - topicMessageRetentionDurationBuilder_ = null; - } - state_ = 0; - return this; - } + /** + * + * + *
+   * Output only. Indicates the minimum duration for which a message is retained
+   * after it is published to the subscription's topic. If this field is set,
+   * messages published to the subscription's topic in the last
+   * `topic_message_retention_duration` are always available to subscribers. See
+   * the `message_retention_duration` field in `Topic`. This field is set only
+   * in responses from the server; it is ignored if it is set in any requests.
+   * 
+ * + * + * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.protobuf.DurationOrBuilder getTopicMessageRetentionDurationOrBuilder() { + return topicMessageRetentionDuration_ == null + ? com.google.protobuf.Duration.getDefaultInstance() + : topicMessageRetentionDuration_; + } - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return com.google.pubsub.v1.PubsubProto - .internal_static_google_pubsub_v1_Subscription_descriptor; - } + public static final int STATE_FIELD_NUMBER = 19; + private int state_ = 0; - @java.lang.Override - public com.google.pubsub.v1.Subscription getDefaultInstanceForType() { - return com.google.pubsub.v1.Subscription.getDefaultInstance(); - } + /** + * + * + *
+   * Output only. An output-only field indicating whether or not the
+   * subscription can receive messages.
+   * 
+ * + * + * .google.pubsub.v1.Subscription.State state = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override + public int getStateValue() { + return state_; + } - @java.lang.Override - public com.google.pubsub.v1.Subscription build() { - com.google.pubsub.v1.Subscription result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } + /** + * + * + *
+   * Output only. An output-only field indicating whether or not the
+   * subscription can receive messages.
+   * 
+ * + * + * .google.pubsub.v1.Subscription.State state = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + @java.lang.Override + public com.google.pubsub.v1.Subscription.State getState() { + com.google.pubsub.v1.Subscription.State result = + com.google.pubsub.v1.Subscription.State.forNumber(state_); + return result == null ? com.google.pubsub.v1.Subscription.State.UNRECOGNIZED : result; + } - @java.lang.Override - public com.google.pubsub.v1.Subscription buildPartial() { - com.google.pubsub.v1.Subscription result = new com.google.pubsub.v1.Subscription(this); - if (bitField0_ != 0) { - buildPartial0(result); - } - onBuilt(); - return result; - } + public static final int ANALYTICS_HUB_SUBSCRIPTION_INFO_FIELD_NUMBER = 23; + private com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo + analyticsHubSubscriptionInfo_; - private void buildPartial0(com.google.pubsub.v1.Subscription result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.name_ = name_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.topic_ = topic_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.pushConfig_ = pushConfigBuilder_ == null ? pushConfig_ : pushConfigBuilder_.build(); - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.bigqueryConfig_ = - bigqueryConfigBuilder_ == null ? bigqueryConfig_ : bigqueryConfigBuilder_.build(); - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.cloudStorageConfig_ = - cloudStorageConfigBuilder_ == null - ? cloudStorageConfig_ - : cloudStorageConfigBuilder_.build(); - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.ackDeadlineSeconds_ = ackDeadlineSeconds_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.retainAckedMessages_ = retainAckedMessages_; - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.messageRetentionDuration_ = - messageRetentionDurationBuilder_ == null - ? messageRetentionDuration_ - : messageRetentionDurationBuilder_.build(); - } - if (((from_bitField0_ & 0x00000100) != 0)) { - result.labels_ = internalGetLabels(); - result.labels_.makeImmutable(); - } - if (((from_bitField0_ & 0x00000200) != 0)) { - result.enableMessageOrdering_ = enableMessageOrdering_; - } - if (((from_bitField0_ & 0x00000400) != 0)) { - result.expirationPolicy_ = - expirationPolicyBuilder_ == null ? expirationPolicy_ : expirationPolicyBuilder_.build(); - } - if (((from_bitField0_ & 0x00000800) != 0)) { - result.filter_ = filter_; - } - if (((from_bitField0_ & 0x00001000) != 0)) { - result.deadLetterPolicy_ = - deadLetterPolicyBuilder_ == null ? deadLetterPolicy_ : deadLetterPolicyBuilder_.build(); - } - if (((from_bitField0_ & 0x00002000) != 0)) { - result.retryPolicy_ = - retryPolicyBuilder_ == null ? retryPolicy_ : retryPolicyBuilder_.build(); - } - if (((from_bitField0_ & 0x00004000) != 0)) { - result.detached_ = detached_; - } - if (((from_bitField0_ & 0x00008000) != 0)) { - result.enableExactlyOnceDelivery_ = enableExactlyOnceDelivery_; - } - if (((from_bitField0_ & 0x00010000) != 0)) { - result.topicMessageRetentionDuration_ = - topicMessageRetentionDurationBuilder_ == null - ? topicMessageRetentionDuration_ - : topicMessageRetentionDurationBuilder_.build(); - } - if (((from_bitField0_ & 0x00020000) != 0)) { - result.state_ = state_; - } - } + /** + * + * + *
+   * Output only. Information about the associated Analytics Hub subscription.
+   * Only set if the subscritpion is created by Analytics Hub.
+   * 
+ * + * + * .google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the analyticsHubSubscriptionInfo field is set. + */ + @java.lang.Override + public boolean hasAnalyticsHubSubscriptionInfo() { + return ((bitField0_ & 0x00000100) != 0); + } - @java.lang.Override - public Builder clone() { - return super.clone(); - } + /** + * + * + *
+   * Output only. Information about the associated Analytics Hub subscription.
+   * Only set if the subscritpion is created by Analytics Hub.
+   * 
+ * + * + * .google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The analyticsHubSubscriptionInfo. + */ + @java.lang.Override + public com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo + getAnalyticsHubSubscriptionInfo() { + return analyticsHubSubscriptionInfo_ == null + ? com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.getDefaultInstance() + : analyticsHubSubscriptionInfo_; + } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } + /** + * + * + *
+   * Output only. Information about the associated Analytics Hub subscription.
+   * Only set if the subscritpion is created by Analytics Hub.
+   * 
+ * + * + * .google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfoOrBuilder + getAnalyticsHubSubscriptionInfoOrBuilder() { + return analyticsHubSubscriptionInfo_ == null + ? com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.getDefaultInstance() + : analyticsHubSubscriptionInfo_; + } - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } + public static final int MESSAGE_TRANSFORMS_FIELD_NUMBER = 25; - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } + @SuppressWarnings("serial") + private java.util.List messageTransforms_; - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } + /** + * + * + *
+   * Optional. Transforms to be applied to messages before they are delivered to
+   * subscribers. Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.util.List getMessageTransformsList() { + return messageTransforms_; + } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); - } + /** + * + * + *
+   * Optional. Transforms to be applied to messages before they are delivered to
+   * subscribers. Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.util.List + getMessageTransformsOrBuilderList() { + return messageTransforms_; + } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof com.google.pubsub.v1.Subscription) { - return mergeFrom((com.google.pubsub.v1.Subscription) other); - } else { - super.mergeFrom(other); - return this; - } - } + /** + * + * + *
+   * Optional. Transforms to be applied to messages before they are delivered to
+   * subscribers. Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public int getMessageTransformsCount() { + return messageTransforms_.size(); + } - public Builder mergeFrom(com.google.pubsub.v1.Subscription other) { - if (other == com.google.pubsub.v1.Subscription.getDefaultInstance()) return this; - if (!other.getName().isEmpty()) { - name_ = other.name_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (!other.getTopic().isEmpty()) { - topic_ = other.topic_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (other.hasPushConfig()) { - mergePushConfig(other.getPushConfig()); - } - if (other.hasBigqueryConfig()) { - mergeBigqueryConfig(other.getBigqueryConfig()); - } - if (other.hasCloudStorageConfig()) { - mergeCloudStorageConfig(other.getCloudStorageConfig()); - } - if (other.getAckDeadlineSeconds() != 0) { - setAckDeadlineSeconds(other.getAckDeadlineSeconds()); - } - if (other.getRetainAckedMessages() != false) { - setRetainAckedMessages(other.getRetainAckedMessages()); - } - if (other.hasMessageRetentionDuration()) { - mergeMessageRetentionDuration(other.getMessageRetentionDuration()); - } - internalGetMutableLabels().mergeFrom(other.internalGetLabels()); - bitField0_ |= 0x00000100; - if (other.getEnableMessageOrdering() != false) { - setEnableMessageOrdering(other.getEnableMessageOrdering()); - } - if (other.hasExpirationPolicy()) { - mergeExpirationPolicy(other.getExpirationPolicy()); - } - if (!other.getFilter().isEmpty()) { - filter_ = other.filter_; - bitField0_ |= 0x00000800; - onChanged(); - } - if (other.hasDeadLetterPolicy()) { - mergeDeadLetterPolicy(other.getDeadLetterPolicy()); - } - if (other.hasRetryPolicy()) { - mergeRetryPolicy(other.getRetryPolicy()); - } - if (other.getDetached() != false) { - setDetached(other.getDetached()); - } - if (other.getEnableExactlyOnceDelivery() != false) { - setEnableExactlyOnceDelivery(other.getEnableExactlyOnceDelivery()); - } - if (other.hasTopicMessageRetentionDuration()) { - mergeTopicMessageRetentionDuration(other.getTopicMessageRetentionDuration()); - } - if (other.state_ != 0) { - setStateValue(other.getStateValue()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; + /** + * + * + *
+   * Optional. Transforms to be applied to messages before they are delivered to
+   * subscribers. Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.MessageTransform getMessageTransforms(int index) { + return messageTransforms_.get(index); + } + + /** + * + * + *
+   * Optional. Transforms to be applied to messages before they are delivered to
+   * subscribers. Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.MessageTransformOrBuilder getMessageTransformsOrBuilder(int index) { + return messageTransforms_.get(index); + } + + public static final int TAGS_FIELD_NUMBER = 26; + + private static final class TagsDefaultEntryHolder { + static final com.google.protobuf.MapEntry defaultEntry = + com.google.protobuf.MapEntry.newDefaultInstance( + com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_Subscription_TagsEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.STRING, + ""); + } + + @SuppressWarnings("serial") + private com.google.protobuf.MapField tags_; + + private com.google.protobuf.MapField internalGetTags() { + if (tags_ == null) { + return com.google.protobuf.MapField.emptyMapField(TagsDefaultEntryHolder.defaultEntry); } + return tags_; + } - @java.lang.Override - public final boolean isInitialized() { - return true; + public int getTagsCount() { + return internalGetTags().getMap().size(); + } + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 26 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public boolean containsTags(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); } + return internalGetTags().getMap().containsKey(key); + } - @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; + /** Use {@link #getTagsMap()} instead. */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getTags() { + return getTagsMap(); + } + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 26 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.util.Map getTagsMap() { + return internalGetTags().getMap(); + } + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 26 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public /* nullable */ java.lang.String getTagsOrDefault( + java.lang.String key, + /* nullable */ + java.lang.String defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetTags().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 26 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.lang.String getTagsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetTags().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + 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(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(topic_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, topic_); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(4, getPushConfig()); + } + if (ackDeadlineSeconds_ != 0) { + output.writeInt32(5, ackDeadlineSeconds_); + } + if (retainAckedMessages_ != false) { + output.writeBool(7, retainAckedMessages_); + } + if (((bitField0_ & 0x00000008) != 0)) { + output.writeMessage(8, getMessageRetentionDuration()); + } + com.google.protobuf.GeneratedMessageV3.serializeStringMapTo( + output, internalGetLabels(), LabelsDefaultEntryHolder.defaultEntry, 9); + if (enableMessageOrdering_ != false) { + output.writeBool(10, enableMessageOrdering_); + } + if (((bitField0_ & 0x00000010) != 0)) { + output.writeMessage(11, getExpirationPolicy()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(filter_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 12, filter_); + } + if (((bitField0_ & 0x00000020) != 0)) { + output.writeMessage(13, getDeadLetterPolicy()); + } + if (((bitField0_ & 0x00000040) != 0)) { + output.writeMessage(14, getRetryPolicy()); + } + if (detached_ != false) { + output.writeBool(15, detached_); + } + if (enableExactlyOnceDelivery_ != false) { + output.writeBool(16, enableExactlyOnceDelivery_); + } + if (((bitField0_ & 0x00000080) != 0)) { + output.writeMessage(17, getTopicMessageRetentionDuration()); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(18, getBigqueryConfig()); + } + if (state_ != com.google.pubsub.v1.Subscription.State.STATE_UNSPECIFIED.getNumber()) { + output.writeEnum(19, state_); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeMessage(22, getCloudStorageConfig()); + } + if (((bitField0_ & 0x00000100) != 0)) { + output.writeMessage(23, getAnalyticsHubSubscriptionInfo()); + } + for (int i = 0; i < messageTransforms_.size(); i++) { + output.writeMessage(25, messageTransforms_.get(i)); + } + com.google.protobuf.GeneratedMessageV3.serializeStringMapTo( + output, internalGetTags(), TagsDefaultEntryHolder.defaultEntry, 26); + 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(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(topic_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, topic_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getPushConfig()); + } + if (ackDeadlineSeconds_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(5, ackDeadlineSeconds_); + } + if (retainAckedMessages_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(7, retainAckedMessages_); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 8, getMessageRetentionDuration()); + } + for (java.util.Map.Entry entry : + internalGetLabels().getMap().entrySet()) { + com.google.protobuf.MapEntry labels__ = + LabelsDefaultEntryHolder.defaultEntry + .newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, labels__); + } + if (enableMessageOrdering_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(10, enableMessageOrdering_); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(11, getExpirationPolicy()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(filter_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, filter_); + } + if (((bitField0_ & 0x00000020) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(13, getDeadLetterPolicy()); + } + if (((bitField0_ & 0x00000040) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(14, getRetryPolicy()); + } + if (detached_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(15, detached_); + } + if (enableExactlyOnceDelivery_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(16, enableExactlyOnceDelivery_); + } + if (((bitField0_ & 0x00000080) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 17, getTopicMessageRetentionDuration()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(18, getBigqueryConfig()); + } + if (state_ != com.google.pubsub.v1.Subscription.State.STATE_UNSPECIFIED.getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(19, state_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(22, getCloudStorageConfig()); + } + if (((bitField0_ & 0x00000100) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 23, getAnalyticsHubSubscriptionInfo()); + } + for (int i = 0; i < messageTransforms_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(25, messageTransforms_.get(i)); + } + for (java.util.Map.Entry entry : + internalGetTags().getMap().entrySet()) { + com.google.protobuf.MapEntry tags__ = + TagsDefaultEntryHolder.defaultEntry + .newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(26, tags__); + } + 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.pubsub.v1.Subscription)) { + return super.equals(obj); + } + com.google.pubsub.v1.Subscription other = (com.google.pubsub.v1.Subscription) obj; + + if (!getName().equals(other.getName())) return false; + if (!getTopic().equals(other.getTopic())) return false; + if (hasPushConfig() != other.hasPushConfig()) return false; + if (hasPushConfig()) { + if (!getPushConfig().equals(other.getPushConfig())) return false; + } + if (hasBigqueryConfig() != other.hasBigqueryConfig()) return false; + if (hasBigqueryConfig()) { + if (!getBigqueryConfig().equals(other.getBigqueryConfig())) return false; + } + if (hasCloudStorageConfig() != other.hasCloudStorageConfig()) return false; + if (hasCloudStorageConfig()) { + if (!getCloudStorageConfig().equals(other.getCloudStorageConfig())) return false; + } + if (getAckDeadlineSeconds() != other.getAckDeadlineSeconds()) return false; + if (getRetainAckedMessages() != other.getRetainAckedMessages()) return false; + if (hasMessageRetentionDuration() != other.hasMessageRetentionDuration()) return false; + if (hasMessageRetentionDuration()) { + if (!getMessageRetentionDuration().equals(other.getMessageRetentionDuration())) return false; + } + if (!internalGetLabels().equals(other.internalGetLabels())) return false; + if (getEnableMessageOrdering() != other.getEnableMessageOrdering()) return false; + if (hasExpirationPolicy() != other.hasExpirationPolicy()) return false; + if (hasExpirationPolicy()) { + if (!getExpirationPolicy().equals(other.getExpirationPolicy())) return false; + } + if (!getFilter().equals(other.getFilter())) return false; + if (hasDeadLetterPolicy() != other.hasDeadLetterPolicy()) return false; + if (hasDeadLetterPolicy()) { + if (!getDeadLetterPolicy().equals(other.getDeadLetterPolicy())) return false; + } + if (hasRetryPolicy() != other.hasRetryPolicy()) return false; + if (hasRetryPolicy()) { + if (!getRetryPolicy().equals(other.getRetryPolicy())) return false; + } + if (getDetached() != other.getDetached()) return false; + if (getEnableExactlyOnceDelivery() != other.getEnableExactlyOnceDelivery()) return false; + if (hasTopicMessageRetentionDuration() != other.hasTopicMessageRetentionDuration()) + return false; + if (hasTopicMessageRetentionDuration()) { + if (!getTopicMessageRetentionDuration().equals(other.getTopicMessageRetentionDuration())) + return false; + } + if (state_ != other.state_) return false; + if (hasAnalyticsHubSubscriptionInfo() != other.hasAnalyticsHubSubscriptionInfo()) return false; + if (hasAnalyticsHubSubscriptionInfo()) { + if (!getAnalyticsHubSubscriptionInfo().equals(other.getAnalyticsHubSubscriptionInfo())) + return false; + } + if (!getMessageTransformsList().equals(other.getMessageTransformsList())) return false; + if (!internalGetTags().equals(other.internalGetTags())) 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) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + TOPIC_FIELD_NUMBER; + hash = (53 * hash) + getTopic().hashCode(); + if (hasPushConfig()) { + hash = (37 * hash) + PUSH_CONFIG_FIELD_NUMBER; + hash = (53 * hash) + getPushConfig().hashCode(); + } + if (hasBigqueryConfig()) { + hash = (37 * hash) + BIGQUERY_CONFIG_FIELD_NUMBER; + hash = (53 * hash) + getBigqueryConfig().hashCode(); + } + if (hasCloudStorageConfig()) { + hash = (37 * hash) + CLOUD_STORAGE_CONFIG_FIELD_NUMBER; + hash = (53 * hash) + getCloudStorageConfig().hashCode(); + } + hash = (37 * hash) + ACK_DEADLINE_SECONDS_FIELD_NUMBER; + hash = (53 * hash) + getAckDeadlineSeconds(); + hash = (37 * hash) + RETAIN_ACKED_MESSAGES_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getRetainAckedMessages()); + if (hasMessageRetentionDuration()) { + hash = (37 * hash) + MESSAGE_RETENTION_DURATION_FIELD_NUMBER; + hash = (53 * hash) + getMessageRetentionDuration().hashCode(); + } + if (!internalGetLabels().getMap().isEmpty()) { + hash = (37 * hash) + LABELS_FIELD_NUMBER; + hash = (53 * hash) + internalGetLabels().hashCode(); + } + hash = (37 * hash) + ENABLE_MESSAGE_ORDERING_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getEnableMessageOrdering()); + if (hasExpirationPolicy()) { + hash = (37 * hash) + EXPIRATION_POLICY_FIELD_NUMBER; + hash = (53 * hash) + getExpirationPolicy().hashCode(); + } + hash = (37 * hash) + FILTER_FIELD_NUMBER; + hash = (53 * hash) + getFilter().hashCode(); + if (hasDeadLetterPolicy()) { + hash = (37 * hash) + DEAD_LETTER_POLICY_FIELD_NUMBER; + hash = (53 * hash) + getDeadLetterPolicy().hashCode(); + } + if (hasRetryPolicy()) { + hash = (37 * hash) + RETRY_POLICY_FIELD_NUMBER; + hash = (53 * hash) + getRetryPolicy().hashCode(); + } + hash = (37 * hash) + DETACHED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getDetached()); + hash = (37 * hash) + ENABLE_EXACTLY_ONCE_DELIVERY_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getEnableExactlyOnceDelivery()); + if (hasTopicMessageRetentionDuration()) { + hash = (37 * hash) + TOPIC_MESSAGE_RETENTION_DURATION_FIELD_NUMBER; + hash = (53 * hash) + getTopicMessageRetentionDuration().hashCode(); + } + hash = (37 * hash) + STATE_FIELD_NUMBER; + hash = (53 * hash) + state_; + if (hasAnalyticsHubSubscriptionInfo()) { + hash = (37 * hash) + ANALYTICS_HUB_SUBSCRIPTION_INFO_FIELD_NUMBER; + hash = (53 * hash) + getAnalyticsHubSubscriptionInfo().hashCode(); + } + if (getMessageTransformsCount() > 0) { + hash = (37 * hash) + MESSAGE_TRANSFORMS_FIELD_NUMBER; + hash = (53 * hash) + getMessageTransformsList().hashCode(); + } + if (!internalGetTags().getMap().isEmpty()) { + hash = (37 * hash) + TAGS_FIELD_NUMBER; + hash = (53 * hash) + internalGetTags().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.pubsub.v1.Subscription parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.Subscription parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.Subscription parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.Subscription 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.pubsub.v1.Subscription parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.pubsub.v1.Subscription parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.pubsub.v1.Subscription parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.Subscription 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.pubsub.v1.Subscription parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.Subscription 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.pubsub.v1.Subscription parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.pubsub.v1.Subscription 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.pubsub.v1.Subscription 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 subscription resource. If none of `push_config`, `bigquery_config`, or
+   * `cloud_storage_config` is set, then the subscriber will pull and ack messages
+   * using API methods. At most one of these fields may be set.
+   * 
+ * + * Protobuf type {@code google.pubsub.v1.Subscription} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.pubsub.v1.Subscription) + com.google.pubsub.v1.SubscriptionOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_Subscription_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 9: + return internalGetLabels(); + case 26: + return internalGetTags(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { + switch (number) { + case 9: + return internalGetMutableLabels(); + case 26: + return internalGetMutableTags(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_Subscription_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.pubsub.v1.Subscription.class, + com.google.pubsub.v1.Subscription.Builder.class); + } + + // Construct using com.google.pubsub.v1.Subscription.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getPushConfigFieldBuilder(); + getBigqueryConfigFieldBuilder(); + getCloudStorageConfigFieldBuilder(); + getMessageRetentionDurationFieldBuilder(); + getExpirationPolicyFieldBuilder(); + getDeadLetterPolicyFieldBuilder(); + getRetryPolicyFieldBuilder(); + getTopicMessageRetentionDurationFieldBuilder(); + getAnalyticsHubSubscriptionInfoFieldBuilder(); + getMessageTransformsFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + name_ = ""; + topic_ = ""; + pushConfig_ = null; + if (pushConfigBuilder_ != null) { + pushConfigBuilder_.dispose(); + pushConfigBuilder_ = null; + } + bigqueryConfig_ = null; + if (bigqueryConfigBuilder_ != null) { + bigqueryConfigBuilder_.dispose(); + bigqueryConfigBuilder_ = null; + } + cloudStorageConfig_ = null; + if (cloudStorageConfigBuilder_ != null) { + cloudStorageConfigBuilder_.dispose(); + cloudStorageConfigBuilder_ = null; + } + ackDeadlineSeconds_ = 0; + retainAckedMessages_ = false; + messageRetentionDuration_ = null; + if (messageRetentionDurationBuilder_ != null) { + messageRetentionDurationBuilder_.dispose(); + messageRetentionDurationBuilder_ = null; + } + internalGetMutableLabels().clear(); + enableMessageOrdering_ = false; + expirationPolicy_ = null; + if (expirationPolicyBuilder_ != null) { + expirationPolicyBuilder_.dispose(); + expirationPolicyBuilder_ = null; + } + filter_ = ""; + deadLetterPolicy_ = null; + if (deadLetterPolicyBuilder_ != null) { + deadLetterPolicyBuilder_.dispose(); + deadLetterPolicyBuilder_ = null; + } + retryPolicy_ = null; + if (retryPolicyBuilder_ != null) { + retryPolicyBuilder_.dispose(); + retryPolicyBuilder_ = null; + } + detached_ = false; + enableExactlyOnceDelivery_ = false; + topicMessageRetentionDuration_ = null; + if (topicMessageRetentionDurationBuilder_ != null) { + topicMessageRetentionDurationBuilder_.dispose(); + topicMessageRetentionDurationBuilder_ = null; + } + state_ = 0; + analyticsHubSubscriptionInfo_ = null; + if (analyticsHubSubscriptionInfoBuilder_ != null) { + analyticsHubSubscriptionInfoBuilder_.dispose(); + analyticsHubSubscriptionInfoBuilder_ = null; + } + if (messageTransformsBuilder_ == null) { + messageTransforms_ = java.util.Collections.emptyList(); + } else { + messageTransforms_ = null; + messageTransformsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00080000); + internalGetMutableTags().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_Subscription_descriptor; + } + + @java.lang.Override + public com.google.pubsub.v1.Subscription getDefaultInstanceForType() { + return com.google.pubsub.v1.Subscription.getDefaultInstance(); + } + + @java.lang.Override + public com.google.pubsub.v1.Subscription build() { + com.google.pubsub.v1.Subscription result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.pubsub.v1.Subscription buildPartial() { + com.google.pubsub.v1.Subscription result = new com.google.pubsub.v1.Subscription(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.google.pubsub.v1.Subscription result) { + if (messageTransformsBuilder_ == null) { + if (((bitField0_ & 0x00080000) != 0)) { + messageTransforms_ = java.util.Collections.unmodifiableList(messageTransforms_); + bitField0_ = (bitField0_ & ~0x00080000); + } + result.messageTransforms_ = messageTransforms_; + } else { + result.messageTransforms_ = messageTransformsBuilder_.build(); + } + } + + private void buildPartial0(com.google.pubsub.v1.Subscription result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.topic_ = topic_; + } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000004) != 0)) { + result.pushConfig_ = pushConfigBuilder_ == null ? pushConfig_ : pushConfigBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.bigqueryConfig_ = + bigqueryConfigBuilder_ == null ? bigqueryConfig_ : bigqueryConfigBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.cloudStorageConfig_ = + cloudStorageConfigBuilder_ == null + ? cloudStorageConfig_ + : cloudStorageConfigBuilder_.build(); + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.ackDeadlineSeconds_ = ackDeadlineSeconds_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.retainAckedMessages_ = retainAckedMessages_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.messageRetentionDuration_ = + messageRetentionDurationBuilder_ == null + ? messageRetentionDuration_ + : messageRetentionDurationBuilder_.build(); + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.labels_ = internalGetLabels(); + result.labels_.makeImmutable(); + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.enableMessageOrdering_ = enableMessageOrdering_; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.expirationPolicy_ = + expirationPolicyBuilder_ == null ? expirationPolicy_ : expirationPolicyBuilder_.build(); + to_bitField0_ |= 0x00000010; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.filter_ = filter_; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.deadLetterPolicy_ = + deadLetterPolicyBuilder_ == null ? deadLetterPolicy_ : deadLetterPolicyBuilder_.build(); + to_bitField0_ |= 0x00000020; + } + if (((from_bitField0_ & 0x00002000) != 0)) { + result.retryPolicy_ = + retryPolicyBuilder_ == null ? retryPolicy_ : retryPolicyBuilder_.build(); + to_bitField0_ |= 0x00000040; + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.detached_ = detached_; + } + if (((from_bitField0_ & 0x00008000) != 0)) { + result.enableExactlyOnceDelivery_ = enableExactlyOnceDelivery_; + } + if (((from_bitField0_ & 0x00010000) != 0)) { + result.topicMessageRetentionDuration_ = + topicMessageRetentionDurationBuilder_ == null + ? topicMessageRetentionDuration_ + : topicMessageRetentionDurationBuilder_.build(); + to_bitField0_ |= 0x00000080; + } + if (((from_bitField0_ & 0x00020000) != 0)) { + result.state_ = state_; + } + if (((from_bitField0_ & 0x00040000) != 0)) { + result.analyticsHubSubscriptionInfo_ = + analyticsHubSubscriptionInfoBuilder_ == null + ? analyticsHubSubscriptionInfo_ + : analyticsHubSubscriptionInfoBuilder_.build(); + to_bitField0_ |= 0x00000100; + } + if (((from_bitField0_ & 0x00100000) != 0)) { + result.tags_ = internalGetTags(); + result.tags_.makeImmutable(); + } + 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.pubsub.v1.Subscription) { + return mergeFrom((com.google.pubsub.v1.Subscription) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.pubsub.v1.Subscription other) { + if (other == com.google.pubsub.v1.Subscription.getDefaultInstance()) return this; + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getTopic().isEmpty()) { + topic_ = other.topic_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.hasPushConfig()) { + mergePushConfig(other.getPushConfig()); + } + if (other.hasBigqueryConfig()) { + mergeBigqueryConfig(other.getBigqueryConfig()); + } + if (other.hasCloudStorageConfig()) { + mergeCloudStorageConfig(other.getCloudStorageConfig()); + } + if (other.getAckDeadlineSeconds() != 0) { + setAckDeadlineSeconds(other.getAckDeadlineSeconds()); + } + if (other.getRetainAckedMessages() != false) { + setRetainAckedMessages(other.getRetainAckedMessages()); + } + if (other.hasMessageRetentionDuration()) { + mergeMessageRetentionDuration(other.getMessageRetentionDuration()); + } + internalGetMutableLabels().mergeFrom(other.internalGetLabels()); + bitField0_ |= 0x00000100; + if (other.getEnableMessageOrdering() != false) { + setEnableMessageOrdering(other.getEnableMessageOrdering()); + } + if (other.hasExpirationPolicy()) { + mergeExpirationPolicy(other.getExpirationPolicy()); + } + if (!other.getFilter().isEmpty()) { + filter_ = other.filter_; + bitField0_ |= 0x00000800; + onChanged(); + } + if (other.hasDeadLetterPolicy()) { + mergeDeadLetterPolicy(other.getDeadLetterPolicy()); + } + if (other.hasRetryPolicy()) { + mergeRetryPolicy(other.getRetryPolicy()); + } + if (other.getDetached() != false) { + setDetached(other.getDetached()); + } + if (other.getEnableExactlyOnceDelivery() != false) { + setEnableExactlyOnceDelivery(other.getEnableExactlyOnceDelivery()); + } + if (other.hasTopicMessageRetentionDuration()) { + mergeTopicMessageRetentionDuration(other.getTopicMessageRetentionDuration()); + } + if (other.state_ != 0) { + setStateValue(other.getStateValue()); + } + if (other.hasAnalyticsHubSubscriptionInfo()) { + mergeAnalyticsHubSubscriptionInfo(other.getAnalyticsHubSubscriptionInfo()); + } + if (messageTransformsBuilder_ == null) { + if (!other.messageTransforms_.isEmpty()) { + if (messageTransforms_.isEmpty()) { + messageTransforms_ = other.messageTransforms_; + bitField0_ = (bitField0_ & ~0x00080000); + } else { + ensureMessageTransformsIsMutable(); + messageTransforms_.addAll(other.messageTransforms_); + } + onChanged(); + } + } else { + if (!other.messageTransforms_.isEmpty()) { + if (messageTransformsBuilder_.isEmpty()) { + messageTransformsBuilder_.dispose(); + messageTransformsBuilder_ = null; + messageTransforms_ = other.messageTransforms_; + bitField0_ = (bitField0_ & ~0x00080000); + messageTransformsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getMessageTransformsFieldBuilder() + : null; + } else { + messageTransformsBuilder_.addAllMessages(other.messageTransforms_); + } + } + } + internalGetMutableTags().mergeFrom(other.internalGetTags()); + bitField0_ |= 0x00100000; + 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: { @@ -2023,6 +3481,35 @@ public Builder mergeFrom( bitField0_ |= 0x00000010; break; } // case 178 + case 186: + { + input.readMessage( + getAnalyticsHubSubscriptionInfoFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00040000; + break; + } // case 186 + case 202: + { + com.google.pubsub.v1.MessageTransform m = + input.readMessage( + com.google.pubsub.v1.MessageTransform.parser(), extensionRegistry); + if (messageTransformsBuilder_ == null) { + ensureMessageTransformsIsMutable(); + messageTransforms_.add(m); + } else { + messageTransformsBuilder_.addMessage(m); + } + break; + } // case 202 + case 210: + { + com.google.protobuf.MapEntry tags__ = + input.readMessage( + TagsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableTags().getMutableMap().put(tags__.getKey(), tags__.getValue()); + bitField0_ |= 0x00100000; + break; + } // case 210 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -2036,2832 +3523,3950 @@ public Builder mergeFrom( throw e.unwrapIOException(); } finally { onChanged(); - } // finally + } // finally + return this; + } + + private int bitField0_; + + private java.lang.Object name_ = ""; + + /** + * + * + *
+     * Required. Identifier. The name of the subscription. It must have the format
+     * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
+     * start with a letter, and contain only letters (`[A-Za-z]`), numbers
+     * (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
+     * plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
+     * in length, and it must not start with `"goog"`.
+     * 
+ * + * + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER]; + * + * + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Required. Identifier. The name of the subscription. It must have the format
+     * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
+     * start with a letter, and contain only letters (`[A-Za-z]`), numbers
+     * (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
+     * plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
+     * in length, and it must not start with `"goog"`.
+     * 
+ * + * + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER]; + * + * + * @return The bytes for name. + */ + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Required. Identifier. The name of the subscription. It must have the format
+     * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
+     * start with a letter, and contain only letters (`[A-Za-z]`), numbers
+     * (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
+     * plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
+     * in length, and it must not start with `"goog"`.
+     * 
+ * + * + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER]; + * + * + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + name_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. Identifier. The name of the subscription. It must have the format
+     * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
+     * start with a letter, and contain only letters (`[A-Za-z]`), numbers
+     * (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
+     * plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
+     * in length, and it must not start with `"goog"`.
+     * 
+ * + * + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER]; + * + * + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. Identifier. The name of the subscription. It must have the format
+     * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
+     * start with a letter, and contain only letters (`[A-Za-z]`), numbers
+     * (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
+     * plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
+     * in length, and it must not start with `"goog"`.
+     * 
+ * + * + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER]; + * + * + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object topic_ = ""; + + /** + * + * + *
+     * Required. The name of the topic from which this subscription is receiving
+     * messages. Format is `projects/{project}/topics/{topic}`. The value of this
+     * field will be `_deleted-topic_` if the topic has been deleted.
+     * 
+ * + * + * string topic = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The topic. + */ + public java.lang.String getTopic() { + java.lang.Object ref = topic_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + topic_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Required. The name of the topic from which this subscription is receiving
+     * messages. Format is `projects/{project}/topics/{topic}`. The value of this
+     * field will be `_deleted-topic_` if the topic has been deleted.
+     * 
+ * + * + * string topic = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The bytes for topic. + */ + public com.google.protobuf.ByteString getTopicBytes() { + java.lang.Object ref = topic_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + topic_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Required. The name of the topic from which this subscription is receiving
+     * messages. Format is `projects/{project}/topics/{topic}`. The value of this
+     * field will be `_deleted-topic_` if the topic has been deleted.
+     * 
+ * + * + * string topic = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @param value The topic to set. + * @return This builder for chaining. + */ + public Builder setTopic(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + topic_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The name of the topic from which this subscription is receiving
+     * messages. Format is `projects/{project}/topics/{topic}`. The value of this
+     * field will be `_deleted-topic_` if the topic has been deleted.
+     * 
+ * + * + * string topic = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return This builder for chaining. + */ + public Builder clearTopic() { + topic_ = getDefaultInstance().getTopic(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The name of the topic from which this subscription is receiving
+     * messages. Format is `projects/{project}/topics/{topic}`. The value of this
+     * field will be `_deleted-topic_` if the topic has been deleted.
+     * 
+ * + * + * string topic = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @param value The bytes for topic to set. + * @return This builder for chaining. + */ + public Builder setTopicBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + topic_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private com.google.pubsub.v1.PushConfig pushConfig_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.PushConfig, + com.google.pubsub.v1.PushConfig.Builder, + com.google.pubsub.v1.PushConfigOrBuilder> + pushConfigBuilder_; + + /** + * + * + *
+     * Optional. If push delivery is used with this subscription, this field is
+     * used to configure it.
+     * 
+ * + * .google.pubsub.v1.PushConfig push_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the pushConfig field is set. + */ + public boolean hasPushConfig() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * Optional. If push delivery is used with this subscription, this field is
+     * used to configure it.
+     * 
+ * + * .google.pubsub.v1.PushConfig push_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The pushConfig. + */ + public com.google.pubsub.v1.PushConfig getPushConfig() { + if (pushConfigBuilder_ == null) { + return pushConfig_ == null + ? com.google.pubsub.v1.PushConfig.getDefaultInstance() + : pushConfig_; + } else { + return pushConfigBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Optional. If push delivery is used with this subscription, this field is
+     * used to configure it.
+     * 
+ * + * .google.pubsub.v1.PushConfig push_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setPushConfig(com.google.pubsub.v1.PushConfig value) { + if (pushConfigBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + pushConfig_ = value; + } else { + pushConfigBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. If push delivery is used with this subscription, this field is
+     * used to configure it.
+     * 
+ * + * .google.pubsub.v1.PushConfig push_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setPushConfig(com.google.pubsub.v1.PushConfig.Builder builderForValue) { + if (pushConfigBuilder_ == null) { + pushConfig_ = builderForValue.build(); + } else { + pushConfigBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. If push delivery is used with this subscription, this field is
+     * used to configure it.
+     * 
+ * + * .google.pubsub.v1.PushConfig push_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergePushConfig(com.google.pubsub.v1.PushConfig value) { + if (pushConfigBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) + && pushConfig_ != null + && pushConfig_ != com.google.pubsub.v1.PushConfig.getDefaultInstance()) { + getPushConfigBuilder().mergeFrom(value); + } else { + pushConfig_ = value; + } + } else { + pushConfigBuilder_.mergeFrom(value); + } + if (pushConfig_ != null) { + bitField0_ |= 0x00000004; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Optional. If push delivery is used with this subscription, this field is
+     * used to configure it.
+     * 
+ * + * .google.pubsub.v1.PushConfig push_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearPushConfig() { + bitField0_ = (bitField0_ & ~0x00000004); + pushConfig_ = null; + if (pushConfigBuilder_ != null) { + pushConfigBuilder_.dispose(); + pushConfigBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. If push delivery is used with this subscription, this field is
+     * used to configure it.
+     * 
+ * + * .google.pubsub.v1.PushConfig push_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.PushConfig.Builder getPushConfigBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getPushConfigFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. If push delivery is used with this subscription, this field is
+     * used to configure it.
+     * 
+ * + * .google.pubsub.v1.PushConfig push_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.PushConfigOrBuilder getPushConfigOrBuilder() { + if (pushConfigBuilder_ != null) { + return pushConfigBuilder_.getMessageOrBuilder(); + } else { + return pushConfig_ == null + ? com.google.pubsub.v1.PushConfig.getDefaultInstance() + : pushConfig_; + } + } + + /** + * + * + *
+     * Optional. If push delivery is used with this subscription, this field is
+     * used to configure it.
+     * 
+ * + * .google.pubsub.v1.PushConfig push_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.PushConfig, + com.google.pubsub.v1.PushConfig.Builder, + com.google.pubsub.v1.PushConfigOrBuilder> + getPushConfigFieldBuilder() { + if (pushConfigBuilder_ == null) { + pushConfigBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.PushConfig, + com.google.pubsub.v1.PushConfig.Builder, + com.google.pubsub.v1.PushConfigOrBuilder>( + getPushConfig(), getParentForChildren(), isClean()); + pushConfig_ = null; + } + return pushConfigBuilder_; + } + + private com.google.pubsub.v1.BigQueryConfig bigqueryConfig_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.BigQueryConfig, + com.google.pubsub.v1.BigQueryConfig.Builder, + com.google.pubsub.v1.BigQueryConfigOrBuilder> + bigqueryConfigBuilder_; + + /** + * + * + *
+     * Optional. If delivery to BigQuery is used with this subscription, this
+     * field is used to configure it.
+     * 
+ * + * + * .google.pubsub.v1.BigQueryConfig bigquery_config = 18 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the bigqueryConfig field is set. + */ + public boolean hasBigqueryConfig() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Optional. If delivery to BigQuery is used with this subscription, this
+     * field is used to configure it.
+     * 
+ * + * + * .google.pubsub.v1.BigQueryConfig bigquery_config = 18 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The bigqueryConfig. + */ + public com.google.pubsub.v1.BigQueryConfig getBigqueryConfig() { + if (bigqueryConfigBuilder_ == null) { + return bigqueryConfig_ == null + ? com.google.pubsub.v1.BigQueryConfig.getDefaultInstance() + : bigqueryConfig_; + } else { + return bigqueryConfigBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Optional. If delivery to BigQuery is used with this subscription, this
+     * field is used to configure it.
+     * 
+ * + * + * .google.pubsub.v1.BigQueryConfig bigquery_config = 18 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setBigqueryConfig(com.google.pubsub.v1.BigQueryConfig value) { + if (bigqueryConfigBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + bigqueryConfig_ = value; + } else { + bigqueryConfigBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. If delivery to BigQuery is used with this subscription, this
+     * field is used to configure it.
+     * 
+ * + * + * .google.pubsub.v1.BigQueryConfig bigquery_config = 18 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setBigqueryConfig(com.google.pubsub.v1.BigQueryConfig.Builder builderForValue) { + if (bigqueryConfigBuilder_ == null) { + bigqueryConfig_ = builderForValue.build(); + } else { + bigqueryConfigBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. If delivery to BigQuery is used with this subscription, this
+     * field is used to configure it.
+     * 
+ * + * + * .google.pubsub.v1.BigQueryConfig bigquery_config = 18 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeBigqueryConfig(com.google.pubsub.v1.BigQueryConfig value) { + if (bigqueryConfigBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) + && bigqueryConfig_ != null + && bigqueryConfig_ != com.google.pubsub.v1.BigQueryConfig.getDefaultInstance()) { + getBigqueryConfigBuilder().mergeFrom(value); + } else { + bigqueryConfig_ = value; + } + } else { + bigqueryConfigBuilder_.mergeFrom(value); + } + if (bigqueryConfig_ != null) { + bitField0_ |= 0x00000008; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Optional. If delivery to BigQuery is used with this subscription, this
+     * field is used to configure it.
+     * 
+ * + * + * .google.pubsub.v1.BigQueryConfig bigquery_config = 18 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearBigqueryConfig() { + bitField0_ = (bitField0_ & ~0x00000008); + bigqueryConfig_ = null; + if (bigqueryConfigBuilder_ != null) { + bigqueryConfigBuilder_.dispose(); + bigqueryConfigBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. If delivery to BigQuery is used with this subscription, this
+     * field is used to configure it.
+     * 
+ * + * + * .google.pubsub.v1.BigQueryConfig bigquery_config = 18 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.BigQueryConfig.Builder getBigqueryConfigBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getBigqueryConfigFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. If delivery to BigQuery is used with this subscription, this
+     * field is used to configure it.
+     * 
+ * + * + * .google.pubsub.v1.BigQueryConfig bigquery_config = 18 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.BigQueryConfigOrBuilder getBigqueryConfigOrBuilder() { + if (bigqueryConfigBuilder_ != null) { + return bigqueryConfigBuilder_.getMessageOrBuilder(); + } else { + return bigqueryConfig_ == null + ? com.google.pubsub.v1.BigQueryConfig.getDefaultInstance() + : bigqueryConfig_; + } + } + + /** + * + * + *
+     * Optional. If delivery to BigQuery is used with this subscription, this
+     * field is used to configure it.
+     * 
+ * + * + * .google.pubsub.v1.BigQueryConfig bigquery_config = 18 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.BigQueryConfig, + com.google.pubsub.v1.BigQueryConfig.Builder, + com.google.pubsub.v1.BigQueryConfigOrBuilder> + getBigqueryConfigFieldBuilder() { + if (bigqueryConfigBuilder_ == null) { + bigqueryConfigBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.BigQueryConfig, + com.google.pubsub.v1.BigQueryConfig.Builder, + com.google.pubsub.v1.BigQueryConfigOrBuilder>( + getBigqueryConfig(), getParentForChildren(), isClean()); + bigqueryConfig_ = null; + } + return bigqueryConfigBuilder_; + } + + private com.google.pubsub.v1.CloudStorageConfig cloudStorageConfig_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.CloudStorageConfig, + com.google.pubsub.v1.CloudStorageConfig.Builder, + com.google.pubsub.v1.CloudStorageConfigOrBuilder> + cloudStorageConfigBuilder_; + + /** + * + * + *
+     * Optional. If delivery to Google Cloud Storage is used with this
+     * subscription, this field is used to configure it.
+     * 
+ * + * + * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the cloudStorageConfig field is set. + */ + public boolean hasCloudStorageConfig() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * Optional. If delivery to Google Cloud Storage is used with this
+     * subscription, this field is used to configure it.
+     * 
+ * + * + * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The cloudStorageConfig. + */ + public com.google.pubsub.v1.CloudStorageConfig getCloudStorageConfig() { + if (cloudStorageConfigBuilder_ == null) { + return cloudStorageConfig_ == null + ? com.google.pubsub.v1.CloudStorageConfig.getDefaultInstance() + : cloudStorageConfig_; + } else { + return cloudStorageConfigBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Optional. If delivery to Google Cloud Storage is used with this
+     * subscription, this field is used to configure it.
+     * 
+ * + * + * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setCloudStorageConfig(com.google.pubsub.v1.CloudStorageConfig value) { + if (cloudStorageConfigBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + cloudStorageConfig_ = value; + } else { + cloudStorageConfigBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. If delivery to Google Cloud Storage is used with this
+     * subscription, this field is used to configure it.
+     * 
+ * + * + * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setCloudStorageConfig( + com.google.pubsub.v1.CloudStorageConfig.Builder builderForValue) { + if (cloudStorageConfigBuilder_ == null) { + cloudStorageConfig_ = builderForValue.build(); + } else { + cloudStorageConfigBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. If delivery to Google Cloud Storage is used with this
+     * subscription, this field is used to configure it.
+     * 
+ * + * + * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeCloudStorageConfig(com.google.pubsub.v1.CloudStorageConfig value) { + if (cloudStorageConfigBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) + && cloudStorageConfig_ != null + && cloudStorageConfig_ + != com.google.pubsub.v1.CloudStorageConfig.getDefaultInstance()) { + getCloudStorageConfigBuilder().mergeFrom(value); + } else { + cloudStorageConfig_ = value; + } + } else { + cloudStorageConfigBuilder_.mergeFrom(value); + } + if (cloudStorageConfig_ != null) { + bitField0_ |= 0x00000010; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Optional. If delivery to Google Cloud Storage is used with this
+     * subscription, this field is used to configure it.
+     * 
+ * + * + * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearCloudStorageConfig() { + bitField0_ = (bitField0_ & ~0x00000010); + cloudStorageConfig_ = null; + if (cloudStorageConfigBuilder_ != null) { + cloudStorageConfigBuilder_.dispose(); + cloudStorageConfigBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. If delivery to Google Cloud Storage is used with this
+     * subscription, this field is used to configure it.
+     * 
+ * + * + * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.CloudStorageConfig.Builder getCloudStorageConfigBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getCloudStorageConfigFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. If delivery to Google Cloud Storage is used with this
+     * subscription, this field is used to configure it.
+     * 
+ * + * + * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.CloudStorageConfigOrBuilder getCloudStorageConfigOrBuilder() { + if (cloudStorageConfigBuilder_ != null) { + return cloudStorageConfigBuilder_.getMessageOrBuilder(); + } else { + return cloudStorageConfig_ == null + ? com.google.pubsub.v1.CloudStorageConfig.getDefaultInstance() + : cloudStorageConfig_; + } + } + + /** + * + * + *
+     * Optional. If delivery to Google Cloud Storage is used with this
+     * subscription, this field is used to configure it.
+     * 
+ * + * + * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.CloudStorageConfig, + com.google.pubsub.v1.CloudStorageConfig.Builder, + com.google.pubsub.v1.CloudStorageConfigOrBuilder> + getCloudStorageConfigFieldBuilder() { + if (cloudStorageConfigBuilder_ == null) { + cloudStorageConfigBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.CloudStorageConfig, + com.google.pubsub.v1.CloudStorageConfig.Builder, + com.google.pubsub.v1.CloudStorageConfigOrBuilder>( + getCloudStorageConfig(), getParentForChildren(), isClean()); + cloudStorageConfig_ = null; + } + return cloudStorageConfigBuilder_; + } + + private int ackDeadlineSeconds_; + + /** + * + * + *
+     * Optional. The approximate amount of time (on a best-effort basis) Pub/Sub
+     * waits for the subscriber to acknowledge receipt before resending the
+     * message. In the interval after the message is delivered and before it is
+     * acknowledged, it is considered to be _outstanding_. During that time
+     * period, the message will not be redelivered (on a best-effort basis).
+     *
+     * For pull subscriptions, this value is used as the initial value for the ack
+     * deadline. To override this value for a given message, call
+     * `ModifyAckDeadline` with the corresponding `ack_id` if using
+     * non-streaming pull or send the `ack_id` in a
+     * `StreamingModifyAckDeadlineRequest` if using streaming pull.
+     * The minimum custom deadline you can specify is 10 seconds.
+     * The maximum custom deadline you can specify is 600 seconds (10 minutes).
+     * If this parameter is 0, a default value of 10 seconds is used.
+     *
+     * For push delivery, this value is also used to set the request timeout for
+     * the call to the push endpoint.
+     *
+     * If the subscriber never acknowledges the message, the Pub/Sub
+     * system will eventually redeliver the message.
+     * 
+ * + * int32 ack_deadline_seconds = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The ackDeadlineSeconds. + */ + @java.lang.Override + public int getAckDeadlineSeconds() { + return ackDeadlineSeconds_; + } + + /** + * + * + *
+     * Optional. The approximate amount of time (on a best-effort basis) Pub/Sub
+     * waits for the subscriber to acknowledge receipt before resending the
+     * message. In the interval after the message is delivered and before it is
+     * acknowledged, it is considered to be _outstanding_. During that time
+     * period, the message will not be redelivered (on a best-effort basis).
+     *
+     * For pull subscriptions, this value is used as the initial value for the ack
+     * deadline. To override this value for a given message, call
+     * `ModifyAckDeadline` with the corresponding `ack_id` if using
+     * non-streaming pull or send the `ack_id` in a
+     * `StreamingModifyAckDeadlineRequest` if using streaming pull.
+     * The minimum custom deadline you can specify is 10 seconds.
+     * The maximum custom deadline you can specify is 600 seconds (10 minutes).
+     * If this parameter is 0, a default value of 10 seconds is used.
+     *
+     * For push delivery, this value is also used to set the request timeout for
+     * the call to the push endpoint.
+     *
+     * If the subscriber never acknowledges the message, the Pub/Sub
+     * system will eventually redeliver the message.
+     * 
+ * + * int32 ack_deadline_seconds = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The ackDeadlineSeconds to set. + * @return This builder for chaining. + */ + public Builder setAckDeadlineSeconds(int value) { + + ackDeadlineSeconds_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The approximate amount of time (on a best-effort basis) Pub/Sub
+     * waits for the subscriber to acknowledge receipt before resending the
+     * message. In the interval after the message is delivered and before it is
+     * acknowledged, it is considered to be _outstanding_. During that time
+     * period, the message will not be redelivered (on a best-effort basis).
+     *
+     * For pull subscriptions, this value is used as the initial value for the ack
+     * deadline. To override this value for a given message, call
+     * `ModifyAckDeadline` with the corresponding `ack_id` if using
+     * non-streaming pull or send the `ack_id` in a
+     * `StreamingModifyAckDeadlineRequest` if using streaming pull.
+     * The minimum custom deadline you can specify is 10 seconds.
+     * The maximum custom deadline you can specify is 600 seconds (10 minutes).
+     * If this parameter is 0, a default value of 10 seconds is used.
+     *
+     * For push delivery, this value is also used to set the request timeout for
+     * the call to the push endpoint.
+     *
+     * If the subscriber never acknowledges the message, the Pub/Sub
+     * system will eventually redeliver the message.
+     * 
+ * + * int32 ack_deadline_seconds = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearAckDeadlineSeconds() { + bitField0_ = (bitField0_ & ~0x00000020); + ackDeadlineSeconds_ = 0; + onChanged(); + return this; + } + + private boolean retainAckedMessages_; + + /** + * + * + *
+     * Optional. Indicates whether to retain acknowledged messages. If true, then
+     * messages are not expunged from the subscription's backlog, even if they are
+     * acknowledged, until they fall out of the `message_retention_duration`
+     * window. This must be true if you would like to [`Seek` to a timestamp]
+     * (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) in
+     * the past to replay previously-acknowledged messages.
+     * 
+ * + * bool retain_acked_messages = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The retainAckedMessages. + */ + @java.lang.Override + public boolean getRetainAckedMessages() { + return retainAckedMessages_; + } + + /** + * + * + *
+     * Optional. Indicates whether to retain acknowledged messages. If true, then
+     * messages are not expunged from the subscription's backlog, even if they are
+     * acknowledged, until they fall out of the `message_retention_duration`
+     * window. This must be true if you would like to [`Seek` to a timestamp]
+     * (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) in
+     * the past to replay previously-acknowledged messages.
+     * 
+ * + * bool retain_acked_messages = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The retainAckedMessages to set. + * @return This builder for chaining. + */ + public Builder setRetainAckedMessages(boolean value) { + + retainAckedMessages_ = value; + bitField0_ |= 0x00000040; + onChanged(); return this; } - private int bitField0_; + /** + * + * + *
+     * Optional. Indicates whether to retain acknowledged messages. If true, then
+     * messages are not expunged from the subscription's backlog, even if they are
+     * acknowledged, until they fall out of the `message_retention_duration`
+     * window. This must be true if you would like to [`Seek` to a timestamp]
+     * (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) in
+     * the past to replay previously-acknowledged messages.
+     * 
+ * + * bool retain_acked_messages = 7 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearRetainAckedMessages() { + bitField0_ = (bitField0_ & ~0x00000040); + retainAckedMessages_ = false; + onChanged(); + return this; + } + + private com.google.protobuf.Duration messageRetentionDuration_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Duration, + com.google.protobuf.Duration.Builder, + com.google.protobuf.DurationOrBuilder> + messageRetentionDurationBuilder_; - private java.lang.Object name_ = ""; /** * * *
-     * Required. The name of the subscription. It must have the format
-     * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
-     * start with a letter, and contain only letters (`[A-Za-z]`), numbers
-     * (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
-     * plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
-     * in length, and it must not start with `"goog"`.
+     * Optional. How long to retain unacknowledged messages in the subscription's
+     * backlog, from the moment a message is published. If `retain_acked_messages`
+     * is true, then this also configures the retention of acknowledged messages,
+     * and thus configures how far back in time a `Seek` can be done. Defaults to
+     * 7 days. Cannot be more than 31 days or less than 10 minutes.
      * 
* - * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * * - * @return The name. + * @return Whether the messageRetentionDuration field is set. */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } else { - return (java.lang.String) ref; - } + public boolean hasMessageRetentionDuration() { + return ((bitField0_ & 0x00000080) != 0); } + /** * * *
-     * Required. The name of the subscription. It must have the format
-     * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
-     * start with a letter, and contain only letters (`[A-Za-z]`), numbers
-     * (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
-     * plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
-     * in length, and it must not start with `"goog"`.
+     * Optional. How long to retain unacknowledged messages in the subscription's
+     * backlog, from the moment a message is published. If `retain_acked_messages`
+     * is true, then this also configures the retention of acknowledged messages,
+     * and thus configures how far back in time a `Seek` can be done. Defaults to
+     * 7 days. Cannot be more than 31 days or less than 10 minutes.
      * 
* - * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * * - * @return The bytes for name. + * @return The messageRetentionDuration. */ - public com.google.protobuf.ByteString getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - name_ = b; - return b; + public com.google.protobuf.Duration getMessageRetentionDuration() { + if (messageRetentionDurationBuilder_ == null) { + return messageRetentionDuration_ == null + ? com.google.protobuf.Duration.getDefaultInstance() + : messageRetentionDuration_; } else { - return (com.google.protobuf.ByteString) ref; + return messageRetentionDurationBuilder_.getMessage(); } } + /** * * *
-     * Required. The name of the subscription. It must have the format
-     * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
-     * start with a letter, and contain only letters (`[A-Za-z]`), numbers
-     * (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
-     * plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
-     * in length, and it must not start with `"goog"`.
+     * Optional. How long to retain unacknowledged messages in the subscription's
+     * backlog, from the moment a message is published. If `retain_acked_messages`
+     * is true, then this also configures the retention of acknowledged messages,
+     * and thus configures how far back in time a `Seek` can be done. Defaults to
+     * 7 days. Cannot be more than 31 days or less than 10 minutes.
      * 
* - * string name = 1 [(.google.api.field_behavior) = REQUIRED]; - * - * @param value The name to set. - * @return This builder for chaining. + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder setName(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder setMessageRetentionDuration(com.google.protobuf.Duration value) { + if (messageRetentionDurationBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + messageRetentionDuration_ = value; + } else { + messageRetentionDurationBuilder_.setMessage(value); } - name_ = value; - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000080; onChanged(); return this; } + /** * * *
-     * Required. The name of the subscription. It must have the format
-     * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
-     * start with a letter, and contain only letters (`[A-Za-z]`), numbers
-     * (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
-     * plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
-     * in length, and it must not start with `"goog"`.
+     * Optional. How long to retain unacknowledged messages in the subscription's
+     * backlog, from the moment a message is published. If `retain_acked_messages`
+     * is true, then this also configures the retention of acknowledged messages,
+     * and thus configures how far back in time a `Seek` can be done. Defaults to
+     * 7 days. Cannot be more than 31 days or less than 10 minutes.
      * 
* - * string name = 1 [(.google.api.field_behavior) = REQUIRED]; - * - * @return This builder for chaining. + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder clearName() { - name_ = getDefaultInstance().getName(); - bitField0_ = (bitField0_ & ~0x00000001); + public Builder setMessageRetentionDuration( + com.google.protobuf.Duration.Builder builderForValue) { + if (messageRetentionDurationBuilder_ == null) { + messageRetentionDuration_ = builderForValue.build(); + } else { + messageRetentionDurationBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000080; onChanged(); return this; } + /** * * *
-     * Required. The name of the subscription. It must have the format
-     * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
-     * start with a letter, and contain only letters (`[A-Za-z]`), numbers
-     * (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
-     * plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
-     * in length, and it must not start with `"goog"`.
+     * Optional. How long to retain unacknowledged messages in the subscription's
+     * backlog, from the moment a message is published. If `retain_acked_messages`
+     * is true, then this also configures the retention of acknowledged messages,
+     * and thus configures how far back in time a `Seek` can be done. Defaults to
+     * 7 days. Cannot be more than 31 days or less than 10 minutes.
      * 
* - * string name = 1 [(.google.api.field_behavior) = REQUIRED]; - * - * @param value The bytes for name to set. - * @return This builder for chaining. + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder setNameBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public Builder mergeMessageRetentionDuration(com.google.protobuf.Duration value) { + if (messageRetentionDurationBuilder_ == null) { + if (((bitField0_ & 0x00000080) != 0) + && messageRetentionDuration_ != null + && messageRetentionDuration_ != com.google.protobuf.Duration.getDefaultInstance()) { + getMessageRetentionDurationBuilder().mergeFrom(value); + } else { + messageRetentionDuration_ = value; + } + } else { + messageRetentionDurationBuilder_.mergeFrom(value); + } + if (messageRetentionDuration_ != null) { + bitField0_ |= 0x00000080; + onChanged(); } - checkByteStringIsUtf8(value); - name_ = value; - bitField0_ |= 0x00000001; - onChanged(); return this; } - private java.lang.Object topic_ = ""; /** * * *
-     * Required. The name of the topic from which this subscription is receiving
-     * messages. Format is `projects/{project}/topics/{topic}`. The value of this
-     * field will be `_deleted-topic_` if the topic has been deleted.
+     * Optional. How long to retain unacknowledged messages in the subscription's
+     * backlog, from the moment a message is published. If `retain_acked_messages`
+     * is true, then this also configures the retention of acknowledged messages,
+     * and thus configures how far back in time a `Seek` can be done. Defaults to
+     * 7 days. Cannot be more than 31 days or less than 10 minutes.
      * 
* * - * string topic = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; * - * - * @return The topic. */ - public java.lang.String getTopic() { - java.lang.Object ref = topic_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - topic_ = s; - return s; - } else { - return (java.lang.String) ref; + public Builder clearMessageRetentionDuration() { + bitField0_ = (bitField0_ & ~0x00000080); + messageRetentionDuration_ = null; + if (messageRetentionDurationBuilder_ != null) { + messageRetentionDurationBuilder_.dispose(); + messageRetentionDurationBuilder_ = null; } + onChanged(); + return this; } + /** * * *
-     * Required. The name of the topic from which this subscription is receiving
-     * messages. Format is `projects/{project}/topics/{topic}`. The value of this
-     * field will be `_deleted-topic_` if the topic has been deleted.
+     * Optional. How long to retain unacknowledged messages in the subscription's
+     * backlog, from the moment a message is published. If `retain_acked_messages`
+     * is true, then this also configures the retention of acknowledged messages,
+     * and thus configures how far back in time a `Seek` can be done. Defaults to
+     * 7 days. Cannot be more than 31 days or less than 10 minutes.
      * 
* * - * string topic = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; * + */ + public com.google.protobuf.Duration.Builder getMessageRetentionDurationBuilder() { + bitField0_ |= 0x00000080; + onChanged(); + return getMessageRetentionDurationFieldBuilder().getBuilder(); + } + + /** * - * @return The bytes for topic. + * + *
+     * Optional. How long to retain unacknowledged messages in the subscription's
+     * backlog, from the moment a message is published. If `retain_acked_messages`
+     * is true, then this also configures the retention of acknowledged messages,
+     * and thus configures how far back in time a `Seek` can be done. Defaults to
+     * 7 days. Cannot be more than 31 days or less than 10 minutes.
+     * 
+ * + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public com.google.protobuf.ByteString getTopicBytes() { - java.lang.Object ref = topic_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - topic_ = b; - return b; + public com.google.protobuf.DurationOrBuilder getMessageRetentionDurationOrBuilder() { + if (messageRetentionDurationBuilder_ != null) { + return messageRetentionDurationBuilder_.getMessageOrBuilder(); } else { - return (com.google.protobuf.ByteString) ref; + return messageRetentionDuration_ == null + ? com.google.protobuf.Duration.getDefaultInstance() + : messageRetentionDuration_; } } + /** * * *
-     * Required. The name of the topic from which this subscription is receiving
-     * messages. Format is `projects/{project}/topics/{topic}`. The value of this
-     * field will be `_deleted-topic_` if the topic has been deleted.
+     * Optional. How long to retain unacknowledged messages in the subscription's
+     * backlog, from the moment a message is published. If `retain_acked_messages`
+     * is true, then this also configures the retention of acknowledged messages,
+     * and thus configures how far back in time a `Seek` can be done. Defaults to
+     * 7 days. Cannot be more than 31 days or less than 10 minutes.
      * 
* * - * string topic = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; * - * - * @param value The topic to set. - * @return This builder for chaining. */ - public Builder setTopic(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Duration, + com.google.protobuf.Duration.Builder, + com.google.protobuf.DurationOrBuilder> + getMessageRetentionDurationFieldBuilder() { + if (messageRetentionDurationBuilder_ == null) { + messageRetentionDurationBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Duration, + com.google.protobuf.Duration.Builder, + com.google.protobuf.DurationOrBuilder>( + getMessageRetentionDuration(), getParentForChildren(), isClean()); + messageRetentionDuration_ = null; } - topic_ = value; - bitField0_ |= 0x00000002; + return messageRetentionDurationBuilder_; + } + + private com.google.protobuf.MapField labels_; + + private com.google.protobuf.MapField internalGetLabels() { + if (labels_ == null) { + return com.google.protobuf.MapField.emptyMapField(LabelsDefaultEntryHolder.defaultEntry); + } + return labels_; + } + + private com.google.protobuf.MapField + internalGetMutableLabels() { + if (labels_ == null) { + labels_ = com.google.protobuf.MapField.newMapField(LabelsDefaultEntryHolder.defaultEntry); + } + if (!labels_.isMutable()) { + labels_ = labels_.copy(); + } + bitField0_ |= 0x00000100; onChanged(); - return this; + return labels_; } - /** - * - * - *
-     * Required. The name of the topic from which this subscription is receiving
-     * messages. Format is `projects/{project}/topics/{topic}`. The value of this
-     * field will be `_deleted-topic_` if the topic has been deleted.
-     * 
- * - * - * string topic = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } - * - * - * @return This builder for chaining. - */ - public Builder clearTopic() { - topic_ = getDefaultInstance().getTopic(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; + + public int getLabelsCount() { + return internalGetLabels().getMap().size(); } + /** * * *
-     * Required. The name of the topic from which this subscription is receiving
-     * messages. Format is `projects/{project}/topics/{topic}`. The value of this
-     * field will be `_deleted-topic_` if the topic has been deleted.
+     * Optional. See [Creating and managing
+     * labels](https://cloud.google.com/pubsub/docs/labels).
      * 
* - * - * string topic = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } - * - * - * @param value The bytes for topic to set. - * @return This builder for chaining. + * map<string, string> labels = 9 [(.google.api.field_behavior) = OPTIONAL]; */ - public Builder setTopicBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + @java.lang.Override + public boolean containsLabels(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); } - checkByteStringIsUtf8(value); - topic_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; + return internalGetLabels().getMap().containsKey(key); + } + + /** Use {@link #getLabelsMap()} instead. */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getLabels() { + return getLabelsMap(); } - private com.google.pubsub.v1.PushConfig pushConfig_; - private com.google.protobuf.SingleFieldBuilderV3< - com.google.pubsub.v1.PushConfig, - com.google.pubsub.v1.PushConfig.Builder, - com.google.pubsub.v1.PushConfigOrBuilder> - pushConfigBuilder_; /** * * *
-     * If push delivery is used with this subscription, this field is
-     * used to configure it.
+     * Optional. See [Creating and managing
+     * labels](https://cloud.google.com/pubsub/docs/labels).
      * 
* - * .google.pubsub.v1.PushConfig push_config = 4; - * - * @return Whether the pushConfig field is set. + * map<string, string> labels = 9 [(.google.api.field_behavior) = OPTIONAL]; */ - public boolean hasPushConfig() { - return ((bitField0_ & 0x00000004) != 0); + @java.lang.Override + public java.util.Map getLabelsMap() { + return internalGetLabels().getMap(); } + /** * * *
-     * If push delivery is used with this subscription, this field is
-     * used to configure it.
+     * Optional. See [Creating and managing
+     * labels](https://cloud.google.com/pubsub/docs/labels).
      * 
* - * .google.pubsub.v1.PushConfig push_config = 4; - * - * @return The pushConfig. + * map<string, string> labels = 9 [(.google.api.field_behavior) = OPTIONAL]; */ - public com.google.pubsub.v1.PushConfig getPushConfig() { - if (pushConfigBuilder_ == null) { - return pushConfig_ == null - ? com.google.pubsub.v1.PushConfig.getDefaultInstance() - : pushConfig_; - } else { - return pushConfigBuilder_.getMessage(); + @java.lang.Override + public /* nullable */ java.lang.String getLabelsOrDefault( + java.lang.String key, + /* nullable */ + java.lang.String defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); } + java.util.Map map = internalGetLabels().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; } + /** * * *
-     * If push delivery is used with this subscription, this field is
-     * used to configure it.
+     * Optional. See [Creating and managing
+     * labels](https://cloud.google.com/pubsub/docs/labels).
      * 
* - * .google.pubsub.v1.PushConfig push_config = 4; + * map<string, string> labels = 9 [(.google.api.field_behavior) = OPTIONAL]; */ - public Builder setPushConfig(com.google.pubsub.v1.PushConfig value) { - if (pushConfigBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - pushConfig_ = value; - } else { - pushConfigBuilder_.setMessage(value); + @java.lang.Override + public java.lang.String getLabelsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); } - bitField0_ |= 0x00000004; - onChanged(); + java.util.Map map = internalGetLabels().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearLabels() { + bitField0_ = (bitField0_ & ~0x00000100); + internalGetMutableLabels().getMutableMap().clear(); return this; } + /** * * *
-     * If push delivery is used with this subscription, this field is
-     * used to configure it.
+     * Optional. See [Creating and managing
+     * labels](https://cloud.google.com/pubsub/docs/labels).
      * 
* - * .google.pubsub.v1.PushConfig push_config = 4; + * map<string, string> labels = 9 [(.google.api.field_behavior) = OPTIONAL]; */ - public Builder setPushConfig(com.google.pubsub.v1.PushConfig.Builder builderForValue) { - if (pushConfigBuilder_ == null) { - pushConfig_ = builderForValue.build(); - } else { - pushConfigBuilder_.setMessage(builderForValue.build()); + public Builder removeLabels(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); } - bitField0_ |= 0x00000004; - onChanged(); + internalGetMutableLabels().getMutableMap().remove(key); return this; } + + /** Use alternate mutation accessors instead. */ + @java.lang.Deprecated + public java.util.Map getMutableLabels() { + bitField0_ |= 0x00000100; + return internalGetMutableLabels().getMutableMap(); + } + /** * * *
-     * If push delivery is used with this subscription, this field is
-     * used to configure it.
+     * Optional. See [Creating and managing
+     * labels](https://cloud.google.com/pubsub/docs/labels).
      * 
* - * .google.pubsub.v1.PushConfig push_config = 4; + * map<string, string> labels = 9 [(.google.api.field_behavior) = OPTIONAL]; */ - public Builder mergePushConfig(com.google.pubsub.v1.PushConfig value) { - if (pushConfigBuilder_ == null) { - if (((bitField0_ & 0x00000004) != 0) - && pushConfig_ != null - && pushConfig_ != com.google.pubsub.v1.PushConfig.getDefaultInstance()) { - getPushConfigBuilder().mergeFrom(value); - } else { - pushConfig_ = value; - } - } else { - pushConfigBuilder_.mergeFrom(value); + public Builder putLabels(java.lang.String key, java.lang.String value) { + if (key == null) { + throw new NullPointerException("map key"); } - bitField0_ |= 0x00000004; - onChanged(); + if (value == null) { + throw new NullPointerException("map value"); + } + internalGetMutableLabels().getMutableMap().put(key, value); + bitField0_ |= 0x00000100; return this; } + /** * * *
-     * If push delivery is used with this subscription, this field is
-     * used to configure it.
+     * Optional. See [Creating and managing
+     * labels](https://cloud.google.com/pubsub/docs/labels).
      * 
* - * .google.pubsub.v1.PushConfig push_config = 4; + * map<string, string> labels = 9 [(.google.api.field_behavior) = OPTIONAL]; */ - public Builder clearPushConfig() { - bitField0_ = (bitField0_ & ~0x00000004); - pushConfig_ = null; - if (pushConfigBuilder_ != null) { - pushConfigBuilder_.dispose(); - pushConfigBuilder_ = null; - } - onChanged(); + public Builder putAllLabels(java.util.Map values) { + internalGetMutableLabels().getMutableMap().putAll(values); + bitField0_ |= 0x00000100; return this; } + + private boolean enableMessageOrdering_; + /** * * *
-     * If push delivery is used with this subscription, this field is
-     * used to configure it.
+     * Optional. If true, messages published with the same `ordering_key` in
+     * `PubsubMessage` will be delivered to the subscribers in the order in which
+     * they are received by the Pub/Sub system. Otherwise, they may be delivered
+     * in any order.
      * 
* - * .google.pubsub.v1.PushConfig push_config = 4; + * bool enable_message_ordering = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The enableMessageOrdering. */ - public com.google.pubsub.v1.PushConfig.Builder getPushConfigBuilder() { - bitField0_ |= 0x00000004; - onChanged(); - return getPushConfigFieldBuilder().getBuilder(); + @java.lang.Override + public boolean getEnableMessageOrdering() { + return enableMessageOrdering_; } + /** * * *
-     * If push delivery is used with this subscription, this field is
-     * used to configure it.
+     * Optional. If true, messages published with the same `ordering_key` in
+     * `PubsubMessage` will be delivered to the subscribers in the order in which
+     * they are received by the Pub/Sub system. Otherwise, they may be delivered
+     * in any order.
      * 
* - * .google.pubsub.v1.PushConfig push_config = 4; + * bool enable_message_ordering = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The enableMessageOrdering to set. + * @return This builder for chaining. */ - public com.google.pubsub.v1.PushConfigOrBuilder getPushConfigOrBuilder() { - if (pushConfigBuilder_ != null) { - return pushConfigBuilder_.getMessageOrBuilder(); - } else { - return pushConfig_ == null - ? com.google.pubsub.v1.PushConfig.getDefaultInstance() - : pushConfig_; - } + public Builder setEnableMessageOrdering(boolean value) { + + enableMessageOrdering_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; } + /** * * *
-     * If push delivery is used with this subscription, this field is
-     * used to configure it.
+     * Optional. If true, messages published with the same `ordering_key` in
+     * `PubsubMessage` will be delivered to the subscribers in the order in which
+     * they are received by the Pub/Sub system. Otherwise, they may be delivered
+     * in any order.
      * 
* - * .google.pubsub.v1.PushConfig push_config = 4; + * bool enable_message_ordering = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. */ - private com.google.protobuf.SingleFieldBuilderV3< - com.google.pubsub.v1.PushConfig, - com.google.pubsub.v1.PushConfig.Builder, - com.google.pubsub.v1.PushConfigOrBuilder> - getPushConfigFieldBuilder() { - if (pushConfigBuilder_ == null) { - pushConfigBuilder_ = - new com.google.protobuf.SingleFieldBuilderV3< - com.google.pubsub.v1.PushConfig, - com.google.pubsub.v1.PushConfig.Builder, - com.google.pubsub.v1.PushConfigOrBuilder>( - getPushConfig(), getParentForChildren(), isClean()); - pushConfig_ = null; - } - return pushConfigBuilder_; + public Builder clearEnableMessageOrdering() { + bitField0_ = (bitField0_ & ~0x00000200); + enableMessageOrdering_ = false; + onChanged(); + return this; } - private com.google.pubsub.v1.BigQueryConfig bigqueryConfig_; + private com.google.pubsub.v1.ExpirationPolicy expirationPolicy_; private com.google.protobuf.SingleFieldBuilderV3< - com.google.pubsub.v1.BigQueryConfig, - com.google.pubsub.v1.BigQueryConfig.Builder, - com.google.pubsub.v1.BigQueryConfigOrBuilder> - bigqueryConfigBuilder_; + com.google.pubsub.v1.ExpirationPolicy, + com.google.pubsub.v1.ExpirationPolicy.Builder, + com.google.pubsub.v1.ExpirationPolicyOrBuilder> + expirationPolicyBuilder_; + /** * * *
-     * If delivery to BigQuery is used with this subscription, this field is
-     * used to configure it.
+     * Optional. A policy that specifies the conditions for this subscription's
+     * expiration. A subscription is considered active as long as any connected
+     * subscriber is successfully consuming messages from the subscription or is
+     * issuing operations on the subscription. If `expiration_policy` is not set,
+     * a *default policy* with `ttl` of 31 days will be used. The minimum allowed
+     * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
+     * but `expiration_policy.ttl` is not set, the subscription never expires.
      * 
* - * .google.pubsub.v1.BigQueryConfig bigquery_config = 18; + * + * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11 [(.google.api.field_behavior) = OPTIONAL]; + * * - * @return Whether the bigqueryConfig field is set. + * @return Whether the expirationPolicy field is set. */ - public boolean hasBigqueryConfig() { - return ((bitField0_ & 0x00000008) != 0); + public boolean hasExpirationPolicy() { + return ((bitField0_ & 0x00000400) != 0); } + /** * * *
-     * If delivery to BigQuery is used with this subscription, this field is
-     * used to configure it.
+     * Optional. A policy that specifies the conditions for this subscription's
+     * expiration. A subscription is considered active as long as any connected
+     * subscriber is successfully consuming messages from the subscription or is
+     * issuing operations on the subscription. If `expiration_policy` is not set,
+     * a *default policy* with `ttl` of 31 days will be used. The minimum allowed
+     * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
+     * but `expiration_policy.ttl` is not set, the subscription never expires.
      * 
* - * .google.pubsub.v1.BigQueryConfig bigquery_config = 18; + * + * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11 [(.google.api.field_behavior) = OPTIONAL]; + * * - * @return The bigqueryConfig. + * @return The expirationPolicy. */ - public com.google.pubsub.v1.BigQueryConfig getBigqueryConfig() { - if (bigqueryConfigBuilder_ == null) { - return bigqueryConfig_ == null - ? com.google.pubsub.v1.BigQueryConfig.getDefaultInstance() - : bigqueryConfig_; + public com.google.pubsub.v1.ExpirationPolicy getExpirationPolicy() { + if (expirationPolicyBuilder_ == null) { + return expirationPolicy_ == null + ? com.google.pubsub.v1.ExpirationPolicy.getDefaultInstance() + : expirationPolicy_; } else { - return bigqueryConfigBuilder_.getMessage(); + return expirationPolicyBuilder_.getMessage(); } } + /** * * *
-     * If delivery to BigQuery is used with this subscription, this field is
-     * used to configure it.
+     * Optional. A policy that specifies the conditions for this subscription's
+     * expiration. A subscription is considered active as long as any connected
+     * subscriber is successfully consuming messages from the subscription or is
+     * issuing operations on the subscription. If `expiration_policy` is not set,
+     * a *default policy* with `ttl` of 31 days will be used. The minimum allowed
+     * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
+     * but `expiration_policy.ttl` is not set, the subscription never expires.
      * 
* - * .google.pubsub.v1.BigQueryConfig bigquery_config = 18; + * + * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder setBigqueryConfig(com.google.pubsub.v1.BigQueryConfig value) { - if (bigqueryConfigBuilder_ == null) { + public Builder setExpirationPolicy(com.google.pubsub.v1.ExpirationPolicy value) { + if (expirationPolicyBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - bigqueryConfig_ = value; + expirationPolicy_ = value; } else { - bigqueryConfigBuilder_.setMessage(value); + expirationPolicyBuilder_.setMessage(value); } - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000400; onChanged(); return this; } + /** * * *
-     * If delivery to BigQuery is used with this subscription, this field is
-     * used to configure it.
+     * Optional. A policy that specifies the conditions for this subscription's
+     * expiration. A subscription is considered active as long as any connected
+     * subscriber is successfully consuming messages from the subscription or is
+     * issuing operations on the subscription. If `expiration_policy` is not set,
+     * a *default policy* with `ttl` of 31 days will be used. The minimum allowed
+     * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
+     * but `expiration_policy.ttl` is not set, the subscription never expires.
      * 
* - * .google.pubsub.v1.BigQueryConfig bigquery_config = 18; + * + * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder setBigqueryConfig(com.google.pubsub.v1.BigQueryConfig.Builder builderForValue) { - if (bigqueryConfigBuilder_ == null) { - bigqueryConfig_ = builderForValue.build(); + public Builder setExpirationPolicy( + com.google.pubsub.v1.ExpirationPolicy.Builder builderForValue) { + if (expirationPolicyBuilder_ == null) { + expirationPolicy_ = builderForValue.build(); } else { - bigqueryConfigBuilder_.setMessage(builderForValue.build()); + expirationPolicyBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000400; onChanged(); return this; } + /** * * *
-     * If delivery to BigQuery is used with this subscription, this field is
-     * used to configure it.
+     * Optional. A policy that specifies the conditions for this subscription's
+     * expiration. A subscription is considered active as long as any connected
+     * subscriber is successfully consuming messages from the subscription or is
+     * issuing operations on the subscription. If `expiration_policy` is not set,
+     * a *default policy* with `ttl` of 31 days will be used. The minimum allowed
+     * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
+     * but `expiration_policy.ttl` is not set, the subscription never expires.
      * 
* - * .google.pubsub.v1.BigQueryConfig bigquery_config = 18; + * + * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder mergeBigqueryConfig(com.google.pubsub.v1.BigQueryConfig value) { - if (bigqueryConfigBuilder_ == null) { - if (((bitField0_ & 0x00000008) != 0) - && bigqueryConfig_ != null - && bigqueryConfig_ != com.google.pubsub.v1.BigQueryConfig.getDefaultInstance()) { - getBigqueryConfigBuilder().mergeFrom(value); + public Builder mergeExpirationPolicy(com.google.pubsub.v1.ExpirationPolicy value) { + if (expirationPolicyBuilder_ == null) { + if (((bitField0_ & 0x00000400) != 0) + && expirationPolicy_ != null + && expirationPolicy_ != com.google.pubsub.v1.ExpirationPolicy.getDefaultInstance()) { + getExpirationPolicyBuilder().mergeFrom(value); } else { - bigqueryConfig_ = value; + expirationPolicy_ = value; } } else { - bigqueryConfigBuilder_.mergeFrom(value); + expirationPolicyBuilder_.mergeFrom(value); + } + if (expirationPolicy_ != null) { + bitField0_ |= 0x00000400; + onChanged(); } - bitField0_ |= 0x00000008; - onChanged(); return this; } + /** * * *
-     * If delivery to BigQuery is used with this subscription, this field is
-     * used to configure it.
+     * Optional. A policy that specifies the conditions for this subscription's
+     * expiration. A subscription is considered active as long as any connected
+     * subscriber is successfully consuming messages from the subscription or is
+     * issuing operations on the subscription. If `expiration_policy` is not set,
+     * a *default policy* with `ttl` of 31 days will be used. The minimum allowed
+     * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
+     * but `expiration_policy.ttl` is not set, the subscription never expires.
      * 
* - * .google.pubsub.v1.BigQueryConfig bigquery_config = 18; + * + * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder clearBigqueryConfig() { - bitField0_ = (bitField0_ & ~0x00000008); - bigqueryConfig_ = null; - if (bigqueryConfigBuilder_ != null) { - bigqueryConfigBuilder_.dispose(); - bigqueryConfigBuilder_ = null; + public Builder clearExpirationPolicy() { + bitField0_ = (bitField0_ & ~0x00000400); + expirationPolicy_ = null; + if (expirationPolicyBuilder_ != null) { + expirationPolicyBuilder_.dispose(); + expirationPolicyBuilder_ = null; } onChanged(); return this; } + /** * * *
-     * If delivery to BigQuery is used with this subscription, this field is
-     * used to configure it.
+     * Optional. A policy that specifies the conditions for this subscription's
+     * expiration. A subscription is considered active as long as any connected
+     * subscriber is successfully consuming messages from the subscription or is
+     * issuing operations on the subscription. If `expiration_policy` is not set,
+     * a *default policy* with `ttl` of 31 days will be used. The minimum allowed
+     * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
+     * but `expiration_policy.ttl` is not set, the subscription never expires.
      * 
* - * .google.pubsub.v1.BigQueryConfig bigquery_config = 18; + * + * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public com.google.pubsub.v1.BigQueryConfig.Builder getBigqueryConfigBuilder() { - bitField0_ |= 0x00000008; + public com.google.pubsub.v1.ExpirationPolicy.Builder getExpirationPolicyBuilder() { + bitField0_ |= 0x00000400; onChanged(); - return getBigqueryConfigFieldBuilder().getBuilder(); + return getExpirationPolicyFieldBuilder().getBuilder(); } + /** * * *
-     * If delivery to BigQuery is used with this subscription, this field is
-     * used to configure it.
+     * Optional. A policy that specifies the conditions for this subscription's
+     * expiration. A subscription is considered active as long as any connected
+     * subscriber is successfully consuming messages from the subscription or is
+     * issuing operations on the subscription. If `expiration_policy` is not set,
+     * a *default policy* with `ttl` of 31 days will be used. The minimum allowed
+     * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
+     * but `expiration_policy.ttl` is not set, the subscription never expires.
      * 
* - * .google.pubsub.v1.BigQueryConfig bigquery_config = 18; + * + * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public com.google.pubsub.v1.BigQueryConfigOrBuilder getBigqueryConfigOrBuilder() { - if (bigqueryConfigBuilder_ != null) { - return bigqueryConfigBuilder_.getMessageOrBuilder(); + public com.google.pubsub.v1.ExpirationPolicyOrBuilder getExpirationPolicyOrBuilder() { + if (expirationPolicyBuilder_ != null) { + return expirationPolicyBuilder_.getMessageOrBuilder(); } else { - return bigqueryConfig_ == null - ? com.google.pubsub.v1.BigQueryConfig.getDefaultInstance() - : bigqueryConfig_; + return expirationPolicy_ == null + ? com.google.pubsub.v1.ExpirationPolicy.getDefaultInstance() + : expirationPolicy_; } } + /** * * *
-     * If delivery to BigQuery is used with this subscription, this field is
-     * used to configure it.
+     * Optional. A policy that specifies the conditions for this subscription's
+     * expiration. A subscription is considered active as long as any connected
+     * subscriber is successfully consuming messages from the subscription or is
+     * issuing operations on the subscription. If `expiration_policy` is not set,
+     * a *default policy* with `ttl` of 31 days will be used. The minimum allowed
+     * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
+     * but `expiration_policy.ttl` is not set, the subscription never expires.
      * 
* - * .google.pubsub.v1.BigQueryConfig bigquery_config = 18; + * + * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11 [(.google.api.field_behavior) = OPTIONAL]; + * */ private com.google.protobuf.SingleFieldBuilderV3< - com.google.pubsub.v1.BigQueryConfig, - com.google.pubsub.v1.BigQueryConfig.Builder, - com.google.pubsub.v1.BigQueryConfigOrBuilder> - getBigqueryConfigFieldBuilder() { - if (bigqueryConfigBuilder_ == null) { - bigqueryConfigBuilder_ = + com.google.pubsub.v1.ExpirationPolicy, + com.google.pubsub.v1.ExpirationPolicy.Builder, + com.google.pubsub.v1.ExpirationPolicyOrBuilder> + getExpirationPolicyFieldBuilder() { + if (expirationPolicyBuilder_ == null) { + expirationPolicyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - com.google.pubsub.v1.BigQueryConfig, - com.google.pubsub.v1.BigQueryConfig.Builder, - com.google.pubsub.v1.BigQueryConfigOrBuilder>( - getBigqueryConfig(), getParentForChildren(), isClean()); - bigqueryConfig_ = null; + com.google.pubsub.v1.ExpirationPolicy, + com.google.pubsub.v1.ExpirationPolicy.Builder, + com.google.pubsub.v1.ExpirationPolicyOrBuilder>( + getExpirationPolicy(), getParentForChildren(), isClean()); + expirationPolicy_ = null; } - return bigqueryConfigBuilder_; + return expirationPolicyBuilder_; } - private com.google.pubsub.v1.CloudStorageConfig cloudStorageConfig_; - private com.google.protobuf.SingleFieldBuilderV3< - com.google.pubsub.v1.CloudStorageConfig, - com.google.pubsub.v1.CloudStorageConfig.Builder, - com.google.pubsub.v1.CloudStorageConfigOrBuilder> - cloudStorageConfigBuilder_; - /** - * - * - *
-     * If delivery to Google Cloud Storage is used with this subscription, this
-     * field is used to configure it.
-     * 
- * - * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22; - * - * @return Whether the cloudStorageConfig field is set. - */ - public boolean hasCloudStorageConfig() { - return ((bitField0_ & 0x00000010) != 0); - } - /** - * - * - *
-     * If delivery to Google Cloud Storage is used with this subscription, this
-     * field is used to configure it.
-     * 
- * - * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22; - * - * @return The cloudStorageConfig. - */ - public com.google.pubsub.v1.CloudStorageConfig getCloudStorageConfig() { - if (cloudStorageConfigBuilder_ == null) { - return cloudStorageConfig_ == null - ? com.google.pubsub.v1.CloudStorageConfig.getDefaultInstance() - : cloudStorageConfig_; - } else { - return cloudStorageConfigBuilder_.getMessage(); - } - } - /** - * - * - *
-     * If delivery to Google Cloud Storage is used with this subscription, this
-     * field is used to configure it.
-     * 
- * - * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22; - */ - public Builder setCloudStorageConfig(com.google.pubsub.v1.CloudStorageConfig value) { - if (cloudStorageConfigBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - cloudStorageConfig_ = value; - } else { - cloudStorageConfigBuilder_.setMessage(value); - } - bitField0_ |= 0x00000010; - onChanged(); - return this; - } + private java.lang.Object filter_ = ""; + /** * * *
-     * If delivery to Google Cloud Storage is used with this subscription, this
-     * field is used to configure it.
+     * Optional. An expression written in the Pub/Sub [filter
+     * language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
+     * then only `PubsubMessage`s whose `attributes` field matches the filter are
+     * delivered on this subscription. If empty, then no messages are filtered
+     * out.
      * 
* - * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22; - */ - public Builder setCloudStorageConfig( - com.google.pubsub.v1.CloudStorageConfig.Builder builderForValue) { - if (cloudStorageConfigBuilder_ == null) { - cloudStorageConfig_ = builderForValue.build(); - } else { - cloudStorageConfigBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * - * - *
-     * If delivery to Google Cloud Storage is used with this subscription, this
-     * field is used to configure it.
-     * 
+ * string filter = 12 [(.google.api.field_behavior) = OPTIONAL]; * - * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22; + * @return The filter. */ - public Builder mergeCloudStorageConfig(com.google.pubsub.v1.CloudStorageConfig value) { - if (cloudStorageConfigBuilder_ == null) { - if (((bitField0_ & 0x00000010) != 0) - && cloudStorageConfig_ != null - && cloudStorageConfig_ - != com.google.pubsub.v1.CloudStorageConfig.getDefaultInstance()) { - getCloudStorageConfigBuilder().mergeFrom(value); - } else { - cloudStorageConfig_ = value; - } + public java.lang.String getFilter() { + java.lang.Object ref = filter_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + filter_ = s; + return s; } else { - cloudStorageConfigBuilder_.mergeFrom(value); + return (java.lang.String) ref; } - bitField0_ |= 0x00000010; - onChanged(); - return this; } + /** * * *
-     * If delivery to Google Cloud Storage is used with this subscription, this
-     * field is used to configure it.
+     * Optional. An expression written in the Pub/Sub [filter
+     * language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
+     * then only `PubsubMessage`s whose `attributes` field matches the filter are
+     * delivered on this subscription. If empty, then no messages are filtered
+     * out.
      * 
* - * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22; + * string filter = 12 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for filter. */ - public Builder clearCloudStorageConfig() { - bitField0_ = (bitField0_ & ~0x00000010); - cloudStorageConfig_ = null; - if (cloudStorageConfigBuilder_ != null) { - cloudStorageConfigBuilder_.dispose(); - cloudStorageConfigBuilder_ = null; + public com.google.protobuf.ByteString getFilterBytes() { + java.lang.Object ref = filter_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + filter_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } - onChanged(); - return this; } + /** * * *
-     * If delivery to Google Cloud Storage is used with this subscription, this
-     * field is used to configure it.
+     * Optional. An expression written in the Pub/Sub [filter
+     * language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
+     * then only `PubsubMessage`s whose `attributes` field matches the filter are
+     * delivered on this subscription. If empty, then no messages are filtered
+     * out.
      * 
* - * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22; + * string filter = 12 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The filter to set. + * @return This builder for chaining. */ - public com.google.pubsub.v1.CloudStorageConfig.Builder getCloudStorageConfigBuilder() { - bitField0_ |= 0x00000010; + public Builder setFilter(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + filter_ = value; + bitField0_ |= 0x00000800; onChanged(); - return getCloudStorageConfigFieldBuilder().getBuilder(); + return this; } + /** * * *
-     * If delivery to Google Cloud Storage is used with this subscription, this
-     * field is used to configure it.
+     * Optional. An expression written in the Pub/Sub [filter
+     * language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
+     * then only `PubsubMessage`s whose `attributes` field matches the filter are
+     * delivered on this subscription. If empty, then no messages are filtered
+     * out.
      * 
* - * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22; + * string filter = 12 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. */ - public com.google.pubsub.v1.CloudStorageConfigOrBuilder getCloudStorageConfigOrBuilder() { - if (cloudStorageConfigBuilder_ != null) { - return cloudStorageConfigBuilder_.getMessageOrBuilder(); - } else { - return cloudStorageConfig_ == null - ? com.google.pubsub.v1.CloudStorageConfig.getDefaultInstance() - : cloudStorageConfig_; - } + public Builder clearFilter() { + filter_ = getDefaultInstance().getFilter(); + bitField0_ = (bitField0_ & ~0x00000800); + onChanged(); + return this; } + /** * * *
-     * If delivery to Google Cloud Storage is used with this subscription, this
-     * field is used to configure it.
+     * Optional. An expression written in the Pub/Sub [filter
+     * language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
+     * then only `PubsubMessage`s whose `attributes` field matches the filter are
+     * delivered on this subscription. If empty, then no messages are filtered
+     * out.
      * 
* - * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22; + * string filter = 12 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for filter to set. + * @return This builder for chaining. */ - private com.google.protobuf.SingleFieldBuilderV3< - com.google.pubsub.v1.CloudStorageConfig, - com.google.pubsub.v1.CloudStorageConfig.Builder, - com.google.pubsub.v1.CloudStorageConfigOrBuilder> - getCloudStorageConfigFieldBuilder() { - if (cloudStorageConfigBuilder_ == null) { - cloudStorageConfigBuilder_ = - new com.google.protobuf.SingleFieldBuilderV3< - com.google.pubsub.v1.CloudStorageConfig, - com.google.pubsub.v1.CloudStorageConfig.Builder, - com.google.pubsub.v1.CloudStorageConfigOrBuilder>( - getCloudStorageConfig(), getParentForChildren(), isClean()); - cloudStorageConfig_ = null; + public Builder setFilterBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } - return cloudStorageConfigBuilder_; + checkByteStringIsUtf8(value); + filter_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; } - private int ackDeadlineSeconds_; + private com.google.pubsub.v1.DeadLetterPolicy deadLetterPolicy_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.DeadLetterPolicy, + com.google.pubsub.v1.DeadLetterPolicy.Builder, + com.google.pubsub.v1.DeadLetterPolicyOrBuilder> + deadLetterPolicyBuilder_; + /** * * *
-     * The approximate amount of time (on a best-effort basis) Pub/Sub waits for
-     * the subscriber to acknowledge receipt before resending the message. In the
-     * interval after the message is delivered and before it is acknowledged, it
-     * is considered to be _outstanding_. During that time period, the
-     * message will not be redelivered (on a best-effort basis).
+     * Optional. A policy that specifies the conditions for dead lettering
+     * messages in this subscription. If dead_letter_policy is not set, dead
+     * lettering is disabled.
      *
-     * For pull subscriptions, this value is used as the initial value for the ack
-     * deadline. To override this value for a given message, call
-     * `ModifyAckDeadline` with the corresponding `ack_id` if using
-     * non-streaming pull or send the `ack_id` in a
-     * `StreamingModifyAckDeadlineRequest` if using streaming pull.
-     * The minimum custom deadline you can specify is 10 seconds.
-     * The maximum custom deadline you can specify is 600 seconds (10 minutes).
-     * If this parameter is 0, a default value of 10 seconds is used.
-     *
-     * For push delivery, this value is also used to set the request timeout for
-     * the call to the push endpoint.
-     *
-     * If the subscriber never acknowledges the message, the Pub/Sub
-     * system will eventually redeliver the message.
+     * The Pub/Sub service account associated with this subscriptions's
+     * parent project (i.e.,
+     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
+     * permission to Acknowledge() messages on this subscription.
      * 
* - * int32 ack_deadline_seconds = 5; + * + * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13 [(.google.api.field_behavior) = OPTIONAL]; + * * - * @return The ackDeadlineSeconds. + * @return Whether the deadLetterPolicy field is set. */ - @java.lang.Override - public int getAckDeadlineSeconds() { - return ackDeadlineSeconds_; + public boolean hasDeadLetterPolicy() { + return ((bitField0_ & 0x00001000) != 0); } + /** * * *
-     * The approximate amount of time (on a best-effort basis) Pub/Sub waits for
-     * the subscriber to acknowledge receipt before resending the message. In the
-     * interval after the message is delivered and before it is acknowledged, it
-     * is considered to be _outstanding_. During that time period, the
-     * message will not be redelivered (on a best-effort basis).
-     *
-     * For pull subscriptions, this value is used as the initial value for the ack
-     * deadline. To override this value for a given message, call
-     * `ModifyAckDeadline` with the corresponding `ack_id` if using
-     * non-streaming pull or send the `ack_id` in a
-     * `StreamingModifyAckDeadlineRequest` if using streaming pull.
-     * The minimum custom deadline you can specify is 10 seconds.
-     * The maximum custom deadline you can specify is 600 seconds (10 minutes).
-     * If this parameter is 0, a default value of 10 seconds is used.
+     * Optional. A policy that specifies the conditions for dead lettering
+     * messages in this subscription. If dead_letter_policy is not set, dead
+     * lettering is disabled.
      *
-     * For push delivery, this value is also used to set the request timeout for
-     * the call to the push endpoint.
-     *
-     * If the subscriber never acknowledges the message, the Pub/Sub
-     * system will eventually redeliver the message.
+     * The Pub/Sub service account associated with this subscriptions's
+     * parent project (i.e.,
+     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
+     * permission to Acknowledge() messages on this subscription.
      * 
* - * int32 ack_deadline_seconds = 5; + * + * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13 [(.google.api.field_behavior) = OPTIONAL]; + * * - * @param value The ackDeadlineSeconds to set. - * @return This builder for chaining. + * @return The deadLetterPolicy. */ - public Builder setAckDeadlineSeconds(int value) { - - ackDeadlineSeconds_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; + public com.google.pubsub.v1.DeadLetterPolicy getDeadLetterPolicy() { + if (deadLetterPolicyBuilder_ == null) { + return deadLetterPolicy_ == null + ? com.google.pubsub.v1.DeadLetterPolicy.getDefaultInstance() + : deadLetterPolicy_; + } else { + return deadLetterPolicyBuilder_.getMessage(); + } } + /** * * *
-     * The approximate amount of time (on a best-effort basis) Pub/Sub waits for
-     * the subscriber to acknowledge receipt before resending the message. In the
-     * interval after the message is delivered and before it is acknowledged, it
-     * is considered to be _outstanding_. During that time period, the
-     * message will not be redelivered (on a best-effort basis).
+     * Optional. A policy that specifies the conditions for dead lettering
+     * messages in this subscription. If dead_letter_policy is not set, dead
+     * lettering is disabled.
      *
-     * For pull subscriptions, this value is used as the initial value for the ack
-     * deadline. To override this value for a given message, call
-     * `ModifyAckDeadline` with the corresponding `ack_id` if using
-     * non-streaming pull or send the `ack_id` in a
-     * `StreamingModifyAckDeadlineRequest` if using streaming pull.
-     * The minimum custom deadline you can specify is 10 seconds.
-     * The maximum custom deadline you can specify is 600 seconds (10 minutes).
-     * If this parameter is 0, a default value of 10 seconds is used.
-     *
-     * For push delivery, this value is also used to set the request timeout for
-     * the call to the push endpoint.
-     *
-     * If the subscriber never acknowledges the message, the Pub/Sub
-     * system will eventually redeliver the message.
+     * The Pub/Sub service account associated with this subscriptions's
+     * parent project (i.e.,
+     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
+     * permission to Acknowledge() messages on this subscription.
      * 
* - * int32 ack_deadline_seconds = 5; - * - * @return This builder for chaining. + * + * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder clearAckDeadlineSeconds() { - bitField0_ = (bitField0_ & ~0x00000020); - ackDeadlineSeconds_ = 0; + public Builder setDeadLetterPolicy(com.google.pubsub.v1.DeadLetterPolicy value) { + if (deadLetterPolicyBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + deadLetterPolicy_ = value; + } else { + deadLetterPolicyBuilder_.setMessage(value); + } + bitField0_ |= 0x00001000; onChanged(); return this; } - private boolean retainAckedMessages_; /** * * *
-     * Indicates whether to retain acknowledged messages. If true, then
-     * messages are not expunged from the subscription's backlog, even if they are
-     * acknowledged, until they fall out of the `message_retention_duration`
-     * window. This must be true if you would like to [`Seek` to a timestamp]
-     * (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) in
-     * the past to replay previously-acknowledged messages.
-     * 
+ * Optional. A policy that specifies the conditions for dead lettering + * messages in this subscription. If dead_letter_policy is not set, dead + * lettering is disabled. * - * bool retain_acked_messages = 7; + * The Pub/Sub service account associated with this subscriptions's + * parent project (i.e., + * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have + * permission to Acknowledge() messages on this subscription. + *
* - * @return The retainAckedMessages. + * + * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13 [(.google.api.field_behavior) = OPTIONAL]; + * */ - @java.lang.Override - public boolean getRetainAckedMessages() { - return retainAckedMessages_; + public Builder setDeadLetterPolicy( + com.google.pubsub.v1.DeadLetterPolicy.Builder builderForValue) { + if (deadLetterPolicyBuilder_ == null) { + deadLetterPolicy_ = builderForValue.build(); + } else { + deadLetterPolicyBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00001000; + onChanged(); + return this; } + /** * * *
-     * Indicates whether to retain acknowledged messages. If true, then
-     * messages are not expunged from the subscription's backlog, even if they are
-     * acknowledged, until they fall out of the `message_retention_duration`
-     * window. This must be true if you would like to [`Seek` to a timestamp]
-     * (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) in
-     * the past to replay previously-acknowledged messages.
-     * 
+ * Optional. A policy that specifies the conditions for dead lettering + * messages in this subscription. If dead_letter_policy is not set, dead + * lettering is disabled. * - * bool retain_acked_messages = 7; + * The Pub/Sub service account associated with this subscriptions's + * parent project (i.e., + * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have + * permission to Acknowledge() messages on this subscription. + *
* - * @param value The retainAckedMessages to set. - * @return This builder for chaining. - */ - public Builder setRetainAckedMessages(boolean value) { - - retainAckedMessages_ = value; - bitField0_ |= 0x00000040; - onChanged(); + * + * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeDeadLetterPolicy(com.google.pubsub.v1.DeadLetterPolicy value) { + if (deadLetterPolicyBuilder_ == null) { + if (((bitField0_ & 0x00001000) != 0) + && deadLetterPolicy_ != null + && deadLetterPolicy_ != com.google.pubsub.v1.DeadLetterPolicy.getDefaultInstance()) { + getDeadLetterPolicyBuilder().mergeFrom(value); + } else { + deadLetterPolicy_ = value; + } + } else { + deadLetterPolicyBuilder_.mergeFrom(value); + } + if (deadLetterPolicy_ != null) { + bitField0_ |= 0x00001000; + onChanged(); + } return this; } + /** * * *
-     * Indicates whether to retain acknowledged messages. If true, then
-     * messages are not expunged from the subscription's backlog, even if they are
-     * acknowledged, until they fall out of the `message_retention_duration`
-     * window. This must be true if you would like to [`Seek` to a timestamp]
-     * (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) in
-     * the past to replay previously-acknowledged messages.
-     * 
+ * Optional. A policy that specifies the conditions for dead lettering + * messages in this subscription. If dead_letter_policy is not set, dead + * lettering is disabled. * - * bool retain_acked_messages = 7; + * The Pub/Sub service account associated with this subscriptions's + * parent project (i.e., + * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have + * permission to Acknowledge() messages on this subscription. + * * - * @return This builder for chaining. + * + * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder clearRetainAckedMessages() { - bitField0_ = (bitField0_ & ~0x00000040); - retainAckedMessages_ = false; + public Builder clearDeadLetterPolicy() { + bitField0_ = (bitField0_ & ~0x00001000); + deadLetterPolicy_ = null; + if (deadLetterPolicyBuilder_ != null) { + deadLetterPolicyBuilder_.dispose(); + deadLetterPolicyBuilder_ = null; + } onChanged(); return this; } - private com.google.protobuf.Duration messageRetentionDuration_; - private com.google.protobuf.SingleFieldBuilderV3< - com.google.protobuf.Duration, - com.google.protobuf.Duration.Builder, - com.google.protobuf.DurationOrBuilder> - messageRetentionDurationBuilder_; /** * * *
-     * How long to retain unacknowledged messages in the subscription's backlog,
-     * from the moment a message is published.
-     * If `retain_acked_messages` is true, then this also configures the retention
-     * of acknowledged messages, and thus configures how far back in time a `Seek`
-     * can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
-     * minutes.
-     * 
+ * Optional. A policy that specifies the conditions for dead lettering + * messages in this subscription. If dead_letter_policy is not set, dead + * lettering is disabled. * - * .google.protobuf.Duration message_retention_duration = 8; + * The Pub/Sub service account associated with this subscriptions's + * parent project (i.e., + * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have + * permission to Acknowledge() messages on this subscription. + * * - * @return Whether the messageRetentionDuration field is set. + * + * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public boolean hasMessageRetentionDuration() { - return ((bitField0_ & 0x00000080) != 0); + public com.google.pubsub.v1.DeadLetterPolicy.Builder getDeadLetterPolicyBuilder() { + bitField0_ |= 0x00001000; + onChanged(); + return getDeadLetterPolicyFieldBuilder().getBuilder(); } + /** * * *
-     * How long to retain unacknowledged messages in the subscription's backlog,
-     * from the moment a message is published.
-     * If `retain_acked_messages` is true, then this also configures the retention
-     * of acknowledged messages, and thus configures how far back in time a `Seek`
-     * can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
-     * minutes.
-     * 
+ * Optional. A policy that specifies the conditions for dead lettering + * messages in this subscription. If dead_letter_policy is not set, dead + * lettering is disabled. * - * .google.protobuf.Duration message_retention_duration = 8; + * The Pub/Sub service account associated with this subscriptions's + * parent project (i.e., + * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have + * permission to Acknowledge() messages on this subscription. + * * - * @return The messageRetentionDuration. + * + * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public com.google.protobuf.Duration getMessageRetentionDuration() { - if (messageRetentionDurationBuilder_ == null) { - return messageRetentionDuration_ == null - ? com.google.protobuf.Duration.getDefaultInstance() - : messageRetentionDuration_; + public com.google.pubsub.v1.DeadLetterPolicyOrBuilder getDeadLetterPolicyOrBuilder() { + if (deadLetterPolicyBuilder_ != null) { + return deadLetterPolicyBuilder_.getMessageOrBuilder(); } else { - return messageRetentionDurationBuilder_.getMessage(); + return deadLetterPolicy_ == null + ? com.google.pubsub.v1.DeadLetterPolicy.getDefaultInstance() + : deadLetterPolicy_; } } + /** * * *
-     * How long to retain unacknowledged messages in the subscription's backlog,
-     * from the moment a message is published.
-     * If `retain_acked_messages` is true, then this also configures the retention
-     * of acknowledged messages, and thus configures how far back in time a `Seek`
-     * can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
-     * minutes.
+     * Optional. A policy that specifies the conditions for dead lettering
+     * messages in this subscription. If dead_letter_policy is not set, dead
+     * lettering is disabled.
+     *
+     * The Pub/Sub service account associated with this subscriptions's
+     * parent project (i.e.,
+     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
+     * permission to Acknowledge() messages on this subscription.
      * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder setMessageRetentionDuration(com.google.protobuf.Duration value) { - if (messageRetentionDurationBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - messageRetentionDuration_ = value; - } else { - messageRetentionDurationBuilder_.setMessage(value); + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.DeadLetterPolicy, + com.google.pubsub.v1.DeadLetterPolicy.Builder, + com.google.pubsub.v1.DeadLetterPolicyOrBuilder> + getDeadLetterPolicyFieldBuilder() { + if (deadLetterPolicyBuilder_ == null) { + deadLetterPolicyBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.DeadLetterPolicy, + com.google.pubsub.v1.DeadLetterPolicy.Builder, + com.google.pubsub.v1.DeadLetterPolicyOrBuilder>( + getDeadLetterPolicy(), getParentForChildren(), isClean()); + deadLetterPolicy_ = null; } - bitField0_ |= 0x00000080; - onChanged(); - return this; + return deadLetterPolicyBuilder_; } + + private com.google.pubsub.v1.RetryPolicy retryPolicy_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.RetryPolicy, + com.google.pubsub.v1.RetryPolicy.Builder, + com.google.pubsub.v1.RetryPolicyOrBuilder> + retryPolicyBuilder_; + /** * * *
-     * How long to retain unacknowledged messages in the subscription's backlog,
-     * from the moment a message is published.
-     * If `retain_acked_messages` is true, then this also configures the retention
-     * of acknowledged messages, and thus configures how far back in time a `Seek`
-     * can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
-     * minutes.
+     * Optional. A policy that specifies how Pub/Sub retries message delivery for
+     * this subscription.
+     *
+     * If not set, the default retry policy is applied. This generally implies
+     * that messages will be retried as soon as possible for healthy subscribers.
+     * RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
+     * events for a given message.
      * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.pubsub.v1.RetryPolicy retry_policy = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the retryPolicy field is set. */ - public Builder setMessageRetentionDuration( - com.google.protobuf.Duration.Builder builderForValue) { - if (messageRetentionDurationBuilder_ == null) { - messageRetentionDuration_ = builderForValue.build(); - } else { - messageRetentionDurationBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000080; - onChanged(); - return this; + public boolean hasRetryPolicy() { + return ((bitField0_ & 0x00002000) != 0); } + /** * * *
-     * How long to retain unacknowledged messages in the subscription's backlog,
-     * from the moment a message is published.
-     * If `retain_acked_messages` is true, then this also configures the retention
-     * of acknowledged messages, and thus configures how far back in time a `Seek`
-     * can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
-     * minutes.
+     * Optional. A policy that specifies how Pub/Sub retries message delivery for
+     * this subscription.
+     *
+     * If not set, the default retry policy is applied. This generally implies
+     * that messages will be retried as soon as possible for healthy subscribers.
+     * RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
+     * events for a given message.
      * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.pubsub.v1.RetryPolicy retry_policy = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The retryPolicy. */ - public Builder mergeMessageRetentionDuration(com.google.protobuf.Duration value) { - if (messageRetentionDurationBuilder_ == null) { - if (((bitField0_ & 0x00000080) != 0) - && messageRetentionDuration_ != null - && messageRetentionDuration_ != com.google.protobuf.Duration.getDefaultInstance()) { - getMessageRetentionDurationBuilder().mergeFrom(value); - } else { - messageRetentionDuration_ = value; - } + public com.google.pubsub.v1.RetryPolicy getRetryPolicy() { + if (retryPolicyBuilder_ == null) { + return retryPolicy_ == null + ? com.google.pubsub.v1.RetryPolicy.getDefaultInstance() + : retryPolicy_; } else { - messageRetentionDurationBuilder_.mergeFrom(value); + return retryPolicyBuilder_.getMessage(); } - bitField0_ |= 0x00000080; - onChanged(); - return this; } + /** * * *
-     * How long to retain unacknowledged messages in the subscription's backlog,
-     * from the moment a message is published.
-     * If `retain_acked_messages` is true, then this also configures the retention
-     * of acknowledged messages, and thus configures how far back in time a `Seek`
-     * can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
-     * minutes.
+     * Optional. A policy that specifies how Pub/Sub retries message delivery for
+     * this subscription.
+     *
+     * If not set, the default retry policy is applied. This generally implies
+     * that messages will be retried as soon as possible for healthy subscribers.
+     * RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
+     * events for a given message.
      * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.pubsub.v1.RetryPolicy retry_policy = 14 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder clearMessageRetentionDuration() { - bitField0_ = (bitField0_ & ~0x00000080); - messageRetentionDuration_ = null; - if (messageRetentionDurationBuilder_ != null) { - messageRetentionDurationBuilder_.dispose(); - messageRetentionDurationBuilder_ = null; + public Builder setRetryPolicy(com.google.pubsub.v1.RetryPolicy value) { + if (retryPolicyBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + retryPolicy_ = value; + } else { + retryPolicyBuilder_.setMessage(value); } + bitField0_ |= 0x00002000; onChanged(); return this; } + /** * * *
-     * How long to retain unacknowledged messages in the subscription's backlog,
-     * from the moment a message is published.
-     * If `retain_acked_messages` is true, then this also configures the retention
-     * of acknowledged messages, and thus configures how far back in time a `Seek`
-     * can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
-     * minutes.
-     * 
- * - * .google.protobuf.Duration message_retention_duration = 8; - */ - public com.google.protobuf.Duration.Builder getMessageRetentionDurationBuilder() { - bitField0_ |= 0x00000080; - onChanged(); - return getMessageRetentionDurationFieldBuilder().getBuilder(); - } - /** - * + * Optional. A policy that specifies how Pub/Sub retries message delivery for + * this subscription. * - *
-     * How long to retain unacknowledged messages in the subscription's backlog,
-     * from the moment a message is published.
-     * If `retain_acked_messages` is true, then this also configures the retention
-     * of acknowledged messages, and thus configures how far back in time a `Seek`
-     * can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
-     * minutes.
+     * If not set, the default retry policy is applied. This generally implies
+     * that messages will be retried as soon as possible for healthy subscribers.
+     * RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
+     * events for a given message.
      * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.pubsub.v1.RetryPolicy retry_policy = 14 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public com.google.protobuf.DurationOrBuilder getMessageRetentionDurationOrBuilder() { - if (messageRetentionDurationBuilder_ != null) { - return messageRetentionDurationBuilder_.getMessageOrBuilder(); + public Builder setRetryPolicy(com.google.pubsub.v1.RetryPolicy.Builder builderForValue) { + if (retryPolicyBuilder_ == null) { + retryPolicy_ = builderForValue.build(); } else { - return messageRetentionDuration_ == null - ? com.google.protobuf.Duration.getDefaultInstance() - : messageRetentionDuration_; + retryPolicyBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00002000; + onChanged(); + return this; } + /** * * *
-     * How long to retain unacknowledged messages in the subscription's backlog,
-     * from the moment a message is published.
-     * If `retain_acked_messages` is true, then this also configures the retention
-     * of acknowledged messages, and thus configures how far back in time a `Seek`
-     * can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
-     * minutes.
+     * Optional. A policy that specifies how Pub/Sub retries message delivery for
+     * this subscription.
+     *
+     * If not set, the default retry policy is applied. This generally implies
+     * that messages will be retried as soon as possible for healthy subscribers.
+     * RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
+     * events for a given message.
      * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.pubsub.v1.RetryPolicy retry_policy = 14 [(.google.api.field_behavior) = OPTIONAL]; + * */ - private com.google.protobuf.SingleFieldBuilderV3< - com.google.protobuf.Duration, - com.google.protobuf.Duration.Builder, - com.google.protobuf.DurationOrBuilder> - getMessageRetentionDurationFieldBuilder() { - if (messageRetentionDurationBuilder_ == null) { - messageRetentionDurationBuilder_ = - new com.google.protobuf.SingleFieldBuilderV3< - com.google.protobuf.Duration, - com.google.protobuf.Duration.Builder, - com.google.protobuf.DurationOrBuilder>( - getMessageRetentionDuration(), getParentForChildren(), isClean()); - messageRetentionDuration_ = null; - } - return messageRetentionDurationBuilder_; - } - - private com.google.protobuf.MapField labels_; - - private com.google.protobuf.MapField internalGetLabels() { - if (labels_ == null) { - return com.google.protobuf.MapField.emptyMapField(LabelsDefaultEntryHolder.defaultEntry); - } - return labels_; - } - - private com.google.protobuf.MapField - internalGetMutableLabels() { - if (labels_ == null) { - labels_ = com.google.protobuf.MapField.newMapField(LabelsDefaultEntryHolder.defaultEntry); + public Builder mergeRetryPolicy(com.google.pubsub.v1.RetryPolicy value) { + if (retryPolicyBuilder_ == null) { + if (((bitField0_ & 0x00002000) != 0) + && retryPolicy_ != null + && retryPolicy_ != com.google.pubsub.v1.RetryPolicy.getDefaultInstance()) { + getRetryPolicyBuilder().mergeFrom(value); + } else { + retryPolicy_ = value; + } + } else { + retryPolicyBuilder_.mergeFrom(value); } - if (!labels_.isMutable()) { - labels_ = labels_.copy(); + if (retryPolicy_ != null) { + bitField0_ |= 0x00002000; + onChanged(); } - bitField0_ |= 0x00000100; - onChanged(); - return labels_; + return this; } - public int getLabelsCount() { - return internalGetLabels().getMap().size(); - } /** * * *
-     * See [Creating and managing
-     * labels](https://cloud.google.com/pubsub/docs/labels).
+     * Optional. A policy that specifies how Pub/Sub retries message delivery for
+     * this subscription.
+     *
+     * If not set, the default retry policy is applied. This generally implies
+     * that messages will be retried as soon as possible for healthy subscribers.
+     * RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
+     * events for a given message.
      * 
* - * map<string, string> labels = 9; + * + * .google.pubsub.v1.RetryPolicy retry_policy = 14 [(.google.api.field_behavior) = OPTIONAL]; + * */ - @java.lang.Override - public boolean containsLabels(java.lang.String key) { - if (key == null) { - throw new NullPointerException("map key"); + public Builder clearRetryPolicy() { + bitField0_ = (bitField0_ & ~0x00002000); + retryPolicy_ = null; + if (retryPolicyBuilder_ != null) { + retryPolicyBuilder_.dispose(); + retryPolicyBuilder_ = null; } - return internalGetLabels().getMap().containsKey(key); - } - /** Use {@link #getLabelsMap()} instead. */ - @java.lang.Override - @java.lang.Deprecated - public java.util.Map getLabels() { - return getLabelsMap(); + onChanged(); + return this; } + /** * * *
-     * See [Creating and managing
-     * labels](https://cloud.google.com/pubsub/docs/labels).
+     * Optional. A policy that specifies how Pub/Sub retries message delivery for
+     * this subscription.
+     *
+     * If not set, the default retry policy is applied. This generally implies
+     * that messages will be retried as soon as possible for healthy subscribers.
+     * RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
+     * events for a given message.
      * 
* - * map<string, string> labels = 9; + * + * .google.pubsub.v1.RetryPolicy retry_policy = 14 [(.google.api.field_behavior) = OPTIONAL]; + * */ - @java.lang.Override - public java.util.Map getLabelsMap() { - return internalGetLabels().getMap(); + public com.google.pubsub.v1.RetryPolicy.Builder getRetryPolicyBuilder() { + bitField0_ |= 0x00002000; + onChanged(); + return getRetryPolicyFieldBuilder().getBuilder(); } + /** * * *
-     * See [Creating and managing
-     * labels](https://cloud.google.com/pubsub/docs/labels).
+     * Optional. A policy that specifies how Pub/Sub retries message delivery for
+     * this subscription.
+     *
+     * If not set, the default retry policy is applied. This generally implies
+     * that messages will be retried as soon as possible for healthy subscribers.
+     * RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
+     * events for a given message.
      * 
* - * map<string, string> labels = 9; + * + * .google.pubsub.v1.RetryPolicy retry_policy = 14 [(.google.api.field_behavior) = OPTIONAL]; + * */ - @java.lang.Override - public /* nullable */ java.lang.String getLabelsOrDefault( - java.lang.String key, - /* nullable */ - java.lang.String defaultValue) { - if (key == null) { - throw new NullPointerException("map key"); + public com.google.pubsub.v1.RetryPolicyOrBuilder getRetryPolicyOrBuilder() { + if (retryPolicyBuilder_ != null) { + return retryPolicyBuilder_.getMessageOrBuilder(); + } else { + return retryPolicy_ == null + ? com.google.pubsub.v1.RetryPolicy.getDefaultInstance() + : retryPolicy_; } - java.util.Map map = internalGetLabels().getMap(); - return map.containsKey(key) ? map.get(key) : defaultValue; } + /** * * *
-     * See [Creating and managing
-     * labels](https://cloud.google.com/pubsub/docs/labels).
+     * Optional. A policy that specifies how Pub/Sub retries message delivery for
+     * this subscription.
+     *
+     * If not set, the default retry policy is applied. This generally implies
+     * that messages will be retried as soon as possible for healthy subscribers.
+     * RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
+     * events for a given message.
      * 
* - * map<string, string> labels = 9; + * + * .google.pubsub.v1.RetryPolicy retry_policy = 14 [(.google.api.field_behavior) = OPTIONAL]; + * */ - @java.lang.Override - public java.lang.String getLabelsOrThrow(java.lang.String key) { - if (key == null) { - throw new NullPointerException("map key"); - } - java.util.Map map = internalGetLabels().getMap(); - if (!map.containsKey(key)) { - throw new java.lang.IllegalArgumentException(); + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.RetryPolicy, + com.google.pubsub.v1.RetryPolicy.Builder, + com.google.pubsub.v1.RetryPolicyOrBuilder> + getRetryPolicyFieldBuilder() { + if (retryPolicyBuilder_ == null) { + retryPolicyBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.RetryPolicy, + com.google.pubsub.v1.RetryPolicy.Builder, + com.google.pubsub.v1.RetryPolicyOrBuilder>( + getRetryPolicy(), getParentForChildren(), isClean()); + retryPolicy_ = null; } - return map.get(key); + return retryPolicyBuilder_; } - public Builder clearLabels() { - bitField0_ = (bitField0_ & ~0x00000100); - internalGetMutableLabels().getMutableMap().clear(); - return this; - } + private boolean detached_; + /** * * *
-     * See [Creating and managing
-     * labels](https://cloud.google.com/pubsub/docs/labels).
+     * Optional. Indicates whether the subscription is detached from its topic.
+     * Detached subscriptions don't receive messages from their topic and don't
+     * retain any backlog. `Pull` and `StreamingPull` requests will return
+     * FAILED_PRECONDITION. If the subscription is a push subscription, pushes to
+     * the endpoint will not be made.
      * 
* - * map<string, string> labels = 9; + * bool detached = 15 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The detached. */ - public Builder removeLabels(java.lang.String key) { - if (key == null) { - throw new NullPointerException("map key"); - } - internalGetMutableLabels().getMutableMap().remove(key); - return this; - } - /** Use alternate mutation accessors instead. */ - @java.lang.Deprecated - public java.util.Map getMutableLabels() { - bitField0_ |= 0x00000100; - return internalGetMutableLabels().getMutableMap(); + @java.lang.Override + public boolean getDetached() { + return detached_; } + /** * * *
-     * See [Creating and managing
-     * labels](https://cloud.google.com/pubsub/docs/labels).
+     * Optional. Indicates whether the subscription is detached from its topic.
+     * Detached subscriptions don't receive messages from their topic and don't
+     * retain any backlog. `Pull` and `StreamingPull` requests will return
+     * FAILED_PRECONDITION. If the subscription is a push subscription, pushes to
+     * the endpoint will not be made.
      * 
* - * map<string, string> labels = 9; + * bool detached = 15 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The detached to set. + * @return This builder for chaining. */ - public Builder putLabels(java.lang.String key, java.lang.String value) { - if (key == null) { - throw new NullPointerException("map key"); - } - if (value == null) { - throw new NullPointerException("map value"); - } - internalGetMutableLabels().getMutableMap().put(key, value); - bitField0_ |= 0x00000100; + public Builder setDetached(boolean value) { + + detached_ = value; + bitField0_ |= 0x00004000; + onChanged(); return this; } + /** * * *
-     * See [Creating and managing
-     * labels](https://cloud.google.com/pubsub/docs/labels).
+     * Optional. Indicates whether the subscription is detached from its topic.
+     * Detached subscriptions don't receive messages from their topic and don't
+     * retain any backlog. `Pull` and `StreamingPull` requests will return
+     * FAILED_PRECONDITION. If the subscription is a push subscription, pushes to
+     * the endpoint will not be made.
      * 
* - * map<string, string> labels = 9; + * bool detached = 15 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. */ - public Builder putAllLabels(java.util.Map values) { - internalGetMutableLabels().getMutableMap().putAll(values); - bitField0_ |= 0x00000100; + public Builder clearDetached() { + bitField0_ = (bitField0_ & ~0x00004000); + detached_ = false; + onChanged(); return this; } - private boolean enableMessageOrdering_; + private boolean enableExactlyOnceDelivery_; + /** * * *
-     * If true, messages published with the same `ordering_key` in `PubsubMessage`
-     * will be delivered to the subscribers in the order in which they
-     * are received by the Pub/Sub system. Otherwise, they may be delivered in
-     * any order.
+     * Optional. If true, Pub/Sub provides the following guarantees for the
+     * delivery of a message with a given value of `message_id` on this
+     * subscription:
+     *
+     * * The message sent to a subscriber is guaranteed not to be resent
+     * before the message's acknowledgment deadline expires.
+     * * An acknowledged message will not be resent to a subscriber.
+     *
+     * Note that subscribers may still receive multiple copies of a message
+     * when `enable_exactly_once_delivery` is true if the message was published
+     * multiple times by a publisher client. These copies are  considered distinct
+     * by Pub/Sub and have distinct `message_id` values.
      * 
* - * bool enable_message_ordering = 10; + * bool enable_exactly_once_delivery = 16 [(.google.api.field_behavior) = OPTIONAL]; + * * - * @return The enableMessageOrdering. + * @return The enableExactlyOnceDelivery. */ @java.lang.Override - public boolean getEnableMessageOrdering() { - return enableMessageOrdering_; + public boolean getEnableExactlyOnceDelivery() { + return enableExactlyOnceDelivery_; } + /** * * *
-     * If true, messages published with the same `ordering_key` in `PubsubMessage`
-     * will be delivered to the subscribers in the order in which they
-     * are received by the Pub/Sub system. Otherwise, they may be delivered in
-     * any order.
+     * Optional. If true, Pub/Sub provides the following guarantees for the
+     * delivery of a message with a given value of `message_id` on this
+     * subscription:
+     *
+     * * The message sent to a subscriber is guaranteed not to be resent
+     * before the message's acknowledgment deadline expires.
+     * * An acknowledged message will not be resent to a subscriber.
+     *
+     * Note that subscribers may still receive multiple copies of a message
+     * when `enable_exactly_once_delivery` is true if the message was published
+     * multiple times by a publisher client. These copies are  considered distinct
+     * by Pub/Sub and have distinct `message_id` values.
      * 
* - * bool enable_message_ordering = 10; + * bool enable_exactly_once_delivery = 16 [(.google.api.field_behavior) = OPTIONAL]; + * * - * @param value The enableMessageOrdering to set. + * @param value The enableExactlyOnceDelivery to set. * @return This builder for chaining. */ - public Builder setEnableMessageOrdering(boolean value) { + public Builder setEnableExactlyOnceDelivery(boolean value) { - enableMessageOrdering_ = value; - bitField0_ |= 0x00000200; + enableExactlyOnceDelivery_ = value; + bitField0_ |= 0x00008000; onChanged(); return this; } + /** * * *
-     * If true, messages published with the same `ordering_key` in `PubsubMessage`
-     * will be delivered to the subscribers in the order in which they
-     * are received by the Pub/Sub system. Otherwise, they may be delivered in
-     * any order.
+     * Optional. If true, Pub/Sub provides the following guarantees for the
+     * delivery of a message with a given value of `message_id` on this
+     * subscription:
+     *
+     * * The message sent to a subscriber is guaranteed not to be resent
+     * before the message's acknowledgment deadline expires.
+     * * An acknowledged message will not be resent to a subscriber.
+     *
+     * Note that subscribers may still receive multiple copies of a message
+     * when `enable_exactly_once_delivery` is true if the message was published
+     * multiple times by a publisher client. These copies are  considered distinct
+     * by Pub/Sub and have distinct `message_id` values.
      * 
* - * bool enable_message_ordering = 10; + * bool enable_exactly_once_delivery = 16 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return This builder for chaining. */ - public Builder clearEnableMessageOrdering() { - bitField0_ = (bitField0_ & ~0x00000200); - enableMessageOrdering_ = false; + public Builder clearEnableExactlyOnceDelivery() { + bitField0_ = (bitField0_ & ~0x00008000); + enableExactlyOnceDelivery_ = false; onChanged(); return this; } - private com.google.pubsub.v1.ExpirationPolicy expirationPolicy_; + private com.google.protobuf.Duration topicMessageRetentionDuration_; private com.google.protobuf.SingleFieldBuilderV3< - com.google.pubsub.v1.ExpirationPolicy, - com.google.pubsub.v1.ExpirationPolicy.Builder, - com.google.pubsub.v1.ExpirationPolicyOrBuilder> - expirationPolicyBuilder_; + com.google.protobuf.Duration, + com.google.protobuf.Duration.Builder, + com.google.protobuf.DurationOrBuilder> + topicMessageRetentionDurationBuilder_; + /** * * *
-     * A policy that specifies the conditions for this subscription's expiration.
-     * A subscription is considered active as long as any connected subscriber is
-     * successfully consuming messages from the subscription or is issuing
-     * operations on the subscription. If `expiration_policy` is not set, a
-     * *default policy* with `ttl` of 31 days will be used. The minimum allowed
-     * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
-     * but `expiration_policy.ttl` is not set, the subscription never expires.
+     * Output only. Indicates the minimum duration for which a message is retained
+     * after it is published to the subscription's topic. If this field is set,
+     * messages published to the subscription's topic in the last
+     * `topic_message_retention_duration` are always available to subscribers. See
+     * the `message_retention_duration` field in `Topic`. This field is set only
+     * in responses from the server; it is ignored if it is set in any requests.
      * 
* - * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11; + * + * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * * - * @return Whether the expirationPolicy field is set. + * @return Whether the topicMessageRetentionDuration field is set. */ - public boolean hasExpirationPolicy() { - return ((bitField0_ & 0x00000400) != 0); + public boolean hasTopicMessageRetentionDuration() { + return ((bitField0_ & 0x00010000) != 0); } + /** * * *
-     * A policy that specifies the conditions for this subscription's expiration.
-     * A subscription is considered active as long as any connected subscriber is
-     * successfully consuming messages from the subscription or is issuing
-     * operations on the subscription. If `expiration_policy` is not set, a
-     * *default policy* with `ttl` of 31 days will be used. The minimum allowed
-     * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
-     * but `expiration_policy.ttl` is not set, the subscription never expires.
+     * Output only. Indicates the minimum duration for which a message is retained
+     * after it is published to the subscription's topic. If this field is set,
+     * messages published to the subscription's topic in the last
+     * `topic_message_retention_duration` are always available to subscribers. See
+     * the `message_retention_duration` field in `Topic`. This field is set only
+     * in responses from the server; it is ignored if it is set in any requests.
      * 
* - * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11; + * + * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * * - * @return The expirationPolicy. + * @return The topicMessageRetentionDuration. */ - public com.google.pubsub.v1.ExpirationPolicy getExpirationPolicy() { - if (expirationPolicyBuilder_ == null) { - return expirationPolicy_ == null - ? com.google.pubsub.v1.ExpirationPolicy.getDefaultInstance() - : expirationPolicy_; + public com.google.protobuf.Duration getTopicMessageRetentionDuration() { + if (topicMessageRetentionDurationBuilder_ == null) { + return topicMessageRetentionDuration_ == null + ? com.google.protobuf.Duration.getDefaultInstance() + : topicMessageRetentionDuration_; } else { - return expirationPolicyBuilder_.getMessage(); + return topicMessageRetentionDurationBuilder_.getMessage(); } } + /** * * *
-     * A policy that specifies the conditions for this subscription's expiration.
-     * A subscription is considered active as long as any connected subscriber is
-     * successfully consuming messages from the subscription or is issuing
-     * operations on the subscription. If `expiration_policy` is not set, a
-     * *default policy* with `ttl` of 31 days will be used. The minimum allowed
-     * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
-     * but `expiration_policy.ttl` is not set, the subscription never expires.
+     * Output only. Indicates the minimum duration for which a message is retained
+     * after it is published to the subscription's topic. If this field is set,
+     * messages published to the subscription's topic in the last
+     * `topic_message_retention_duration` are always available to subscribers. See
+     * the `message_retention_duration` field in `Topic`. This field is set only
+     * in responses from the server; it is ignored if it is set in any requests.
      * 
* - * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11; + * + * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * */ - public Builder setExpirationPolicy(com.google.pubsub.v1.ExpirationPolicy value) { - if (expirationPolicyBuilder_ == null) { + public Builder setTopicMessageRetentionDuration(com.google.protobuf.Duration value) { + if (topicMessageRetentionDurationBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - expirationPolicy_ = value; + topicMessageRetentionDuration_ = value; } else { - expirationPolicyBuilder_.setMessage(value); + topicMessageRetentionDurationBuilder_.setMessage(value); } - bitField0_ |= 0x00000400; + bitField0_ |= 0x00010000; onChanged(); return this; } + /** * * *
-     * A policy that specifies the conditions for this subscription's expiration.
-     * A subscription is considered active as long as any connected subscriber is
-     * successfully consuming messages from the subscription or is issuing
-     * operations on the subscription. If `expiration_policy` is not set, a
-     * *default policy* with `ttl` of 31 days will be used. The minimum allowed
-     * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
-     * but `expiration_policy.ttl` is not set, the subscription never expires.
+     * Output only. Indicates the minimum duration for which a message is retained
+     * after it is published to the subscription's topic. If this field is set,
+     * messages published to the subscription's topic in the last
+     * `topic_message_retention_duration` are always available to subscribers. See
+     * the `message_retention_duration` field in `Topic`. This field is set only
+     * in responses from the server; it is ignored if it is set in any requests.
      * 
* - * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11; + * + * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * */ - public Builder setExpirationPolicy( - com.google.pubsub.v1.ExpirationPolicy.Builder builderForValue) { - if (expirationPolicyBuilder_ == null) { - expirationPolicy_ = builderForValue.build(); + public Builder setTopicMessageRetentionDuration( + com.google.protobuf.Duration.Builder builderForValue) { + if (topicMessageRetentionDurationBuilder_ == null) { + topicMessageRetentionDuration_ = builderForValue.build(); } else { - expirationPolicyBuilder_.setMessage(builderForValue.build()); + topicMessageRetentionDurationBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x00000400; + bitField0_ |= 0x00010000; onChanged(); return this; } + /** * * *
-     * A policy that specifies the conditions for this subscription's expiration.
-     * A subscription is considered active as long as any connected subscriber is
-     * successfully consuming messages from the subscription or is issuing
-     * operations on the subscription. If `expiration_policy` is not set, a
-     * *default policy* with `ttl` of 31 days will be used. The minimum allowed
-     * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
-     * but `expiration_policy.ttl` is not set, the subscription never expires.
+     * Output only. Indicates the minimum duration for which a message is retained
+     * after it is published to the subscription's topic. If this field is set,
+     * messages published to the subscription's topic in the last
+     * `topic_message_retention_duration` are always available to subscribers. See
+     * the `message_retention_duration` field in `Topic`. This field is set only
+     * in responses from the server; it is ignored if it is set in any requests.
      * 
* - * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11; + * + * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * */ - public Builder mergeExpirationPolicy(com.google.pubsub.v1.ExpirationPolicy value) { - if (expirationPolicyBuilder_ == null) { - if (((bitField0_ & 0x00000400) != 0) - && expirationPolicy_ != null - && expirationPolicy_ != com.google.pubsub.v1.ExpirationPolicy.getDefaultInstance()) { - getExpirationPolicyBuilder().mergeFrom(value); + public Builder mergeTopicMessageRetentionDuration(com.google.protobuf.Duration value) { + if (topicMessageRetentionDurationBuilder_ == null) { + if (((bitField0_ & 0x00010000) != 0) + && topicMessageRetentionDuration_ != null + && topicMessageRetentionDuration_ + != com.google.protobuf.Duration.getDefaultInstance()) { + getTopicMessageRetentionDurationBuilder().mergeFrom(value); } else { - expirationPolicy_ = value; + topicMessageRetentionDuration_ = value; } } else { - expirationPolicyBuilder_.mergeFrom(value); + topicMessageRetentionDurationBuilder_.mergeFrom(value); + } + if (topicMessageRetentionDuration_ != null) { + bitField0_ |= 0x00010000; + onChanged(); } - bitField0_ |= 0x00000400; - onChanged(); return this; } + /** * * *
-     * A policy that specifies the conditions for this subscription's expiration.
-     * A subscription is considered active as long as any connected subscriber is
-     * successfully consuming messages from the subscription or is issuing
-     * operations on the subscription. If `expiration_policy` is not set, a
-     * *default policy* with `ttl` of 31 days will be used. The minimum allowed
-     * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
-     * but `expiration_policy.ttl` is not set, the subscription never expires.
+     * Output only. Indicates the minimum duration for which a message is retained
+     * after it is published to the subscription's topic. If this field is set,
+     * messages published to the subscription's topic in the last
+     * `topic_message_retention_duration` are always available to subscribers. See
+     * the `message_retention_duration` field in `Topic`. This field is set only
+     * in responses from the server; it is ignored if it is set in any requests.
      * 
* - * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11; + * + * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * */ - public Builder clearExpirationPolicy() { - bitField0_ = (bitField0_ & ~0x00000400); - expirationPolicy_ = null; - if (expirationPolicyBuilder_ != null) { - expirationPolicyBuilder_.dispose(); - expirationPolicyBuilder_ = null; + public Builder clearTopicMessageRetentionDuration() { + bitField0_ = (bitField0_ & ~0x00010000); + topicMessageRetentionDuration_ = null; + if (topicMessageRetentionDurationBuilder_ != null) { + topicMessageRetentionDurationBuilder_.dispose(); + topicMessageRetentionDurationBuilder_ = null; } onChanged(); return this; } + /** * * *
-     * A policy that specifies the conditions for this subscription's expiration.
-     * A subscription is considered active as long as any connected subscriber is
-     * successfully consuming messages from the subscription or is issuing
-     * operations on the subscription. If `expiration_policy` is not set, a
-     * *default policy* with `ttl` of 31 days will be used. The minimum allowed
-     * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
-     * but `expiration_policy.ttl` is not set, the subscription never expires.
+     * Output only. Indicates the minimum duration for which a message is retained
+     * after it is published to the subscription's topic. If this field is set,
+     * messages published to the subscription's topic in the last
+     * `topic_message_retention_duration` are always available to subscribers. See
+     * the `message_retention_duration` field in `Topic`. This field is set only
+     * in responses from the server; it is ignored if it is set in any requests.
      * 
* - * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11; + * + * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * */ - public com.google.pubsub.v1.ExpirationPolicy.Builder getExpirationPolicyBuilder() { - bitField0_ |= 0x00000400; + public com.google.protobuf.Duration.Builder getTopicMessageRetentionDurationBuilder() { + bitField0_ |= 0x00010000; onChanged(); - return getExpirationPolicyFieldBuilder().getBuilder(); + return getTopicMessageRetentionDurationFieldBuilder().getBuilder(); } + /** * * *
-     * A policy that specifies the conditions for this subscription's expiration.
-     * A subscription is considered active as long as any connected subscriber is
-     * successfully consuming messages from the subscription or is issuing
-     * operations on the subscription. If `expiration_policy` is not set, a
-     * *default policy* with `ttl` of 31 days will be used. The minimum allowed
-     * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
-     * but `expiration_policy.ttl` is not set, the subscription never expires.
+     * Output only. Indicates the minimum duration for which a message is retained
+     * after it is published to the subscription's topic. If this field is set,
+     * messages published to the subscription's topic in the last
+     * `topic_message_retention_duration` are always available to subscribers. See
+     * the `message_retention_duration` field in `Topic`. This field is set only
+     * in responses from the server; it is ignored if it is set in any requests.
      * 
* - * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11; + * + * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * */ - public com.google.pubsub.v1.ExpirationPolicyOrBuilder getExpirationPolicyOrBuilder() { - if (expirationPolicyBuilder_ != null) { - return expirationPolicyBuilder_.getMessageOrBuilder(); + public com.google.protobuf.DurationOrBuilder getTopicMessageRetentionDurationOrBuilder() { + if (topicMessageRetentionDurationBuilder_ != null) { + return topicMessageRetentionDurationBuilder_.getMessageOrBuilder(); } else { - return expirationPolicy_ == null - ? com.google.pubsub.v1.ExpirationPolicy.getDefaultInstance() - : expirationPolicy_; + return topicMessageRetentionDuration_ == null + ? com.google.protobuf.Duration.getDefaultInstance() + : topicMessageRetentionDuration_; } } + /** * * *
-     * A policy that specifies the conditions for this subscription's expiration.
-     * A subscription is considered active as long as any connected subscriber is
-     * successfully consuming messages from the subscription or is issuing
-     * operations on the subscription. If `expiration_policy` is not set, a
-     * *default policy* with `ttl` of 31 days will be used. The minimum allowed
-     * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
-     * but `expiration_policy.ttl` is not set, the subscription never expires.
+     * Output only. Indicates the minimum duration for which a message is retained
+     * after it is published to the subscription's topic. If this field is set,
+     * messages published to the subscription's topic in the last
+     * `topic_message_retention_duration` are always available to subscribers. See
+     * the `message_retention_duration` field in `Topic`. This field is set only
+     * in responses from the server; it is ignored if it is set in any requests.
      * 
* - * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11; + * + * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * */ private com.google.protobuf.SingleFieldBuilderV3< - com.google.pubsub.v1.ExpirationPolicy, - com.google.pubsub.v1.ExpirationPolicy.Builder, - com.google.pubsub.v1.ExpirationPolicyOrBuilder> - getExpirationPolicyFieldBuilder() { - if (expirationPolicyBuilder_ == null) { - expirationPolicyBuilder_ = + com.google.protobuf.Duration, + com.google.protobuf.Duration.Builder, + com.google.protobuf.DurationOrBuilder> + getTopicMessageRetentionDurationFieldBuilder() { + if (topicMessageRetentionDurationBuilder_ == null) { + topicMessageRetentionDurationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - com.google.pubsub.v1.ExpirationPolicy, - com.google.pubsub.v1.ExpirationPolicy.Builder, - com.google.pubsub.v1.ExpirationPolicyOrBuilder>( - getExpirationPolicy(), getParentForChildren(), isClean()); - expirationPolicy_ = null; + com.google.protobuf.Duration, + com.google.protobuf.Duration.Builder, + com.google.protobuf.DurationOrBuilder>( + getTopicMessageRetentionDuration(), getParentForChildren(), isClean()); + topicMessageRetentionDuration_ = null; } - return expirationPolicyBuilder_; + return topicMessageRetentionDurationBuilder_; } - private java.lang.Object filter_ = ""; + private int state_ = 0; + /** * * *
-     * An expression written in the Pub/Sub [filter
-     * language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
-     * then only `PubsubMessage`s whose `attributes` field matches the filter are
-     * delivered on this subscription. If empty, then no messages are filtered
-     * out.
+     * Output only. An output-only field indicating whether or not the
+     * subscription can receive messages.
      * 
* - * string filter = 12; + * + * .google.pubsub.v1.Subscription.State state = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * * - * @return The filter. + * @return The enum numeric value on the wire for state. */ - public java.lang.String getFilter() { - java.lang.Object ref = filter_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - filter_ = s; - return s; - } else { - return (java.lang.String) ref; - } + @java.lang.Override + public int getStateValue() { + return state_; } + /** * * *
-     * An expression written in the Pub/Sub [filter
-     * language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
-     * then only `PubsubMessage`s whose `attributes` field matches the filter are
-     * delivered on this subscription. If empty, then no messages are filtered
-     * out.
+     * Output only. An output-only field indicating whether or not the
+     * subscription can receive messages.
      * 
* - * string filter = 12; + * + * .google.pubsub.v1.Subscription.State state = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * * - * @return The bytes for filter. + * @param value The enum numeric value on the wire for state to set. + * @return This builder for chaining. */ - public com.google.protobuf.ByteString getFilterBytes() { - java.lang.Object ref = filter_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - filter_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + public Builder setStateValue(int value) { + state_ = value; + bitField0_ |= 0x00020000; + onChanged(); + return this; } + /** * * *
-     * An expression written in the Pub/Sub [filter
-     * language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
-     * then only `PubsubMessage`s whose `attributes` field matches the filter are
-     * delivered on this subscription. If empty, then no messages are filtered
-     * out.
+     * Output only. An output-only field indicating whether or not the
+     * subscription can receive messages.
      * 
* - * string filter = 12; + * + * .google.pubsub.v1.Subscription.State state = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * * - * @param value The filter to set. - * @return This builder for chaining. + * @return The state. */ - public Builder setFilter(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - filter_ = value; - bitField0_ |= 0x00000800; - onChanged(); - return this; + @java.lang.Override + public com.google.pubsub.v1.Subscription.State getState() { + com.google.pubsub.v1.Subscription.State result = + com.google.pubsub.v1.Subscription.State.forNumber(state_); + return result == null ? com.google.pubsub.v1.Subscription.State.UNRECOGNIZED : result; } + /** * * *
-     * An expression written in the Pub/Sub [filter
-     * language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
-     * then only `PubsubMessage`s whose `attributes` field matches the filter are
-     * delivered on this subscription. If empty, then no messages are filtered
-     * out.
+     * Output only. An output-only field indicating whether or not the
+     * subscription can receive messages.
      * 
* - * string filter = 12; + * + * .google.pubsub.v1.Subscription.State state = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * * + * @param value The state to set. * @return This builder for chaining. */ - public Builder clearFilter() { - filter_ = getDefaultInstance().getFilter(); - bitField0_ = (bitField0_ & ~0x00000800); + public Builder setState(com.google.pubsub.v1.Subscription.State value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00020000; + state_ = value.getNumber(); onChanged(); return this; } + /** * * *
-     * An expression written in the Pub/Sub [filter
-     * language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
-     * then only `PubsubMessage`s whose `attributes` field matches the filter are
-     * delivered on this subscription. If empty, then no messages are filtered
-     * out.
+     * Output only. An output-only field indicating whether or not the
+     * subscription can receive messages.
      * 
* - * string filter = 12; + * + * .google.pubsub.v1.Subscription.State state = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * * - * @param value The bytes for filter to set. * @return This builder for chaining. */ - public Builder setFilterBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - filter_ = value; - bitField0_ |= 0x00000800; + public Builder clearState() { + bitField0_ = (bitField0_ & ~0x00020000); + state_ = 0; onChanged(); return this; } - private com.google.pubsub.v1.DeadLetterPolicy deadLetterPolicy_; + private com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo + analyticsHubSubscriptionInfo_; private com.google.protobuf.SingleFieldBuilderV3< - com.google.pubsub.v1.DeadLetterPolicy, - com.google.pubsub.v1.DeadLetterPolicy.Builder, - com.google.pubsub.v1.DeadLetterPolicyOrBuilder> - deadLetterPolicyBuilder_; + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo, + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.Builder, + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfoOrBuilder> + analyticsHubSubscriptionInfoBuilder_; + /** * * *
-     * A policy that specifies the conditions for dead lettering messages in
-     * this subscription. If dead_letter_policy is not set, dead lettering
-     * is disabled.
-     *
-     * The Cloud Pub/Sub service account associated with this subscriptions's
-     * parent project (i.e.,
-     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-     * permission to Acknowledge() messages on this subscription.
+     * Output only. Information about the associated Analytics Hub subscription.
+     * Only set if the subscritpion is created by Analytics Hub.
      * 
* - * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13; + * + * .google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * * - * @return Whether the deadLetterPolicy field is set. + * @return Whether the analyticsHubSubscriptionInfo field is set. */ - public boolean hasDeadLetterPolicy() { - return ((bitField0_ & 0x00001000) != 0); + public boolean hasAnalyticsHubSubscriptionInfo() { + return ((bitField0_ & 0x00040000) != 0); } + /** * * *
-     * A policy that specifies the conditions for dead lettering messages in
-     * this subscription. If dead_letter_policy is not set, dead lettering
-     * is disabled.
-     *
-     * The Cloud Pub/Sub service account associated with this subscriptions's
-     * parent project (i.e.,
-     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-     * permission to Acknowledge() messages on this subscription.
+     * Output only. Information about the associated Analytics Hub subscription.
+     * Only set if the subscritpion is created by Analytics Hub.
      * 
* - * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13; + * + * .google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * * - * @return The deadLetterPolicy. + * @return The analyticsHubSubscriptionInfo. */ - public com.google.pubsub.v1.DeadLetterPolicy getDeadLetterPolicy() { - if (deadLetterPolicyBuilder_ == null) { - return deadLetterPolicy_ == null - ? com.google.pubsub.v1.DeadLetterPolicy.getDefaultInstance() - : deadLetterPolicy_; + public com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo + getAnalyticsHubSubscriptionInfo() { + if (analyticsHubSubscriptionInfoBuilder_ == null) { + return analyticsHubSubscriptionInfo_ == null + ? com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.getDefaultInstance() + : analyticsHubSubscriptionInfo_; } else { - return deadLetterPolicyBuilder_.getMessage(); + return analyticsHubSubscriptionInfoBuilder_.getMessage(); } } + /** * * *
-     * A policy that specifies the conditions for dead lettering messages in
-     * this subscription. If dead_letter_policy is not set, dead lettering
-     * is disabled.
-     *
-     * The Cloud Pub/Sub service account associated with this subscriptions's
-     * parent project (i.e.,
-     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-     * permission to Acknowledge() messages on this subscription.
+     * Output only. Information about the associated Analytics Hub subscription.
+     * Only set if the subscritpion is created by Analytics Hub.
      * 
* - * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13; + * + * .google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * */ - public Builder setDeadLetterPolicy(com.google.pubsub.v1.DeadLetterPolicy value) { - if (deadLetterPolicyBuilder_ == null) { + public Builder setAnalyticsHubSubscriptionInfo( + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo value) { + if (analyticsHubSubscriptionInfoBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - deadLetterPolicy_ = value; + analyticsHubSubscriptionInfo_ = value; } else { - deadLetterPolicyBuilder_.setMessage(value); + analyticsHubSubscriptionInfoBuilder_.setMessage(value); } - bitField0_ |= 0x00001000; + bitField0_ |= 0x00040000; onChanged(); return this; } + /** * * *
-     * A policy that specifies the conditions for dead lettering messages in
-     * this subscription. If dead_letter_policy is not set, dead lettering
-     * is disabled.
-     *
-     * The Cloud Pub/Sub service account associated with this subscriptions's
-     * parent project (i.e.,
-     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-     * permission to Acknowledge() messages on this subscription.
+     * Output only. Information about the associated Analytics Hub subscription.
+     * Only set if the subscritpion is created by Analytics Hub.
      * 
* - * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13; + * + * .google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * */ - public Builder setDeadLetterPolicy( - com.google.pubsub.v1.DeadLetterPolicy.Builder builderForValue) { - if (deadLetterPolicyBuilder_ == null) { - deadLetterPolicy_ = builderForValue.build(); + public Builder setAnalyticsHubSubscriptionInfo( + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.Builder builderForValue) { + if (analyticsHubSubscriptionInfoBuilder_ == null) { + analyticsHubSubscriptionInfo_ = builderForValue.build(); } else { - deadLetterPolicyBuilder_.setMessage(builderForValue.build()); + analyticsHubSubscriptionInfoBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x00001000; + bitField0_ |= 0x00040000; onChanged(); return this; } + /** * * *
-     * A policy that specifies the conditions for dead lettering messages in
-     * this subscription. If dead_letter_policy is not set, dead lettering
-     * is disabled.
-     *
-     * The Cloud Pub/Sub service account associated with this subscriptions's
-     * parent project (i.e.,
-     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-     * permission to Acknowledge() messages on this subscription.
+     * Output only. Information about the associated Analytics Hub subscription.
+     * Only set if the subscritpion is created by Analytics Hub.
      * 
* - * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13; + * + * .google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * */ - public Builder mergeDeadLetterPolicy(com.google.pubsub.v1.DeadLetterPolicy value) { - if (deadLetterPolicyBuilder_ == null) { - if (((bitField0_ & 0x00001000) != 0) - && deadLetterPolicy_ != null - && deadLetterPolicy_ != com.google.pubsub.v1.DeadLetterPolicy.getDefaultInstance()) { - getDeadLetterPolicyBuilder().mergeFrom(value); + public Builder mergeAnalyticsHubSubscriptionInfo( + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo value) { + if (analyticsHubSubscriptionInfoBuilder_ == null) { + if (((bitField0_ & 0x00040000) != 0) + && analyticsHubSubscriptionInfo_ != null + && analyticsHubSubscriptionInfo_ + != com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo + .getDefaultInstance()) { + getAnalyticsHubSubscriptionInfoBuilder().mergeFrom(value); } else { - deadLetterPolicy_ = value; + analyticsHubSubscriptionInfo_ = value; } } else { - deadLetterPolicyBuilder_.mergeFrom(value); + analyticsHubSubscriptionInfoBuilder_.mergeFrom(value); + } + if (analyticsHubSubscriptionInfo_ != null) { + bitField0_ |= 0x00040000; + onChanged(); } - bitField0_ |= 0x00001000; - onChanged(); return this; } + /** * * *
-     * A policy that specifies the conditions for dead lettering messages in
-     * this subscription. If dead_letter_policy is not set, dead lettering
-     * is disabled.
-     *
-     * The Cloud Pub/Sub service account associated with this subscriptions's
-     * parent project (i.e.,
-     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-     * permission to Acknowledge() messages on this subscription.
+     * Output only. Information about the associated Analytics Hub subscription.
+     * Only set if the subscritpion is created by Analytics Hub.
      * 
* - * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13; + * + * .google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * */ - public Builder clearDeadLetterPolicy() { - bitField0_ = (bitField0_ & ~0x00001000); - deadLetterPolicy_ = null; - if (deadLetterPolicyBuilder_ != null) { - deadLetterPolicyBuilder_.dispose(); - deadLetterPolicyBuilder_ = null; + public Builder clearAnalyticsHubSubscriptionInfo() { + bitField0_ = (bitField0_ & ~0x00040000); + analyticsHubSubscriptionInfo_ = null; + if (analyticsHubSubscriptionInfoBuilder_ != null) { + analyticsHubSubscriptionInfoBuilder_.dispose(); + analyticsHubSubscriptionInfoBuilder_ = null; } onChanged(); return this; } - /** - * - * - *
-     * A policy that specifies the conditions for dead lettering messages in
-     * this subscription. If dead_letter_policy is not set, dead lettering
-     * is disabled.
-     *
-     * The Cloud Pub/Sub service account associated with this subscriptions's
-     * parent project (i.e.,
-     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-     * permission to Acknowledge() messages on this subscription.
-     * 
- * - * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13; - */ - public com.google.pubsub.v1.DeadLetterPolicy.Builder getDeadLetterPolicyBuilder() { - bitField0_ |= 0x00001000; - onChanged(); - return getDeadLetterPolicyFieldBuilder().getBuilder(); - } - /** - * - * - *
-     * A policy that specifies the conditions for dead lettering messages in
-     * this subscription. If dead_letter_policy is not set, dead lettering
-     * is disabled.
-     *
-     * The Cloud Pub/Sub service account associated with this subscriptions's
-     * parent project (i.e.,
-     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-     * permission to Acknowledge() messages on this subscription.
-     * 
- * - * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13; - */ - public com.google.pubsub.v1.DeadLetterPolicyOrBuilder getDeadLetterPolicyOrBuilder() { - if (deadLetterPolicyBuilder_ != null) { - return deadLetterPolicyBuilder_.getMessageOrBuilder(); - } else { - return deadLetterPolicy_ == null - ? com.google.pubsub.v1.DeadLetterPolicy.getDefaultInstance() - : deadLetterPolicy_; - } - } - /** - * - * - *
-     * A policy that specifies the conditions for dead lettering messages in
-     * this subscription. If dead_letter_policy is not set, dead lettering
-     * is disabled.
-     *
-     * The Cloud Pub/Sub service account associated with this subscriptions's
-     * parent project (i.e.,
-     * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
-     * permission to Acknowledge() messages on this subscription.
-     * 
- * - * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13; - */ - private com.google.protobuf.SingleFieldBuilderV3< - com.google.pubsub.v1.DeadLetterPolicy, - com.google.pubsub.v1.DeadLetterPolicy.Builder, - com.google.pubsub.v1.DeadLetterPolicyOrBuilder> - getDeadLetterPolicyFieldBuilder() { - if (deadLetterPolicyBuilder_ == null) { - deadLetterPolicyBuilder_ = - new com.google.protobuf.SingleFieldBuilderV3< - com.google.pubsub.v1.DeadLetterPolicy, - com.google.pubsub.v1.DeadLetterPolicy.Builder, - com.google.pubsub.v1.DeadLetterPolicyOrBuilder>( - getDeadLetterPolicy(), getParentForChildren(), isClean()); - deadLetterPolicy_ = null; - } - return deadLetterPolicyBuilder_; - } - private com.google.pubsub.v1.RetryPolicy retryPolicy_; - private com.google.protobuf.SingleFieldBuilderV3< - com.google.pubsub.v1.RetryPolicy, - com.google.pubsub.v1.RetryPolicy.Builder, - com.google.pubsub.v1.RetryPolicyOrBuilder> - retryPolicyBuilder_; /** * * - *
-     * A policy that specifies how Pub/Sub retries message delivery for this
-     * subscription.
-     *
-     * If not set, the default retry policy is applied. This generally implies
-     * that messages will be retried as soon as possible for healthy subscribers.
-     * RetryPolicy will be triggered on NACKs or acknowledgement deadline
-     * exceeded events for a given message.
-     * 
- * - * .google.pubsub.v1.RetryPolicy retry_policy = 14; - * - * @return Whether the retryPolicy field is set. - */ - public boolean hasRetryPolicy() { - return ((bitField0_ & 0x00002000) != 0); - } - /** - * - * - *
-     * A policy that specifies how Pub/Sub retries message delivery for this
-     * subscription.
-     *
-     * If not set, the default retry policy is applied. This generally implies
-     * that messages will be retried as soon as possible for healthy subscribers.
-     * RetryPolicy will be triggered on NACKs or acknowledgement deadline
-     * exceeded events for a given message.
-     * 
- * - * .google.pubsub.v1.RetryPolicy retry_policy = 14; - * - * @return The retryPolicy. - */ - public com.google.pubsub.v1.RetryPolicy getRetryPolicy() { - if (retryPolicyBuilder_ == null) { - return retryPolicy_ == null - ? com.google.pubsub.v1.RetryPolicy.getDefaultInstance() - : retryPolicy_; - } else { - return retryPolicyBuilder_.getMessage(); - } + *
+     * Output only. Information about the associated Analytics Hub subscription.
+     * Only set if the subscritpion is created by Analytics Hub.
+     * 
+ * + * + * .google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.Builder + getAnalyticsHubSubscriptionInfoBuilder() { + bitField0_ |= 0x00040000; + onChanged(); + return getAnalyticsHubSubscriptionInfoFieldBuilder().getBuilder(); } + /** * * *
-     * A policy that specifies how Pub/Sub retries message delivery for this
-     * subscription.
-     *
-     * If not set, the default retry policy is applied. This generally implies
-     * that messages will be retried as soon as possible for healthy subscribers.
-     * RetryPolicy will be triggered on NACKs or acknowledgement deadline
-     * exceeded events for a given message.
+     * Output only. Information about the associated Analytics Hub subscription.
+     * Only set if the subscritpion is created by Analytics Hub.
      * 
* - * .google.pubsub.v1.RetryPolicy retry_policy = 14; + * + * .google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * */ - public Builder setRetryPolicy(com.google.pubsub.v1.RetryPolicy value) { - if (retryPolicyBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - retryPolicy_ = value; + public com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfoOrBuilder + getAnalyticsHubSubscriptionInfoOrBuilder() { + if (analyticsHubSubscriptionInfoBuilder_ != null) { + return analyticsHubSubscriptionInfoBuilder_.getMessageOrBuilder(); } else { - retryPolicyBuilder_.setMessage(value); + return analyticsHubSubscriptionInfo_ == null + ? com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.getDefaultInstance() + : analyticsHubSubscriptionInfo_; } - bitField0_ |= 0x00002000; - onChanged(); - return this; } + /** * * *
-     * A policy that specifies how Pub/Sub retries message delivery for this
-     * subscription.
-     *
-     * If not set, the default retry policy is applied. This generally implies
-     * that messages will be retried as soon as possible for healthy subscribers.
-     * RetryPolicy will be triggered on NACKs or acknowledgement deadline
-     * exceeded events for a given message.
+     * Output only. Information about the associated Analytics Hub subscription.
+     * Only set if the subscritpion is created by Analytics Hub.
      * 
* - * .google.pubsub.v1.RetryPolicy retry_policy = 14; + * + * .google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * */ - public Builder setRetryPolicy(com.google.pubsub.v1.RetryPolicy.Builder builderForValue) { - if (retryPolicyBuilder_ == null) { - retryPolicy_ = builderForValue.build(); - } else { - retryPolicyBuilder_.setMessage(builderForValue.build()); + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo, + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.Builder, + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfoOrBuilder> + getAnalyticsHubSubscriptionInfoFieldBuilder() { + if (analyticsHubSubscriptionInfoBuilder_ == null) { + analyticsHubSubscriptionInfoBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo, + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.Builder, + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfoOrBuilder>( + getAnalyticsHubSubscriptionInfo(), getParentForChildren(), isClean()); + analyticsHubSubscriptionInfo_ = null; + } + return analyticsHubSubscriptionInfoBuilder_; + } + + private java.util.List messageTransforms_ = + java.util.Collections.emptyList(); + + private void ensureMessageTransformsIsMutable() { + if (!((bitField0_ & 0x00080000) != 0)) { + messageTransforms_ = + new java.util.ArrayList(messageTransforms_); + bitField0_ |= 0x00080000; } - bitField0_ |= 0x00002000; - onChanged(); - return this; } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.pubsub.v1.MessageTransform, + com.google.pubsub.v1.MessageTransform.Builder, + com.google.pubsub.v1.MessageTransformOrBuilder> + messageTransformsBuilder_; + /** * * *
-     * A policy that specifies how Pub/Sub retries message delivery for this
-     * subscription.
-     *
-     * If not set, the default retry policy is applied. This generally implies
-     * that messages will be retried as soon as possible for healthy subscribers.
-     * RetryPolicy will be triggered on NACKs or acknowledgement deadline
-     * exceeded events for a given message.
+     * Optional. Transforms to be applied to messages before they are delivered to
+     * subscribers. Transforms are applied in the order specified.
      * 
* - * .google.pubsub.v1.RetryPolicy retry_policy = 14; + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder mergeRetryPolicy(com.google.pubsub.v1.RetryPolicy value) { - if (retryPolicyBuilder_ == null) { - if (((bitField0_ & 0x00002000) != 0) - && retryPolicy_ != null - && retryPolicy_ != com.google.pubsub.v1.RetryPolicy.getDefaultInstance()) { - getRetryPolicyBuilder().mergeFrom(value); - } else { - retryPolicy_ = value; - } + public java.util.List getMessageTransformsList() { + if (messageTransformsBuilder_ == null) { + return java.util.Collections.unmodifiableList(messageTransforms_); } else { - retryPolicyBuilder_.mergeFrom(value); + return messageTransformsBuilder_.getMessageList(); } - bitField0_ |= 0x00002000; - onChanged(); - return this; } + /** * * *
-     * A policy that specifies how Pub/Sub retries message delivery for this
-     * subscription.
-     *
-     * If not set, the default retry policy is applied. This generally implies
-     * that messages will be retried as soon as possible for healthy subscribers.
-     * RetryPolicy will be triggered on NACKs or acknowledgement deadline
-     * exceeded events for a given message.
+     * Optional. Transforms to be applied to messages before they are delivered to
+     * subscribers. Transforms are applied in the order specified.
      * 
* - * .google.pubsub.v1.RetryPolicy retry_policy = 14; + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder clearRetryPolicy() { - bitField0_ = (bitField0_ & ~0x00002000); - retryPolicy_ = null; - if (retryPolicyBuilder_ != null) { - retryPolicyBuilder_.dispose(); - retryPolicyBuilder_ = null; + public int getMessageTransformsCount() { + if (messageTransformsBuilder_ == null) { + return messageTransforms_.size(); + } else { + return messageTransformsBuilder_.getCount(); } - onChanged(); - return this; } + /** * * *
-     * A policy that specifies how Pub/Sub retries message delivery for this
-     * subscription.
-     *
-     * If not set, the default retry policy is applied. This generally implies
-     * that messages will be retried as soon as possible for healthy subscribers.
-     * RetryPolicy will be triggered on NACKs or acknowledgement deadline
-     * exceeded events for a given message.
+     * Optional. Transforms to be applied to messages before they are delivered to
+     * subscribers. Transforms are applied in the order specified.
      * 
* - * .google.pubsub.v1.RetryPolicy retry_policy = 14; + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public com.google.pubsub.v1.RetryPolicy.Builder getRetryPolicyBuilder() { - bitField0_ |= 0x00002000; - onChanged(); - return getRetryPolicyFieldBuilder().getBuilder(); + public com.google.pubsub.v1.MessageTransform getMessageTransforms(int index) { + if (messageTransformsBuilder_ == null) { + return messageTransforms_.get(index); + } else { + return messageTransformsBuilder_.getMessage(index); + } } + /** * * *
-     * A policy that specifies how Pub/Sub retries message delivery for this
-     * subscription.
-     *
-     * If not set, the default retry policy is applied. This generally implies
-     * that messages will be retried as soon as possible for healthy subscribers.
-     * RetryPolicy will be triggered on NACKs or acknowledgement deadline
-     * exceeded events for a given message.
+     * Optional. Transforms to be applied to messages before they are delivered to
+     * subscribers. Transforms are applied in the order specified.
      * 
* - * .google.pubsub.v1.RetryPolicy retry_policy = 14; + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public com.google.pubsub.v1.RetryPolicyOrBuilder getRetryPolicyOrBuilder() { - if (retryPolicyBuilder_ != null) { - return retryPolicyBuilder_.getMessageOrBuilder(); + public Builder setMessageTransforms(int index, com.google.pubsub.v1.MessageTransform value) { + if (messageTransformsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMessageTransformsIsMutable(); + messageTransforms_.set(index, value); + onChanged(); } else { - return retryPolicy_ == null - ? com.google.pubsub.v1.RetryPolicy.getDefaultInstance() - : retryPolicy_; + messageTransformsBuilder_.setMessage(index, value); } + return this; } + /** * * *
-     * A policy that specifies how Pub/Sub retries message delivery for this
-     * subscription.
-     *
-     * If not set, the default retry policy is applied. This generally implies
-     * that messages will be retried as soon as possible for healthy subscribers.
-     * RetryPolicy will be triggered on NACKs or acknowledgement deadline
-     * exceeded events for a given message.
+     * Optional. Transforms to be applied to messages before they are delivered to
+     * subscribers. Transforms are applied in the order specified.
      * 
* - * .google.pubsub.v1.RetryPolicy retry_policy = 14; + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * */ - private com.google.protobuf.SingleFieldBuilderV3< - com.google.pubsub.v1.RetryPolicy, - com.google.pubsub.v1.RetryPolicy.Builder, - com.google.pubsub.v1.RetryPolicyOrBuilder> - getRetryPolicyFieldBuilder() { - if (retryPolicyBuilder_ == null) { - retryPolicyBuilder_ = - new com.google.protobuf.SingleFieldBuilderV3< - com.google.pubsub.v1.RetryPolicy, - com.google.pubsub.v1.RetryPolicy.Builder, - com.google.pubsub.v1.RetryPolicyOrBuilder>( - getRetryPolicy(), getParentForChildren(), isClean()); - retryPolicy_ = null; + public Builder setMessageTransforms( + int index, com.google.pubsub.v1.MessageTransform.Builder builderForValue) { + if (messageTransformsBuilder_ == null) { + ensureMessageTransformsIsMutable(); + messageTransforms_.set(index, builderForValue.build()); + onChanged(); + } else { + messageTransformsBuilder_.setMessage(index, builderForValue.build()); } - return retryPolicyBuilder_; + return this; } - private boolean detached_; /** * * *
-     * Indicates whether the subscription is detached from its topic. Detached
-     * subscriptions don't receive messages from their topic and don't retain any
-     * backlog. `Pull` and `StreamingPull` requests will return
-     * FAILED_PRECONDITION. If the subscription is a push subscription, pushes to
-     * the endpoint will not be made.
+     * Optional. Transforms to be applied to messages before they are delivered to
+     * subscribers. Transforms are applied in the order specified.
      * 
* - * bool detached = 15; - * - * @return The detached. + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * */ - @java.lang.Override - public boolean getDetached() { - return detached_; + public Builder addMessageTransforms(com.google.pubsub.v1.MessageTransform value) { + if (messageTransformsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMessageTransformsIsMutable(); + messageTransforms_.add(value); + onChanged(); + } else { + messageTransformsBuilder_.addMessage(value); + } + return this; } + /** * * *
-     * Indicates whether the subscription is detached from its topic. Detached
-     * subscriptions don't receive messages from their topic and don't retain any
-     * backlog. `Pull` and `StreamingPull` requests will return
-     * FAILED_PRECONDITION. If the subscription is a push subscription, pushes to
-     * the endpoint will not be made.
+     * Optional. Transforms to be applied to messages before they are delivered to
+     * subscribers. Transforms are applied in the order specified.
      * 
* - * bool detached = 15; - * - * @param value The detached to set. - * @return This builder for chaining. + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder setDetached(boolean value) { - - detached_ = value; - bitField0_ |= 0x00004000; - onChanged(); + public Builder addMessageTransforms(int index, com.google.pubsub.v1.MessageTransform value) { + if (messageTransformsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMessageTransformsIsMutable(); + messageTransforms_.add(index, value); + onChanged(); + } else { + messageTransformsBuilder_.addMessage(index, value); + } return this; } + /** * * *
-     * Indicates whether the subscription is detached from its topic. Detached
-     * subscriptions don't receive messages from their topic and don't retain any
-     * backlog. `Pull` and `StreamingPull` requests will return
-     * FAILED_PRECONDITION. If the subscription is a push subscription, pushes to
-     * the endpoint will not be made.
+     * Optional. Transforms to be applied to messages before they are delivered to
+     * subscribers. Transforms are applied in the order specified.
      * 
* - * bool detached = 15; - * - * @return This builder for chaining. + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder clearDetached() { - bitField0_ = (bitField0_ & ~0x00004000); - detached_ = false; - onChanged(); + public Builder addMessageTransforms( + com.google.pubsub.v1.MessageTransform.Builder builderForValue) { + if (messageTransformsBuilder_ == null) { + ensureMessageTransformsIsMutable(); + messageTransforms_.add(builderForValue.build()); + onChanged(); + } else { + messageTransformsBuilder_.addMessage(builderForValue.build()); + } return this; } - private boolean enableExactlyOnceDelivery_; /** * * *
-     * If true, Pub/Sub provides the following guarantees for the delivery of
-     * a message with a given value of `message_id` on this subscription:
-     *
-     * * The message sent to a subscriber is guaranteed not to be resent
-     * before the message's acknowledgement deadline expires.
-     * * An acknowledged message will not be resent to a subscriber.
-     *
-     * Note that subscribers may still receive multiple copies of a message
-     * when `enable_exactly_once_delivery` is true if the message was published
-     * multiple times by a publisher client. These copies are  considered distinct
-     * by Pub/Sub and have distinct `message_id` values.
+     * Optional. Transforms to be applied to messages before they are delivered to
+     * subscribers. Transforms are applied in the order specified.
      * 
* - * bool enable_exactly_once_delivery = 16; - * - * @return The enableExactlyOnceDelivery. + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * */ - @java.lang.Override - public boolean getEnableExactlyOnceDelivery() { - return enableExactlyOnceDelivery_; + public Builder addMessageTransforms( + int index, com.google.pubsub.v1.MessageTransform.Builder builderForValue) { + if (messageTransformsBuilder_ == null) { + ensureMessageTransformsIsMutable(); + messageTransforms_.add(index, builderForValue.build()); + onChanged(); + } else { + messageTransformsBuilder_.addMessage(index, builderForValue.build()); + } + return this; } + /** * * *
-     * If true, Pub/Sub provides the following guarantees for the delivery of
-     * a message with a given value of `message_id` on this subscription:
-     *
-     * * The message sent to a subscriber is guaranteed not to be resent
-     * before the message's acknowledgement deadline expires.
-     * * An acknowledged message will not be resent to a subscriber.
-     *
-     * Note that subscribers may still receive multiple copies of a message
-     * when `enable_exactly_once_delivery` is true if the message was published
-     * multiple times by a publisher client. These copies are  considered distinct
-     * by Pub/Sub and have distinct `message_id` values.
+     * Optional. Transforms to be applied to messages before they are delivered to
+     * subscribers. Transforms are applied in the order specified.
      * 
* - * bool enable_exactly_once_delivery = 16; - * - * @param value The enableExactlyOnceDelivery to set. - * @return This builder for chaining. + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder setEnableExactlyOnceDelivery(boolean value) { - - enableExactlyOnceDelivery_ = value; - bitField0_ |= 0x00008000; - onChanged(); + public Builder addAllMessageTransforms( + java.lang.Iterable values) { + if (messageTransformsBuilder_ == null) { + ensureMessageTransformsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, messageTransforms_); + onChanged(); + } else { + messageTransformsBuilder_.addAllMessages(values); + } return this; } + /** * * *
-     * If true, Pub/Sub provides the following guarantees for the delivery of
-     * a message with a given value of `message_id` on this subscription:
-     *
-     * * The message sent to a subscriber is guaranteed not to be resent
-     * before the message's acknowledgement deadline expires.
-     * * An acknowledged message will not be resent to a subscriber.
-     *
-     * Note that subscribers may still receive multiple copies of a message
-     * when `enable_exactly_once_delivery` is true if the message was published
-     * multiple times by a publisher client. These copies are  considered distinct
-     * by Pub/Sub and have distinct `message_id` values.
+     * Optional. Transforms to be applied to messages before they are delivered to
+     * subscribers. Transforms are applied in the order specified.
      * 
* - * bool enable_exactly_once_delivery = 16; - * - * @return This builder for chaining. + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder clearEnableExactlyOnceDelivery() { - bitField0_ = (bitField0_ & ~0x00008000); - enableExactlyOnceDelivery_ = false; - onChanged(); + public Builder clearMessageTransforms() { + if (messageTransformsBuilder_ == null) { + messageTransforms_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00080000); + onChanged(); + } else { + messageTransformsBuilder_.clear(); + } return this; } - private com.google.protobuf.Duration topicMessageRetentionDuration_; - private com.google.protobuf.SingleFieldBuilderV3< - com.google.protobuf.Duration, - com.google.protobuf.Duration.Builder, - com.google.protobuf.DurationOrBuilder> - topicMessageRetentionDurationBuilder_; /** * - * - *
-     * Output only. Indicates the minimum duration for which a message is retained
-     * after it is published to the subscription's topic. If this field is set,
-     * messages published to the subscription's topic in the last
-     * `topic_message_retention_duration` are always available to subscribers. See
-     * the `message_retention_duration` field in `Topic`. This field is set only
-     * in responses from the server; it is ignored if it is set in any requests.
+     *
+     * 
+     * Optional. Transforms to be applied to messages before they are delivered to
+     * subscribers. Transforms are applied in the order specified.
      * 
* * - * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; * - * - * @return Whether the topicMessageRetentionDuration field is set. */ - public boolean hasTopicMessageRetentionDuration() { - return ((bitField0_ & 0x00010000) != 0); + public Builder removeMessageTransforms(int index) { + if (messageTransformsBuilder_ == null) { + ensureMessageTransformsIsMutable(); + messageTransforms_.remove(index); + onChanged(); + } else { + messageTransformsBuilder_.remove(index); + } + return this; } + /** * * *
-     * Output only. Indicates the minimum duration for which a message is retained
-     * after it is published to the subscription's topic. If this field is set,
-     * messages published to the subscription's topic in the last
-     * `topic_message_retention_duration` are always available to subscribers. See
-     * the `message_retention_duration` field in `Topic`. This field is set only
-     * in responses from the server; it is ignored if it is set in any requests.
+     * Optional. Transforms to be applied to messages before they are delivered to
+     * subscribers. Transforms are applied in the order specified.
      * 
* * - * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; * - * - * @return The topicMessageRetentionDuration. */ - public com.google.protobuf.Duration getTopicMessageRetentionDuration() { - if (topicMessageRetentionDurationBuilder_ == null) { - return topicMessageRetentionDuration_ == null - ? com.google.protobuf.Duration.getDefaultInstance() - : topicMessageRetentionDuration_; - } else { - return topicMessageRetentionDurationBuilder_.getMessage(); - } + public com.google.pubsub.v1.MessageTransform.Builder getMessageTransformsBuilder(int index) { + return getMessageTransformsFieldBuilder().getBuilder(index); } + /** * * *
-     * Output only. Indicates the minimum duration for which a message is retained
-     * after it is published to the subscription's topic. If this field is set,
-     * messages published to the subscription's topic in the last
-     * `topic_message_retention_duration` are always available to subscribers. See
-     * the `message_retention_duration` field in `Topic`. This field is set only
-     * in responses from the server; it is ignored if it is set in any requests.
+     * Optional. Transforms to be applied to messages before they are delivered to
+     * subscribers. Transforms are applied in the order specified.
      * 
* * - * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder setTopicMessageRetentionDuration(com.google.protobuf.Duration value) { - if (topicMessageRetentionDurationBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - topicMessageRetentionDuration_ = value; + public com.google.pubsub.v1.MessageTransformOrBuilder getMessageTransformsOrBuilder(int index) { + if (messageTransformsBuilder_ == null) { + return messageTransforms_.get(index); } else { - topicMessageRetentionDurationBuilder_.setMessage(value); + return messageTransformsBuilder_.getMessageOrBuilder(index); } - bitField0_ |= 0x00010000; - onChanged(); - return this; } + /** * * *
-     * Output only. Indicates the minimum duration for which a message is retained
-     * after it is published to the subscription's topic. If this field is set,
-     * messages published to the subscription's topic in the last
-     * `topic_message_retention_duration` are always available to subscribers. See
-     * the `message_retention_duration` field in `Topic`. This field is set only
-     * in responses from the server; it is ignored if it is set in any requests.
+     * Optional. Transforms to be applied to messages before they are delivered to
+     * subscribers. Transforms are applied in the order specified.
      * 
* * - * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder setTopicMessageRetentionDuration( - com.google.protobuf.Duration.Builder builderForValue) { - if (topicMessageRetentionDurationBuilder_ == null) { - topicMessageRetentionDuration_ = builderForValue.build(); + public java.util.List + getMessageTransformsOrBuilderList() { + if (messageTransformsBuilder_ != null) { + return messageTransformsBuilder_.getMessageOrBuilderList(); } else { - topicMessageRetentionDurationBuilder_.setMessage(builderForValue.build()); + return java.util.Collections.unmodifiableList(messageTransforms_); } - bitField0_ |= 0x00010000; - onChanged(); - return this; } + /** * * *
-     * Output only. Indicates the minimum duration for which a message is retained
-     * after it is published to the subscription's topic. If this field is set,
-     * messages published to the subscription's topic in the last
-     * `topic_message_retention_duration` are always available to subscribers. See
-     * the `message_retention_duration` field in `Topic`. This field is set only
-     * in responses from the server; it is ignored if it is set in any requests.
+     * Optional. Transforms to be applied to messages before they are delivered to
+     * subscribers. Transforms are applied in the order specified.
      * 
* * - * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder mergeTopicMessageRetentionDuration(com.google.protobuf.Duration value) { - if (topicMessageRetentionDurationBuilder_ == null) { - if (((bitField0_ & 0x00010000) != 0) - && topicMessageRetentionDuration_ != null - && topicMessageRetentionDuration_ - != com.google.protobuf.Duration.getDefaultInstance()) { - getTopicMessageRetentionDurationBuilder().mergeFrom(value); - } else { - topicMessageRetentionDuration_ = value; - } - } else { - topicMessageRetentionDurationBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00010000; - onChanged(); - return this; + public com.google.pubsub.v1.MessageTransform.Builder addMessageTransformsBuilder() { + return getMessageTransformsFieldBuilder() + .addBuilder(com.google.pubsub.v1.MessageTransform.getDefaultInstance()); } + /** * * *
-     * Output only. Indicates the minimum duration for which a message is retained
-     * after it is published to the subscription's topic. If this field is set,
-     * messages published to the subscription's topic in the last
-     * `topic_message_retention_duration` are always available to subscribers. See
-     * the `message_retention_duration` field in `Topic`. This field is set only
-     * in responses from the server; it is ignored if it is set in any requests.
+     * Optional. Transforms to be applied to messages before they are delivered to
+     * subscribers. Transforms are applied in the order specified.
      * 
* * - * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder clearTopicMessageRetentionDuration() { - bitField0_ = (bitField0_ & ~0x00010000); - topicMessageRetentionDuration_ = null; - if (topicMessageRetentionDurationBuilder_ != null) { - topicMessageRetentionDurationBuilder_.dispose(); - topicMessageRetentionDurationBuilder_ = null; - } - onChanged(); - return this; + public com.google.pubsub.v1.MessageTransform.Builder addMessageTransformsBuilder(int index) { + return getMessageTransformsFieldBuilder() + .addBuilder(index, com.google.pubsub.v1.MessageTransform.getDefaultInstance()); } + /** * * *
-     * Output only. Indicates the minimum duration for which a message is retained
-     * after it is published to the subscription's topic. If this field is set,
-     * messages published to the subscription's topic in the last
-     * `topic_message_retention_duration` are always available to subscribers. See
-     * the `message_retention_duration` field in `Topic`. This field is set only
-     * in responses from the server; it is ignored if it is set in any requests.
+     * Optional. Transforms to be applied to messages before they are delivered to
+     * subscribers. Transforms are applied in the order specified.
      * 
* * - * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; * */ - public com.google.protobuf.Duration.Builder getTopicMessageRetentionDurationBuilder() { - bitField0_ |= 0x00010000; + public java.util.List + getMessageTransformsBuilderList() { + return getMessageTransformsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.pubsub.v1.MessageTransform, + com.google.pubsub.v1.MessageTransform.Builder, + com.google.pubsub.v1.MessageTransformOrBuilder> + getMessageTransformsFieldBuilder() { + if (messageTransformsBuilder_ == null) { + messageTransformsBuilder_ = + new com.google.protobuf.RepeatedFieldBuilderV3< + com.google.pubsub.v1.MessageTransform, + com.google.pubsub.v1.MessageTransform.Builder, + com.google.pubsub.v1.MessageTransformOrBuilder>( + messageTransforms_, + ((bitField0_ & 0x00080000) != 0), + getParentForChildren(), + isClean()); + messageTransforms_ = null; + } + return messageTransformsBuilder_; + } + + private com.google.protobuf.MapField tags_; + + private com.google.protobuf.MapField internalGetTags() { + if (tags_ == null) { + return com.google.protobuf.MapField.emptyMapField(TagsDefaultEntryHolder.defaultEntry); + } + return tags_; + } + + private com.google.protobuf.MapField + internalGetMutableTags() { + if (tags_ == null) { + tags_ = com.google.protobuf.MapField.newMapField(TagsDefaultEntryHolder.defaultEntry); + } + if (!tags_.isMutable()) { + tags_ = tags_.copy(); + } + bitField0_ |= 0x00100000; onChanged(); - return getTopicMessageRetentionDurationFieldBuilder().getBuilder(); + return tags_; + } + + public int getTagsCount() { + return internalGetTags().getMap().size(); } + /** * * *
-     * Output only. Indicates the minimum duration for which a message is retained
-     * after it is published to the subscription's topic. If this field is set,
-     * messages published to the subscription's topic in the last
-     * `topic_message_retention_duration` are always available to subscribers. See
-     * the `message_retention_duration` field in `Topic`. This field is set only
-     * in responses from the server; it is ignored if it is set in any requests.
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
      * 
* * - * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * map<string, string> tags = 26 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; * */ - public com.google.protobuf.DurationOrBuilder getTopicMessageRetentionDurationOrBuilder() { - if (topicMessageRetentionDurationBuilder_ != null) { - return topicMessageRetentionDurationBuilder_.getMessageOrBuilder(); - } else { - return topicMessageRetentionDuration_ == null - ? com.google.protobuf.Duration.getDefaultInstance() - : topicMessageRetentionDuration_; + @java.lang.Override + public boolean containsTags(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); } + return internalGetTags().getMap().containsKey(key); + } + + /** Use {@link #getTagsMap()} instead. */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getTags() { + return getTagsMap(); } + /** * * *
-     * Output only. Indicates the minimum duration for which a message is retained
-     * after it is published to the subscription's topic. If this field is set,
-     * messages published to the subscription's topic in the last
-     * `topic_message_retention_duration` are always available to subscribers. See
-     * the `message_retention_duration` field in `Topic`. This field is set only
-     * in responses from the server; it is ignored if it is set in any requests.
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
      * 
* * - * .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * map<string, string> tags = 26 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; * */ - private com.google.protobuf.SingleFieldBuilderV3< - com.google.protobuf.Duration, - com.google.protobuf.Duration.Builder, - com.google.protobuf.DurationOrBuilder> - getTopicMessageRetentionDurationFieldBuilder() { - if (topicMessageRetentionDurationBuilder_ == null) { - topicMessageRetentionDurationBuilder_ = - new com.google.protobuf.SingleFieldBuilderV3< - com.google.protobuf.Duration, - com.google.protobuf.Duration.Builder, - com.google.protobuf.DurationOrBuilder>( - getTopicMessageRetentionDuration(), getParentForChildren(), isClean()); - topicMessageRetentionDuration_ = null; - } - return topicMessageRetentionDurationBuilder_; + @java.lang.Override + public java.util.Map getTagsMap() { + return internalGetTags().getMap(); } - private int state_ = 0; /** * * *
-     * Output only. An output-only field indicating whether or not the
-     * subscription can receive messages.
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
      * 
* * - * .google.pubsub.v1.Subscription.State state = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * map<string, string> tags = 26 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; * - * - * @return The enum numeric value on the wire for state. */ @java.lang.Override - public int getStateValue() { - return state_; + public /* nullable */ java.lang.String getTagsOrDefault( + java.lang.String key, + /* nullable */ + java.lang.String defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetTags().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; } + /** * * *
-     * Output only. An output-only field indicating whether or not the
-     * subscription can receive messages.
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
      * 
* * - * .google.pubsub.v1.Subscription.State state = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * map<string, string> tags = 26 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; * - * - * @param value The enum numeric value on the wire for state to set. - * @return This builder for chaining. */ - public Builder setStateValue(int value) { - state_ = value; - bitField0_ |= 0x00020000; - onChanged(); + @java.lang.Override + public java.lang.String getTagsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetTags().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearTags() { + bitField0_ = (bitField0_ & ~0x00100000); + internalGetMutableTags().getMutableMap().clear(); return this; } + /** * * *
-     * Output only. An output-only field indicating whether or not the
-     * subscription can receive messages.
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
      * 
* * - * .google.pubsub.v1.Subscription.State state = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * map<string, string> tags = 26 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; * - * - * @return The state. */ - @java.lang.Override - public com.google.pubsub.v1.Subscription.State getState() { - com.google.pubsub.v1.Subscription.State result = - com.google.pubsub.v1.Subscription.State.forNumber(state_); - return result == null ? com.google.pubsub.v1.Subscription.State.UNRECOGNIZED : result; + public Builder removeTags(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + internalGetMutableTags().getMutableMap().remove(key); + return this; + } + + /** Use alternate mutation accessors instead. */ + @java.lang.Deprecated + public java.util.Map getMutableTags() { + bitField0_ |= 0x00100000; + return internalGetMutableTags().getMutableMap(); } + /** * * *
-     * Output only. An output-only field indicating whether or not the
-     * subscription can receive messages.
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
      * 
* * - * .google.pubsub.v1.Subscription.State state = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * map<string, string> tags = 26 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; * - * - * @param value The state to set. - * @return This builder for chaining. */ - public Builder setState(com.google.pubsub.v1.Subscription.State value) { + public Builder putTags(java.lang.String key, java.lang.String value) { + if (key == null) { + throw new NullPointerException("map key"); + } if (value == null) { - throw new NullPointerException(); + throw new NullPointerException("map value"); } - bitField0_ |= 0x00020000; - state_ = value.getNumber(); - onChanged(); + internalGetMutableTags().getMutableMap().put(key, value); + bitField0_ |= 0x00100000; return this; } + /** * * *
-     * Output only. An output-only field indicating whether or not the
-     * subscription can receive messages.
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
      * 
* * - * .google.pubsub.v1.Subscription.State state = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * map<string, string> tags = 26 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; * - * - * @return This builder for chaining. */ - public Builder clearState() { - bitField0_ = (bitField0_ & ~0x00020000); - state_ = 0; - onChanged(); + public Builder putAllTags(java.util.Map values) { + internalGetMutableTags().getMutableMap().putAll(values); + bitField0_ |= 0x00100000; return this; } diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SubscriptionName.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SubscriptionName.java index ad49b90dd..747b856c4 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SubscriptionName.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SubscriptionName.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SubscriptionOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SubscriptionOrBuilder.java index c6b27d213..fb8459de7 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SubscriptionOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/SubscriptionOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface SubscriptionOrBuilder @@ -27,7 +28,7 @@ public interface SubscriptionOrBuilder * * *
-   * Required. The name of the subscription. It must have the format
+   * Required. Identifier. The name of the subscription. It must have the format
    * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
    * start with a letter, and contain only letters (`[A-Za-z]`), numbers
    * (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
@@ -35,16 +36,19 @@ public interface SubscriptionOrBuilder
    * in length, and it must not start with `"goog"`.
    * 
* - * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER]; + * * * @return The name. */ java.lang.String getName(); + /** * * *
-   * Required. The name of the subscription. It must have the format
+   * Required. Identifier. The name of the subscription. It must have the format
    * `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
    * start with a letter, and contain only letters (`[A-Za-z]`), numbers
    * (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
@@ -52,7 +56,9 @@ public interface SubscriptionOrBuilder
    * in length, and it must not start with `"goog"`.
    * 
* - * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER]; + * * * @return The bytes for name. */ @@ -74,6 +80,7 @@ public interface SubscriptionOrBuilder * @return The topic. */ java.lang.String getTopic(); + /** * * @@ -95,37 +102,42 @@ public interface SubscriptionOrBuilder * * *
-   * If push delivery is used with this subscription, this field is
+   * Optional. If push delivery is used with this subscription, this field is
    * used to configure it.
    * 
* - * .google.pubsub.v1.PushConfig push_config = 4; + * .google.pubsub.v1.PushConfig push_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the pushConfig field is set. */ boolean hasPushConfig(); + /** * * *
-   * If push delivery is used with this subscription, this field is
+   * Optional. If push delivery is used with this subscription, this field is
    * used to configure it.
    * 
* - * .google.pubsub.v1.PushConfig push_config = 4; + * .google.pubsub.v1.PushConfig push_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The pushConfig. */ com.google.pubsub.v1.PushConfig getPushConfig(); + /** * * *
-   * If push delivery is used with this subscription, this field is
+   * Optional. If push delivery is used with this subscription, this field is
    * used to configure it.
    * 
* - * .google.pubsub.v1.PushConfig push_config = 4; + * .google.pubsub.v1.PushConfig push_config = 4 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.PushConfigOrBuilder getPushConfigOrBuilder(); @@ -133,37 +145,45 @@ public interface SubscriptionOrBuilder * * *
-   * If delivery to BigQuery is used with this subscription, this field is
-   * used to configure it.
+   * Optional. If delivery to BigQuery is used with this subscription, this
+   * field is used to configure it.
    * 
* - * .google.pubsub.v1.BigQueryConfig bigquery_config = 18; + * + * .google.pubsub.v1.BigQueryConfig bigquery_config = 18 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the bigqueryConfig field is set. */ boolean hasBigqueryConfig(); + /** * * *
-   * If delivery to BigQuery is used with this subscription, this field is
-   * used to configure it.
+   * Optional. If delivery to BigQuery is used with this subscription, this
+   * field is used to configure it.
    * 
* - * .google.pubsub.v1.BigQueryConfig bigquery_config = 18; + * + * .google.pubsub.v1.BigQueryConfig bigquery_config = 18 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The bigqueryConfig. */ com.google.pubsub.v1.BigQueryConfig getBigqueryConfig(); + /** * * *
-   * If delivery to BigQuery is used with this subscription, this field is
-   * used to configure it.
+   * Optional. If delivery to BigQuery is used with this subscription, this
+   * field is used to configure it.
    * 
* - * .google.pubsub.v1.BigQueryConfig bigquery_config = 18; + * + * .google.pubsub.v1.BigQueryConfig bigquery_config = 18 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.BigQueryConfigOrBuilder getBigqueryConfigOrBuilder(); @@ -171,37 +191,45 @@ public interface SubscriptionOrBuilder * * *
-   * If delivery to Google Cloud Storage is used with this subscription, this
-   * field is used to configure it.
+   * Optional. If delivery to Google Cloud Storage is used with this
+   * subscription, this field is used to configure it.
    * 
* - * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22; + * + * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the cloudStorageConfig field is set. */ boolean hasCloudStorageConfig(); + /** * * *
-   * If delivery to Google Cloud Storage is used with this subscription, this
-   * field is used to configure it.
+   * Optional. If delivery to Google Cloud Storage is used with this
+   * subscription, this field is used to configure it.
    * 
* - * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22; + * + * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The cloudStorageConfig. */ com.google.pubsub.v1.CloudStorageConfig getCloudStorageConfig(); + /** * * *
-   * If delivery to Google Cloud Storage is used with this subscription, this
-   * field is used to configure it.
+   * Optional. If delivery to Google Cloud Storage is used with this
+   * subscription, this field is used to configure it.
    * 
* - * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22; + * + * .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.CloudStorageConfigOrBuilder getCloudStorageConfigOrBuilder(); @@ -209,11 +237,11 @@ public interface SubscriptionOrBuilder * * *
-   * The approximate amount of time (on a best-effort basis) Pub/Sub waits for
-   * the subscriber to acknowledge receipt before resending the message. In the
-   * interval after the message is delivered and before it is acknowledged, it
-   * is considered to be _outstanding_. During that time period, the
-   * message will not be redelivered (on a best-effort basis).
+   * Optional. The approximate amount of time (on a best-effort basis) Pub/Sub
+   * waits for the subscriber to acknowledge receipt before resending the
+   * message. In the interval after the message is delivered and before it is
+   * acknowledged, it is considered to be _outstanding_. During that time
+   * period, the message will not be redelivered (on a best-effort basis).
    *
    * For pull subscriptions, this value is used as the initial value for the ack
    * deadline. To override this value for a given message, call
@@ -231,7 +259,7 @@ public interface SubscriptionOrBuilder
    * system will eventually redeliver the message.
    * 
* - * int32 ack_deadline_seconds = 5; + * int32 ack_deadline_seconds = 5 [(.google.api.field_behavior) = OPTIONAL]; * * @return The ackDeadlineSeconds. */ @@ -241,7 +269,7 @@ public interface SubscriptionOrBuilder * * *
-   * Indicates whether to retain acknowledged messages. If true, then
+   * Optional. Indicates whether to retain acknowledged messages. If true, then
    * messages are not expunged from the subscription's backlog, even if they are
    * acknowledged, until they fall out of the `message_retention_duration`
    * window. This must be true if you would like to [`Seek` to a timestamp]
@@ -249,7 +277,7 @@ public interface SubscriptionOrBuilder
    * the past to replay previously-acknowledged messages.
    * 
* - * bool retain_acked_messages = 7; + * bool retain_acked_messages = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @return The retainAckedMessages. */ @@ -259,49 +287,54 @@ public interface SubscriptionOrBuilder * * *
-   * How long to retain unacknowledged messages in the subscription's backlog,
-   * from the moment a message is published.
-   * If `retain_acked_messages` is true, then this also configures the retention
-   * of acknowledged messages, and thus configures how far back in time a `Seek`
-   * can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
-   * minutes.
+   * Optional. How long to retain unacknowledged messages in the subscription's
+   * backlog, from the moment a message is published. If `retain_acked_messages`
+   * is true, then this also configures the retention of acknowledged messages,
+   * and thus configures how far back in time a `Seek` can be done. Defaults to
+   * 7 days. Cannot be more than 31 days or less than 10 minutes.
    * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the messageRetentionDuration field is set. */ boolean hasMessageRetentionDuration(); + /** * * *
-   * How long to retain unacknowledged messages in the subscription's backlog,
-   * from the moment a message is published.
-   * If `retain_acked_messages` is true, then this also configures the retention
-   * of acknowledged messages, and thus configures how far back in time a `Seek`
-   * can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
-   * minutes.
+   * Optional. How long to retain unacknowledged messages in the subscription's
+   * backlog, from the moment a message is published. If `retain_acked_messages`
+   * is true, then this also configures the retention of acknowledged messages,
+   * and thus configures how far back in time a `Seek` can be done. Defaults to
+   * 7 days. Cannot be more than 31 days or less than 10 minutes.
    * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The messageRetentionDuration. */ com.google.protobuf.Duration getMessageRetentionDuration(); + /** * * *
-   * How long to retain unacknowledged messages in the subscription's backlog,
-   * from the moment a message is published.
-   * If `retain_acked_messages` is true, then this also configures the retention
-   * of acknowledged messages, and thus configures how far back in time a `Seek`
-   * can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
-   * minutes.
+   * Optional. How long to retain unacknowledged messages in the subscription's
+   * backlog, from the moment a message is published. If `retain_acked_messages`
+   * is true, then this also configures the retention of acknowledged messages,
+   * and thus configures how far back in time a `Seek` can be done. Defaults to
+   * 7 days. Cannot be more than 31 days or less than 10 minutes.
    * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.protobuf.DurationOrBuilder getMessageRetentionDurationOrBuilder(); @@ -309,62 +342,67 @@ public interface SubscriptionOrBuilder * * *
-   * See [Creating and managing
+   * Optional. See [Creating and managing
    * labels](https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 9; + * map<string, string> labels = 9 [(.google.api.field_behavior) = OPTIONAL]; */ int getLabelsCount(); + /** * * *
-   * See [Creating and managing
+   * Optional. See [Creating and managing
    * labels](https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 9; + * map<string, string> labels = 9 [(.google.api.field_behavior) = OPTIONAL]; */ boolean containsLabels(java.lang.String key); + /** Use {@link #getLabelsMap()} instead. */ @java.lang.Deprecated java.util.Map getLabels(); + /** * * *
-   * See [Creating and managing
+   * Optional. See [Creating and managing
    * labels](https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 9; + * map<string, string> labels = 9 [(.google.api.field_behavior) = OPTIONAL]; */ java.util.Map getLabelsMap(); + /** * * *
-   * See [Creating and managing
+   * Optional. See [Creating and managing
    * labels](https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 9; + * map<string, string> labels = 9 [(.google.api.field_behavior) = OPTIONAL]; */ /* nullable */ java.lang.String getLabelsOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue); + /** * * *
-   * See [Creating and managing
+   * Optional. See [Creating and managing
    * labels](https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 9; + * map<string, string> labels = 9 [(.google.api.field_behavior) = OPTIONAL]; */ java.lang.String getLabelsOrThrow(java.lang.String key); @@ -372,13 +410,13 @@ java.lang.String getLabelsOrDefault( * * *
-   * If true, messages published with the same `ordering_key` in `PubsubMessage`
-   * will be delivered to the subscribers in the order in which they
-   * are received by the Pub/Sub system. Otherwise, they may be delivered in
-   * any order.
+   * Optional. If true, messages published with the same `ordering_key` in
+   * `PubsubMessage` will be delivered to the subscribers in the order in which
+   * they are received by the Pub/Sub system. Otherwise, they may be delivered
+   * in any order.
    * 
* - * bool enable_message_ordering = 10; + * bool enable_message_ordering = 10 [(.google.api.field_behavior) = OPTIONAL]; * * @return The enableMessageOrdering. */ @@ -388,52 +426,60 @@ java.lang.String getLabelsOrDefault( * * *
-   * A policy that specifies the conditions for this subscription's expiration.
-   * A subscription is considered active as long as any connected subscriber is
-   * successfully consuming messages from the subscription or is issuing
-   * operations on the subscription. If `expiration_policy` is not set, a
-   * *default policy* with `ttl` of 31 days will be used. The minimum allowed
+   * Optional. A policy that specifies the conditions for this subscription's
+   * expiration. A subscription is considered active as long as any connected
+   * subscriber is successfully consuming messages from the subscription or is
+   * issuing operations on the subscription. If `expiration_policy` is not set,
+   * a *default policy* with `ttl` of 31 days will be used. The minimum allowed
    * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
    * but `expiration_policy.ttl` is not set, the subscription never expires.
    * 
* - * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11; + * + * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the expirationPolicy field is set. */ boolean hasExpirationPolicy(); + /** * * *
-   * A policy that specifies the conditions for this subscription's expiration.
-   * A subscription is considered active as long as any connected subscriber is
-   * successfully consuming messages from the subscription or is issuing
-   * operations on the subscription. If `expiration_policy` is not set, a
-   * *default policy* with `ttl` of 31 days will be used. The minimum allowed
+   * Optional. A policy that specifies the conditions for this subscription's
+   * expiration. A subscription is considered active as long as any connected
+   * subscriber is successfully consuming messages from the subscription or is
+   * issuing operations on the subscription. If `expiration_policy` is not set,
+   * a *default policy* with `ttl` of 31 days will be used. The minimum allowed
    * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
    * but `expiration_policy.ttl` is not set, the subscription never expires.
    * 
* - * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11; + * + * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The expirationPolicy. */ com.google.pubsub.v1.ExpirationPolicy getExpirationPolicy(); + /** * * *
-   * A policy that specifies the conditions for this subscription's expiration.
-   * A subscription is considered active as long as any connected subscriber is
-   * successfully consuming messages from the subscription or is issuing
-   * operations on the subscription. If `expiration_policy` is not set, a
-   * *default policy* with `ttl` of 31 days will be used. The minimum allowed
+   * Optional. A policy that specifies the conditions for this subscription's
+   * expiration. A subscription is considered active as long as any connected
+   * subscriber is successfully consuming messages from the subscription or is
+   * issuing operations on the subscription. If `expiration_policy` is not set,
+   * a *default policy* with `ttl` of 31 days will be used. The minimum allowed
    * value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
    * but `expiration_policy.ttl` is not set, the subscription never expires.
    * 
* - * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11; + * + * .google.pubsub.v1.ExpirationPolicy expiration_policy = 11 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.ExpirationPolicyOrBuilder getExpirationPolicyOrBuilder(); @@ -441,30 +487,31 @@ java.lang.String getLabelsOrDefault( * * *
-   * An expression written in the Pub/Sub [filter
+   * Optional. An expression written in the Pub/Sub [filter
    * language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
    * then only `PubsubMessage`s whose `attributes` field matches the filter are
    * delivered on this subscription. If empty, then no messages are filtered
    * out.
    * 
* - * string filter = 12; + * string filter = 12 [(.google.api.field_behavior) = OPTIONAL]; * * @return The filter. */ java.lang.String getFilter(); + /** * * *
-   * An expression written in the Pub/Sub [filter
+   * Optional. An expression written in the Pub/Sub [filter
    * language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
    * then only `PubsubMessage`s whose `attributes` field matches the filter are
    * delivered on this subscription. If empty, then no messages are filtered
    * out.
    * 
* - * string filter = 12; + * string filter = 12 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for filter. */ @@ -474,55 +521,63 @@ java.lang.String getLabelsOrDefault( * * *
-   * A policy that specifies the conditions for dead lettering messages in
-   * this subscription. If dead_letter_policy is not set, dead lettering
-   * is disabled.
+   * Optional. A policy that specifies the conditions for dead lettering
+   * messages in this subscription. If dead_letter_policy is not set, dead
+   * lettering is disabled.
    *
-   * The Cloud Pub/Sub service account associated with this subscriptions's
+   * The Pub/Sub service account associated with this subscriptions's
    * parent project (i.e.,
    * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
    * permission to Acknowledge() messages on this subscription.
    * 
* - * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13; + * + * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the deadLetterPolicy field is set. */ boolean hasDeadLetterPolicy(); + /** * * *
-   * A policy that specifies the conditions for dead lettering messages in
-   * this subscription. If dead_letter_policy is not set, dead lettering
-   * is disabled.
+   * Optional. A policy that specifies the conditions for dead lettering
+   * messages in this subscription. If dead_letter_policy is not set, dead
+   * lettering is disabled.
    *
-   * The Cloud Pub/Sub service account associated with this subscriptions's
+   * The Pub/Sub service account associated with this subscriptions's
    * parent project (i.e.,
    * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
    * permission to Acknowledge() messages on this subscription.
    * 
* - * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13; + * + * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The deadLetterPolicy. */ com.google.pubsub.v1.DeadLetterPolicy getDeadLetterPolicy(); + /** * * *
-   * A policy that specifies the conditions for dead lettering messages in
-   * this subscription. If dead_letter_policy is not set, dead lettering
-   * is disabled.
+   * Optional. A policy that specifies the conditions for dead lettering
+   * messages in this subscription. If dead_letter_policy is not set, dead
+   * lettering is disabled.
    *
-   * The Cloud Pub/Sub service account associated with this subscriptions's
+   * The Pub/Sub service account associated with this subscriptions's
    * parent project (i.e.,
    * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
    * permission to Acknowledge() messages on this subscription.
    * 
* - * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13; + * + * .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.DeadLetterPolicyOrBuilder getDeadLetterPolicyOrBuilder(); @@ -530,52 +585,60 @@ java.lang.String getLabelsOrDefault( * * *
-   * A policy that specifies how Pub/Sub retries message delivery for this
-   * subscription.
+   * Optional. A policy that specifies how Pub/Sub retries message delivery for
+   * this subscription.
    *
    * If not set, the default retry policy is applied. This generally implies
    * that messages will be retried as soon as possible for healthy subscribers.
-   * RetryPolicy will be triggered on NACKs or acknowledgement deadline
-   * exceeded events for a given message.
+   * RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
+   * events for a given message.
    * 
* - * .google.pubsub.v1.RetryPolicy retry_policy = 14; + * + * .google.pubsub.v1.RetryPolicy retry_policy = 14 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the retryPolicy field is set. */ boolean hasRetryPolicy(); + /** * * *
-   * A policy that specifies how Pub/Sub retries message delivery for this
-   * subscription.
+   * Optional. A policy that specifies how Pub/Sub retries message delivery for
+   * this subscription.
    *
    * If not set, the default retry policy is applied. This generally implies
    * that messages will be retried as soon as possible for healthy subscribers.
-   * RetryPolicy will be triggered on NACKs or acknowledgement deadline
-   * exceeded events for a given message.
+   * RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
+   * events for a given message.
    * 
* - * .google.pubsub.v1.RetryPolicy retry_policy = 14; + * + * .google.pubsub.v1.RetryPolicy retry_policy = 14 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The retryPolicy. */ com.google.pubsub.v1.RetryPolicy getRetryPolicy(); + /** * * *
-   * A policy that specifies how Pub/Sub retries message delivery for this
-   * subscription.
+   * Optional. A policy that specifies how Pub/Sub retries message delivery for
+   * this subscription.
    *
    * If not set, the default retry policy is applied. This generally implies
    * that messages will be retried as soon as possible for healthy subscribers.
-   * RetryPolicy will be triggered on NACKs or acknowledgement deadline
-   * exceeded events for a given message.
+   * RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
+   * events for a given message.
    * 
* - * .google.pubsub.v1.RetryPolicy retry_policy = 14; + * + * .google.pubsub.v1.RetryPolicy retry_policy = 14 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.RetryPolicyOrBuilder getRetryPolicyOrBuilder(); @@ -583,14 +646,14 @@ java.lang.String getLabelsOrDefault( * * *
-   * Indicates whether the subscription is detached from its topic. Detached
-   * subscriptions don't receive messages from their topic and don't retain any
-   * backlog. `Pull` and `StreamingPull` requests will return
+   * Optional. Indicates whether the subscription is detached from its topic.
+   * Detached subscriptions don't receive messages from their topic and don't
+   * retain any backlog. `Pull` and `StreamingPull` requests will return
    * FAILED_PRECONDITION. If the subscription is a push subscription, pushes to
    * the endpoint will not be made.
    * 
* - * bool detached = 15; + * bool detached = 15 [(.google.api.field_behavior) = OPTIONAL]; * * @return The detached. */ @@ -600,11 +663,12 @@ java.lang.String getLabelsOrDefault( * * *
-   * If true, Pub/Sub provides the following guarantees for the delivery of
-   * a message with a given value of `message_id` on this subscription:
+   * Optional. If true, Pub/Sub provides the following guarantees for the
+   * delivery of a message with a given value of `message_id` on this
+   * subscription:
    *
    * * The message sent to a subscriber is guaranteed not to be resent
-   * before the message's acknowledgement deadline expires.
+   * before the message's acknowledgment deadline expires.
    * * An acknowledged message will not be resent to a subscriber.
    *
    * Note that subscribers may still receive multiple copies of a message
@@ -613,7 +677,7 @@ java.lang.String getLabelsOrDefault(
    * by Pub/Sub and have distinct `message_id` values.
    * 
* - * bool enable_exactly_once_delivery = 16; + * bool enable_exactly_once_delivery = 16 [(.google.api.field_behavior) = OPTIONAL]; * * @return The enableExactlyOnceDelivery. */ @@ -638,6 +702,7 @@ java.lang.String getLabelsOrDefault( * @return Whether the topicMessageRetentionDuration field is set. */ boolean hasTopicMessageRetentionDuration(); + /** * * @@ -657,6 +722,7 @@ java.lang.String getLabelsOrDefault( * @return The topicMessageRetentionDuration. */ com.google.protobuf.Duration getTopicMessageRetentionDuration(); + /** * * @@ -690,6 +756,7 @@ java.lang.String getLabelsOrDefault( * @return The enum numeric value on the wire for state. */ int getStateValue(); + /** * * @@ -705,4 +772,210 @@ java.lang.String getLabelsOrDefault( * @return The state. */ com.google.pubsub.v1.Subscription.State getState(); + + /** + * + * + *
+   * Output only. Information about the associated Analytics Hub subscription.
+   * Only set if the subscritpion is created by Analytics Hub.
+   * 
+ * + * + * .google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the analyticsHubSubscriptionInfo field is set. + */ + boolean hasAnalyticsHubSubscriptionInfo(); + + /** + * + * + *
+   * Output only. Information about the associated Analytics Hub subscription.
+   * Only set if the subscritpion is created by Analytics Hub.
+   * 
+ * + * + * .google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The analyticsHubSubscriptionInfo. + */ + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo getAnalyticsHubSubscriptionInfo(); + + /** + * + * + *
+   * Output only. Information about the associated Analytics Hub subscription.
+   * Only set if the subscritpion is created by Analytics Hub.
+   * 
+ * + * + * .google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfoOrBuilder + getAnalyticsHubSubscriptionInfoOrBuilder(); + + /** + * + * + *
+   * Optional. Transforms to be applied to messages before they are delivered to
+   * subscribers. Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + java.util.List getMessageTransformsList(); + + /** + * + * + *
+   * Optional. Transforms to be applied to messages before they are delivered to
+   * subscribers. Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.MessageTransform getMessageTransforms(int index); + + /** + * + * + *
+   * Optional. Transforms to be applied to messages before they are delivered to
+   * subscribers. Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + int getMessageTransformsCount(); + + /** + * + * + *
+   * Optional. Transforms to be applied to messages before they are delivered to
+   * subscribers. Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + java.util.List + getMessageTransformsOrBuilderList(); + + /** + * + * + *
+   * Optional. Transforms to be applied to messages before they are delivered to
+   * subscribers. Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 25 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.MessageTransformOrBuilder getMessageTransformsOrBuilder(int index); + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 26 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + int getTagsCount(); + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 26 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + boolean containsTags(java.lang.String key); + + /** Use {@link #getTagsMap()} instead. */ + @java.lang.Deprecated + java.util.Map getTags(); + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 26 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + java.util.Map getTagsMap(); + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 26 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + /* nullable */ + java.lang.String getTagsOrDefault( + java.lang.String key, + /* nullable */ + java.lang.String defaultValue); + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 26 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + java.lang.String getTagsOrThrow(java.lang.String key); } diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Topic.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Topic.java index 40ee471a5..c1e75d4e4 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Topic.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/Topic.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class Topic extends com.google.protobuf.GeneratedMessageV3 // @@protoc_insertion_point(message_implements:google.pubsub.v1.Topic) TopicOrBuilder { private static final long serialVersionUID = 0L; + // Use Topic.newBuilder() to construct. private Topic(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -40,6 +42,8 @@ private Topic(com.google.protobuf.GeneratedMessageV3.Builder builder) { private Topic() { name_ = ""; kmsKeyName_ = ""; + state_ = 0; + messageTransforms_ = java.util.Collections.emptyList(); } @java.lang.Override @@ -54,10 +58,13 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @SuppressWarnings({"rawtypes"}) @java.lang.Override - protected com.google.protobuf.MapField internalGetMapField(int number) { + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { switch (number) { case 2: return internalGetLabels(); + case 14: + return internalGetTags(); default: throw new RuntimeException("Invalid map field number: " + number); } @@ -72,15 +79,180 @@ protected com.google.protobuf.MapField internalGetMapField(int number) { com.google.pubsub.v1.Topic.class, com.google.pubsub.v1.Topic.Builder.class); } + /** + * + * + *
+   * The state of the topic.
+   * 
+ * + * Protobuf enum {@code google.pubsub.v1.Topic.State} + */ + public enum State implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Default value. This value is unused.
+     * 
+ * + * STATE_UNSPECIFIED = 0; + */ + STATE_UNSPECIFIED(0), + /** + * + * + *
+     * The topic does not have any persistent errors.
+     * 
+ * + * ACTIVE = 1; + */ + ACTIVE(1), + /** + * + * + *
+     * Ingestion from the data source has encountered a permanent error.
+     * See the more detailed error state in the corresponding ingestion
+     * source configuration.
+     * 
+ * + * INGESTION_RESOURCE_ERROR = 2; + */ + INGESTION_RESOURCE_ERROR(2), + UNRECOGNIZED(-1), + ; + + /** + * + * + *
+     * Default value. This value is unused.
+     * 
+ * + * STATE_UNSPECIFIED = 0; + */ + public static final int STATE_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+     * The topic does not have any persistent errors.
+     * 
+ * + * ACTIVE = 1; + */ + public static final int ACTIVE_VALUE = 1; + + /** + * + * + *
+     * Ingestion from the data source has encountered a permanent error.
+     * See the more detailed error state in the corresponding ingestion
+     * source configuration.
+     * 
+ * + * INGESTION_RESOURCE_ERROR = 2; + */ + public static final int INGESTION_RESOURCE_ERROR_VALUE = 2; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static State valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static State forNumber(int value) { + switch (value) { + case 0: + return STATE_UNSPECIFIED; + case 1: + return ACTIVE; + case 2: + return INGESTION_RESOURCE_ERROR; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public State findValueByNumber(int number) { + return State.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.pubsub.v1.Topic.getDescriptor().getEnumTypes().get(0); + } + + private static final State[] VALUES = values(); + + public static State valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private State(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.pubsub.v1.Topic.State) + } + + private int bitField0_; public static final int NAME_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object name_ = ""; + /** * * *
-   * Required. The name of the topic. It must have the format
+   * Required. Identifier. The name of the topic. It must have the format
    * `"projects/{project}/topics/{topic}"`. `{topic}` must start with a letter,
    * and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
    * underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
@@ -88,7 +260,9 @@ protected com.google.protobuf.MapField internalGetMapField(int number) {
    * must not start with `"goog"`.
    * 
* - * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER]; + * * * @return The name. */ @@ -104,11 +278,12 @@ public java.lang.String getName() { return s; } } + /** * * *
-   * Required. The name of the topic. It must have the format
+   * Required. Identifier. The name of the topic. It must have the format
    * `"projects/{project}/topics/{topic}"`. `{topic}` must start with a letter,
    * and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
    * underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
@@ -116,7 +291,9 @@ public java.lang.String getName() {
    * must not start with `"goog"`.
    * 
* - * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER]; + * * * @return The bytes for name. */ @@ -159,15 +336,16 @@ private com.google.protobuf.MapField interna public int getLabelsCount() { return internalGetLabels().getMap().size(); } + /** * * *
-   * See [Creating and managing labels]
+   * Optional. See [Creating and managing labels]
    * (https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 2; + * map<string, string> labels = 2 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public boolean containsLabels(java.lang.String key) { @@ -176,35 +354,38 @@ public boolean containsLabels(java.lang.String key) { } return internalGetLabels().getMap().containsKey(key); } + /** Use {@link #getLabelsMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getLabels() { return getLabelsMap(); } + /** * * *
-   * See [Creating and managing labels]
+   * Optional. See [Creating and managing labels]
    * (https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 2; + * map<string, string> labels = 2 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public java.util.Map getLabelsMap() { return internalGetLabels().getMap(); } + /** * * *
-   * See [Creating and managing labels]
+   * Optional. See [Creating and managing labels]
    * (https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 2; + * map<string, string> labels = 2 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public /* nullable */ java.lang.String getLabelsOrDefault( @@ -217,15 +398,16 @@ public java.util.Map getLabelsMap() { java.util.Map map = internalGetLabels().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } + /** * * *
-   * See [Creating and managing labels]
+   * Optional. See [Creating and managing labels]
    * (https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 2; + * map<string, string> labels = 2 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public java.lang.String getLabelsOrThrow(java.lang.String key) { @@ -241,33 +423,39 @@ public java.lang.String getLabelsOrThrow(java.lang.String key) { public static final int MESSAGE_STORAGE_POLICY_FIELD_NUMBER = 3; private com.google.pubsub.v1.MessageStoragePolicy messageStoragePolicy_; + /** * * *
-   * Policy constraining the set of Google Cloud Platform regions where messages
-   * published to the topic may be stored. If not present, then no constraints
-   * are in effect.
+   * Optional. Policy constraining the set of Google Cloud Platform regions
+   * where messages published to the topic may be stored. If not present, then
+   * no constraints are in effect.
    * 
* - * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3; + * + * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the messageStoragePolicy field is set. */ @java.lang.Override public boolean hasMessageStoragePolicy() { - return messageStoragePolicy_ != null; + return ((bitField0_ & 0x00000001) != 0); } + /** * * *
-   * Policy constraining the set of Google Cloud Platform regions where messages
-   * published to the topic may be stored. If not present, then no constraints
-   * are in effect.
+   * Optional. Policy constraining the set of Google Cloud Platform regions
+   * where messages published to the topic may be stored. If not present, then
+   * no constraints are in effect.
    * 
* - * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3; + * + * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The messageStoragePolicy. */ @@ -277,16 +465,19 @@ public com.google.pubsub.v1.MessageStoragePolicy getMessageStoragePolicy() { ? com.google.pubsub.v1.MessageStoragePolicy.getDefaultInstance() : messageStoragePolicy_; } + /** * * *
-   * Policy constraining the set of Google Cloud Platform regions where messages
-   * published to the topic may be stored. If not present, then no constraints
-   * are in effect.
+   * Optional. Policy constraining the set of Google Cloud Platform regions
+   * where messages published to the topic may be stored. If not present, then
+   * no constraints are in effect.
    * 
* - * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3; + * + * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.MessageStoragePolicyOrBuilder getMessageStoragePolicyOrBuilder() { @@ -299,17 +490,20 @@ public com.google.pubsub.v1.MessageStoragePolicyOrBuilder getMessageStoragePolic @SuppressWarnings("serial") private volatile java.lang.Object kmsKeyName_ = ""; + /** * * *
-   * The resource name of the Cloud KMS CryptoKey to be used to protect access
-   * to messages published on this topic.
+   * Optional. The resource name of the Cloud KMS CryptoKey to be used to
+   * protect access to messages published on this topic.
    *
    * The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
    * 
* - * string kms_key_name = 5; + * + * string kms_key_name = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The kmsKeyName. */ @@ -325,17 +519,20 @@ public java.lang.String getKmsKeyName() { return s; } } + /** * * *
-   * The resource name of the Cloud KMS CryptoKey to be used to protect access
-   * to messages published on this topic.
+   * Optional. The resource name of the Cloud KMS CryptoKey to be used to
+   * protect access to messages published on this topic.
    *
    * The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
    * 
* - * string kms_key_name = 5; + * + * string kms_key_name = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The bytes for kmsKeyName. */ @@ -354,29 +551,35 @@ public com.google.protobuf.ByteString getKmsKeyNameBytes() { public static final int SCHEMA_SETTINGS_FIELD_NUMBER = 6; private com.google.pubsub.v1.SchemaSettings schemaSettings_; + /** * * *
-   * Settings for validating messages published against a schema.
+   * Optional. Settings for validating messages published against a schema.
    * 
* - * .google.pubsub.v1.SchemaSettings schema_settings = 6; + * + * .google.pubsub.v1.SchemaSettings schema_settings = 6 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the schemaSettings field is set. */ @java.lang.Override public boolean hasSchemaSettings() { - return schemaSettings_ != null; + return ((bitField0_ & 0x00000002) != 0); } + /** * * *
-   * Settings for validating messages published against a schema.
+   * Optional. Settings for validating messages published against a schema.
    * 
* - * .google.pubsub.v1.SchemaSettings schema_settings = 6; + * + * .google.pubsub.v1.SchemaSettings schema_settings = 6 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The schemaSettings. */ @@ -386,14 +589,17 @@ public com.google.pubsub.v1.SchemaSettings getSchemaSettings() { ? com.google.pubsub.v1.SchemaSettings.getDefaultInstance() : schemaSettings_; } + /** * * *
-   * Settings for validating messages published against a schema.
+   * Optional. Settings for validating messages published against a schema.
    * 
* - * .google.pubsub.v1.SchemaSettings schema_settings = 6; + * + * .google.pubsub.v1.SchemaSettings schema_settings = 6 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.pubsub.v1.SchemaSettingsOrBuilder getSchemaSettingsOrBuilder() { @@ -404,15 +610,16 @@ public com.google.pubsub.v1.SchemaSettingsOrBuilder getSchemaSettingsOrBuilder() public static final int SATISFIES_PZS_FIELD_NUMBER = 7; private boolean satisfiesPzs_ = false; + /** * * *
-   * Reserved for future use. This field is set only in responses from the
-   * server; it is ignored if it is set in any requests.
+   * Optional. Reserved for future use. This field is set only in responses from
+   * the server; it is ignored if it is set in any requests.
    * 
* - * bool satisfies_pzs = 7; + * bool satisfies_pzs = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @return The satisfiesPzs. */ @@ -423,43 +630,51 @@ public boolean getSatisfiesPzs() { public static final int MESSAGE_RETENTION_DURATION_FIELD_NUMBER = 8; private com.google.protobuf.Duration messageRetentionDuration_; + /** * * *
-   * Indicates the minimum duration to retain a message after it is published to
-   * the topic. If this field is set, messages published to the topic in the
-   * last `message_retention_duration` are always available to subscribers. For
-   * instance, it allows any attached subscription to [seek to a
+   * Optional. Indicates the minimum duration to retain a message after it is
+   * published to the topic. If this field is set, messages published to the
+   * topic in the last `message_retention_duration` are always available to
+   * subscribers. For instance, it allows any attached subscription to [seek to
+   * a
    * timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
    * that is up to `message_retention_duration` in the past. If this field is
    * not set, message retention is controlled by settings on individual
    * subscriptions. Cannot be more than 31 days or less than 10 minutes.
    * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the messageRetentionDuration field is set. */ @java.lang.Override public boolean hasMessageRetentionDuration() { - return messageRetentionDuration_ != null; + return ((bitField0_ & 0x00000004) != 0); } + /** * * *
-   * Indicates the minimum duration to retain a message after it is published to
-   * the topic. If this field is set, messages published to the topic in the
-   * last `message_retention_duration` are always available to subscribers. For
-   * instance, it allows any attached subscription to [seek to a
+   * Optional. Indicates the minimum duration to retain a message after it is
+   * published to the topic. If this field is set, messages published to the
+   * topic in the last `message_retention_duration` are always available to
+   * subscribers. For instance, it allows any attached subscription to [seek to
+   * a
    * timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
    * that is up to `message_retention_duration` in the past. If this field is
    * not set, message retention is controlled by settings on individual
    * subscriptions. Cannot be more than 31 days or less than 10 minutes.
    * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The messageRetentionDuration. */ @@ -469,21 +684,25 @@ public com.google.protobuf.Duration getMessageRetentionDuration() { ? com.google.protobuf.Duration.getDefaultInstance() : messageRetentionDuration_; } + /** * * *
-   * Indicates the minimum duration to retain a message after it is published to
-   * the topic. If this field is set, messages published to the topic in the
-   * last `message_retention_duration` are always available to subscribers. For
-   * instance, it allows any attached subscription to [seek to a
+   * Optional. Indicates the minimum duration to retain a message after it is
+   * published to the topic. If this field is set, messages published to the
+   * topic in the last `message_retention_duration` are always available to
+   * subscribers. For instance, it allows any attached subscription to [seek to
+   * a
    * timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
    * that is up to `message_retention_duration` in the past. If this field is
    * not set, message retention is controlled by settings on individual
    * subscriptions. Cannot be more than 31 days or less than 10 minutes.
    * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getMessageRetentionDurationOrBuilder() { @@ -492,122 +711,479 @@ public com.google.protobuf.DurationOrBuilder getMessageRetentionDurationOrBuilde : messageRetentionDuration_; } - private byte memoizedIsInitialized = -1; + public static final int STATE_FIELD_NUMBER = 9; + private int state_ = 0; + /** + * + * + *
+   * Output only. An output-only field indicating the state of the topic.
+   * 
+ * + * .google.pubsub.v1.Topic.State state = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; + public int getStateValue() { + return state_; } + /** + * + * + *
+   * Output only. An output-only field indicating the state of the topic.
+   * 
+ * + * .google.pubsub.v1.Topic.State state = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); - } - com.google.protobuf.GeneratedMessageV3.serializeStringMapTo( - output, internalGetLabels(), LabelsDefaultEntryHolder.defaultEntry, 2); - if (messageStoragePolicy_ != null) { - output.writeMessage(3, getMessageStoragePolicy()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kmsKeyName_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 5, kmsKeyName_); - } - if (schemaSettings_ != null) { - output.writeMessage(6, getSchemaSettings()); - } - if (satisfiesPzs_ != false) { - output.writeBool(7, satisfiesPzs_); - } - if (messageRetentionDuration_ != null) { - output.writeMessage(8, getMessageRetentionDuration()); - } - getUnknownFields().writeTo(output); + public com.google.pubsub.v1.Topic.State getState() { + com.google.pubsub.v1.Topic.State result = com.google.pubsub.v1.Topic.State.forNumber(state_); + return result == null ? com.google.pubsub.v1.Topic.State.UNRECOGNIZED : result; } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; + public static final int INGESTION_DATA_SOURCE_SETTINGS_FIELD_NUMBER = 10; + private com.google.pubsub.v1.IngestionDataSourceSettings ingestionDataSourceSettings_; - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); - } - for (java.util.Map.Entry entry : - internalGetLabels().getMap().entrySet()) { - com.google.protobuf.MapEntry labels__ = - LabelsDefaultEntryHolder.defaultEntry - .newBuilderForType() - .setKey(entry.getKey()) - .setValue(entry.getValue()) - .build(); - size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, labels__); - } - if (messageStoragePolicy_ != null) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize(3, getMessageStoragePolicy()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kmsKeyName_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, kmsKeyName_); - } - if (schemaSettings_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getSchemaSettings()); - } - if (satisfiesPzs_ != false) { - size += com.google.protobuf.CodedOutputStream.computeBoolSize(7, satisfiesPzs_); - } - if (messageRetentionDuration_ != null) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize( - 8, getMessageRetentionDuration()); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; + /** + * + * + *
+   * Optional. Settings for ingestion from a data source into this topic.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings ingestion_data_source_settings = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the ingestionDataSourceSettings field is set. + */ + @java.lang.Override + public boolean hasIngestionDataSourceSettings() { + return ((bitField0_ & 0x00000008) != 0); } + /** + * + * + *
+   * Optional. Settings for ingestion from a data source into this topic.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings ingestion_data_source_settings = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The ingestionDataSourceSettings. + */ @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof com.google.pubsub.v1.Topic)) { - return super.equals(obj); - } - com.google.pubsub.v1.Topic other = (com.google.pubsub.v1.Topic) obj; + public com.google.pubsub.v1.IngestionDataSourceSettings getIngestionDataSourceSettings() { + return ingestionDataSourceSettings_ == null + ? com.google.pubsub.v1.IngestionDataSourceSettings.getDefaultInstance() + : ingestionDataSourceSettings_; + } - if (!getName().equals(other.getName())) return false; - if (!internalGetLabels().equals(other.internalGetLabels())) return false; - if (hasMessageStoragePolicy() != other.hasMessageStoragePolicy()) return false; - if (hasMessageStoragePolicy()) { - if (!getMessageStoragePolicy().equals(other.getMessageStoragePolicy())) return false; - } - if (!getKmsKeyName().equals(other.getKmsKeyName())) return false; - if (hasSchemaSettings() != other.hasSchemaSettings()) return false; - if (hasSchemaSettings()) { - if (!getSchemaSettings().equals(other.getSchemaSettings())) return false; - } - if (getSatisfiesPzs() != other.getSatisfiesPzs()) return false; - if (hasMessageRetentionDuration() != other.hasMessageRetentionDuration()) return false; - if (hasMessageRetentionDuration()) { - if (!getMessageRetentionDuration().equals(other.getMessageRetentionDuration())) return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; + /** + * + * + *
+   * Optional. Settings for ingestion from a data source into this topic.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings ingestion_data_source_settings = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.IngestionDataSourceSettingsOrBuilder + getIngestionDataSourceSettingsOrBuilder() { + return ingestionDataSourceSettings_ == null + ? com.google.pubsub.v1.IngestionDataSourceSettings.getDefaultInstance() + : ingestionDataSourceSettings_; } + public static final int MESSAGE_TRANSFORMS_FIELD_NUMBER = 13; + + @SuppressWarnings("serial") + private java.util.List messageTransforms_; + + /** + * + * + *
+   * Optional. Transforms to be applied to messages published to the topic.
+   * Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); + public java.util.List getMessageTransformsList() { + return messageTransforms_; + } + + /** + * + * + *
+   * Optional. Transforms to be applied to messages published to the topic.
+   * Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.util.List + getMessageTransformsOrBuilderList() { + return messageTransforms_; + } + + /** + * + * + *
+   * Optional. Transforms to be applied to messages published to the topic.
+   * Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public int getMessageTransformsCount() { + return messageTransforms_.size(); + } + + /** + * + * + *
+   * Optional. Transforms to be applied to messages published to the topic.
+   * Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.MessageTransform getMessageTransforms(int index) { + return messageTransforms_.get(index); + } + + /** + * + * + *
+   * Optional. Transforms to be applied to messages published to the topic.
+   * Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.pubsub.v1.MessageTransformOrBuilder getMessageTransformsOrBuilder(int index) { + return messageTransforms_.get(index); + } + + public static final int TAGS_FIELD_NUMBER = 14; + + private static final class TagsDefaultEntryHolder { + static final com.google.protobuf.MapEntry defaultEntry = + com.google.protobuf.MapEntry.newDefaultInstance( + com.google.pubsub.v1.PubsubProto + .internal_static_google_pubsub_v1_Topic_TagsEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.STRING, + ""); + } + + @SuppressWarnings("serial") + private com.google.protobuf.MapField tags_; + + private com.google.protobuf.MapField internalGetTags() { + if (tags_ == null) { + return com.google.protobuf.MapField.emptyMapField(TagsDefaultEntryHolder.defaultEntry); + } + return tags_; + } + + public int getTagsCount() { + return internalGetTags().getMap().size(); + } + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public boolean containsTags(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetTags().getMap().containsKey(key); + } + + /** Use {@link #getTagsMap()} instead. */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getTags() { + return getTagsMap(); + } + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.util.Map getTagsMap() { + return internalGetTags().getMap(); + } + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public /* nullable */ java.lang.String getTagsOrDefault( + java.lang.String key, + /* nullable */ + java.lang.String defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetTags().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.lang.String getTagsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetTags().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + 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(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); + } + com.google.protobuf.GeneratedMessageV3.serializeStringMapTo( + output, internalGetLabels(), LabelsDefaultEntryHolder.defaultEntry, 2); + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(3, getMessageStoragePolicy()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kmsKeyName_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, kmsKeyName_); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(6, getSchemaSettings()); + } + if (satisfiesPzs_ != false) { + output.writeBool(7, satisfiesPzs_); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeMessage(8, getMessageRetentionDuration()); + } + if (state_ != com.google.pubsub.v1.Topic.State.STATE_UNSPECIFIED.getNumber()) { + output.writeEnum(9, state_); + } + if (((bitField0_ & 0x00000008) != 0)) { + output.writeMessage(10, getIngestionDataSourceSettings()); + } + for (int i = 0; i < messageTransforms_.size(); i++) { + output.writeMessage(13, messageTransforms_.get(i)); + } + com.google.protobuf.GeneratedMessageV3.serializeStringMapTo( + output, internalGetTags(), TagsDefaultEntryHolder.defaultEntry, 14); + 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(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); + } + for (java.util.Map.Entry entry : + internalGetLabels().getMap().entrySet()) { + com.google.protobuf.MapEntry labels__ = + LabelsDefaultEntryHolder.defaultEntry + .newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, labels__); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(3, getMessageStoragePolicy()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kmsKeyName_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, kmsKeyName_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getSchemaSettings()); + } + if (satisfiesPzs_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(7, satisfiesPzs_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 8, getMessageRetentionDuration()); + } + if (state_ != com.google.pubsub.v1.Topic.State.STATE_UNSPECIFIED.getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(9, state_); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 10, getIngestionDataSourceSettings()); + } + for (int i = 0; i < messageTransforms_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(13, messageTransforms_.get(i)); + } + for (java.util.Map.Entry entry : + internalGetTags().getMap().entrySet()) { + com.google.protobuf.MapEntry tags__ = + TagsDefaultEntryHolder.defaultEntry + .newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(14, tags__); + } + 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.pubsub.v1.Topic)) { + return super.equals(obj); + } + com.google.pubsub.v1.Topic other = (com.google.pubsub.v1.Topic) obj; + + if (!getName().equals(other.getName())) return false; + if (!internalGetLabels().equals(other.internalGetLabels())) return false; + if (hasMessageStoragePolicy() != other.hasMessageStoragePolicy()) return false; + if (hasMessageStoragePolicy()) { + if (!getMessageStoragePolicy().equals(other.getMessageStoragePolicy())) return false; + } + if (!getKmsKeyName().equals(other.getKmsKeyName())) return false; + if (hasSchemaSettings() != other.hasSchemaSettings()) return false; + if (hasSchemaSettings()) { + if (!getSchemaSettings().equals(other.getSchemaSettings())) return false; + } + if (getSatisfiesPzs() != other.getSatisfiesPzs()) return false; + if (hasMessageRetentionDuration() != other.hasMessageRetentionDuration()) return false; + if (hasMessageRetentionDuration()) { + if (!getMessageRetentionDuration().equals(other.getMessageRetentionDuration())) return false; + } + if (state_ != other.state_) return false; + if (hasIngestionDataSourceSettings() != other.hasIngestionDataSourceSettings()) return false; + if (hasIngestionDataSourceSettings()) { + if (!getIngestionDataSourceSettings().equals(other.getIngestionDataSourceSettings())) + return false; + } + if (!getMessageTransformsList().equals(other.getMessageTransformsList())) return false; + if (!internalGetTags().equals(other.internalGetTags())) 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) + NAME_FIELD_NUMBER; hash = (53 * hash) + getName().hashCode(); if (!internalGetLabels().getMap().isEmpty()) { @@ -630,6 +1206,20 @@ public int hashCode() { hash = (37 * hash) + MESSAGE_RETENTION_DURATION_FIELD_NUMBER; hash = (53 * hash) + getMessageRetentionDuration().hashCode(); } + hash = (37 * hash) + STATE_FIELD_NUMBER; + hash = (53 * hash) + state_; + if (hasIngestionDataSourceSettings()) { + hash = (37 * hash) + INGESTION_DATA_SOURCE_SETTINGS_FIELD_NUMBER; + hash = (53 * hash) + getIngestionDataSourceSettings().hashCode(); + } + if (getMessageTransformsCount() > 0) { + hash = (37 * hash) + MESSAGE_TRANSFORMS_FIELD_NUMBER; + hash = (53 * hash) + getMessageTransformsList().hashCode(); + } + if (!internalGetTags().getMap().isEmpty()) { + hash = (37 * hash) + TAGS_FIELD_NUMBER; + hash = (53 * hash) + internalGetTags().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -729,6 +1319,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -747,20 +1338,26 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMapField(int number) { + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { switch (number) { case 2: return internalGetLabels(); + case 14: + return internalGetTags(); default: throw new RuntimeException("Invalid map field number: " + number); } } @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMutableMapField(int number) { + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { switch (number) { case 2: return internalGetMutableLabels(); + case 14: + return internalGetMutableTags(); default: throw new RuntimeException("Invalid map field number: " + number); } @@ -776,10 +1373,23 @@ protected com.google.protobuf.MapField internalGetMutableMapField(int number) { } // Construct using com.google.pubsub.v1.Topic.newBuilder() - private Builder() {} + private Builder() { + maybeForceBuilderInitialization(); + } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getMessageStoragePolicyFieldBuilder(); + getSchemaSettingsFieldBuilder(); + getMessageRetentionDurationFieldBuilder(); + getIngestionDataSourceSettingsFieldBuilder(); + getMessageTransformsFieldBuilder(); + } } @java.lang.Override @@ -805,7 +1415,21 @@ public Builder clear() { messageRetentionDurationBuilder_.dispose(); messageRetentionDurationBuilder_ = null; } - return this; + state_ = 0; + ingestionDataSourceSettings_ = null; + if (ingestionDataSourceSettingsBuilder_ != null) { + ingestionDataSourceSettingsBuilder_.dispose(); + ingestionDataSourceSettingsBuilder_ = null; + } + if (messageTransformsBuilder_ == null) { + messageTransforms_ = java.util.Collections.emptyList(); + } else { + messageTransforms_ = null; + messageTransformsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000200); + internalGetMutableTags().clear(); + return this; } @java.lang.Override @@ -830,6 +1454,7 @@ public com.google.pubsub.v1.Topic build() { @java.lang.Override public com.google.pubsub.v1.Topic buildPartial() { com.google.pubsub.v1.Topic result = new com.google.pubsub.v1.Topic(this); + buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } @@ -837,6 +1462,18 @@ public com.google.pubsub.v1.Topic buildPartial() { return result; } + private void buildPartialRepeatedFields(com.google.pubsub.v1.Topic result) { + if (messageTransformsBuilder_ == null) { + if (((bitField0_ & 0x00000200) != 0)) { + messageTransforms_ = java.util.Collections.unmodifiableList(messageTransforms_); + bitField0_ = (bitField0_ & ~0x00000200); + } + result.messageTransforms_ = messageTransforms_; + } else { + result.messageTransforms_ = messageTransformsBuilder_.build(); + } + } + private void buildPartial0(com.google.pubsub.v1.Topic result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { @@ -846,11 +1483,13 @@ private void buildPartial0(com.google.pubsub.v1.Topic result) { result.labels_ = internalGetLabels(); result.labels_.makeImmutable(); } + int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000004) != 0)) { result.messageStoragePolicy_ = messageStoragePolicyBuilder_ == null ? messageStoragePolicy_ : messageStoragePolicyBuilder_.build(); + to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000008) != 0)) { result.kmsKeyName_ = kmsKeyName_; @@ -858,6 +1497,7 @@ private void buildPartial0(com.google.pubsub.v1.Topic result) { if (((from_bitField0_ & 0x00000010) != 0)) { result.schemaSettings_ = schemaSettingsBuilder_ == null ? schemaSettings_ : schemaSettingsBuilder_.build(); + to_bitField0_ |= 0x00000002; } if (((from_bitField0_ & 0x00000020) != 0)) { result.satisfiesPzs_ = satisfiesPzs_; @@ -867,7 +1507,23 @@ private void buildPartial0(com.google.pubsub.v1.Topic result) { messageRetentionDurationBuilder_ == null ? messageRetentionDuration_ : messageRetentionDurationBuilder_.build(); + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.state_ = state_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.ingestionDataSourceSettings_ = + ingestionDataSourceSettingsBuilder_ == null + ? ingestionDataSourceSettings_ + : ingestionDataSourceSettingsBuilder_.build(); + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.tags_ = internalGetTags(); + result.tags_.makeImmutable(); } + result.bitField0_ |= to_bitField0_; } @java.lang.Override @@ -939,6 +1595,41 @@ public Builder mergeFrom(com.google.pubsub.v1.Topic other) { if (other.hasMessageRetentionDuration()) { mergeMessageRetentionDuration(other.getMessageRetentionDuration()); } + if (other.state_ != 0) { + setStateValue(other.getStateValue()); + } + if (other.hasIngestionDataSourceSettings()) { + mergeIngestionDataSourceSettings(other.getIngestionDataSourceSettings()); + } + if (messageTransformsBuilder_ == null) { + if (!other.messageTransforms_.isEmpty()) { + if (messageTransforms_.isEmpty()) { + messageTransforms_ = other.messageTransforms_; + bitField0_ = (bitField0_ & ~0x00000200); + } else { + ensureMessageTransformsIsMutable(); + messageTransforms_.addAll(other.messageTransforms_); + } + onChanged(); + } + } else { + if (!other.messageTransforms_.isEmpty()) { + if (messageTransformsBuilder_.isEmpty()) { + messageTransformsBuilder_.dispose(); + messageTransformsBuilder_ = null; + messageTransforms_ = other.messageTransforms_; + bitField0_ = (bitField0_ & ~0x00000200); + messageTransformsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getMessageTransformsFieldBuilder() + : null; + } else { + messageTransformsBuilder_.addAllMessages(other.messageTransforms_); + } + } + } + internalGetMutableTags().mergeFrom(other.internalGetTags()); + bitField0_ |= 0x00000400; this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -1015,6 +1706,41 @@ public Builder mergeFrom( bitField0_ |= 0x00000040; break; } // case 66 + case 72: + { + state_ = input.readEnum(); + bitField0_ |= 0x00000080; + break; + } // case 72 + case 82: + { + input.readMessage( + getIngestionDataSourceSettingsFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000100; + break; + } // case 82 + case 106: + { + com.google.pubsub.v1.MessageTransform m = + input.readMessage( + com.google.pubsub.v1.MessageTransform.parser(), extensionRegistry); + if (messageTransformsBuilder_ == null) { + ensureMessageTransformsIsMutable(); + messageTransforms_.add(m); + } else { + messageTransformsBuilder_.addMessage(m); + } + break; + } // case 106 + case 114: + { + com.google.protobuf.MapEntry tags__ = + input.readMessage( + TagsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableTags().getMutableMap().put(tags__.getKey(), tags__.getValue()); + bitField0_ |= 0x00000400; + break; + } // case 114 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -1035,11 +1761,12 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object name_ = ""; + /** * * *
-     * Required. The name of the topic. It must have the format
+     * Required. Identifier. The name of the topic. It must have the format
      * `"projects/{project}/topics/{topic}"`. `{topic}` must start with a letter,
      * and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
      * underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
@@ -1047,7 +1774,9 @@ public Builder mergeFrom(
      * must not start with `"goog"`.
      * 
* - * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER]; + * * * @return The name. */ @@ -1062,11 +1791,12 @@ public java.lang.String getName() { return (java.lang.String) ref; } } + /** * * *
-     * Required. The name of the topic. It must have the format
+     * Required. Identifier. The name of the topic. It must have the format
      * `"projects/{project}/topics/{topic}"`. `{topic}` must start with a letter,
      * and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
      * underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
@@ -1074,7 +1804,9 @@ public java.lang.String getName() {
      * must not start with `"goog"`.
      * 
* - * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER]; + * * * @return The bytes for name. */ @@ -1089,11 +1821,12 @@ public com.google.protobuf.ByteString getNameBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * Required. The name of the topic. It must have the format
+     * Required. Identifier. The name of the topic. It must have the format
      * `"projects/{project}/topics/{topic}"`. `{topic}` must start with a letter,
      * and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
      * underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
@@ -1101,7 +1834,9 @@ public com.google.protobuf.ByteString getNameBytes() {
      * must not start with `"goog"`.
      * 
* - * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER]; + * * * @param value The name to set. * @return This builder for chaining. @@ -1115,11 +1850,12 @@ public Builder setName(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * Required. The name of the topic. It must have the format
+     * Required. Identifier. The name of the topic. It must have the format
      * `"projects/{project}/topics/{topic}"`. `{topic}` must start with a letter,
      * and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
      * underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
@@ -1127,7 +1863,9 @@ public Builder setName(java.lang.String value) {
      * must not start with `"goog"`.
      * 
* - * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER]; + * * * @return This builder for chaining. */ @@ -1137,11 +1875,12 @@ public Builder clearName() { onChanged(); return this; } + /** * * *
-     * Required. The name of the topic. It must have the format
+     * Required. Identifier. The name of the topic. It must have the format
      * `"projects/{project}/topics/{topic}"`. `{topic}` must start with a letter,
      * and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
      * underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
@@ -1149,7 +1888,9 @@ public Builder clearName() {
      * must not start with `"goog"`.
      * 
* - * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER]; + * * * @param value The bytes for name to set. * @return This builder for chaining. @@ -1190,15 +1931,16 @@ private com.google.protobuf.MapField interna public int getLabelsCount() { return internalGetLabels().getMap().size(); } + /** * * *
-     * See [Creating and managing labels]
+     * Optional. See [Creating and managing labels]
      * (https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 2; + * map<string, string> labels = 2 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public boolean containsLabels(java.lang.String key) { @@ -1207,35 +1949,38 @@ public boolean containsLabels(java.lang.String key) { } return internalGetLabels().getMap().containsKey(key); } + /** Use {@link #getLabelsMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getLabels() { return getLabelsMap(); } + /** * * *
-     * See [Creating and managing labels]
+     * Optional. See [Creating and managing labels]
      * (https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 2; + * map<string, string> labels = 2 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public java.util.Map getLabelsMap() { return internalGetLabels().getMap(); } + /** * * *
-     * See [Creating and managing labels]
+     * Optional. See [Creating and managing labels]
      * (https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 2; + * map<string, string> labels = 2 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public /* nullable */ java.lang.String getLabelsOrDefault( @@ -1248,15 +1993,16 @@ public java.util.Map getLabelsMap() { java.util.Map map = internalGetLabels().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } + /** * * *
-     * See [Creating and managing labels]
+     * Optional. See [Creating and managing labels]
      * (https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 2; + * map<string, string> labels = 2 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public java.lang.String getLabelsOrThrow(java.lang.String key) { @@ -1275,15 +2021,16 @@ public Builder clearLabels() { internalGetMutableLabels().getMutableMap().clear(); return this; } + /** * * *
-     * See [Creating and managing labels]
+     * Optional. See [Creating and managing labels]
      * (https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 2; + * map<string, string> labels = 2 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder removeLabels(java.lang.String key) { if (key == null) { @@ -1292,21 +2039,23 @@ public Builder removeLabels(java.lang.String key) { internalGetMutableLabels().getMutableMap().remove(key); return this; } + /** Use alternate mutation accessors instead. */ @java.lang.Deprecated public java.util.Map getMutableLabels() { bitField0_ |= 0x00000002; return internalGetMutableLabels().getMutableMap(); } + /** * * *
-     * See [Creating and managing labels]
+     * Optional. See [Creating and managing labels]
      * (https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 2; + * map<string, string> labels = 2 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder putLabels(java.lang.String key, java.lang.String value) { if (key == null) { @@ -1319,15 +2068,16 @@ public Builder putLabels(java.lang.String key, java.lang.String value) { bitField0_ |= 0x00000002; return this; } + /** * * *
-     * See [Creating and managing labels]
+     * Optional. See [Creating and managing labels]
      * (https://cloud.google.com/pubsub/docs/labels).
      * 
* - * map<string, string> labels = 2; + * map<string, string> labels = 2 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder putAllLabels(java.util.Map values) { internalGetMutableLabels().getMutableMap().putAll(values); @@ -1341,32 +2091,38 @@ public Builder putAllLabels(java.util.Map va com.google.pubsub.v1.MessageStoragePolicy.Builder, com.google.pubsub.v1.MessageStoragePolicyOrBuilder> messageStoragePolicyBuilder_; + /** * * *
-     * Policy constraining the set of Google Cloud Platform regions where messages
-     * published to the topic may be stored. If not present, then no constraints
-     * are in effect.
+     * Optional. Policy constraining the set of Google Cloud Platform regions
+     * where messages published to the topic may be stored. If not present, then
+     * no constraints are in effect.
      * 
* - * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3; + * + * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the messageStoragePolicy field is set. */ public boolean hasMessageStoragePolicy() { return ((bitField0_ & 0x00000004) != 0); } + /** * * *
-     * Policy constraining the set of Google Cloud Platform regions where messages
-     * published to the topic may be stored. If not present, then no constraints
-     * are in effect.
+     * Optional. Policy constraining the set of Google Cloud Platform regions
+     * where messages published to the topic may be stored. If not present, then
+     * no constraints are in effect.
      * 
* - * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3; + * + * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The messageStoragePolicy. */ @@ -1379,16 +2135,19 @@ public com.google.pubsub.v1.MessageStoragePolicy getMessageStoragePolicy() { return messageStoragePolicyBuilder_.getMessage(); } } + /** * * *
-     * Policy constraining the set of Google Cloud Platform regions where messages
-     * published to the topic may be stored. If not present, then no constraints
-     * are in effect.
+     * Optional. Policy constraining the set of Google Cloud Platform regions
+     * where messages published to the topic may be stored. If not present, then
+     * no constraints are in effect.
      * 
* - * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3; + * + * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setMessageStoragePolicy(com.google.pubsub.v1.MessageStoragePolicy value) { if (messageStoragePolicyBuilder_ == null) { @@ -1403,16 +2162,19 @@ public Builder setMessageStoragePolicy(com.google.pubsub.v1.MessageStoragePolicy onChanged(); return this; } + /** * * *
-     * Policy constraining the set of Google Cloud Platform regions where messages
-     * published to the topic may be stored. If not present, then no constraints
-     * are in effect.
+     * Optional. Policy constraining the set of Google Cloud Platform regions
+     * where messages published to the topic may be stored. If not present, then
+     * no constraints are in effect.
      * 
* - * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3; + * + * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setMessageStoragePolicy( com.google.pubsub.v1.MessageStoragePolicy.Builder builderForValue) { @@ -1425,16 +2187,19 @@ public Builder setMessageStoragePolicy( onChanged(); return this; } + /** * * *
-     * Policy constraining the set of Google Cloud Platform regions where messages
-     * published to the topic may be stored. If not present, then no constraints
-     * are in effect.
+     * Optional. Policy constraining the set of Google Cloud Platform regions
+     * where messages published to the topic may be stored. If not present, then
+     * no constraints are in effect.
      * 
* - * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3; + * + * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder mergeMessageStoragePolicy(com.google.pubsub.v1.MessageStoragePolicy value) { if (messageStoragePolicyBuilder_ == null) { @@ -1449,20 +2214,25 @@ public Builder mergeMessageStoragePolicy(com.google.pubsub.v1.MessageStoragePoli } else { messageStoragePolicyBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000004; - onChanged(); + if (messageStoragePolicy_ != null) { + bitField0_ |= 0x00000004; + onChanged(); + } return this; } + /** * * *
-     * Policy constraining the set of Google Cloud Platform regions where messages
-     * published to the topic may be stored. If not present, then no constraints
-     * are in effect.
+     * Optional. Policy constraining the set of Google Cloud Platform regions
+     * where messages published to the topic may be stored. If not present, then
+     * no constraints are in effect.
      * 
* - * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3; + * + * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder clearMessageStoragePolicy() { bitField0_ = (bitField0_ & ~0x00000004); @@ -1474,32 +2244,38 @@ public Builder clearMessageStoragePolicy() { onChanged(); return this; } + /** * * *
-     * Policy constraining the set of Google Cloud Platform regions where messages
-     * published to the topic may be stored. If not present, then no constraints
-     * are in effect.
+     * Optional. Policy constraining the set of Google Cloud Platform regions
+     * where messages published to the topic may be stored. If not present, then
+     * no constraints are in effect.
      * 
* - * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3; + * + * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.MessageStoragePolicy.Builder getMessageStoragePolicyBuilder() { bitField0_ |= 0x00000004; onChanged(); return getMessageStoragePolicyFieldBuilder().getBuilder(); } + /** * * *
-     * Policy constraining the set of Google Cloud Platform regions where messages
-     * published to the topic may be stored. If not present, then no constraints
-     * are in effect.
+     * Optional. Policy constraining the set of Google Cloud Platform regions
+     * where messages published to the topic may be stored. If not present, then
+     * no constraints are in effect.
      * 
* - * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3; + * + * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.MessageStoragePolicyOrBuilder getMessageStoragePolicyOrBuilder() { if (messageStoragePolicyBuilder_ != null) { @@ -1510,16 +2286,19 @@ public com.google.pubsub.v1.MessageStoragePolicyOrBuilder getMessageStoragePolic : messageStoragePolicy_; } } + /** * * *
-     * Policy constraining the set of Google Cloud Platform regions where messages
-     * published to the topic may be stored. If not present, then no constraints
-     * are in effect.
+     * Optional. Policy constraining the set of Google Cloud Platform regions
+     * where messages published to the topic may be stored. If not present, then
+     * no constraints are in effect.
      * 
* - * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3; + * + * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ private com.google.protobuf.SingleFieldBuilderV3< com.google.pubsub.v1.MessageStoragePolicy, @@ -1539,17 +2318,20 @@ public com.google.pubsub.v1.MessageStoragePolicyOrBuilder getMessageStoragePolic } private java.lang.Object kmsKeyName_ = ""; + /** * * *
-     * The resource name of the Cloud KMS CryptoKey to be used to protect access
-     * to messages published on this topic.
+     * Optional. The resource name of the Cloud KMS CryptoKey to be used to
+     * protect access to messages published on this topic.
      *
      * The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
      * 
* - * string kms_key_name = 5; + * + * string kms_key_name = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The kmsKeyName. */ @@ -1564,17 +2346,20 @@ public java.lang.String getKmsKeyName() { return (java.lang.String) ref; } } + /** * * *
-     * The resource name of the Cloud KMS CryptoKey to be used to protect access
-     * to messages published on this topic.
+     * Optional. The resource name of the Cloud KMS CryptoKey to be used to
+     * protect access to messages published on this topic.
      *
      * The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
      * 
* - * string kms_key_name = 5; + * + * string kms_key_name = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The bytes for kmsKeyName. */ @@ -1589,17 +2374,20 @@ public com.google.protobuf.ByteString getKmsKeyNameBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * *
-     * The resource name of the Cloud KMS CryptoKey to be used to protect access
-     * to messages published on this topic.
+     * Optional. The resource name of the Cloud KMS CryptoKey to be used to
+     * protect access to messages published on this topic.
      *
      * The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
      * 
* - * string kms_key_name = 5; + * + * string kms_key_name = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param value The kmsKeyName to set. * @return This builder for chaining. @@ -1613,17 +2401,20 @@ public Builder setKmsKeyName(java.lang.String value) { onChanged(); return this; } + /** * * *
-     * The resource name of the Cloud KMS CryptoKey to be used to protect access
-     * to messages published on this topic.
+     * Optional. The resource name of the Cloud KMS CryptoKey to be used to
+     * protect access to messages published on this topic.
      *
      * The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
      * 
* - * string kms_key_name = 5; + * + * string kms_key_name = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return This builder for chaining. */ @@ -1633,17 +2424,20 @@ public Builder clearKmsKeyName() { onChanged(); return this; } + /** * * *
-     * The resource name of the Cloud KMS CryptoKey to be used to protect access
-     * to messages published on this topic.
+     * Optional. The resource name of the Cloud KMS CryptoKey to be used to
+     * protect access to messages published on this topic.
      *
      * The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
      * 
* - * string kms_key_name = 5; + * + * string kms_key_name = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @param value The bytes for kmsKeyName to set. * @return This builder for chaining. @@ -1665,28 +2459,34 @@ public Builder setKmsKeyNameBytes(com.google.protobuf.ByteString value) { com.google.pubsub.v1.SchemaSettings.Builder, com.google.pubsub.v1.SchemaSettingsOrBuilder> schemaSettingsBuilder_; + /** * * *
-     * Settings for validating messages published against a schema.
+     * Optional. Settings for validating messages published against a schema.
      * 
* - * .google.pubsub.v1.SchemaSettings schema_settings = 6; + * + * .google.pubsub.v1.SchemaSettings schema_settings = 6 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the schemaSettings field is set. */ public boolean hasSchemaSettings() { return ((bitField0_ & 0x00000010) != 0); } + /** * * *
-     * Settings for validating messages published against a schema.
+     * Optional. Settings for validating messages published against a schema.
      * 
* - * .google.pubsub.v1.SchemaSettings schema_settings = 6; + * + * .google.pubsub.v1.SchemaSettings schema_settings = 6 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The schemaSettings. */ @@ -1699,14 +2499,17 @@ public com.google.pubsub.v1.SchemaSettings getSchemaSettings() { return schemaSettingsBuilder_.getMessage(); } } + /** * * *
-     * Settings for validating messages published against a schema.
+     * Optional. Settings for validating messages published against a schema.
      * 
* - * .google.pubsub.v1.SchemaSettings schema_settings = 6; + * + * .google.pubsub.v1.SchemaSettings schema_settings = 6 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setSchemaSettings(com.google.pubsub.v1.SchemaSettings value) { if (schemaSettingsBuilder_ == null) { @@ -1721,14 +2524,17 @@ public Builder setSchemaSettings(com.google.pubsub.v1.SchemaSettings value) { onChanged(); return this; } + /** * * *
-     * Settings for validating messages published against a schema.
+     * Optional. Settings for validating messages published against a schema.
      * 
* - * .google.pubsub.v1.SchemaSettings schema_settings = 6; + * + * .google.pubsub.v1.SchemaSettings schema_settings = 6 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setSchemaSettings(com.google.pubsub.v1.SchemaSettings.Builder builderForValue) { if (schemaSettingsBuilder_ == null) { @@ -1740,14 +2546,17 @@ public Builder setSchemaSettings(com.google.pubsub.v1.SchemaSettings.Builder bui onChanged(); return this; } + /** * * *
-     * Settings for validating messages published against a schema.
+     * Optional. Settings for validating messages published against a schema.
      * 
* - * .google.pubsub.v1.SchemaSettings schema_settings = 6; + * + * .google.pubsub.v1.SchemaSettings schema_settings = 6 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder mergeSchemaSettings(com.google.pubsub.v1.SchemaSettings value) { if (schemaSettingsBuilder_ == null) { @@ -1761,18 +2570,23 @@ public Builder mergeSchemaSettings(com.google.pubsub.v1.SchemaSettings value) { } else { schemaSettingsBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000010; - onChanged(); + if (schemaSettings_ != null) { + bitField0_ |= 0x00000010; + onChanged(); + } return this; } + /** * * *
-     * Settings for validating messages published against a schema.
+     * Optional. Settings for validating messages published against a schema.
      * 
* - * .google.pubsub.v1.SchemaSettings schema_settings = 6; + * + * .google.pubsub.v1.SchemaSettings schema_settings = 6 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder clearSchemaSettings() { bitField0_ = (bitField0_ & ~0x00000010); @@ -1784,28 +2598,34 @@ public Builder clearSchemaSettings() { onChanged(); return this; } + /** * * *
-     * Settings for validating messages published against a schema.
+     * Optional. Settings for validating messages published against a schema.
      * 
* - * .google.pubsub.v1.SchemaSettings schema_settings = 6; + * + * .google.pubsub.v1.SchemaSettings schema_settings = 6 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.SchemaSettings.Builder getSchemaSettingsBuilder() { bitField0_ |= 0x00000010; onChanged(); return getSchemaSettingsFieldBuilder().getBuilder(); } + /** * * *
-     * Settings for validating messages published against a schema.
+     * Optional. Settings for validating messages published against a schema.
      * 
* - * .google.pubsub.v1.SchemaSettings schema_settings = 6; + * + * .google.pubsub.v1.SchemaSettings schema_settings = 6 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.pubsub.v1.SchemaSettingsOrBuilder getSchemaSettingsOrBuilder() { if (schemaSettingsBuilder_ != null) { @@ -1816,14 +2636,17 @@ public com.google.pubsub.v1.SchemaSettingsOrBuilder getSchemaSettingsOrBuilder() : schemaSettings_; } } + /** * * *
-     * Settings for validating messages published against a schema.
+     * Optional. Settings for validating messages published against a schema.
      * 
* - * .google.pubsub.v1.SchemaSettings schema_settings = 6; + * + * .google.pubsub.v1.SchemaSettings schema_settings = 6 [(.google.api.field_behavior) = OPTIONAL]; + * */ private com.google.protobuf.SingleFieldBuilderV3< com.google.pubsub.v1.SchemaSettings, @@ -1843,15 +2666,16 @@ public com.google.pubsub.v1.SchemaSettingsOrBuilder getSchemaSettingsOrBuilder() } private boolean satisfiesPzs_; + /** * * *
-     * Reserved for future use. This field is set only in responses from the
-     * server; it is ignored if it is set in any requests.
+     * Optional. Reserved for future use. This field is set only in responses from
+     * the server; it is ignored if it is set in any requests.
      * 
* - * bool satisfies_pzs = 7; + * bool satisfies_pzs = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @return The satisfiesPzs. */ @@ -1859,15 +2683,16 @@ public com.google.pubsub.v1.SchemaSettingsOrBuilder getSchemaSettingsOrBuilder() public boolean getSatisfiesPzs() { return satisfiesPzs_; } + /** * * *
-     * Reserved for future use. This field is set only in responses from the
-     * server; it is ignored if it is set in any requests.
+     * Optional. Reserved for future use. This field is set only in responses from
+     * the server; it is ignored if it is set in any requests.
      * 
* - * bool satisfies_pzs = 7; + * bool satisfies_pzs = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The satisfiesPzs to set. * @return This builder for chaining. @@ -1879,15 +2704,16 @@ public Builder setSatisfiesPzs(boolean value) { onChanged(); return this; } + /** * * *
-     * Reserved for future use. This field is set only in responses from the
-     * server; it is ignored if it is set in any requests.
+     * Optional. Reserved for future use. This field is set only in responses from
+     * the server; it is ignored if it is set in any requests.
      * 
* - * bool satisfies_pzs = 7; + * bool satisfies_pzs = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ @@ -1904,42 +2730,50 @@ public Builder clearSatisfiesPzs() { com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> messageRetentionDurationBuilder_; + /** * * *
-     * Indicates the minimum duration to retain a message after it is published to
-     * the topic. If this field is set, messages published to the topic in the
-     * last `message_retention_duration` are always available to subscribers. For
-     * instance, it allows any attached subscription to [seek to a
+     * Optional. Indicates the minimum duration to retain a message after it is
+     * published to the topic. If this field is set, messages published to the
+     * topic in the last `message_retention_duration` are always available to
+     * subscribers. For instance, it allows any attached subscription to [seek to
+     * a
      * timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
      * that is up to `message_retention_duration` in the past. If this field is
      * not set, message retention is controlled by settings on individual
      * subscriptions. Cannot be more than 31 days or less than 10 minutes.
      * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the messageRetentionDuration field is set. */ public boolean hasMessageRetentionDuration() { return ((bitField0_ & 0x00000040) != 0); } + /** * * *
-     * Indicates the minimum duration to retain a message after it is published to
-     * the topic. If this field is set, messages published to the topic in the
-     * last `message_retention_duration` are always available to subscribers. For
-     * instance, it allows any attached subscription to [seek to a
+     * Optional. Indicates the minimum duration to retain a message after it is
+     * published to the topic. If this field is set, messages published to the
+     * topic in the last `message_retention_duration` are always available to
+     * subscribers. For instance, it allows any attached subscription to [seek to
+     * a
      * timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
      * that is up to `message_retention_duration` in the past. If this field is
      * not set, message retention is controlled by settings on individual
      * subscriptions. Cannot be more than 31 days or less than 10 minutes.
      * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The messageRetentionDuration. */ @@ -1952,21 +2786,25 @@ public com.google.protobuf.Duration getMessageRetentionDuration() { return messageRetentionDurationBuilder_.getMessage(); } } + /** * * *
-     * Indicates the minimum duration to retain a message after it is published to
-     * the topic. If this field is set, messages published to the topic in the
-     * last `message_retention_duration` are always available to subscribers. For
-     * instance, it allows any attached subscription to [seek to a
+     * Optional. Indicates the minimum duration to retain a message after it is
+     * published to the topic. If this field is set, messages published to the
+     * topic in the last `message_retention_duration` are always available to
+     * subscribers. For instance, it allows any attached subscription to [seek to
+     * a
      * timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
      * that is up to `message_retention_duration` in the past. If this field is
      * not set, message retention is controlled by settings on individual
      * subscriptions. Cannot be more than 31 days or less than 10 minutes.
      * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setMessageRetentionDuration(com.google.protobuf.Duration value) { if (messageRetentionDurationBuilder_ == null) { @@ -1981,21 +2819,25 @@ public Builder setMessageRetentionDuration(com.google.protobuf.Duration value) { onChanged(); return this; } + /** * * *
-     * Indicates the minimum duration to retain a message after it is published to
-     * the topic. If this field is set, messages published to the topic in the
-     * last `message_retention_duration` are always available to subscribers. For
-     * instance, it allows any attached subscription to [seek to a
+     * Optional. Indicates the minimum duration to retain a message after it is
+     * published to the topic. If this field is set, messages published to the
+     * topic in the last `message_retention_duration` are always available to
+     * subscribers. For instance, it allows any attached subscription to [seek to
+     * a
      * timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
      * that is up to `message_retention_duration` in the past. If this field is
      * not set, message retention is controlled by settings on individual
      * subscriptions. Cannot be more than 31 days or less than 10 minutes.
      * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder setMessageRetentionDuration( com.google.protobuf.Duration.Builder builderForValue) { @@ -2008,21 +2850,25 @@ public Builder setMessageRetentionDuration( onChanged(); return this; } + /** * * *
-     * Indicates the minimum duration to retain a message after it is published to
-     * the topic. If this field is set, messages published to the topic in the
-     * last `message_retention_duration` are always available to subscribers. For
-     * instance, it allows any attached subscription to [seek to a
+     * Optional. Indicates the minimum duration to retain a message after it is
+     * published to the topic. If this field is set, messages published to the
+     * topic in the last `message_retention_duration` are always available to
+     * subscribers. For instance, it allows any attached subscription to [seek to
+     * a
      * timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
      * that is up to `message_retention_duration` in the past. If this field is
      * not set, message retention is controlled by settings on individual
      * subscriptions. Cannot be more than 31 days or less than 10 minutes.
      * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder mergeMessageRetentionDuration(com.google.protobuf.Duration value) { if (messageRetentionDurationBuilder_ == null) { @@ -2036,25 +2882,31 @@ public Builder mergeMessageRetentionDuration(com.google.protobuf.Duration value) } else { messageRetentionDurationBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000040; - onChanged(); + if (messageRetentionDuration_ != null) { + bitField0_ |= 0x00000040; + onChanged(); + } return this; } + /** * * *
-     * Indicates the minimum duration to retain a message after it is published to
-     * the topic. If this field is set, messages published to the topic in the
-     * last `message_retention_duration` are always available to subscribers. For
-     * instance, it allows any attached subscription to [seek to a
+     * Optional. Indicates the minimum duration to retain a message after it is
+     * published to the topic. If this field is set, messages published to the
+     * topic in the last `message_retention_duration` are always available to
+     * subscribers. For instance, it allows any attached subscription to [seek to
+     * a
      * timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
      * that is up to `message_retention_duration` in the past. If this field is
      * not set, message retention is controlled by settings on individual
      * subscriptions. Cannot be more than 31 days or less than 10 minutes.
      * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * */ public Builder clearMessageRetentionDuration() { bitField0_ = (bitField0_ & ~0x00000040); @@ -2066,42 +2918,50 @@ public Builder clearMessageRetentionDuration() { onChanged(); return this; } + /** * * *
-     * Indicates the minimum duration to retain a message after it is published to
-     * the topic. If this field is set, messages published to the topic in the
-     * last `message_retention_duration` are always available to subscribers. For
-     * instance, it allows any attached subscription to [seek to a
+     * Optional. Indicates the minimum duration to retain a message after it is
+     * published to the topic. If this field is set, messages published to the
+     * topic in the last `message_retention_duration` are always available to
+     * subscribers. For instance, it allows any attached subscription to [seek to
+     * a
      * timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
      * that is up to `message_retention_duration` in the past. If this field is
      * not set, message retention is controlled by settings on individual
      * subscriptions. Cannot be more than 31 days or less than 10 minutes.
      * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.protobuf.Duration.Builder getMessageRetentionDurationBuilder() { bitField0_ |= 0x00000040; onChanged(); return getMessageRetentionDurationFieldBuilder().getBuilder(); } + /** * * *
-     * Indicates the minimum duration to retain a message after it is published to
-     * the topic. If this field is set, messages published to the topic in the
-     * last `message_retention_duration` are always available to subscribers. For
-     * instance, it allows any attached subscription to [seek to a
+     * Optional. Indicates the minimum duration to retain a message after it is
+     * published to the topic. If this field is set, messages published to the
+     * topic in the last `message_retention_duration` are always available to
+     * subscribers. For instance, it allows any attached subscription to [seek to
+     * a
      * timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
      * that is up to `message_retention_duration` in the past. If this field is
      * not set, message retention is controlled by settings on individual
      * subscriptions. Cannot be more than 31 days or less than 10 minutes.
      * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * */ public com.google.protobuf.DurationOrBuilder getMessageRetentionDurationOrBuilder() { if (messageRetentionDurationBuilder_ != null) { @@ -2112,21 +2972,25 @@ public com.google.protobuf.DurationOrBuilder getMessageRetentionDurationOrBuilde : messageRetentionDuration_; } } + /** * * *
-     * Indicates the minimum duration to retain a message after it is published to
-     * the topic. If this field is set, messages published to the topic in the
-     * last `message_retention_duration` are always available to subscribers. For
-     * instance, it allows any attached subscription to [seek to a
+     * Optional. Indicates the minimum duration to retain a message after it is
+     * published to the topic. If this field is set, messages published to the
+     * topic in the last `message_retention_duration` are always available to
+     * subscribers. For instance, it allows any attached subscription to [seek to
+     * a
      * timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
      * that is up to `message_retention_duration` in the past. If this field is
      * not set, message retention is controlled by settings on individual
      * subscriptions. Cannot be more than 31 days or less than 10 minutes.
      * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, @@ -2145,6 +3009,955 @@ public com.google.protobuf.DurationOrBuilder getMessageRetentionDurationOrBuilde return messageRetentionDurationBuilder_; } + private int state_ = 0; + + /** + * + * + *
+     * Output only. An output-only field indicating the state of the topic.
+     * 
+ * + * .google.pubsub.v1.Topic.State state = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override + public int getStateValue() { + return state_; + } + + /** + * + * + *
+     * Output only. An output-only field indicating the state of the topic.
+     * 
+ * + * .google.pubsub.v1.Topic.State state = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param value The enum numeric value on the wire for state to set. + * @return This builder for chaining. + */ + public Builder setStateValue(int value) { + state_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. An output-only field indicating the state of the topic.
+     * 
+ * + * .google.pubsub.v1.Topic.State state = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + @java.lang.Override + public com.google.pubsub.v1.Topic.State getState() { + com.google.pubsub.v1.Topic.State result = com.google.pubsub.v1.Topic.State.forNumber(state_); + return result == null ? com.google.pubsub.v1.Topic.State.UNRECOGNIZED : result; + } + + /** + * + * + *
+     * Output only. An output-only field indicating the state of the topic.
+     * 
+ * + * .google.pubsub.v1.Topic.State state = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param value The state to set. + * @return This builder for chaining. + */ + public Builder setState(com.google.pubsub.v1.Topic.State value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000080; + state_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. An output-only field indicating the state of the topic.
+     * 
+ * + * .google.pubsub.v1.Topic.State state = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return This builder for chaining. + */ + public Builder clearState() { + bitField0_ = (bitField0_ & ~0x00000080); + state_ = 0; + onChanged(); + return this; + } + + private com.google.pubsub.v1.IngestionDataSourceSettings ingestionDataSourceSettings_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings, + com.google.pubsub.v1.IngestionDataSourceSettings.Builder, + com.google.pubsub.v1.IngestionDataSourceSettingsOrBuilder> + ingestionDataSourceSettingsBuilder_; + + /** + * + * + *
+     * Optional. Settings for ingestion from a data source into this topic.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings ingestion_data_source_settings = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the ingestionDataSourceSettings field is set. + */ + public boolean hasIngestionDataSourceSettings() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+     * Optional. Settings for ingestion from a data source into this topic.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings ingestion_data_source_settings = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The ingestionDataSourceSettings. + */ + public com.google.pubsub.v1.IngestionDataSourceSettings getIngestionDataSourceSettings() { + if (ingestionDataSourceSettingsBuilder_ == null) { + return ingestionDataSourceSettings_ == null + ? com.google.pubsub.v1.IngestionDataSourceSettings.getDefaultInstance() + : ingestionDataSourceSettings_; + } else { + return ingestionDataSourceSettingsBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Optional. Settings for ingestion from a data source into this topic.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings ingestion_data_source_settings = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setIngestionDataSourceSettings( + com.google.pubsub.v1.IngestionDataSourceSettings value) { + if (ingestionDataSourceSettingsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ingestionDataSourceSettings_ = value; + } else { + ingestionDataSourceSettingsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Settings for ingestion from a data source into this topic.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings ingestion_data_source_settings = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setIngestionDataSourceSettings( + com.google.pubsub.v1.IngestionDataSourceSettings.Builder builderForValue) { + if (ingestionDataSourceSettingsBuilder_ == null) { + ingestionDataSourceSettings_ = builderForValue.build(); + } else { + ingestionDataSourceSettingsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Settings for ingestion from a data source into this topic.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings ingestion_data_source_settings = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeIngestionDataSourceSettings( + com.google.pubsub.v1.IngestionDataSourceSettings value) { + if (ingestionDataSourceSettingsBuilder_ == null) { + if (((bitField0_ & 0x00000100) != 0) + && ingestionDataSourceSettings_ != null + && ingestionDataSourceSettings_ + != com.google.pubsub.v1.IngestionDataSourceSettings.getDefaultInstance()) { + getIngestionDataSourceSettingsBuilder().mergeFrom(value); + } else { + ingestionDataSourceSettings_ = value; + } + } else { + ingestionDataSourceSettingsBuilder_.mergeFrom(value); + } + if (ingestionDataSourceSettings_ != null) { + bitField0_ |= 0x00000100; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Optional. Settings for ingestion from a data source into this topic.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings ingestion_data_source_settings = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearIngestionDataSourceSettings() { + bitField0_ = (bitField0_ & ~0x00000100); + ingestionDataSourceSettings_ = null; + if (ingestionDataSourceSettingsBuilder_ != null) { + ingestionDataSourceSettingsBuilder_.dispose(); + ingestionDataSourceSettingsBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Settings for ingestion from a data source into this topic.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings ingestion_data_source_settings = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionDataSourceSettings.Builder + getIngestionDataSourceSettingsBuilder() { + bitField0_ |= 0x00000100; + onChanged(); + return getIngestionDataSourceSettingsFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. Settings for ingestion from a data source into this topic.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings ingestion_data_source_settings = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.IngestionDataSourceSettingsOrBuilder + getIngestionDataSourceSettingsOrBuilder() { + if (ingestionDataSourceSettingsBuilder_ != null) { + return ingestionDataSourceSettingsBuilder_.getMessageOrBuilder(); + } else { + return ingestionDataSourceSettings_ == null + ? com.google.pubsub.v1.IngestionDataSourceSettings.getDefaultInstance() + : ingestionDataSourceSettings_; + } + } + + /** + * + * + *
+     * Optional. Settings for ingestion from a data source into this topic.
+     * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings ingestion_data_source_settings = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings, + com.google.pubsub.v1.IngestionDataSourceSettings.Builder, + com.google.pubsub.v1.IngestionDataSourceSettingsOrBuilder> + getIngestionDataSourceSettingsFieldBuilder() { + if (ingestionDataSourceSettingsBuilder_ == null) { + ingestionDataSourceSettingsBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.pubsub.v1.IngestionDataSourceSettings, + com.google.pubsub.v1.IngestionDataSourceSettings.Builder, + com.google.pubsub.v1.IngestionDataSourceSettingsOrBuilder>( + getIngestionDataSourceSettings(), getParentForChildren(), isClean()); + ingestionDataSourceSettings_ = null; + } + return ingestionDataSourceSettingsBuilder_; + } + + private java.util.List messageTransforms_ = + java.util.Collections.emptyList(); + + private void ensureMessageTransformsIsMutable() { + if (!((bitField0_ & 0x00000200) != 0)) { + messageTransforms_ = + new java.util.ArrayList(messageTransforms_); + bitField0_ |= 0x00000200; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.pubsub.v1.MessageTransform, + com.google.pubsub.v1.MessageTransform.Builder, + com.google.pubsub.v1.MessageTransformOrBuilder> + messageTransformsBuilder_; + + /** + * + * + *
+     * Optional. Transforms to be applied to messages published to the topic.
+     * Transforms are applied in the order specified.
+     * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public java.util.List getMessageTransformsList() { + if (messageTransformsBuilder_ == null) { + return java.util.Collections.unmodifiableList(messageTransforms_); + } else { + return messageTransformsBuilder_.getMessageList(); + } + } + + /** + * + * + *
+     * Optional. Transforms to be applied to messages published to the topic.
+     * Transforms are applied in the order specified.
+     * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public int getMessageTransformsCount() { + if (messageTransformsBuilder_ == null) { + return messageTransforms_.size(); + } else { + return messageTransformsBuilder_.getCount(); + } + } + + /** + * + * + *
+     * Optional. Transforms to be applied to messages published to the topic.
+     * Transforms are applied in the order specified.
+     * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.MessageTransform getMessageTransforms(int index) { + if (messageTransformsBuilder_ == null) { + return messageTransforms_.get(index); + } else { + return messageTransformsBuilder_.getMessage(index); + } + } + + /** + * + * + *
+     * Optional. Transforms to be applied to messages published to the topic.
+     * Transforms are applied in the order specified.
+     * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setMessageTransforms(int index, com.google.pubsub.v1.MessageTransform value) { + if (messageTransformsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMessageTransformsIsMutable(); + messageTransforms_.set(index, value); + onChanged(); + } else { + messageTransformsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Optional. Transforms to be applied to messages published to the topic.
+     * Transforms are applied in the order specified.
+     * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setMessageTransforms( + int index, com.google.pubsub.v1.MessageTransform.Builder builderForValue) { + if (messageTransformsBuilder_ == null) { + ensureMessageTransformsIsMutable(); + messageTransforms_.set(index, builderForValue.build()); + onChanged(); + } else { + messageTransformsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Optional. Transforms to be applied to messages published to the topic.
+     * Transforms are applied in the order specified.
+     * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder addMessageTransforms(com.google.pubsub.v1.MessageTransform value) { + if (messageTransformsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMessageTransformsIsMutable(); + messageTransforms_.add(value); + onChanged(); + } else { + messageTransformsBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+     * Optional. Transforms to be applied to messages published to the topic.
+     * Transforms are applied in the order specified.
+     * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder addMessageTransforms(int index, com.google.pubsub.v1.MessageTransform value) { + if (messageTransformsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMessageTransformsIsMutable(); + messageTransforms_.add(index, value); + onChanged(); + } else { + messageTransformsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Optional. Transforms to be applied to messages published to the topic.
+     * Transforms are applied in the order specified.
+     * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder addMessageTransforms( + com.google.pubsub.v1.MessageTransform.Builder builderForValue) { + if (messageTransformsBuilder_ == null) { + ensureMessageTransformsIsMutable(); + messageTransforms_.add(builderForValue.build()); + onChanged(); + } else { + messageTransformsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Optional. Transforms to be applied to messages published to the topic.
+     * Transforms are applied in the order specified.
+     * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder addMessageTransforms( + int index, com.google.pubsub.v1.MessageTransform.Builder builderForValue) { + if (messageTransformsBuilder_ == null) { + ensureMessageTransformsIsMutable(); + messageTransforms_.add(index, builderForValue.build()); + onChanged(); + } else { + messageTransformsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Optional. Transforms to be applied to messages published to the topic.
+     * Transforms are applied in the order specified.
+     * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder addAllMessageTransforms( + java.lang.Iterable values) { + if (messageTransformsBuilder_ == null) { + ensureMessageTransformsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, messageTransforms_); + onChanged(); + } else { + messageTransformsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+     * Optional. Transforms to be applied to messages published to the topic.
+     * Transforms are applied in the order specified.
+     * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearMessageTransforms() { + if (messageTransformsBuilder_ == null) { + messageTransforms_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000200); + onChanged(); + } else { + messageTransformsBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Optional. Transforms to be applied to messages published to the topic.
+     * Transforms are applied in the order specified.
+     * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder removeMessageTransforms(int index) { + if (messageTransformsBuilder_ == null) { + ensureMessageTransformsIsMutable(); + messageTransforms_.remove(index); + onChanged(); + } else { + messageTransformsBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+     * Optional. Transforms to be applied to messages published to the topic.
+     * Transforms are applied in the order specified.
+     * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.MessageTransform.Builder getMessageTransformsBuilder(int index) { + return getMessageTransformsFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+     * Optional. Transforms to be applied to messages published to the topic.
+     * Transforms are applied in the order specified.
+     * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.MessageTransformOrBuilder getMessageTransformsOrBuilder(int index) { + if (messageTransformsBuilder_ == null) { + return messageTransforms_.get(index); + } else { + return messageTransformsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+     * Optional. Transforms to be applied to messages published to the topic.
+     * Transforms are applied in the order specified.
+     * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public java.util.List + getMessageTransformsOrBuilderList() { + if (messageTransformsBuilder_ != null) { + return messageTransformsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(messageTransforms_); + } + } + + /** + * + * + *
+     * Optional. Transforms to be applied to messages published to the topic.
+     * Transforms are applied in the order specified.
+     * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.MessageTransform.Builder addMessageTransformsBuilder() { + return getMessageTransformsFieldBuilder() + .addBuilder(com.google.pubsub.v1.MessageTransform.getDefaultInstance()); + } + + /** + * + * + *
+     * Optional. Transforms to be applied to messages published to the topic.
+     * Transforms are applied in the order specified.
+     * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.pubsub.v1.MessageTransform.Builder addMessageTransformsBuilder(int index) { + return getMessageTransformsFieldBuilder() + .addBuilder(index, com.google.pubsub.v1.MessageTransform.getDefaultInstance()); + } + + /** + * + * + *
+     * Optional. Transforms to be applied to messages published to the topic.
+     * Transforms are applied in the order specified.
+     * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public java.util.List + getMessageTransformsBuilderList() { + return getMessageTransformsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.pubsub.v1.MessageTransform, + com.google.pubsub.v1.MessageTransform.Builder, + com.google.pubsub.v1.MessageTransformOrBuilder> + getMessageTransformsFieldBuilder() { + if (messageTransformsBuilder_ == null) { + messageTransformsBuilder_ = + new com.google.protobuf.RepeatedFieldBuilderV3< + com.google.pubsub.v1.MessageTransform, + com.google.pubsub.v1.MessageTransform.Builder, + com.google.pubsub.v1.MessageTransformOrBuilder>( + messageTransforms_, + ((bitField0_ & 0x00000200) != 0), + getParentForChildren(), + isClean()); + messageTransforms_ = null; + } + return messageTransformsBuilder_; + } + + private com.google.protobuf.MapField tags_; + + private com.google.protobuf.MapField internalGetTags() { + if (tags_ == null) { + return com.google.protobuf.MapField.emptyMapField(TagsDefaultEntryHolder.defaultEntry); + } + return tags_; + } + + private com.google.protobuf.MapField + internalGetMutableTags() { + if (tags_ == null) { + tags_ = com.google.protobuf.MapField.newMapField(TagsDefaultEntryHolder.defaultEntry); + } + if (!tags_.isMutable()) { + tags_ = tags_.copy(); + } + bitField0_ |= 0x00000400; + onChanged(); + return tags_; + } + + public int getTagsCount() { + return internalGetTags().getMap().size(); + } + + /** + * + * + *
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
+     * 
+ * + * + * map<string, string> tags = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public boolean containsTags(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetTags().getMap().containsKey(key); + } + + /** Use {@link #getTagsMap()} instead. */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getTags() { + return getTagsMap(); + } + + /** + * + * + *
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
+     * 
+ * + * + * map<string, string> tags = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.util.Map getTagsMap() { + return internalGetTags().getMap(); + } + + /** + * + * + *
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
+     * 
+ * + * + * map<string, string> tags = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public /* nullable */ java.lang.String getTagsOrDefault( + java.lang.String key, + /* nullable */ + java.lang.String defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetTags().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + + /** + * + * + *
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
+     * 
+ * + * + * map<string, string> tags = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.lang.String getTagsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetTags().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearTags() { + bitField0_ = (bitField0_ & ~0x00000400); + internalGetMutableTags().getMutableMap().clear(); + return this; + } + + /** + * + * + *
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
+     * 
+ * + * + * map<string, string> tags = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder removeTags(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + internalGetMutableTags().getMutableMap().remove(key); + return this; + } + + /** Use alternate mutation accessors instead. */ + @java.lang.Deprecated + public java.util.Map getMutableTags() { + bitField0_ |= 0x00000400; + return internalGetMutableTags().getMutableMap(); + } + + /** + * + * + *
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
+     * 
+ * + * + * map<string, string> tags = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder putTags(java.lang.String key, java.lang.String value) { + if (key == null) { + throw new NullPointerException("map key"); + } + if (value == null) { + throw new NullPointerException("map value"); + } + internalGetMutableTags().getMutableMap().put(key, value); + bitField0_ |= 0x00000400; + return this; + } + + /** + * + * + *
+     * Optional. Input only. Immutable. Tag keys/values directly bound to this
+     * resource. For example:
+     *   "123/environment": "production",
+     *   "123/costCenter": "marketing"
+     * 
+ * + * + * map<string, string> tags = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder putAllTags(java.util.Map values) { + internalGetMutableTags().getMutableMap().putAll(values); + bitField0_ |= 0x00000400; + return this; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/TopicName.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/TopicName.java index 6fc356a2b..aec543431 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/TopicName.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/TopicName.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,7 +16,6 @@ package com.google.pubsub.v1; -import com.google.api.core.BetaApi; import com.google.api.pathtemplate.PathTemplate; import com.google.api.pathtemplate.ValidationException; import com.google.api.resourcenames.ResourceName; @@ -71,7 +70,6 @@ public static Builder newBuilder() { return new Builder(); } - @BetaApi("The per-pattern Builders are not stable yet and may be changed in the future.") public static Builder newProjectTopicBuilder() { return new Builder(); } @@ -84,12 +82,10 @@ public static TopicName of(String project, String topic) { return newBuilder().setProject(project).setTopic(topic).build(); } - @BetaApi("The static create methods are not stable yet and may be changed in the future.") public static TopicName ofProjectTopicName(String project, String topic) { return newBuilder().setProject(project).setTopic(topic).build(); } - @BetaApi("The static create methods are not stable yet and may be changed in the future.") public static TopicName ofDeletedTopicName() { return new TopicName("_deleted-topic_"); } @@ -98,12 +94,10 @@ public static String format(String project, String topic) { return newBuilder().setProject(project).setTopic(topic).build().toString(); } - @BetaApi("The static format methods are not stable yet and may be changed in the future.") public static String formatProjectTopicName(String project, String topic) { return newBuilder().setProject(project).setTopic(topic).build().toString(); } - @BetaApi("The static format methods are not stable yet and may be changed in the future.") public static String formatDeletedTopicName() { return "_deleted-topic_"; } @@ -223,7 +217,8 @@ public Builder setTopic(String topic) { private Builder(TopicName topicName) { Preconditions.checkArgument( Objects.equals(topicName.pathTemplate, PROJECT_TOPIC), - "toBuilder is only supported when TopicName has the pattern of projects/{project}/topics/{topic}"); + "toBuilder is only supported when TopicName has the pattern of" + + " projects/{project}/topics/{topic}"); this.project = topicName.project; this.topic = topicName.topic; } diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/TopicOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/TopicOrBuilder.java index 6c8637285..60080e167 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/TopicOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/TopicOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface TopicOrBuilder @@ -27,7 +28,7 @@ public interface TopicOrBuilder * * *
-   * Required. The name of the topic. It must have the format
+   * Required. Identifier. The name of the topic. It must have the format
    * `"projects/{project}/topics/{topic}"`. `{topic}` must start with a letter,
    * and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
    * underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
@@ -35,16 +36,19 @@ public interface TopicOrBuilder
    * must not start with `"goog"`.
    * 
* - * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER]; + * * * @return The name. */ java.lang.String getName(); + /** * * *
-   * Required. The name of the topic. It must have the format
+   * Required. Identifier. The name of the topic. It must have the format
    * `"projects/{project}/topics/{topic}"`. `{topic}` must start with a letter,
    * and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),
    * underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
@@ -52,7 +56,9 @@ public interface TopicOrBuilder
    * must not start with `"goog"`.
    * 
* - * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IDENTIFIER]; + * * * @return The bytes for name. */ @@ -62,62 +68,67 @@ public interface TopicOrBuilder * * *
-   * See [Creating and managing labels]
+   * Optional. See [Creating and managing labels]
    * (https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 2; + * map<string, string> labels = 2 [(.google.api.field_behavior) = OPTIONAL]; */ int getLabelsCount(); + /** * * *
-   * See [Creating and managing labels]
+   * Optional. See [Creating and managing labels]
    * (https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 2; + * map<string, string> labels = 2 [(.google.api.field_behavior) = OPTIONAL]; */ boolean containsLabels(java.lang.String key); + /** Use {@link #getLabelsMap()} instead. */ @java.lang.Deprecated java.util.Map getLabels(); + /** * * *
-   * See [Creating and managing labels]
+   * Optional. See [Creating and managing labels]
    * (https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 2; + * map<string, string> labels = 2 [(.google.api.field_behavior) = OPTIONAL]; */ java.util.Map getLabelsMap(); + /** * * *
-   * See [Creating and managing labels]
+   * Optional. See [Creating and managing labels]
    * (https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 2; + * map<string, string> labels = 2 [(.google.api.field_behavior) = OPTIONAL]; */ /* nullable */ java.lang.String getLabelsOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue); + /** * * *
-   * See [Creating and managing labels]
+   * Optional. See [Creating and managing labels]
    * (https://cloud.google.com/pubsub/docs/labels).
    * 
* - * map<string, string> labels = 2; + * map<string, string> labels = 2 [(.google.api.field_behavior) = OPTIONAL]; */ java.lang.String getLabelsOrThrow(java.lang.String key); @@ -125,40 +136,48 @@ java.lang.String getLabelsOrDefault( * * *
-   * Policy constraining the set of Google Cloud Platform regions where messages
-   * published to the topic may be stored. If not present, then no constraints
-   * are in effect.
+   * Optional. Policy constraining the set of Google Cloud Platform regions
+   * where messages published to the topic may be stored. If not present, then
+   * no constraints are in effect.
    * 
* - * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3; + * + * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the messageStoragePolicy field is set. */ boolean hasMessageStoragePolicy(); + /** * * *
-   * Policy constraining the set of Google Cloud Platform regions where messages
-   * published to the topic may be stored. If not present, then no constraints
-   * are in effect.
+   * Optional. Policy constraining the set of Google Cloud Platform regions
+   * where messages published to the topic may be stored. If not present, then
+   * no constraints are in effect.
    * 
* - * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3; + * + * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The messageStoragePolicy. */ com.google.pubsub.v1.MessageStoragePolicy getMessageStoragePolicy(); + /** * * *
-   * Policy constraining the set of Google Cloud Platform regions where messages
-   * published to the topic may be stored. If not present, then no constraints
-   * are in effect.
+   * Optional. Policy constraining the set of Google Cloud Platform regions
+   * where messages published to the topic may be stored. If not present, then
+   * no constraints are in effect.
    * 
* - * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3; + * + * .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.MessageStoragePolicyOrBuilder getMessageStoragePolicyOrBuilder(); @@ -166,28 +185,33 @@ java.lang.String getLabelsOrDefault( * * *
-   * The resource name of the Cloud KMS CryptoKey to be used to protect access
-   * to messages published on this topic.
+   * Optional. The resource name of the Cloud KMS CryptoKey to be used to
+   * protect access to messages published on this topic.
    *
    * The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
    * 
* - * string kms_key_name = 5; + * + * string kms_key_name = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The kmsKeyName. */ java.lang.String getKmsKeyName(); + /** * * *
-   * The resource name of the Cloud KMS CryptoKey to be used to protect access
-   * to messages published on this topic.
+   * Optional. The resource name of the Cloud KMS CryptoKey to be used to
+   * protect access to messages published on this topic.
    *
    * The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
    * 
* - * string kms_key_name = 5; + * + * string kms_key_name = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... } + * * * @return The bytes for kmsKeyName. */ @@ -197,34 +221,42 @@ java.lang.String getLabelsOrDefault( * * *
-   * Settings for validating messages published against a schema.
+   * Optional. Settings for validating messages published against a schema.
    * 
* - * .google.pubsub.v1.SchemaSettings schema_settings = 6; + * + * .google.pubsub.v1.SchemaSettings schema_settings = 6 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the schemaSettings field is set. */ boolean hasSchemaSettings(); + /** * * *
-   * Settings for validating messages published against a schema.
+   * Optional. Settings for validating messages published against a schema.
    * 
* - * .google.pubsub.v1.SchemaSettings schema_settings = 6; + * + * .google.pubsub.v1.SchemaSettings schema_settings = 6 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The schemaSettings. */ com.google.pubsub.v1.SchemaSettings getSchemaSettings(); + /** * * *
-   * Settings for validating messages published against a schema.
+   * Optional. Settings for validating messages published against a schema.
    * 
* - * .google.pubsub.v1.SchemaSettings schema_settings = 6; + * + * .google.pubsub.v1.SchemaSettings schema_settings = 6 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.pubsub.v1.SchemaSettingsOrBuilder getSchemaSettingsOrBuilder(); @@ -232,11 +264,11 @@ java.lang.String getLabelsOrDefault( * * *
-   * Reserved for future use. This field is set only in responses from the
-   * server; it is ignored if it is set in any requests.
+   * Optional. Reserved for future use. This field is set only in responses from
+   * the server; it is ignored if it is set in any requests.
    * 
* - * bool satisfies_pzs = 7; + * bool satisfies_pzs = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @return The satisfiesPzs. */ @@ -246,55 +278,297 @@ java.lang.String getLabelsOrDefault( * * *
-   * Indicates the minimum duration to retain a message after it is published to
-   * the topic. If this field is set, messages published to the topic in the
-   * last `message_retention_duration` are always available to subscribers. For
-   * instance, it allows any attached subscription to [seek to a
+   * Optional. Indicates the minimum duration to retain a message after it is
+   * published to the topic. If this field is set, messages published to the
+   * topic in the last `message_retention_duration` are always available to
+   * subscribers. For instance, it allows any attached subscription to [seek to
+   * a
    * timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
    * that is up to `message_retention_duration` in the past. If this field is
    * not set, message retention is controlled by settings on individual
    * subscriptions. Cannot be more than 31 days or less than 10 minutes.
    * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return Whether the messageRetentionDuration field is set. */ boolean hasMessageRetentionDuration(); + /** * * *
-   * Indicates the minimum duration to retain a message after it is published to
-   * the topic. If this field is set, messages published to the topic in the
-   * last `message_retention_duration` are always available to subscribers. For
-   * instance, it allows any attached subscription to [seek to a
+   * Optional. Indicates the minimum duration to retain a message after it is
+   * published to the topic. If this field is set, messages published to the
+   * topic in the last `message_retention_duration` are always available to
+   * subscribers. For instance, it allows any attached subscription to [seek to
+   * a
    * timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
    * that is up to `message_retention_duration` in the past. If this field is
    * not set, message retention is controlled by settings on individual
    * subscriptions. Cannot be more than 31 days or less than 10 minutes.
    * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * * * @return The messageRetentionDuration. */ com.google.protobuf.Duration getMessageRetentionDuration(); + /** * * *
-   * Indicates the minimum duration to retain a message after it is published to
-   * the topic. If this field is set, messages published to the topic in the
-   * last `message_retention_duration` are always available to subscribers. For
-   * instance, it allows any attached subscription to [seek to a
+   * Optional. Indicates the minimum duration to retain a message after it is
+   * published to the topic. If this field is set, messages published to the
+   * topic in the last `message_retention_duration` are always available to
+   * subscribers. For instance, it allows any attached subscription to [seek to
+   * a
    * timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
    * that is up to `message_retention_duration` in the past. If this field is
    * not set, message retention is controlled by settings on individual
    * subscriptions. Cannot be more than 31 days or less than 10 minutes.
    * 
* - * .google.protobuf.Duration message_retention_duration = 8; + * + * .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL]; + * */ com.google.protobuf.DurationOrBuilder getMessageRetentionDurationOrBuilder(); + + /** + * + * + *
+   * Output only. An output-only field indicating the state of the topic.
+   * 
+ * + * .google.pubsub.v1.Topic.State state = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + int getStateValue(); + + /** + * + * + *
+   * Output only. An output-only field indicating the state of the topic.
+   * 
+ * + * .google.pubsub.v1.Topic.State state = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + com.google.pubsub.v1.Topic.State getState(); + + /** + * + * + *
+   * Optional. Settings for ingestion from a data source into this topic.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings ingestion_data_source_settings = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the ingestionDataSourceSettings field is set. + */ + boolean hasIngestionDataSourceSettings(); + + /** + * + * + *
+   * Optional. Settings for ingestion from a data source into this topic.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings ingestion_data_source_settings = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The ingestionDataSourceSettings. + */ + com.google.pubsub.v1.IngestionDataSourceSettings getIngestionDataSourceSettings(); + + /** + * + * + *
+   * Optional. Settings for ingestion from a data source into this topic.
+   * 
+ * + * + * .google.pubsub.v1.IngestionDataSourceSettings ingestion_data_source_settings = 10 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.IngestionDataSourceSettingsOrBuilder + getIngestionDataSourceSettingsOrBuilder(); + + /** + * + * + *
+   * Optional. Transforms to be applied to messages published to the topic.
+   * Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + java.util.List getMessageTransformsList(); + + /** + * + * + *
+   * Optional. Transforms to be applied to messages published to the topic.
+   * Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.MessageTransform getMessageTransforms(int index); + + /** + * + * + *
+   * Optional. Transforms to be applied to messages published to the topic.
+   * Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + int getMessageTransformsCount(); + + /** + * + * + *
+   * Optional. Transforms to be applied to messages published to the topic.
+   * Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + java.util.List + getMessageTransformsOrBuilderList(); + + /** + * + * + *
+   * Optional. Transforms to be applied to messages published to the topic.
+   * Transforms are applied in the order specified.
+   * 
+ * + * + * repeated .google.pubsub.v1.MessageTransform message_transforms = 13 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.pubsub.v1.MessageTransformOrBuilder getMessageTransformsOrBuilder(int index); + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + int getTagsCount(); + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + boolean containsTags(java.lang.String key); + + /** Use {@link #getTagsMap()} instead. */ + @java.lang.Deprecated + java.util.Map getTags(); + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + java.util.Map getTagsMap(); + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + /* nullable */ + java.lang.String getTagsOrDefault( + java.lang.String key, + /* nullable */ + java.lang.String defaultValue); + + /** + * + * + *
+   * Optional. Input only. Immutable. Tag keys/values directly bound to this
+   * resource. For example:
+   *   "123/environment": "production",
+   *   "123/costCenter": "marketing"
+   * 
+ * + * + * map<string, string> tags = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + */ + java.lang.String getTagsOrThrow(java.lang.String key); } diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateSnapshotRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateSnapshotRequest.java index 03e24bcc3..d96367623 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateSnapshotRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateSnapshotRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class UpdateSnapshotRequest extends com.google.protobuf.GeneratedMe // @@protoc_insertion_point(message_implements:google.pubsub.v1.UpdateSnapshotRequest) UpdateSnapshotRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use UpdateSnapshotRequest.newBuilder() to construct. private UpdateSnapshotRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -60,8 +62,10 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { com.google.pubsub.v1.UpdateSnapshotRequest.Builder.class); } + private int bitField0_; public static final int SNAPSHOT_FIELD_NUMBER = 1; private com.google.pubsub.v1.Snapshot snapshot_; + /** * * @@ -75,8 +79,9 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { */ @java.lang.Override public boolean hasSnapshot() { - return snapshot_ != null; + return ((bitField0_ & 0x00000001) != 0); } + /** * * @@ -92,6 +97,7 @@ public boolean hasSnapshot() { public com.google.pubsub.v1.Snapshot getSnapshot() { return snapshot_ == null ? com.google.pubsub.v1.Snapshot.getDefaultInstance() : snapshot_; } + /** * * @@ -108,6 +114,7 @@ public com.google.pubsub.v1.SnapshotOrBuilder getSnapshotOrBuilder() { public static final int UPDATE_MASK_FIELD_NUMBER = 2; private com.google.protobuf.FieldMask updateMask_; + /** * * @@ -123,8 +130,9 @@ public com.google.pubsub.v1.SnapshotOrBuilder getSnapshotOrBuilder() { */ @java.lang.Override public boolean hasUpdateMask() { - return updateMask_ != null; + return ((bitField0_ & 0x00000002) != 0); } + /** * * @@ -142,6 +150,7 @@ public boolean hasUpdateMask() { public com.google.protobuf.FieldMask getUpdateMask() { return updateMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : updateMask_; } + /** * * @@ -172,10 +181,10 @@ public final boolean isInitialized() { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (snapshot_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(1, getSnapshot()); } - if (updateMask_ != null) { + if (((bitField0_ & 0x00000002) != 0)) { output.writeMessage(2, getUpdateMask()); } getUnknownFields().writeTo(output); @@ -187,10 +196,10 @@ public int getSerializedSize() { if (size != -1) return size; size = 0; - if (snapshot_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getSnapshot()); } - if (updateMask_ != null) { + if (((bitField0_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getUpdateMask()); } size += getUnknownFields().getSerializedSize(); @@ -336,6 +345,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -365,10 +375,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } // Construct using com.google.pubsub.v1.UpdateSnapshotRequest.newBuilder() - private Builder() {} + private Builder() { + maybeForceBuilderInitialization(); + } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getSnapshotFieldBuilder(); + getUpdateMaskFieldBuilder(); + } } @java.lang.Override @@ -421,12 +441,16 @@ public com.google.pubsub.v1.UpdateSnapshotRequest buildPartial() { private void buildPartial0(com.google.pubsub.v1.UpdateSnapshotRequest result) { int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) != 0)) { result.snapshot_ = snapshotBuilder_ == null ? snapshot_ : snapshotBuilder_.build(); + to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000002) != 0)) { result.updateMask_ = updateMaskBuilder_ == null ? updateMask_ : updateMaskBuilder_.build(); + to_bitField0_ |= 0x00000002; } + result.bitField0_ |= to_bitField0_; } @java.lang.Override @@ -543,6 +567,7 @@ public Builder mergeFrom( com.google.pubsub.v1.Snapshot.Builder, com.google.pubsub.v1.SnapshotOrBuilder> snapshotBuilder_; + /** * * @@ -558,6 +583,7 @@ public Builder mergeFrom( public boolean hasSnapshot() { return ((bitField0_ & 0x00000001) != 0); } + /** * * @@ -577,6 +603,7 @@ public com.google.pubsub.v1.Snapshot getSnapshot() { return snapshotBuilder_.getMessage(); } } + /** * * @@ -600,6 +627,7 @@ public Builder setSnapshot(com.google.pubsub.v1.Snapshot value) { onChanged(); return this; } + /** * * @@ -620,6 +648,7 @@ public Builder setSnapshot(com.google.pubsub.v1.Snapshot.Builder builderForValue onChanged(); return this; } + /** * * @@ -642,10 +671,13 @@ public Builder mergeSnapshot(com.google.pubsub.v1.Snapshot value) { } else { snapshotBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000001; - onChanged(); + if (snapshot_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } return this; } + /** * * @@ -666,6 +698,7 @@ public Builder clearSnapshot() { onChanged(); return this; } + /** * * @@ -681,6 +714,7 @@ public com.google.pubsub.v1.Snapshot.Builder getSnapshotBuilder() { onChanged(); return getSnapshotFieldBuilder().getBuilder(); } + /** * * @@ -698,6 +732,7 @@ public com.google.pubsub.v1.SnapshotOrBuilder getSnapshotOrBuilder() { return snapshot_ == null ? com.google.pubsub.v1.Snapshot.getDefaultInstance() : snapshot_; } } + /** * * @@ -731,6 +766,7 @@ public com.google.pubsub.v1.SnapshotOrBuilder getSnapshotOrBuilder() { com.google.protobuf.FieldMask.Builder, com.google.protobuf.FieldMaskOrBuilder> updateMaskBuilder_; + /** * * @@ -747,6 +783,7 @@ public com.google.pubsub.v1.SnapshotOrBuilder getSnapshotOrBuilder() { public boolean hasUpdateMask() { return ((bitField0_ & 0x00000002) != 0); } + /** * * @@ -769,6 +806,7 @@ public com.google.protobuf.FieldMask getUpdateMask() { return updateMaskBuilder_.getMessage(); } } + /** * * @@ -793,6 +831,7 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask value) { onChanged(); return this; } + /** * * @@ -814,6 +853,7 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask.Builder builderForVal onChanged(); return this; } + /** * * @@ -837,10 +877,13 @@ public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) { } else { updateMaskBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000002; - onChanged(); + if (updateMask_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } return this; } + /** * * @@ -862,6 +905,7 @@ public Builder clearUpdateMask() { onChanged(); return this; } + /** * * @@ -878,6 +922,7 @@ public com.google.protobuf.FieldMask.Builder getUpdateMaskBuilder() { onChanged(); return getUpdateMaskFieldBuilder().getBuilder(); } + /** * * @@ -898,6 +943,7 @@ public com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder() { : updateMask_; } } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateSnapshotRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateSnapshotRequestOrBuilder.java index 27027e92b..03b116d81 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateSnapshotRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateSnapshotRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface UpdateSnapshotRequestOrBuilder @@ -35,6 +36,7 @@ public interface UpdateSnapshotRequestOrBuilder * @return Whether the snapshot field is set. */ boolean hasSnapshot(); + /** * * @@ -47,6 +49,7 @@ public interface UpdateSnapshotRequestOrBuilder * @return The snapshot. */ com.google.pubsub.v1.Snapshot getSnapshot(); + /** * * @@ -72,6 +75,7 @@ public interface UpdateSnapshotRequestOrBuilder * @return Whether the updateMask field is set. */ boolean hasUpdateMask(); + /** * * @@ -86,6 +90,7 @@ public interface UpdateSnapshotRequestOrBuilder * @return The updateMask. */ com.google.protobuf.FieldMask getUpdateMask(); + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateSubscriptionRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateSubscriptionRequest.java index 921ead79e..7dbdcfa97 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateSubscriptionRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateSubscriptionRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class UpdateSubscriptionRequest extends com.google.protobuf.Generat // @@protoc_insertion_point(message_implements:google.pubsub.v1.UpdateSubscriptionRequest) UpdateSubscriptionRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use UpdateSubscriptionRequest.newBuilder() to construct. private UpdateSubscriptionRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -60,8 +62,10 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { com.google.pubsub.v1.UpdateSubscriptionRequest.Builder.class); } + private int bitField0_; public static final int SUBSCRIPTION_FIELD_NUMBER = 1; private com.google.pubsub.v1.Subscription subscription_; + /** * * @@ -77,8 +81,9 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { */ @java.lang.Override public boolean hasSubscription() { - return subscription_ != null; + return ((bitField0_ & 0x00000001) != 0); } + /** * * @@ -98,6 +103,7 @@ public com.google.pubsub.v1.Subscription getSubscription() { ? com.google.pubsub.v1.Subscription.getDefaultInstance() : subscription_; } + /** * * @@ -118,6 +124,7 @@ public com.google.pubsub.v1.SubscriptionOrBuilder getSubscriptionOrBuilder() { public static final int UPDATE_MASK_FIELD_NUMBER = 2; private com.google.protobuf.FieldMask updateMask_; + /** * * @@ -133,8 +140,9 @@ public com.google.pubsub.v1.SubscriptionOrBuilder getSubscriptionOrBuilder() { */ @java.lang.Override public boolean hasUpdateMask() { - return updateMask_ != null; + return ((bitField0_ & 0x00000002) != 0); } + /** * * @@ -152,6 +160,7 @@ public boolean hasUpdateMask() { public com.google.protobuf.FieldMask getUpdateMask() { return updateMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : updateMask_; } + /** * * @@ -182,10 +191,10 @@ public final boolean isInitialized() { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (subscription_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(1, getSubscription()); } - if (updateMask_ != null) { + if (((bitField0_ & 0x00000002) != 0)) { output.writeMessage(2, getUpdateMask()); } getUnknownFields().writeTo(output); @@ -197,10 +206,10 @@ public int getSerializedSize() { if (size != -1) return size; size = 0; - if (subscription_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getSubscription()); } - if (updateMask_ != null) { + if (((bitField0_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getUpdateMask()); } size += getUnknownFields().getSerializedSize(); @@ -346,6 +355,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -375,10 +385,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } // Construct using com.google.pubsub.v1.UpdateSubscriptionRequest.newBuilder() - private Builder() {} + private Builder() { + maybeForceBuilderInitialization(); + } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getSubscriptionFieldBuilder(); + getUpdateMaskFieldBuilder(); + } } @java.lang.Override @@ -431,13 +451,17 @@ public com.google.pubsub.v1.UpdateSubscriptionRequest buildPartial() { private void buildPartial0(com.google.pubsub.v1.UpdateSubscriptionRequest result) { int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) != 0)) { result.subscription_ = subscriptionBuilder_ == null ? subscription_ : subscriptionBuilder_.build(); + to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000002) != 0)) { result.updateMask_ = updateMaskBuilder_ == null ? updateMask_ : updateMaskBuilder_.build(); + to_bitField0_ |= 0x00000002; } + result.bitField0_ |= to_bitField0_; } @java.lang.Override @@ -554,6 +578,7 @@ public Builder mergeFrom( com.google.pubsub.v1.Subscription.Builder, com.google.pubsub.v1.SubscriptionOrBuilder> subscriptionBuilder_; + /** * * @@ -570,6 +595,7 @@ public Builder mergeFrom( public boolean hasSubscription() { return ((bitField0_ & 0x00000001) != 0); } + /** * * @@ -592,6 +618,7 @@ public com.google.pubsub.v1.Subscription getSubscription() { return subscriptionBuilder_.getMessage(); } } + /** * * @@ -616,6 +643,7 @@ public Builder setSubscription(com.google.pubsub.v1.Subscription value) { onChanged(); return this; } + /** * * @@ -637,6 +665,7 @@ public Builder setSubscription(com.google.pubsub.v1.Subscription.Builder builder onChanged(); return this; } + /** * * @@ -660,10 +689,13 @@ public Builder mergeSubscription(com.google.pubsub.v1.Subscription value) { } else { subscriptionBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000001; - onChanged(); + if (subscription_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } return this; } + /** * * @@ -685,6 +717,7 @@ public Builder clearSubscription() { onChanged(); return this; } + /** * * @@ -701,6 +734,7 @@ public com.google.pubsub.v1.Subscription.Builder getSubscriptionBuilder() { onChanged(); return getSubscriptionFieldBuilder().getBuilder(); } + /** * * @@ -721,6 +755,7 @@ public com.google.pubsub.v1.SubscriptionOrBuilder getSubscriptionOrBuilder() { : subscription_; } } + /** * * @@ -755,6 +790,7 @@ public com.google.pubsub.v1.SubscriptionOrBuilder getSubscriptionOrBuilder() { com.google.protobuf.FieldMask.Builder, com.google.protobuf.FieldMaskOrBuilder> updateMaskBuilder_; + /** * * @@ -771,6 +807,7 @@ public com.google.pubsub.v1.SubscriptionOrBuilder getSubscriptionOrBuilder() { public boolean hasUpdateMask() { return ((bitField0_ & 0x00000002) != 0); } + /** * * @@ -793,6 +830,7 @@ public com.google.protobuf.FieldMask getUpdateMask() { return updateMaskBuilder_.getMessage(); } } + /** * * @@ -817,6 +855,7 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask value) { onChanged(); return this; } + /** * * @@ -838,6 +877,7 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask.Builder builderForVal onChanged(); return this; } + /** * * @@ -861,10 +901,13 @@ public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) { } else { updateMaskBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000002; - onChanged(); + if (updateMask_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } return this; } + /** * * @@ -886,6 +929,7 @@ public Builder clearUpdateMask() { onChanged(); return this; } + /** * * @@ -902,6 +946,7 @@ public com.google.protobuf.FieldMask.Builder getUpdateMaskBuilder() { onChanged(); return getUpdateMaskFieldBuilder().getBuilder(); } + /** * * @@ -922,6 +967,7 @@ public com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder() { : updateMask_; } } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateSubscriptionRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateSubscriptionRequestOrBuilder.java index ab0f57de3..f03c11261 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateSubscriptionRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateSubscriptionRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface UpdateSubscriptionRequestOrBuilder @@ -37,6 +38,7 @@ public interface UpdateSubscriptionRequestOrBuilder * @return Whether the subscription field is set. */ boolean hasSubscription(); + /** * * @@ -51,6 +53,7 @@ public interface UpdateSubscriptionRequestOrBuilder * @return The subscription. */ com.google.pubsub.v1.Subscription getSubscription(); + /** * * @@ -78,6 +81,7 @@ public interface UpdateSubscriptionRequestOrBuilder * @return Whether the updateMask field is set. */ boolean hasUpdateMask(); + /** * * @@ -92,6 +96,7 @@ public interface UpdateSubscriptionRequestOrBuilder * @return The updateMask. */ com.google.protobuf.FieldMask getUpdateMask(); + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateTopicRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateTopicRequest.java index 49ef30ab3..85b634b70 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateTopicRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateTopicRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class UpdateTopicRequest extends com.google.protobuf.GeneratedMessa // @@protoc_insertion_point(message_implements:google.pubsub.v1.UpdateTopicRequest) UpdateTopicRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use UpdateTopicRequest.newBuilder() to construct. private UpdateTopicRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -60,8 +62,10 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { com.google.pubsub.v1.UpdateTopicRequest.Builder.class); } + private int bitField0_; public static final int TOPIC_FIELD_NUMBER = 1; private com.google.pubsub.v1.Topic topic_; + /** * * @@ -75,8 +79,9 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { */ @java.lang.Override public boolean hasTopic() { - return topic_ != null; + return ((bitField0_ & 0x00000001) != 0); } + /** * * @@ -92,6 +97,7 @@ public boolean hasTopic() { public com.google.pubsub.v1.Topic getTopic() { return topic_ == null ? com.google.pubsub.v1.Topic.getDefaultInstance() : topic_; } + /** * * @@ -108,6 +114,7 @@ public com.google.pubsub.v1.TopicOrBuilder getTopicOrBuilder() { public static final int UPDATE_MASK_FIELD_NUMBER = 2; private com.google.protobuf.FieldMask updateMask_; + /** * * @@ -126,8 +133,9 @@ public com.google.pubsub.v1.TopicOrBuilder getTopicOrBuilder() { */ @java.lang.Override public boolean hasUpdateMask() { - return updateMask_ != null; + return ((bitField0_ & 0x00000002) != 0); } + /** * * @@ -148,6 +156,7 @@ public boolean hasUpdateMask() { public com.google.protobuf.FieldMask getUpdateMask() { return updateMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : updateMask_; } + /** * * @@ -181,10 +190,10 @@ public final boolean isInitialized() { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (topic_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(1, getTopic()); } - if (updateMask_ != null) { + if (((bitField0_ & 0x00000002) != 0)) { output.writeMessage(2, getUpdateMask()); } getUnknownFields().writeTo(output); @@ -196,10 +205,10 @@ public int getSerializedSize() { if (size != -1) return size; size = 0; - if (topic_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getTopic()); } - if (updateMask_ != null) { + if (((bitField0_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getUpdateMask()); } size += getUnknownFields().getSerializedSize(); @@ -344,6 +353,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -373,10 +383,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } // Construct using com.google.pubsub.v1.UpdateTopicRequest.newBuilder() - private Builder() {} + private Builder() { + maybeForceBuilderInitialization(); + } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getTopicFieldBuilder(); + getUpdateMaskFieldBuilder(); + } } @java.lang.Override @@ -429,12 +449,16 @@ public com.google.pubsub.v1.UpdateTopicRequest buildPartial() { private void buildPartial0(com.google.pubsub.v1.UpdateTopicRequest result) { int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) != 0)) { result.topic_ = topicBuilder_ == null ? topic_ : topicBuilder_.build(); + to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000002) != 0)) { result.updateMask_ = updateMaskBuilder_ == null ? updateMask_ : updateMaskBuilder_.build(); + to_bitField0_ |= 0x00000002; } + result.bitField0_ |= to_bitField0_; } @java.lang.Override @@ -551,6 +575,7 @@ public Builder mergeFrom( com.google.pubsub.v1.Topic.Builder, com.google.pubsub.v1.TopicOrBuilder> topicBuilder_; + /** * * @@ -565,6 +590,7 @@ public Builder mergeFrom( public boolean hasTopic() { return ((bitField0_ & 0x00000001) != 0); } + /** * * @@ -583,6 +609,7 @@ public com.google.pubsub.v1.Topic getTopic() { return topicBuilder_.getMessage(); } } + /** * * @@ -605,6 +632,7 @@ public Builder setTopic(com.google.pubsub.v1.Topic value) { onChanged(); return this; } + /** * * @@ -624,6 +652,7 @@ public Builder setTopic(com.google.pubsub.v1.Topic.Builder builderForValue) { onChanged(); return this; } + /** * * @@ -645,10 +674,13 @@ public Builder mergeTopic(com.google.pubsub.v1.Topic value) { } else { topicBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000001; - onChanged(); + if (topic_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } return this; } + /** * * @@ -668,6 +700,7 @@ public Builder clearTopic() { onChanged(); return this; } + /** * * @@ -682,6 +715,7 @@ public com.google.pubsub.v1.Topic.Builder getTopicBuilder() { onChanged(); return getTopicFieldBuilder().getBuilder(); } + /** * * @@ -698,6 +732,7 @@ public com.google.pubsub.v1.TopicOrBuilder getTopicOrBuilder() { return topic_ == null ? com.google.pubsub.v1.Topic.getDefaultInstance() : topic_; } } + /** * * @@ -729,6 +764,7 @@ public com.google.pubsub.v1.TopicOrBuilder getTopicOrBuilder() { com.google.protobuf.FieldMask.Builder, com.google.protobuf.FieldMaskOrBuilder> updateMaskBuilder_; + /** * * @@ -748,6 +784,7 @@ public com.google.pubsub.v1.TopicOrBuilder getTopicOrBuilder() { public boolean hasUpdateMask() { return ((bitField0_ & 0x00000002) != 0); } + /** * * @@ -773,6 +810,7 @@ public com.google.protobuf.FieldMask getUpdateMask() { return updateMaskBuilder_.getMessage(); } } + /** * * @@ -800,6 +838,7 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask value) { onChanged(); return this; } + /** * * @@ -824,6 +863,7 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask.Builder builderForVal onChanged(); return this; } + /** * * @@ -850,10 +890,13 @@ public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) { } else { updateMaskBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000002; - onChanged(); + if (updateMask_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } return this; } + /** * * @@ -878,6 +921,7 @@ public Builder clearUpdateMask() { onChanged(); return this; } + /** * * @@ -897,6 +941,7 @@ public com.google.protobuf.FieldMask.Builder getUpdateMaskBuilder() { onChanged(); return getUpdateMaskFieldBuilder().getBuilder(); } + /** * * @@ -920,6 +965,7 @@ public com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder() { : updateMask_; } } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateTopicRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateTopicRequestOrBuilder.java index ce746a8ab..a0425706b 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateTopicRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/UpdateTopicRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/pubsub.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface UpdateTopicRequestOrBuilder @@ -35,6 +36,7 @@ public interface UpdateTopicRequestOrBuilder * @return Whether the topic field is set. */ boolean hasTopic(); + /** * * @@ -47,6 +49,7 @@ public interface UpdateTopicRequestOrBuilder * @return The topic. */ com.google.pubsub.v1.Topic getTopic(); + /** * * @@ -75,6 +78,7 @@ public interface UpdateTopicRequestOrBuilder * @return Whether the updateMask field is set. */ boolean hasUpdateMask(); + /** * * @@ -92,6 +96,7 @@ public interface UpdateTopicRequestOrBuilder * @return The updateMask. */ com.google.protobuf.FieldMask getUpdateMask(); + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateMessageRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateMessageRequest.java index 8a5c924a6..6db4d37c8 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateMessageRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateMessageRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ValidateMessageRequest extends com.google.protobuf.GeneratedM // @@protoc_insertion_point(message_implements:google.pubsub.v1.ValidateMessageRequest) ValidateMessageRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use ValidateMessageRequest.newBuilder() to construct. private ValidateMessageRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -81,6 +83,7 @@ public enum SchemaSpecCase private SchemaSpecCase(int value) { this.value = value; } + /** * @param value The number of the enum to look for. * @return The enum associated with the given number. @@ -117,6 +120,7 @@ public SchemaSpecCase getSchemaSpecCase() { @SuppressWarnings("serial") private volatile java.lang.Object parent_ = ""; + /** * * @@ -143,6 +147,7 @@ public java.lang.String getParent() { return s; } } + /** * * @@ -171,6 +176,7 @@ public com.google.protobuf.ByteString getParentBytes() { } public static final int NAME_FIELD_NUMBER = 2; + /** * * @@ -187,6 +193,7 @@ public com.google.protobuf.ByteString getParentBytes() { public boolean hasName() { return schemaSpecCase_ == 2; } + /** * * @@ -216,6 +223,7 @@ public java.lang.String getName() { return s; } } + /** * * @@ -247,6 +255,7 @@ public com.google.protobuf.ByteString getNameBytes() { } public static final int SCHEMA_FIELD_NUMBER = 3; + /** * * @@ -262,6 +271,7 @@ public com.google.protobuf.ByteString getNameBytes() { public boolean hasSchema() { return schemaSpecCase_ == 3; } + /** * * @@ -280,6 +290,7 @@ public com.google.pubsub.v1.Schema getSchema() { } return com.google.pubsub.v1.Schema.getDefaultInstance(); } + /** * * @@ -299,6 +310,7 @@ public com.google.pubsub.v1.SchemaOrBuilder getSchemaOrBuilder() { public static final int MESSAGE_FIELD_NUMBER = 4; private com.google.protobuf.ByteString message_ = com.google.protobuf.ByteString.EMPTY; + /** * * @@ -317,6 +329,7 @@ public com.google.protobuf.ByteString getMessage() { public static final int ENCODING_FIELD_NUMBER = 5; private int encoding_ = 0; + /** * * @@ -332,6 +345,7 @@ public com.google.protobuf.ByteString getMessage() { public int getEncodingValue() { return encoding_; } + /** * * @@ -563,6 +577,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -831,6 +846,7 @@ public Builder clearSchemaSpec() { private int bitField0_; private java.lang.Object parent_ = ""; + /** * * @@ -856,6 +872,7 @@ public java.lang.String getParent() { return (java.lang.String) ref; } } + /** * * @@ -881,6 +898,7 @@ public com.google.protobuf.ByteString getParentBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -905,6 +923,7 @@ public Builder setParent(java.lang.String value) { onChanged(); return this; } + /** * * @@ -925,6 +944,7 @@ public Builder clearParent() { onChanged(); return this; } + /** * * @@ -968,6 +988,7 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) { public boolean hasName() { return schemaSpecCase_ == 2; } + /** * * @@ -998,6 +1019,7 @@ public java.lang.String getName() { return (java.lang.String) ref; } } + /** * * @@ -1028,6 +1050,7 @@ public com.google.protobuf.ByteString getNameBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -1051,6 +1074,7 @@ public Builder setName(java.lang.String value) { onChanged(); return this; } + /** * * @@ -1072,6 +1096,7 @@ public Builder clearName() { } return this; } + /** * * @@ -1102,6 +1127,7 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) { com.google.pubsub.v1.Schema.Builder, com.google.pubsub.v1.SchemaOrBuilder> schemaBuilder_; + /** * * @@ -1117,6 +1143,7 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) { public boolean hasSchema() { return schemaSpecCase_ == 3; } + /** * * @@ -1142,6 +1169,7 @@ public com.google.pubsub.v1.Schema getSchema() { return com.google.pubsub.v1.Schema.getDefaultInstance(); } } + /** * * @@ -1164,6 +1192,7 @@ public Builder setSchema(com.google.pubsub.v1.Schema value) { schemaSpecCase_ = 3; return this; } + /** * * @@ -1183,6 +1212,7 @@ public Builder setSchema(com.google.pubsub.v1.Schema.Builder builderForValue) { schemaSpecCase_ = 3; return this; } + /** * * @@ -1214,6 +1244,7 @@ public Builder mergeSchema(com.google.pubsub.v1.Schema value) { schemaSpecCase_ = 3; return this; } + /** * * @@ -1239,6 +1270,7 @@ public Builder clearSchema() { } return this; } + /** * * @@ -1251,6 +1283,7 @@ public Builder clearSchema() { public com.google.pubsub.v1.Schema.Builder getSchemaBuilder() { return getSchemaFieldBuilder().getBuilder(); } + /** * * @@ -1271,6 +1304,7 @@ public com.google.pubsub.v1.SchemaOrBuilder getSchemaOrBuilder() { return com.google.pubsub.v1.Schema.getDefaultInstance(); } } + /** * * @@ -1303,6 +1337,7 @@ public com.google.pubsub.v1.SchemaOrBuilder getSchemaOrBuilder() { } private com.google.protobuf.ByteString message_ = com.google.protobuf.ByteString.EMPTY; + /** * * @@ -1318,6 +1353,7 @@ public com.google.pubsub.v1.SchemaOrBuilder getSchemaOrBuilder() { public com.google.protobuf.ByteString getMessage() { return message_; } + /** * * @@ -1339,6 +1375,7 @@ public Builder setMessage(com.google.protobuf.ByteString value) { onChanged(); return this; } + /** * * @@ -1358,6 +1395,7 @@ public Builder clearMessage() { } private int encoding_ = 0; + /** * * @@ -1373,6 +1411,7 @@ public Builder clearMessage() { public int getEncodingValue() { return encoding_; } + /** * * @@ -1391,6 +1430,7 @@ public Builder setEncodingValue(int value) { onChanged(); return this; } + /** * * @@ -1407,6 +1447,7 @@ public com.google.pubsub.v1.Encoding getEncoding() { com.google.pubsub.v1.Encoding result = com.google.pubsub.v1.Encoding.forNumber(encoding_); return result == null ? com.google.pubsub.v1.Encoding.UNRECOGNIZED : result; } + /** * * @@ -1428,6 +1469,7 @@ public Builder setEncoding(com.google.pubsub.v1.Encoding value) { onChanged(); return this; } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateMessageRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateMessageRequestOrBuilder.java index 30ee884fc..65e62e516 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateMessageRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateMessageRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ValidateMessageRequestOrBuilder @@ -38,6 +39,7 @@ public interface ValidateMessageRequestOrBuilder * @return The parent. */ java.lang.String getParent(); + /** * * @@ -68,6 +70,7 @@ public interface ValidateMessageRequestOrBuilder * @return Whether the name field is set. */ boolean hasName(); + /** * * @@ -82,6 +85,7 @@ public interface ValidateMessageRequestOrBuilder * @return The name. */ java.lang.String getName(); + /** * * @@ -109,6 +113,7 @@ public interface ValidateMessageRequestOrBuilder * @return Whether the schema field is set. */ boolean hasSchema(); + /** * * @@ -121,6 +126,7 @@ public interface ValidateMessageRequestOrBuilder * @return The schema. */ com.google.pubsub.v1.Schema getSchema(); + /** * * @@ -157,6 +163,7 @@ public interface ValidateMessageRequestOrBuilder * @return The enum numeric value on the wire for encoding. */ int getEncodingValue(); + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateMessageResponse.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateMessageResponse.java index b865330f1..589f4cdd0 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateMessageResponse.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateMessageResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -33,6 +34,7 @@ public final class ValidateMessageResponse extends com.google.protobuf.Generated // @@protoc_insertion_point(message_implements:google.pubsub.v1.ValidateMessageResponse) ValidateMessageResponseOrBuilder { private static final long serialVersionUID = 0L; + // Use ValidateMessageResponse.newBuilder() to construct. private ValidateMessageResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -211,6 +213,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateMessageResponseOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateMessageResponseOrBuilder.java index fb7717093..9db53fcc8 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateMessageResponseOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateMessageResponseOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ValidateMessageResponseOrBuilder diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateSchemaRequest.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateSchemaRequest.java index e287bbd48..99b284110 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateSchemaRequest.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateSchemaRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -32,6 +33,7 @@ public final class ValidateSchemaRequest extends com.google.protobuf.GeneratedMe // @@protoc_insertion_point(message_implements:google.pubsub.v1.ValidateSchemaRequest) ValidateSchemaRequestOrBuilder { private static final long serialVersionUID = 0L; + // Use ValidateSchemaRequest.newBuilder() to construct. private ValidateSchemaRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -62,10 +64,12 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { com.google.pubsub.v1.ValidateSchemaRequest.Builder.class); } + private int bitField0_; public static final int PARENT_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object parent_ = ""; + /** * * @@ -92,6 +96,7 @@ public java.lang.String getParent() { return s; } } + /** * * @@ -121,6 +126,7 @@ public com.google.protobuf.ByteString getParentBytes() { public static final int SCHEMA_FIELD_NUMBER = 2; private com.google.pubsub.v1.Schema schema_; + /** * * @@ -134,8 +140,9 @@ public com.google.protobuf.ByteString getParentBytes() { */ @java.lang.Override public boolean hasSchema() { - return schema_ != null; + return ((bitField0_ & 0x00000001) != 0); } + /** * * @@ -151,6 +158,7 @@ public boolean hasSchema() { public com.google.pubsub.v1.Schema getSchema() { return schema_ == null ? com.google.pubsub.v1.Schema.getDefaultInstance() : schema_; } + /** * * @@ -182,7 +190,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(parent_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, parent_); } - if (schema_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(2, getSchema()); } getUnknownFields().writeTo(output); @@ -197,7 +205,7 @@ public int getSerializedSize() { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(parent_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, parent_); } - if (schema_ != null) { + if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSchema()); } size += getUnknownFields().getSerializedSize(); @@ -338,6 +346,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * @@ -367,10 +376,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } // Construct using com.google.pubsub.v1.ValidateSchemaRequest.newBuilder() - private Builder() {} + private Builder() { + maybeForceBuilderInitialization(); + } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getSchemaFieldBuilder(); + } } @java.lang.Override @@ -422,9 +440,12 @@ private void buildPartial0(com.google.pubsub.v1.ValidateSchemaRequest result) { if (((from_bitField0_ & 0x00000001) != 0)) { result.parent_ = parent_; } + int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000002) != 0)) { result.schema_ = schemaBuilder_ == null ? schema_ : schemaBuilder_.build(); + to_bitField0_ |= 0x00000001; } + result.bitField0_ |= to_bitField0_; } @java.lang.Override @@ -538,6 +559,7 @@ public Builder mergeFrom( private int bitField0_; private java.lang.Object parent_ = ""; + /** * * @@ -563,6 +585,7 @@ public java.lang.String getParent() { return (java.lang.String) ref; } } + /** * * @@ -588,6 +611,7 @@ public com.google.protobuf.ByteString getParentBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * * @@ -612,6 +636,7 @@ public Builder setParent(java.lang.String value) { onChanged(); return this; } + /** * * @@ -632,6 +657,7 @@ public Builder clearParent() { onChanged(); return this; } + /** * * @@ -664,6 +690,7 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) { com.google.pubsub.v1.Schema.Builder, com.google.pubsub.v1.SchemaOrBuilder> schemaBuilder_; + /** * * @@ -678,6 +705,7 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) { public boolean hasSchema() { return ((bitField0_ & 0x00000002) != 0); } + /** * * @@ -696,6 +724,7 @@ public com.google.pubsub.v1.Schema getSchema() { return schemaBuilder_.getMessage(); } } + /** * * @@ -718,6 +747,7 @@ public Builder setSchema(com.google.pubsub.v1.Schema value) { onChanged(); return this; } + /** * * @@ -737,6 +767,7 @@ public Builder setSchema(com.google.pubsub.v1.Schema.Builder builderForValue) { onChanged(); return this; } + /** * * @@ -758,10 +789,13 @@ public Builder mergeSchema(com.google.pubsub.v1.Schema value) { } else { schemaBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000002; - onChanged(); + if (schema_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } return this; } + /** * * @@ -781,6 +815,7 @@ public Builder clearSchema() { onChanged(); return this; } + /** * * @@ -795,6 +830,7 @@ public com.google.pubsub.v1.Schema.Builder getSchemaBuilder() { onChanged(); return getSchemaFieldBuilder().getBuilder(); } + /** * * @@ -811,6 +847,7 @@ public com.google.pubsub.v1.SchemaOrBuilder getSchemaOrBuilder() { return schema_ == null ? com.google.pubsub.v1.Schema.getDefaultInstance() : schema_; } } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateSchemaRequestOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateSchemaRequestOrBuilder.java index a7e443e7b..c0f8e1e24 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateSchemaRequestOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateSchemaRequestOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ValidateSchemaRequestOrBuilder @@ -38,6 +39,7 @@ public interface ValidateSchemaRequestOrBuilder * @return The parent. */ java.lang.String getParent(); + /** * * @@ -66,6 +68,7 @@ public interface ValidateSchemaRequestOrBuilder * @return Whether the schema field is set. */ boolean hasSchema(); + /** * * @@ -78,6 +81,7 @@ public interface ValidateSchemaRequestOrBuilder * @return The schema. */ com.google.pubsub.v1.Schema getSchema(); + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateSchemaResponse.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateSchemaResponse.java index 002d5b390..b195c89c8 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateSchemaResponse.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateSchemaResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; /** @@ -33,6 +34,7 @@ public final class ValidateSchemaResponse extends com.google.protobuf.GeneratedM // @@protoc_insertion_point(message_implements:google.pubsub.v1.ValidateSchemaResponse) ValidateSchemaResponseOrBuilder { private static final long serialVersionUID = 0L; + // Use ValidateSchemaResponse.newBuilder() to construct. private ValidateSchemaResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -211,6 +213,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build Builder builder = new Builder(parent); return builder; } + /** * * diff --git a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateSchemaResponseOrBuilder.java b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateSchemaResponseOrBuilder.java index a6d1fa45f..c7aaac7e9 100644 --- a/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateSchemaResponseOrBuilder.java +++ b/proto-google-cloud-pubsub-v1/src/main/java/com/google/pubsub/v1/ValidateSchemaResponseOrBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * 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. @@ -16,6 +16,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/pubsub/v1/schema.proto +// Protobuf Java Version: 3.25.8 package com.google.pubsub.v1; public interface ValidateSchemaResponseOrBuilder diff --git a/proto-google-cloud-pubsub-v1/src/main/proto/google/pubsub/v1/pubsub.proto b/proto-google-cloud-pubsub-v1/src/main/proto/google/pubsub/v1/pubsub.proto index 393893b10..95dd7f829 100644 --- a/proto-google-cloud-pubsub-v1/src/main/proto/google/pubsub/v1/pubsub.proto +++ b/proto-google-cloud-pubsub-v1/src/main/proto/google/pubsub/v1/pubsub.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// 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. @@ -26,14 +26,21 @@ import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "google/pubsub/v1/schema.proto"; -option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.PubSub.V1"; -option go_package = "cloud.google.com/go/pubsub/apiv1/pubsubpb;pubsubpb"; +option go_package = "cloud.google.com/go/pubsub/v2/apiv1/pubsubpb;pubsubpb"; option java_multiple_files = true; option java_outer_classname = "PubsubProto"; option java_package = "com.google.pubsub.v1"; option php_namespace = "Google\\Cloud\\PubSub\\V1"; option ruby_package = "Google::Cloud::PubSub::V1"; +option (google.api.resource_definition) = { + type: "cloudkms.googleapis.com/CryptoKey" + pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}" +}; +option (google.api.resource_definition) = { + type: "analyticshub.googleapis.com/Listing" + pattern: "projects/{project}/locations/{location}/dataExchanges/{data_exchange}/listings/{listing}" +}; // The service that an application uses to manipulate topics, and to send // messages to a topic. @@ -53,8 +60,8 @@ service Publisher { option (google.api.method_signature) = "name"; } - // Updates an existing topic. Note that certain properties of a - // topic are not modifiable. + // Updates an existing topic by updating the fields specified in the update + // mask. Note that certain properties of a topic are not modifiable. rpc UpdateTopic(UpdateTopicRequest) returns (Topic) { option (google.api.http) = { patch: "/v1/{topic.name=projects/*/topics/*}" @@ -137,13 +144,21 @@ service Publisher { // A policy constraining the storage of messages published to the topic. message MessageStoragePolicy { - // A list of IDs of Google Cloud regions where messages that are published - // to the topic may be persisted in storage. Messages published by publishers - // running in non-allowed Google Cloud regions (or running outside of Google - // Cloud altogether) are routed for storage in one of the allowed regions. - // An empty list means that no regions are allowed, and is not a valid - // configuration. - repeated string allowed_persistence_regions = 1; + // Optional. A list of IDs of Google Cloud regions where messages that are + // published to the topic may be persisted in storage. Messages published by + // publishers running in non-allowed Google Cloud regions (or running outside + // of Google Cloud altogether) are routed for storage in one of the allowed + // regions. An empty list means that no regions are allowed, and is not a + // valid configuration. + repeated string allowed_persistence_regions = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, `allowed_persistence_regions` is also used to enforce + // in-transit guarantees for messages. That is, Pub/Sub will fail + // Publish operations on this topic and subscribe operations + // on any subscription attached to this topic in any region that is + // not in `allowed_persistence_regions`. + bool enforce_in_transit = 2 [(google.api.field_behavior) = OPTIONAL]; } // Settings for validating messages published against a schema. @@ -157,18 +172,655 @@ message SchemaSettings { (google.api.resource_reference) = { type: "pubsub.googleapis.com/Schema" } ]; - // The encoding of messages validated against `schema`. - Encoding encoding = 2; + // Optional. The encoding of messages validated against `schema`. + Encoding encoding = 2 [(google.api.field_behavior) = OPTIONAL]; - // The minimum (inclusive) revision allowed for validating messages. If empty - // or not present, allow any revision to be validated against last_revision or - // any revision created before. - string first_revision_id = 3; + // Optional. The minimum (inclusive) revision allowed for validating messages. + // If empty or not present, allow any revision to be validated against + // last_revision or any revision created before. + string first_revision_id = 3 [(google.api.field_behavior) = OPTIONAL]; - // The maximum (inclusive) revision allowed for validating messages. If empty - // or not present, allow any revision to be validated against first_revision - // or any revision created after. - string last_revision_id = 4; + // Optional. The maximum (inclusive) revision allowed for validating messages. + // If empty or not present, allow any revision to be validated against + // first_revision or any revision created after. + string last_revision_id = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Settings for an ingestion data source on a topic. +message IngestionDataSourceSettings { + // Ingestion settings for Amazon Kinesis Data Streams. + message AwsKinesis { + // Possible states for ingestion from Amazon Kinesis Data Streams. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // Ingestion is active. + ACTIVE = 1; + + // Permission denied encountered while consuming data from Kinesis. + // This can happen if: + // - The provided `aws_role_arn` does not exist or does not have the + // appropriate permissions attached. + // - The provided `aws_role_arn` is not set up properly for Identity + // Federation using `gcp_service_account`. + // - The Pub/Sub SA is not granted the + // `iam.serviceAccounts.getOpenIdToken` permission on + // `gcp_service_account`. + KINESIS_PERMISSION_DENIED = 2; + + // Permission denied encountered while publishing to the topic. This can + // happen if the Pub/Sub SA has not been granted the [appropriate publish + // permissions](https://cloud.google.com/pubsub/docs/access-control#pubsub.publisher) + PUBLISH_PERMISSION_DENIED = 3; + + // The Kinesis stream does not exist. + STREAM_NOT_FOUND = 4; + + // The Kinesis consumer does not exist. + CONSUMER_NOT_FOUND = 5; + } + + // Output only. An output-only field that indicates the state of the Kinesis + // ingestion source. + State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The Kinesis stream ARN to ingest data from. + string stream_arn = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Kinesis consumer ARN to used for ingestion in Enhanced + // Fan-Out mode. The consumer must be already created and ready to be used. + string consumer_arn = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. AWS role ARN to be used for Federated Identity authentication + // with Kinesis. Check the Pub/Sub docs for how to set up this role and the + // required permissions that need to be attached to it. + string aws_role_arn = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. The GCP service account to be used for Federated Identity + // authentication with Kinesis (via a `AssumeRoleWithWebIdentity` call for + // the provided role). The `aws_role_arn` must be set up with + // `accounts.google.com:sub` equals to this service account number. + string gcp_service_account = 5 [(google.api.field_behavior) = REQUIRED]; + } + + // Ingestion settings for Cloud Storage. + message CloudStorage { + // Possible states for ingestion from Cloud Storage. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // Ingestion is active. + ACTIVE = 1; + + // Permission denied encountered while calling the Cloud Storage API. This + // can happen if the Pub/Sub SA has not been granted the + // [appropriate + // permissions](https://cloud.google.com/storage/docs/access-control/iam-permissions): + // - storage.objects.list: to list the objects in a bucket. + // - storage.objects.get: to read the objects in a bucket. + // - storage.buckets.get: to verify the bucket exists. + CLOUD_STORAGE_PERMISSION_DENIED = 2; + + // Permission denied encountered while publishing to the topic. This can + // happen if the Pub/Sub SA has not been granted the [appropriate publish + // permissions](https://cloud.google.com/pubsub/docs/access-control#pubsub.publisher) + PUBLISH_PERMISSION_DENIED = 3; + + // The provided Cloud Storage bucket doesn't exist. + BUCKET_NOT_FOUND = 4; + + // The Cloud Storage bucket has too many objects, ingestion will be + // paused. + TOO_MANY_OBJECTS = 5; + } + + // Configuration for reading Cloud Storage data in text format. Each line of + // text as specified by the delimiter will be set to the `data` field of a + // Pub/Sub message. + message TextFormat { + // Optional. When unset, '\n' is used. + optional string delimiter = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // Configuration for reading Cloud Storage data in Avro binary format. The + // bytes of each object will be set to the `data` field of a Pub/Sub + // message. + message AvroFormat {} + + // Configuration for reading Cloud Storage data written via [Cloud Storage + // subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage). The + // data and attributes fields of the originally exported Pub/Sub message + // will be restored when publishing. + message PubSubAvroFormat {} + + // Output only. An output-only field that indicates the state of the Cloud + // Storage ingestion source. + State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Cloud Storage bucket. The bucket name must be without any + // prefix like "gs://". See the [bucket naming requirements] + // (https://cloud.google.com/storage/docs/buckets#naming). + string bucket = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Defaults to text format. + oneof input_format { + // Optional. Data from Cloud Storage will be interpreted as text. + TextFormat text_format = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Data from Cloud Storage will be interpreted in Avro format. + AvroFormat avro_format = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. It will be assumed data from Cloud Storage was written via + // [Cloud Storage + // subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage). + PubSubAvroFormat pubsub_avro_format = 5 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Only objects with a larger or equal creation timestamp will be + // ingested. + google.protobuf.Timestamp minimum_object_create_time = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Glob pattern used to match objects that will be ingested. If + // unset, all objects will be ingested. See the [supported + // patterns](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob). + string match_glob = 9 [(google.api.field_behavior) = OPTIONAL]; + } + + // Ingestion settings for Azure Event Hubs. + message AzureEventHubs { + // Possible states for managed ingestion from Event Hubs. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // Ingestion is active. + ACTIVE = 1; + + // Permission denied encountered while consuming data from Event Hubs. + // This can happen when `client_id`, or `tenant_id` are invalid. Or the + // right permissions haven't been granted. + EVENT_HUBS_PERMISSION_DENIED = 2; + + // Permission denied encountered while publishing to the topic. + PUBLISH_PERMISSION_DENIED = 3; + + // The provided Event Hubs namespace couldn't be found. + NAMESPACE_NOT_FOUND = 4; + + // The provided Event Hub couldn't be found. + EVENT_HUB_NOT_FOUND = 5; + + // The provided Event Hubs subscription couldn't be found. + SUBSCRIPTION_NOT_FOUND = 6; + + // The provided Event Hubs resource group couldn't be found. + RESOURCE_GROUP_NOT_FOUND = 7; + } + + // Output only. An output-only field that indicates the state of the Event + // Hubs ingestion source. + State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Name of the resource group within the azure subscription. + string resource_group = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of the Event Hubs namespace. + string namespace = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of the Event Hub. + string event_hub = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The client id of the Azure application that is being used to + // authenticate Pub/Sub. + string client_id = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The tenant id of the Azure application that is being used to + // authenticate Pub/Sub. + string tenant_id = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Azure subscription id. + string subscription_id = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The GCP service account to be used for Federated Identity + // authentication. + string gcp_service_account = 8 [(google.api.field_behavior) = OPTIONAL]; + } + + // Ingestion settings for Amazon MSK. + message AwsMsk { + // Possible states for managed ingestion from Amazon MSK. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // Ingestion is active. + ACTIVE = 1; + + // Permission denied encountered while consuming data from Amazon MSK. + MSK_PERMISSION_DENIED = 2; + + // Permission denied encountered while publishing to the topic. + PUBLISH_PERMISSION_DENIED = 3; + + // The provided MSK cluster wasn't found. + CLUSTER_NOT_FOUND = 4; + + // The provided topic wasn't found. + TOPIC_NOT_FOUND = 5; + } + + // Output only. An output-only field that indicates the state of the Amazon + // MSK ingestion source. + State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The Amazon Resource Name (ARN) that uniquely identifies the + // cluster. + string cluster_arn = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The name of the topic in the Amazon MSK cluster that Pub/Sub + // will import from. + string topic = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "pubsub.googleapis.com/Topic" } + ]; + + // Required. AWS role ARN to be used for Federated Identity authentication + // with Amazon MSK. Check the Pub/Sub docs for how to set up this role and + // the required permissions that need to be attached to it. + string aws_role_arn = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. The GCP service account to be used for Federated Identity + // authentication with Amazon MSK (via a `AssumeRoleWithWebIdentity` call + // for the provided role). The `aws_role_arn` must be set up with + // `accounts.google.com:sub` equals to this service account number. + string gcp_service_account = 5 [(google.api.field_behavior) = REQUIRED]; + } + + // Ingestion settings for Confluent Cloud. + message ConfluentCloud { + // Possible states for managed ingestion from Confluent Cloud. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // Ingestion is active. + ACTIVE = 1; + + // Permission denied encountered while consuming data from Confluent + // Cloud. + CONFLUENT_CLOUD_PERMISSION_DENIED = 2; + + // Permission denied encountered while publishing to the topic. + PUBLISH_PERMISSION_DENIED = 3; + + // The provided bootstrap server address is unreachable. + UNREACHABLE_BOOTSTRAP_SERVER = 4; + + // The provided cluster wasn't found. + CLUSTER_NOT_FOUND = 5; + + // The provided topic wasn't found. + TOPIC_NOT_FOUND = 6; + } + + // Output only. An output-only field that indicates the state of the + // Confluent Cloud ingestion source. + State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The address of the bootstrap server. The format is url:port. + string bootstrap_server = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The id of the cluster. + string cluster_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The name of the topic in the Confluent Cloud cluster that + // Pub/Sub will import from. + string topic = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. The id of the identity pool to be used for Federated Identity + // authentication with Confluent Cloud. See + // https://docs.confluent.io/cloud/current/security/authenticate/workload-identities/identity-providers/oauth/identity-pools.html#add-oauth-identity-pools. + string identity_pool_id = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. The GCP service account to be used for Federated Identity + // authentication with `identity_pool_id`. + string gcp_service_account = 6 [(google.api.field_behavior) = REQUIRED]; + } + + // Only one source type can have settings set. + oneof source { + // Optional. Amazon Kinesis Data Streams. + AwsKinesis aws_kinesis = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Cloud Storage. + CloudStorage cloud_storage = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Azure Event Hubs. + AzureEventHubs azure_event_hubs = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Amazon MSK. + AwsMsk aws_msk = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Confluent Cloud. + ConfluentCloud confluent_cloud = 6 [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Platform Logs settings. If unset, no Platform Logs will be + // generated. + PlatformLogsSettings platform_logs_settings = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Settings for Platform Logs produced by Pub/Sub. +message PlatformLogsSettings { + // Severity levels of Platform Logs. + enum Severity { + // Default value. Logs level is unspecified. Logs will be disabled. + SEVERITY_UNSPECIFIED = 0; + + // Logs will be disabled. + DISABLED = 1; + + // Debug logs and higher-severity logs will be written. + DEBUG = 2; + + // Info logs and higher-severity logs will be written. + INFO = 3; + + // Warning logs and higher-severity logs will be written. + WARNING = 4; + + // Only error logs will be written. + ERROR = 5; + } + + // Optional. The minimum severity level of Platform Logs that will be written. + Severity severity = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Payload of the Platform Log entry sent when a failure is encountered while +// ingesting. +message IngestionFailureEvent { + // Specifies the reason why some data may have been left out of + // the desired Pub/Sub message due to the API message limits + // (https://cloud.google.com/pubsub/quotas#resource_limits). For example, + // when the number of attributes is larger than 100, the number of + // attributes is truncated to 100 to respect the limit on the attribute count. + // Other attribute limits are treated similarly. When the size of the desired + // message would've been larger than 10MB, the message won't be published at + // all, and ingestion of the subsequent messages will proceed as normal. + message ApiViolationReason {} + + // Set when an Avro file is unsupported or its format is not valid. When this + // occurs, one or more Avro objects won't be ingested. + message AvroFailureReason {} + + // Set when a Pub/Sub message fails to get published due to a schema + // validation violation. + message SchemaViolationReason {} + + // Set when a Pub/Sub message fails to get published due to a message + // transformation error. + message MessageTransformationFailureReason {} + + // Failure when ingesting from a Cloud Storage source. + message CloudStorageFailure { + // Optional. Name of the Cloud Storage bucket used for ingestion. + string bucket = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Name of the Cloud Storage object which contained the section + // that couldn't be ingested. + string object_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Generation of the Cloud Storage object which contained the + // section that couldn't be ingested. + int64 object_generation = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Reason why ingestion failed for the specified object. + oneof reason { + // Optional. Failure encountered when parsing an Avro file. + AvroFailureReason avro_failure_reason = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Pub/Sub API limits prevented the desired message from + // being published. + ApiViolationReason api_violation_reason = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Pub/Sub message failed schema validation. + SchemaViolationReason schema_violation_reason = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Failure encountered when applying a message transformation to + // the Pub/Sub message. + MessageTransformationFailureReason message_transformation_failure_reason = + 8 [(google.api.field_behavior) = OPTIONAL]; + } + } + + // Failure when ingesting from an Amazon MSK source. + message AwsMskFailureReason { + // Optional. The ARN of the cluster of the topic being ingested from. + string cluster_arn = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of the Kafka topic being ingested from. + string kafka_topic = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The partition ID of the message that failed to be ingested. + int64 partition_id = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The offset within the partition of the message that failed to + // be ingested. + int64 offset = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Reason why ingestion failed for the specified message. + oneof reason { + // Optional. The Pub/Sub API limits prevented the desired message from + // being published. + ApiViolationReason api_violation_reason = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Pub/Sub message failed schema validation. + SchemaViolationReason schema_violation_reason = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Failure encountered when applying a message transformation to + // the Pub/Sub message. + MessageTransformationFailureReason message_transformation_failure_reason = + 7 [(google.api.field_behavior) = OPTIONAL]; + } + } + + // Failure when ingesting from an Azure Event Hubs source. + message AzureEventHubsFailureReason { + // Optional. The namespace containing the event hub being ingested from. + string namespace = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of the event hub being ingested from. + string event_hub = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The partition ID of the message that failed to be ingested. + int64 partition_id = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The offset within the partition of the message that failed to + // be ingested. + int64 offset = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Reason why ingestion failed for the specified message. + oneof reason { + // Optional. The Pub/Sub API limits prevented the desired message from + // being published. + ApiViolationReason api_violation_reason = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Pub/Sub message failed schema validation. + SchemaViolationReason schema_violation_reason = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Failure encountered when applying a message transformation to + // the Pub/Sub message. + MessageTransformationFailureReason message_transformation_failure_reason = + 7 [(google.api.field_behavior) = OPTIONAL]; + } + } + + // Failure when ingesting from a Confluent Cloud source. + message ConfluentCloudFailureReason { + // Optional. The cluster ID containing the topic being ingested from. + string cluster_id = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of the Kafka topic being ingested from. + string kafka_topic = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The partition ID of the message that failed to be ingested. + int64 partition_id = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The offset within the partition of the message that failed to + // be ingested. + int64 offset = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Reason why ingestion failed for the specified message. + oneof reason { + // Optional. The Pub/Sub API limits prevented the desired message from + // being published. + ApiViolationReason api_violation_reason = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Pub/Sub message failed schema validation. + SchemaViolationReason schema_violation_reason = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Failure encountered when applying a message transformation to + // the Pub/Sub message. + MessageTransformationFailureReason message_transformation_failure_reason = + 7 [(google.api.field_behavior) = OPTIONAL]; + } + } + + // Failure when ingesting from an AWS Kinesis source. + message AwsKinesisFailureReason { + // Optional. The stream ARN of the Kinesis stream being ingested from. + string stream_arn = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The partition key of the message that failed to be ingested. + string partition_key = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The sequence number of the message that failed to be ingested. + string sequence_number = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Reason why ingestion failed for the specified message. + oneof reason { + // Optional. The Pub/Sub message failed schema validation. + SchemaViolationReason schema_violation_reason = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Failure encountered when applying a message transformation to + // the Pub/Sub message. + MessageTransformationFailureReason message_transformation_failure_reason = + 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The message failed to be published due to an API violation. + // This is only set when the size of the data field of the Kinesis record + // is zero. + ApiViolationReason api_violation_reason = 6 + [(google.api.field_behavior) = OPTIONAL]; + } + } + + // Required. Name of the import topic. Format is: + // projects/{project_name}/topics/{topic_name}. + string topic = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "pubsub.googleapis.com/Topic" } + ]; + + // Required. Error details explaining why ingestion to Pub/Sub has failed. + string error_message = 2 [(google.api.field_behavior) = REQUIRED]; + + oneof failure { + // Optional. Failure when ingesting from Cloud Storage. + CloudStorageFailure cloud_storage_failure = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Failure when ingesting from Amazon MSK. + AwsMskFailureReason aws_msk_failure = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Failure when ingesting from Azure Event Hubs. + AzureEventHubsFailureReason azure_event_hubs_failure = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Failure when ingesting from Confluent Cloud. + ConfluentCloudFailureReason confluent_cloud_failure = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Failure when ingesting from AWS Kinesis. + AwsKinesisFailureReason aws_kinesis_failure = 7 + [(google.api.field_behavior) = OPTIONAL]; + } +} + +// User-defined JavaScript function that can transform or filter a Pub/Sub +// message. +message JavaScriptUDF { + // Required. Name of the JavasScript function that should applied to Pub/Sub + // messages. + string function_name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. JavaScript code that contains a function `function_name` with the + // below signature: + // + // ``` + // /** + // * Transforms a Pub/Sub message. + // + // * @return {(Object)>|null)} - To + // * filter a message, return `null`. To transform a message return a map + // * with the following keys: + // * - (required) 'data' : {string} + // * - (optional) 'attributes' : {Object} + // * Returning empty `attributes` will remove all attributes from the + // * message. + // * + // * @param {(Object)>} Pub/Sub + // * message. Keys: + // * - (required) 'data' : {string} + // * - (required) 'attributes' : {Object} + // * + // * @param {Object} metadata - Pub/Sub message metadata. + // * Keys: + // * - (optional) 'message_id' : {string} + // * - (optional) 'publish_time': {string} YYYY-MM-DDTHH:MM:SSZ format + // * - (optional) 'ordering_key': {string} + // */ + // + // function (message, metadata) { + // } + // ``` + string code = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// All supported message transforms types. +message MessageTransform { + // The type of transform to apply to messages. + oneof transform { + // Optional. JavaScript User Defined Function. If multiple JavaScriptUDF's + // are specified on a resource, each must have a unique `function_name`. + JavaScriptUDF javascript_udf = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. This field is deprecated, use the `disabled` field to disable + // transforms. + bool enabled = 3 [deprecated = true, (google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, the transform is disabled and will not be applied to + // messages. Defaults to `false`. + bool disabled = 4 [(google.api.field_behavior) = OPTIONAL]; } // A topic resource. @@ -177,47 +829,96 @@ message Topic { type: "pubsub.googleapis.com/Topic" pattern: "projects/{project}/topics/{topic}" pattern: "_deleted-topic_" + plural: "topics" + singular: "topic" }; - // Required. The name of the topic. It must have the format + // The state of the topic. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // The topic does not have any persistent errors. + ACTIVE = 1; + + // Ingestion from the data source has encountered a permanent error. + // See the more detailed error state in the corresponding ingestion + // source configuration. + INGESTION_RESOURCE_ERROR = 2; + } + + // Required. Identifier. The name of the topic. It must have the format // `"projects/{project}/topics/{topic}"`. `{topic}` must start with a letter, // and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`), // underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent // signs (`%`). It must be between 3 and 255 characters in length, and it // must not start with `"goog"`. - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER + ]; - // See [Creating and managing labels] + // Optional. See [Creating and managing labels] // (https://cloud.google.com/pubsub/docs/labels). - map labels = 2; + map labels = 2 [(google.api.field_behavior) = OPTIONAL]; - // Policy constraining the set of Google Cloud Platform regions where messages - // published to the topic may be stored. If not present, then no constraints - // are in effect. - MessageStoragePolicy message_storage_policy = 3; + // Optional. Policy constraining the set of Google Cloud Platform regions + // where messages published to the topic may be stored. If not present, then + // no constraints are in effect. + MessageStoragePolicy message_storage_policy = 3 + [(google.api.field_behavior) = OPTIONAL]; - // The resource name of the Cloud KMS CryptoKey to be used to protect access - // to messages published on this topic. + // Optional. The resource name of the Cloud KMS CryptoKey to be used to + // protect access to messages published on this topic. // // The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`. - string kms_key_name = 5; + string kms_key_name = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; - // Settings for validating messages published against a schema. - SchemaSettings schema_settings = 6; + // Optional. Settings for validating messages published against a schema. + SchemaSettings schema_settings = 6 [(google.api.field_behavior) = OPTIONAL]; - // Reserved for future use. This field is set only in responses from the - // server; it is ignored if it is set in any requests. - bool satisfies_pzs = 7; + // Optional. Reserved for future use. This field is set only in responses from + // the server; it is ignored if it is set in any requests. + bool satisfies_pzs = 7 [(google.api.field_behavior) = OPTIONAL]; - // Indicates the minimum duration to retain a message after it is published to - // the topic. If this field is set, messages published to the topic in the - // last `message_retention_duration` are always available to subscribers. For - // instance, it allows any attached subscription to [seek to a + // Optional. Indicates the minimum duration to retain a message after it is + // published to the topic. If this field is set, messages published to the + // topic in the last `message_retention_duration` are always available to + // subscribers. For instance, it allows any attached subscription to [seek to + // a // timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) // that is up to `message_retention_duration` in the past. If this field is // not set, message retention is controlled by settings on individual // subscriptions. Cannot be more than 31 days or less than 10 minutes. - google.protobuf.Duration message_retention_duration = 8; + google.protobuf.Duration message_retention_duration = 8 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. An output-only field indicating the state of the topic. + State state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Settings for ingestion from a data source into this topic. + IngestionDataSourceSettings ingestion_data_source_settings = 10 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Transforms to be applied to messages published to the topic. + // Transforms are applied in the order specified. + repeated MessageTransform message_transforms = 13 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Input only. Immutable. Tag keys/values directly bound to this + // resource. For example: + // "123/environment": "production", + // "123/costCenter": "marketing" + map tags = 14 [ + (google.api.field_behavior) = INPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OPTIONAL + ]; } // A message that is published by publishers and consumed by subscribers. The @@ -229,14 +930,14 @@ message Topic { // (https://cloud.google.com/pubsub/quotas) for more information about message // limits. message PubsubMessage { - // The message data field. If this field is empty, the message must contain - // at least one attribute. - bytes data = 1; + // Optional. The message data field. If this field is empty, the message must + // contain at least one attribute. + bytes data = 1 [(google.api.field_behavior) = OPTIONAL]; - // Attributes for this message. If this field is empty, the message must - // contain non-empty data. This can be used to filter messages on the + // Optional. Attributes for this message. If this field is empty, the message + // must contain non-empty data. This can be used to filter messages on the // subscription. - map attributes = 2; + map attributes = 2 [(google.api.field_behavior) = OPTIONAL]; // ID of this message, assigned by the server when the message is published. // Guaranteed to be unique within the topic. This value may be read by a @@ -249,23 +950,24 @@ message PubsubMessage { // publisher in a `Publish` call. google.protobuf.Timestamp publish_time = 4; - // If non-empty, identifies related messages for which publish order should be - // respected. If a `Subscription` has `enable_message_ordering` set to `true`, - // messages published with the same non-empty `ordering_key` value will be - // delivered to subscribers in the order in which they are received by the - // Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest` - // must specify the same `ordering_key` value. - // For more information, see [ordering + // Optional. If non-empty, identifies related messages for which publish order + // should be respected. If a `Subscription` has `enable_message_ordering` set + // to `true`, messages published with the same non-empty `ordering_key` value + // will be delivered to subscribers in the order in which they are received by + // the Pub/Sub system. All `PubsubMessage`s published in a given + // `PublishRequest` must specify the same `ordering_key` value. For more + // information, see [ordering // messages](https://cloud.google.com/pubsub/docs/ordering). - string ordering_key = 5; + string ordering_key = 5 [(google.api.field_behavior) = OPTIONAL]; } // Request for the GetTopic method. message GetTopicRequest { - // Required. The name of the topic to get. + // Required. Identifier. The name of the topic to get. // Format is `projects/{project}/topics/{topic}`. string topic = 1 [ (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER, (google.api.resource_reference) = { type: "pubsub.googleapis.com/Topic" } ]; } @@ -286,10 +988,11 @@ message UpdateTopicRequest { // Request for the Publish method. message PublishRequest { - // Required. The messages in the request will be published on this topic. - // Format is `projects/{project}/topics/{topic}`. + // Required. Identifier. The messages in the request will be published on this + // topic. Format is `projects/{project}/topics/{topic}`. string topic = 1 [ (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER, (google.api.resource_reference) = { type: "pubsub.googleapis.com/Topic" } ]; @@ -299,40 +1002,41 @@ message PublishRequest { // Response for the `Publish` method. message PublishResponse { - // The server-assigned ID of each published message, in the same order as - // the messages in the request. IDs are guaranteed to be unique within - // the topic. - repeated string message_ids = 1; + // Optional. The server-assigned ID of each published message, in the same + // order as the messages in the request. IDs are guaranteed to be unique + // within the topic. + repeated string message_ids = 1 [(google.api.field_behavior) = OPTIONAL]; } // Request for the `ListTopics` method. message ListTopicsRequest { - // Required. The name of the project in which to list topics. + // Required. Identifier. The name of the project in which to list topics. // Format is `projects/{project-id}`. string project = 1 [ (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER, (google.api.resource_reference) = { type: "cloudresourcemanager.googleapis.com/Project" } ]; - // Maximum number of topics to return. - int32 page_size = 2; + // Optional. Maximum number of topics to return. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - // The value returned by the last `ListTopicsResponse`; indicates that this is - // a continuation of a prior `ListTopics` call, and that the system should - // return the next page of data. - string page_token = 3; + // Optional. The value returned by the last `ListTopicsResponse`; indicates + // that this is a continuation of a prior `ListTopics` call, and that the + // system should return the next page of data. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; } // Response for the `ListTopics` method. message ListTopicsResponse { - // The resulting topics. - repeated Topic topics = 1; + // Optional. The resulting topics. + repeated Topic topics = 1 [(google.api.field_behavior) = OPTIONAL]; - // If not empty, indicates that there may be more topics that match the - // request; this value should be passed in a new `ListTopicsRequest`. - string next_page_token = 2; + // Optional. If not empty, indicates that there may be more topics that match + // the request; this value should be passed in a new `ListTopicsRequest`. + string next_page_token = 2 [(google.api.field_behavior) = OPTIONAL]; } // Request for the `ListTopicSubscriptions` method. @@ -344,26 +1048,30 @@ message ListTopicSubscriptionsRequest { (google.api.resource_reference) = { type: "pubsub.googleapis.com/Topic" } ]; - // Maximum number of subscription names to return. - int32 page_size = 2; + // Optional. Maximum number of subscription names to return. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - // The value returned by the last `ListTopicSubscriptionsResponse`; indicates - // that this is a continuation of a prior `ListTopicSubscriptions` call, and - // that the system should return the next page of data. - string page_token = 3; + // Optional. The value returned by the last `ListTopicSubscriptionsResponse`; + // indicates that this is a continuation of a prior `ListTopicSubscriptions` + // call, and that the system should return the next page of data. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; } // Response for the `ListTopicSubscriptions` method. message ListTopicSubscriptionsResponse { - // The names of subscriptions attached to the topic specified in the request. - repeated string subscriptions = 1 [(google.api.resource_reference) = { - type: "pubsub.googleapis.com/Subscription" - }]; + // Optional. The names of subscriptions attached to the topic specified in the + // request. + repeated string subscriptions = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "pubsub.googleapis.com/Subscription" + } + ]; - // If not empty, indicates that there may be more subscriptions that match - // the request; this value should be passed in a new + // Optional. If not empty, indicates that there may be more subscriptions that + // match the request; this value should be passed in a new // `ListTopicSubscriptionsRequest` to get more subscriptions. - string next_page_token = 2; + string next_page_token = 2 [(google.api.field_behavior) = OPTIONAL]; } // Request for the `ListTopicSnapshots` method. @@ -375,32 +1083,36 @@ message ListTopicSnapshotsRequest { (google.api.resource_reference) = { type: "pubsub.googleapis.com/Topic" } ]; - // Maximum number of snapshot names to return. - int32 page_size = 2; + // Optional. Maximum number of snapshot names to return. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - // The value returned by the last `ListTopicSnapshotsResponse`; indicates - // that this is a continuation of a prior `ListTopicSnapshots` call, and - // that the system should return the next page of data. - string page_token = 3; + // Optional. The value returned by the last `ListTopicSnapshotsResponse`; + // indicates that this is a continuation of a prior `ListTopicSnapshots` call, + // and that the system should return the next page of data. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; } // Response for the `ListTopicSnapshots` method. message ListTopicSnapshotsResponse { - // The names of the snapshots that match the request. - repeated string snapshots = 1; + // Optional. The names of the snapshots that match the request. + repeated string snapshots = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "pubsub.googleapis.com/Snapshot" } + ]; - // If not empty, indicates that there may be more snapshots that match - // the request; this value should be passed in a new + // Optional. If not empty, indicates that there may be more snapshots that + // match the request; this value should be passed in a new // `ListTopicSnapshotsRequest` to get more snapshots. - string next_page_token = 2; + string next_page_token = 2 [(google.api.field_behavior) = OPTIONAL]; } // Request for the `DeleteTopic` method. message DeleteTopicRequest { - // Required. Name of the topic to delete. + // Required. Identifier. Name of the topic to delete. // Format is `projects/{project}/topics/{topic}`. string topic = 1 [ (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER, (google.api.resource_reference) = { type: "pubsub.googleapis.com/Topic" } ]; } @@ -458,8 +1170,9 @@ service Subscriber { option (google.api.method_signature) = "subscription"; } - // Updates an existing subscription. Note that certain properties of a - // subscription, such as its topic, are not modifiable. + // Updates an existing subscription by updating the fields specified in the + // update mask. Note that certain properties of a subscription, such as its + // topic, are not modifiable. rpc UpdateSubscription(UpdateSubscriptionRequest) returns (Subscription) { option (google.api.http) = { patch: "/v1/{subscription.name=projects/*/subscriptions/*}" @@ -532,7 +1245,7 @@ service Subscriber { } // Establishes a stream with the server, which sends messages down to the - // client. The client streams acknowledgements and ack deadline modifications + // client. The client streams acknowledgments and ack deadline modifications // back to the server. The server will close the stream and return the status // on any error. The server may close the stream with status `UNAVAILABLE` to // reassign server-side resources, in which case, the client should @@ -604,7 +1317,8 @@ service Subscriber { option (google.api.method_signature) = "name,subscription"; } - // Updates an existing snapshot. Snapshots are used in + // Updates an existing snapshot by updating the fields specified in the update + // mask. Snapshots are used in // [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations, // which allow you to manage message acknowledgments in bulk. That is, you can // set the acknowledgment state of messages in an existing subscription to the @@ -655,6 +1369,8 @@ message Subscription { option (google.api.resource) = { type: "pubsub.googleapis.com/Subscription" pattern: "projects/{project}/subscriptions/{subscription}" + plural: "subscriptions" + singular: "subscription" }; // Possible states for a subscription. @@ -671,13 +1387,35 @@ message Subscription { RESOURCE_ERROR = 2; } - // Required. The name of the subscription. It must have the format + // Information about an associated [Analytics Hub + // subscription](https://cloud.google.com/bigquery/docs/analytics-hub-manage-subscriptions). + message AnalyticsHubSubscriptionInfo { + // Optional. The name of the associated Analytics Hub listing resource. + // Pattern: + // "projects/{project}/locations/{location}/dataExchanges/{data_exchange}/listings/{listing}" + string listing = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "analyticshub.googleapis.com/Listing" + } + ]; + + // Optional. The name of the associated Analytics Hub subscription resource. + // Pattern: + // "projects/{project}/locations/{location}/subscriptions/{subscription}" + string subscription = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. Identifier. The name of the subscription. It must have the format // `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must // start with a letter, and contain only letters (`[A-Za-z]`), numbers // (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`), // plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters // in length, and it must not start with `"goog"`. - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER + ]; // Required. The name of the topic from which this subscription is receiving // messages. Format is `projects/{project}/topics/{topic}`. The value of this @@ -687,23 +1425,24 @@ message Subscription { (google.api.resource_reference) = { type: "pubsub.googleapis.com/Topic" } ]; - // If push delivery is used with this subscription, this field is - // used to configure it. - PushConfig push_config = 4; - - // If delivery to BigQuery is used with this subscription, this field is + // Optional. If push delivery is used with this subscription, this field is // used to configure it. - BigQueryConfig bigquery_config = 18; + PushConfig push_config = 4 [(google.api.field_behavior) = OPTIONAL]; - // If delivery to Google Cloud Storage is used with this subscription, this + // Optional. If delivery to BigQuery is used with this subscription, this // field is used to configure it. - CloudStorageConfig cloud_storage_config = 22; - - // The approximate amount of time (on a best-effort basis) Pub/Sub waits for - // the subscriber to acknowledge receipt before resending the message. In the - // interval after the message is delivered and before it is acknowledged, it - // is considered to be _outstanding_. During that time period, the - // message will not be redelivered (on a best-effort basis). + BigQueryConfig bigquery_config = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If delivery to Google Cloud Storage is used with this + // subscription, this field is used to configure it. + CloudStorageConfig cloud_storage_config = 22 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The approximate amount of time (on a best-effort basis) Pub/Sub + // waits for the subscriber to acknowledge receipt before resending the + // message. In the interval after the message is delivered and before it is + // acknowledged, it is considered to be _outstanding_. During that time + // period, the message will not be redelivered (on a best-effort basis). // // For pull subscriptions, this value is used as the initial value for the ack // deadline. To override this value for a given message, call @@ -719,88 +1458,92 @@ message Subscription { // // If the subscriber never acknowledges the message, the Pub/Sub // system will eventually redeliver the message. - int32 ack_deadline_seconds = 5; + int32 ack_deadline_seconds = 5 [(google.api.field_behavior) = OPTIONAL]; - // Indicates whether to retain acknowledged messages. If true, then + // Optional. Indicates whether to retain acknowledged messages. If true, then // messages are not expunged from the subscription's backlog, even if they are // acknowledged, until they fall out of the `message_retention_duration` // window. This must be true if you would like to [`Seek` to a timestamp] // (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) in // the past to replay previously-acknowledged messages. - bool retain_acked_messages = 7; + bool retain_acked_messages = 7 [(google.api.field_behavior) = OPTIONAL]; - // How long to retain unacknowledged messages in the subscription's backlog, - // from the moment a message is published. - // If `retain_acked_messages` is true, then this also configures the retention - // of acknowledged messages, and thus configures how far back in time a `Seek` - // can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10 - // minutes. - google.protobuf.Duration message_retention_duration = 8; + // Optional. How long to retain unacknowledged messages in the subscription's + // backlog, from the moment a message is published. If `retain_acked_messages` + // is true, then this also configures the retention of acknowledged messages, + // and thus configures how far back in time a `Seek` can be done. Defaults to + // 7 days. Cannot be more than 31 days or less than 10 minutes. + google.protobuf.Duration message_retention_duration = 8 + [(google.api.field_behavior) = OPTIONAL]; - // See [Creating and managing + // Optional. See [Creating and managing // labels](https://cloud.google.com/pubsub/docs/labels). - map labels = 9; - - // If true, messages published with the same `ordering_key` in `PubsubMessage` - // will be delivered to the subscribers in the order in which they - // are received by the Pub/Sub system. Otherwise, they may be delivered in - // any order. - bool enable_message_ordering = 10; - - // A policy that specifies the conditions for this subscription's expiration. - // A subscription is considered active as long as any connected subscriber is - // successfully consuming messages from the subscription or is issuing - // operations on the subscription. If `expiration_policy` is not set, a - // *default policy* with `ttl` of 31 days will be used. The minimum allowed + map labels = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, messages published with the same `ordering_key` in + // `PubsubMessage` will be delivered to the subscribers in the order in which + // they are received by the Pub/Sub system. Otherwise, they may be delivered + // in any order. + bool enable_message_ordering = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A policy that specifies the conditions for this subscription's + // expiration. A subscription is considered active as long as any connected + // subscriber is successfully consuming messages from the subscription or is + // issuing operations on the subscription. If `expiration_policy` is not set, + // a *default policy* with `ttl` of 31 days will be used. The minimum allowed // value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set, // but `expiration_policy.ttl` is not set, the subscription never expires. - ExpirationPolicy expiration_policy = 11; + ExpirationPolicy expiration_policy = 11 + [(google.api.field_behavior) = OPTIONAL]; - // An expression written in the Pub/Sub [filter + // Optional. An expression written in the Pub/Sub [filter // language](https://cloud.google.com/pubsub/docs/filtering). If non-empty, // then only `PubsubMessage`s whose `attributes` field matches the filter are // delivered on this subscription. If empty, then no messages are filtered // out. - string filter = 12; + string filter = 12 [(google.api.field_behavior) = OPTIONAL]; - // A policy that specifies the conditions for dead lettering messages in - // this subscription. If dead_letter_policy is not set, dead lettering - // is disabled. + // Optional. A policy that specifies the conditions for dead lettering + // messages in this subscription. If dead_letter_policy is not set, dead + // lettering is disabled. // - // The Cloud Pub/Sub service account associated with this subscriptions's + // The Pub/Sub service account associated with this subscriptions's // parent project (i.e., // service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have // permission to Acknowledge() messages on this subscription. - DeadLetterPolicy dead_letter_policy = 13; + DeadLetterPolicy dead_letter_policy = 13 + [(google.api.field_behavior) = OPTIONAL]; - // A policy that specifies how Pub/Sub retries message delivery for this - // subscription. + // Optional. A policy that specifies how Pub/Sub retries message delivery for + // this subscription. // // If not set, the default retry policy is applied. This generally implies // that messages will be retried as soon as possible for healthy subscribers. - // RetryPolicy will be triggered on NACKs or acknowledgement deadline - // exceeded events for a given message. - RetryPolicy retry_policy = 14; + // RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded + // events for a given message. + RetryPolicy retry_policy = 14 [(google.api.field_behavior) = OPTIONAL]; - // Indicates whether the subscription is detached from its topic. Detached - // subscriptions don't receive messages from their topic and don't retain any - // backlog. `Pull` and `StreamingPull` requests will return + // Optional. Indicates whether the subscription is detached from its topic. + // Detached subscriptions don't receive messages from their topic and don't + // retain any backlog. `Pull` and `StreamingPull` requests will return // FAILED_PRECONDITION. If the subscription is a push subscription, pushes to // the endpoint will not be made. - bool detached = 15; + bool detached = 15 [(google.api.field_behavior) = OPTIONAL]; - // If true, Pub/Sub provides the following guarantees for the delivery of - // a message with a given value of `message_id` on this subscription: + // Optional. If true, Pub/Sub provides the following guarantees for the + // delivery of a message with a given value of `message_id` on this + // subscription: // // * The message sent to a subscriber is guaranteed not to be resent - // before the message's acknowledgement deadline expires. + // before the message's acknowledgment deadline expires. // * An acknowledged message will not be resent to a subscriber. // // Note that subscribers may still receive multiple copies of a message // when `enable_exactly_once_delivery` is true if the message was published // multiple times by a publisher client. These copies are considered distinct // by Pub/Sub and have distinct `message_id` values. - bool enable_exactly_once_delivery = 16; + bool enable_exactly_once_delivery = 16 + [(google.api.field_behavior) = OPTIONAL]; // Output only. Indicates the minimum duration for which a message is retained // after it is published to the subscription's topic. If this field is set, @@ -814,27 +1557,50 @@ message Subscription { // Output only. An output-only field indicating whether or not the // subscription can receive messages. State state = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Information about the associated Analytics Hub subscription. + // Only set if the subscritpion is created by Analytics Hub. + AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Transforms to be applied to messages before they are delivered to + // subscribers. Transforms are applied in the order specified. + repeated MessageTransform message_transforms = 25 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Input only. Immutable. Tag keys/values directly bound to this + // resource. For example: + // "123/environment": "production", + // "123/costCenter": "marketing" + map tags = 26 [ + (google.api.field_behavior) = INPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OPTIONAL + ]; } -// A policy that specifies how Cloud Pub/Sub retries message delivery. +// A policy that specifies how Pub/Sub retries message delivery. // // Retry delay will be exponential based on provided minimum and maximum // backoffs. https://en.wikipedia.org/wiki/Exponential_backoff. // -// RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded +// RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded // events for a given message. // // Retry Policy is implemented on a best effort basis. At times, the delay // between consecutive deliveries may not match the configuration. That is, // delay can be more or less than configured backoff. message RetryPolicy { - // The minimum delay between consecutive deliveries of a given message. - // Value should be between 0 and 600 seconds. Defaults to 10 seconds. - google.protobuf.Duration minimum_backoff = 1; - - // The maximum delay between consecutive deliveries of a given message. - // Value should be between 0 and 600 seconds. Defaults to 600 seconds. - google.protobuf.Duration maximum_backoff = 2; + // Optional. The minimum delay between consecutive deliveries of a given + // message. Value should be between 0 and 600 seconds. Defaults to 10 seconds. + google.protobuf.Duration minimum_backoff = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum delay between consecutive deliveries of a given + // message. Value should be between 0 and 600 seconds. Defaults to 600 + // seconds. + google.protobuf.Duration maximum_backoff = 2 + [(google.api.field_behavior) = OPTIONAL]; } // Dead lettering is done on a best effort basis. The same message might be @@ -843,22 +1609,25 @@ message RetryPolicy { // If validation on any of the fields fails at subscription creation/updation, // the create/update subscription request will fail. message DeadLetterPolicy { - // The name of the topic to which dead letter messages should be published. - // Format is `projects/{project}/topics/{topic}`.The Cloud Pub/Sub service - // account associated with the enclosing subscription's parent project (i.e., - // service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have - // permission to Publish() to this topic. + // Optional. The name of the topic to which dead letter messages should be + // published. Format is `projects/{project}/topics/{topic}`.The Pub/Sub + // service account associated with the enclosing subscription's parent project + // (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must + // have permission to Publish() to this topic. // // The operation will fail if the topic does not exist. // Users should ensure that there is a subscription attached to this topic // since messages published to a topic with no subscriptions are lost. - string dead_letter_topic = 1; + string dead_letter_topic = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "pubsub.googleapis.com/Topic" } + ]; - // The maximum number of delivery attempts for any message. The value must be - // between 5 and 100. + // Optional. The maximum number of delivery attempts for any message. The + // value must be between 5 and 100. // // The number of delivery attempts is defined as 1 + (the sum of number of - // NACKs and number of times the acknowledgement deadline has been exceeded + // NACKs and number of times the acknowledgment deadline has been exceeded // for the message). // // A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that @@ -867,19 +1636,19 @@ message DeadLetterPolicy { // This field will be honored on a best effort basis. // // If this parameter is 0, a default value of 5 is used. - int32 max_delivery_attempts = 2; + int32 max_delivery_attempts = 2 [(google.api.field_behavior) = OPTIONAL]; } // A policy that specifies the conditions for resource expiration (i.e., // automatic resource deletion). message ExpirationPolicy { - // Specifies the "time-to-live" duration for an associated resource. The - // resource expires if it is not active for a period of `ttl`. The definition - // of "activity" depends on the type of the associated resource. The minimum - // and maximum allowed values for `ttl` depend on the type of the associated - // resource, as well. If `ttl` is not set, the associated resource never - // expires. - google.protobuf.Duration ttl = 1; + // Optional. Specifies the "time-to-live" duration for an associated resource. + // The resource expires if it is not active for a period of `ttl`. The + // definition of "activity" depends on the type of the associated resource. + // The minimum and maximum allowed values for `ttl` depend on the type of the + // associated resource, as well. If `ttl` is not set, the associated resource + // never expires. + google.protobuf.Duration ttl = 1 [(google.api.field_behavior) = OPTIONAL]; } // Configuration for a push delivery endpoint. @@ -888,20 +1657,21 @@ message PushConfig { // [OpenID Connect // token](https://developers.google.com/identity/protocols/OpenIDConnect). message OidcToken { - // [Service account + // Optional. [Service account // email](https://cloud.google.com/iam/docs/service-accounts) // used for generating the OIDC token. For more information // on setting up authentication, see // [Push subscriptions](https://cloud.google.com/pubsub/docs/push). - string service_account_email = 1; - - // Audience to be used when generating OIDC token. The audience claim - // identifies the recipients that the JWT is intended for. The audience - // value is a single case-sensitive string. Having multiple values (array) - // for the audience field is not supported. More info about the OIDC JWT - // token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3 - // Note: if not specified, the Push endpoint URL will be used. - string audience = 2; + string service_account_email = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Audience to be used when generating OIDC token. The audience + // claim identifies the recipients that the JWT is intended for. The + // audience value is a single case-sensitive string. Having multiple values + // (array) for the audience field is not supported. More info about the OIDC + // JWT token audience here: + // https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified, + // the Push endpoint URL will be used. + string audience = 2 [(google.api.field_behavior) = OPTIONAL]; } // The payload to the push endpoint is in the form of the JSON representation @@ -911,18 +1681,18 @@ message PushConfig { // Sets the `data` field as the HTTP body for delivery. message NoWrapper { - // When true, writes the Pub/Sub message metadata to + // Optional. When true, writes the Pub/Sub message metadata to // `x-goog-pubsub-:` headers of the HTTP request. Writes the // Pub/Sub message attributes to `:` headers of the HTTP request. - bool write_metadata = 1; + bool write_metadata = 1 [(google.api.field_behavior) = OPTIONAL]; } - // A URL locating the endpoint to which messages should be pushed. + // Optional. A URL locating the endpoint to which messages should be pushed. // For example, a Webhook endpoint might use `https://example.com/push`. - string push_endpoint = 1; + string push_endpoint = 1 [(google.api.field_behavior) = OPTIONAL]; - // Endpoint configuration attributes that can be used to control different - // aspects of the message delivery. + // Optional. Endpoint configuration attributes that can be used to control + // different aspects of the message delivery. // // The only currently supported attribute is `x-goog-version`, which you can // use to change the format of the pushed message. This attribute @@ -942,29 +1712,30 @@ message PushConfig { // // For example: // `attributes { "x-goog-version": "v1" }` - map attributes = 2; + map attributes = 2 [(google.api.field_behavior) = OPTIONAL]; // An authentication method used by push endpoints to verify the source of // push requests. This can be used with push endpoints that are private by - // default to allow requests only from the Cloud Pub/Sub system, for example. + // default to allow requests only from the Pub/Sub system, for example. // This field is optional and should be set only by users interested in // authenticated push. oneof authentication_method { - // If specified, Pub/Sub will generate and attach an OIDC JWT token as an - // `Authorization` header in the HTTP request for every pushed message. - OidcToken oidc_token = 3; + // Optional. If specified, Pub/Sub will generate and attach an OIDC JWT + // token as an `Authorization` header in the HTTP request for every pushed + // message. + OidcToken oidc_token = 3 [(google.api.field_behavior) = OPTIONAL]; } // The format of the delivered message to the push endpoint is defined by // the chosen wrapper. When unset, `PubsubWrapper` is used. oneof wrapper { - // When set, the payload to the push endpoint is in the form of the JSON - // representation of a PubsubMessage + // Optional. When set, the payload to the push endpoint is in the form of + // the JSON representation of a PubsubMessage // (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage). - PubsubWrapper pubsub_wrapper = 4; + PubsubWrapper pubsub_wrapper = 4 [(google.api.field_behavior) = OPTIONAL]; - // When set, the payload to the push endpoint is not wrapped. - NoWrapper no_wrapper = 5; + // Optional. When set, the payload to the push endpoint is not wrapped. + NoWrapper no_wrapper = 5 [(google.api.field_behavior) = OPTIONAL]; } } @@ -991,30 +1762,34 @@ message BigQueryConfig { // Cannot write to the BigQuery table due to a schema mismatch. SCHEMA_MISMATCH = 4; + + // Cannot write to the destination because enforce_in_transit is set to true + // and the destination locations are not in the allowed regions. + IN_TRANSIT_LOCATION_RESTRICTION = 5; } - // The name of the table to which to write data, of the form + // Optional. The name of the table to which to write data, of the form // {projectId}.{datasetId}.{tableId} - string table = 1; + string table = 1 [(google.api.field_behavior) = OPTIONAL]; // Optional. When true, use the topic's schema as the columns to write to in // BigQuery, if it exists. `use_topic_schema` and `use_table_schema` cannot be // enabled at the same time. bool use_topic_schema = 2 [(google.api.field_behavior) = OPTIONAL]; - // When true, write the subscription name, message_id, publish_time, + // Optional. When true, write the subscription name, message_id, publish_time, // attributes, and ordering_key to additional columns in the table. The // subscription name, message_id, and publish_time fields are put in their own // columns while all other message properties (other than data) are written to // a JSON object in the attributes column. - bool write_metadata = 3; + bool write_metadata = 3 [(google.api.field_behavior) = OPTIONAL]; - // When true and use_topic_schema is true, any fields that are a part of the - // topic schema that are not part of the BigQuery table schema are dropped - // when writing to BigQuery. Otherwise, the schemas must be kept in sync and - // any messages with extra fields are not written and remain in the + // Optional. When true and use_topic_schema is true, any fields that are a + // part of the topic schema that are not part of the BigQuery table schema are + // dropped when writing to BigQuery. Otherwise, the schemas must be kept in + // sync and any messages with extra fields are not written and remain in the // subscription's backlog. - bool drop_unknown_fields = 4; + bool drop_unknown_fields = 4 [(google.api.field_behavior) = OPTIONAL]; // Output only. An output-only field that indicates whether or not the // subscription can receive messages. @@ -1024,6 +1799,14 @@ message BigQueryConfig { // write to in BigQuery. `use_table_schema` and `use_topic_schema` cannot be // enabled at the same time. bool use_table_schema = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The service account to use to write to BigQuery. The subscription + // creator or updater that specifies this field must have + // `iam.serviceAccounts.actAs` permission on the service account. If not + // specified, the Pub/Sub [service + // agent](https://cloud.google.com/iam/docs/service-agents), + // service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used. + string service_account_email = 7 [(google.api.field_behavior) = OPTIONAL]; } // Configuration for a Cloud Storage subscription. @@ -1036,13 +1819,17 @@ message CloudStorageConfig { // Configuration for writing message data in Avro format. // Message payloads and metadata will be written to files as an Avro binary. message AvroConfig { - // When true, write the subscription name, message_id, publish_time, - // attributes, and ordering_key as additional fields in the output. The - // subscription name, message_id, and publish_time fields are put in their - // own fields while all other message properties other than data (for - // example, an ordering_key, if present) are added as entries in the - // attributes map. - bool write_metadata = 1; + // Optional. When true, write the subscription name, message_id, + // publish_time, attributes, and ordering_key as additional fields in the + // output. The subscription name, message_id, and publish_time fields are + // put in their own fields while all other message properties other than + // data (for example, an ordering_key, if present) are added as entries in + // the attributes map. + bool write_metadata = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When true, the output Cloud Storage file will be serialized + // using the topic schema, if it exists. + bool use_topic_schema = 2 [(google.api.field_behavior) = OPTIONAL]; } // Possible states for a Cloud Storage subscription. @@ -1059,6 +1846,14 @@ message CloudStorageConfig { // Cannot write to the Cloud Storage bucket because it does not exist. NOT_FOUND = 3; + + // Cannot write to the destination because enforce_in_transit is set to true + // and the destination locations are not in the allowed regions. + IN_TRANSIT_LOCATION_RESTRICTION = 4; + + // Cannot write to the Cloud Storage bucket due to an incompatibility + // between the topic schema and subscription settings. + SCHEMA_MISMATCH = 5; } // Required. User-provided name for the Cloud Storage bucket. @@ -1067,49 +1862,69 @@ message CloudStorageConfig { // requirements] (https://cloud.google.com/storage/docs/buckets#naming). string bucket = 1 [(google.api.field_behavior) = REQUIRED]; - // User-provided prefix for Cloud Storage filename. See the [object naming - // requirements](https://cloud.google.com/storage/docs/objects#naming). - string filename_prefix = 2; + // Optional. User-provided prefix for Cloud Storage filename. See the [object + // naming requirements](https://cloud.google.com/storage/docs/objects#naming). + string filename_prefix = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. User-provided suffix for Cloud Storage filename. See the [object + // naming requirements](https://cloud.google.com/storage/docs/objects#naming). + // Must not end in "/". + string filename_suffix = 3 [(google.api.field_behavior) = OPTIONAL]; - // User-provided suffix for Cloud Storage filename. See the [object naming - // requirements](https://cloud.google.com/storage/docs/objects#naming). Must - // not end in "/". - string filename_suffix = 3; + // Optional. User-provided format string specifying how to represent datetimes + // in Cloud Storage filenames. See the [datetime format + // guidance](https://cloud.google.com/pubsub/docs/create-cloudstorage-subscription#file_names). + string filename_datetime_format = 10 [(google.api.field_behavior) = OPTIONAL]; // Defaults to text format. oneof output_format { - // If set, message data will be written to Cloud Storage in text format. - TextConfig text_config = 4; + // Optional. If set, message data will be written to Cloud Storage in text + // format. + TextConfig text_config = 4 [(google.api.field_behavior) = OPTIONAL]; - // If set, message data will be written to Cloud Storage in Avro format. - AvroConfig avro_config = 5; + // Optional. If set, message data will be written to Cloud Storage in Avro + // format. + AvroConfig avro_config = 5 [(google.api.field_behavior) = OPTIONAL]; } - // The maximum duration that can elapse before a new Cloud Storage file is - // created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed - // the subscription's acknowledgement deadline. - google.protobuf.Duration max_duration = 6; + // Optional. The maximum duration that can elapse before a new Cloud Storage + // file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not + // exceed the subscription's acknowledgment deadline. + google.protobuf.Duration max_duration = 6 + [(google.api.field_behavior) = OPTIONAL]; - // The maximum bytes that can be written to a Cloud Storage file before a new - // file is created. Min 1 KB, max 10 GiB. The max_bytes limit may be exceeded - // in cases where messages are larger than the limit. - int64 max_bytes = 7; + // Optional. The maximum bytes that can be written to a Cloud Storage file + // before a new file is created. Min 1 KB, max 10 GiB. The max_bytes limit may + // be exceeded in cases where messages are larger than the limit. + int64 max_bytes = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum number of messages that can be written to a Cloud + // Storage file before a new file is created. Min 1000 messages. + int64 max_messages = 8 [(google.api.field_behavior) = OPTIONAL]; // Output only. An output-only field that indicates whether or not the // subscription can receive messages. State state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The service account to use to write to Cloud Storage. The + // subscription creator or updater that specifies this field must have + // `iam.serviceAccounts.actAs` permission on the service account. If not + // specified, the Pub/Sub + // [service agent](https://cloud.google.com/iam/docs/service-agents), + // service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used. + string service_account_email = 11 [(google.api.field_behavior) = OPTIONAL]; } // A message and its corresponding acknowledgment ID. message ReceivedMessage { - // This ID can be used to acknowledge the received message. - string ack_id = 1; + // Optional. This ID can be used to acknowledge the received message. + string ack_id = 1 [(google.api.field_behavior) = OPTIONAL]; - // The message. - PubsubMessage message = 2; + // Optional. The message. + PubsubMessage message = 2 [(google.api.field_behavior) = OPTIONAL]; - // The approximate number of times that Cloud Pub/Sub has attempted to deliver - // the associated message to a subscriber. + // Optional. The approximate number of times that Pub/Sub has attempted to + // deliver the associated message to a subscriber. // // More precisely, this is 1 + (number of NACKs) + // (number of ack_deadline exceeds) for this message. @@ -1124,15 +1939,16 @@ message ReceivedMessage { // value of 1. The value is calculated at best effort and is approximate. // // If a DeadLetterPolicy is not set on the subscription, this will be 0. - int32 delivery_attempt = 3; + int32 delivery_attempt = 3 [(google.api.field_behavior) = OPTIONAL]; } // Request for the GetSubscription method. message GetSubscriptionRequest { - // Required. The name of the subscription to get. + // Required. Identifier. The name of the subscription to get. // Format is `projects/{project}/subscriptions/{sub}`. string subscription = 1 [ (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER, (google.api.resource_reference) = { type: "pubsub.googleapis.com/Subscription" } @@ -1152,41 +1968,44 @@ message UpdateSubscriptionRequest { // Request for the `ListSubscriptions` method. message ListSubscriptionsRequest { - // Required. The name of the project in which to list subscriptions. - // Format is `projects/{project-id}`. + // Required. Identifier. The name of the project in which to list + // subscriptions. Format is `projects/{project-id}`. string project = 1 [ (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER, (google.api.resource_reference) = { type: "cloudresourcemanager.googleapis.com/Project" } ]; - // Maximum number of subscriptions to return. - int32 page_size = 2; + // Optional. Maximum number of subscriptions to return. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - // The value returned by the last `ListSubscriptionsResponse`; indicates that - // this is a continuation of a prior `ListSubscriptions` call, and that the - // system should return the next page of data. - string page_token = 3; + // Optional. The value returned by the last `ListSubscriptionsResponse`; + // indicates that this is a continuation of a prior `ListSubscriptions` call, + // and that the system should return the next page of data. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; } // Response for the `ListSubscriptions` method. message ListSubscriptionsResponse { - // The subscriptions that match the request. - repeated Subscription subscriptions = 1; + // Optional. The subscriptions that match the request. + repeated Subscription subscriptions = 1 + [(google.api.field_behavior) = OPTIONAL]; - // If not empty, indicates that there may be more subscriptions that match - // the request; this value should be passed in a new + // Optional. If not empty, indicates that there may be more subscriptions that + // match the request; this value should be passed in a new // `ListSubscriptionsRequest` to get more subscriptions. - string next_page_token = 2; + string next_page_token = 2 [(google.api.field_behavior) = OPTIONAL]; } // Request for the DeleteSubscription method. message DeleteSubscriptionRequest { - // Required. The subscription to delete. + // Required. Identifier. The subscription to delete. // Format is `projects/{project}/subscriptions/{sub}`. string subscription = 1 [ (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER, (google.api.resource_reference) = { type: "pubsub.googleapis.com/Subscription" } @@ -1242,12 +2061,13 @@ message PullRequest { // Response for the `Pull` method. message PullResponse { - // Received Pub/Sub messages. The list will be empty if there are no more - // messages available in the backlog, or if no messages could be returned + // Optional. Received Pub/Sub messages. The list will be empty if there are no + // more messages available in the backlog, or if no messages could be returned // before the request timeout. For JSON, the response can be entirely // empty. The Pub/Sub system may return fewer than the `maxMessages` requested // even if there are more messages available in the backlog. - repeated ReceivedMessage received_messages = 1; + repeated ReceivedMessage received_messages = 1 + [(google.api.field_behavior) = OPTIONAL]; } // Request for the ModifyAckDeadline method. @@ -1271,7 +2091,8 @@ message ModifyAckDeadlineRequest { // delivery to another subscriber client. This typically results in an // increase in the rate of message redeliveries (that is, duplicates). // The minimum deadline you can specify is 0 seconds. - // The maximum deadline you can specify is 600 seconds (10 minutes). + // The maximum deadline you can specify in a single request is 600 seconds + // (10 minutes). int32 ack_deadline_seconds = 3 [(google.api.field_behavior) = REQUIRED]; } @@ -1293,7 +2114,7 @@ message AcknowledgeRequest { } // Request for the `StreamingPull` streaming RPC method. This request is used to -// establish the initial stream as well as to stream acknowledgements and ack +// establish the initial stream as well as to stream acknowledgments and ack // deadline modifications from the client to the server. message StreamingPullRequest { // Required. The subscription for which to initialize the new stream. This @@ -1307,14 +2128,14 @@ message StreamingPullRequest { } ]; - // List of acknowledgement IDs for acknowledging previously received messages - // (received on this stream or a different stream). If an ack ID has expired, - // the corresponding message may be redelivered later. Acknowledging a message - // more than once will not result in an error. If the acknowledgement ID is - // malformed, the stream will be aborted with status `INVALID_ARGUMENT`. - repeated string ack_ids = 2; + // Optional. List of acknowledgment IDs for acknowledging previously received + // messages (received on this stream or a different stream). If an ack ID has + // expired, the corresponding message may be redelivered later. Acknowledging + // a message more than once will not result in an error. If the acknowledgment + // ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`. + repeated string ack_ids = 2 [(google.api.field_behavior) = OPTIONAL]; - // The list of new ack deadlines for the IDs listed in + // Optional. The list of new ack deadlines for the IDs listed in // `modify_deadline_ack_ids`. The size of this list must be the same as the // size of `modify_deadline_ack_ids`. If it differs the stream will be aborted // with `INVALID_ARGUMENT`. Each element in this list is applied to the @@ -1325,14 +2146,16 @@ message StreamingPullRequest { // the message is immediately made available for another streaming or // non-streaming pull request. If the value is < 0 (an error), the stream will // be aborted with status `INVALID_ARGUMENT`. - repeated int32 modify_deadline_seconds = 3; + repeated int32 modify_deadline_seconds = 3 + [(google.api.field_behavior) = OPTIONAL]; - // List of acknowledgement IDs whose deadline will be modified based on the - // corresponding element in `modify_deadline_seconds`. This field can be used - // to indicate that more time is needed to process a message by the + // Optional. List of acknowledgment IDs whose deadline will be modified based + // on the corresponding element in `modify_deadline_seconds`. This field can + // be used to indicate that more time is needed to process a message by the // subscriber, or to make the message available for redelivery if the // processing was interrupted. - repeated string modify_deadline_ack_ids = 4; + repeated string modify_deadline_ack_ids = 4 + [(google.api.field_behavior) = OPTIONAL]; // Required. The ack deadline to use for the stream. This must be provided in // the first request on the stream, but it can also be updated on subsequent @@ -1341,16 +2164,16 @@ message StreamingPullRequest { int32 stream_ack_deadline_seconds = 5 [(google.api.field_behavior) = REQUIRED]; - // A unique identifier that is used to distinguish client instances from each - // other. Only needs to be provided on the initial request. When a stream - // disconnects and reconnects for the same stream, the client_id should be set - // to the same value so that state associated with the old stream can be - // transferred to the new stream. The same client_id should not be used for + // Optional. A unique identifier that is used to distinguish client instances + // from each other. Only needs to be provided on the initial request. When a + // stream disconnects and reconnects for the same stream, the client_id should + // be set to the same value so that state associated with the old stream can + // be transferred to the new stream. The same client_id should not be used for // different client instances. - string client_id = 6; + string client_id = 6 [(google.api.field_behavior) = OPTIONAL]; - // Flow control settings for the maximum number of outstanding messages. When - // there are `max_outstanding_messages` or more currently sent to the + // Optional. Flow control settings for the maximum number of outstanding + // messages. When there are `max_outstanding_messages` currently sent to the // streaming pull client that have not yet been acked or nacked, the server // stops sending more messages. The sending of messages resumes once the // number of outstanding messages is less than this value. If the value is @@ -1358,88 +2181,107 @@ message StreamingPullRequest { // property can only be set on the initial StreamingPullRequest. If it is set // on a subsequent request, the stream will be aborted with status // `INVALID_ARGUMENT`. - int64 max_outstanding_messages = 7; - - // Flow control settings for the maximum number of outstanding bytes. When - // there are `max_outstanding_bytes` or more worth of messages currently sent - // to the streaming pull client that have not yet been acked or nacked, the - // server will stop sending more messages. The sending of messages resumes - // once the number of outstanding bytes is less than this value. If the value - // is <= 0, there is no limit to the number of outstanding bytes. This - // property can only be set on the initial StreamingPullRequest. If it is set - // on a subsequent request, the stream will be aborted with status + int64 max_outstanding_messages = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Flow control settings for the maximum number of outstanding + // bytes. When there are `max_outstanding_bytes` or more worth of messages + // currently sent to the streaming pull client that have not yet been acked or + // nacked, the server will stop sending more messages. The sending of messages + // resumes once the number of outstanding bytes is less than this value. If + // the value is <= 0, there is no limit to the number of outstanding bytes. + // This property can only be set on the initial StreamingPullRequest. If it is + // set on a subsequent request, the stream will be aborted with status // `INVALID_ARGUMENT`. - int64 max_outstanding_bytes = 8; + int64 max_outstanding_bytes = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The protocol version used by the client. This property can only + // be set on the initial StreamingPullRequest. If it is set on a subsequent + // request, the stream will be aborted with status `INVALID_ARGUMENT`. + int64 protocol_version = 10 [(google.api.field_behavior) = OPTIONAL]; } // Response for the `StreamingPull` method. This response is used to stream // messages from the server to the client. message StreamingPullResponse { - // Acknowledgement IDs sent in one or more previous requests to acknowledge a + // Acknowledgment IDs sent in one or more previous requests to acknowledge a // previously received message. message AcknowledgeConfirmation { - // Successfully processed acknowledgement IDs. - repeated string ack_ids = 1; - - // List of acknowledgement IDs that were malformed or whose acknowledgement - // deadline has expired. - repeated string invalid_ack_ids = 2; - - // List of acknowledgement IDs that were out of order. - repeated string unordered_ack_ids = 3; - - // List of acknowledgement IDs that failed processing with temporary issues. - repeated string temporary_failed_ack_ids = 4; + // Optional. Successfully processed acknowledgment IDs. + repeated string ack_ids = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. List of acknowledgment IDs that were malformed or whose + // acknowledgment deadline has expired. + repeated string invalid_ack_ids = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. List of acknowledgment IDs that were out of order. + repeated string unordered_ack_ids = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. List of acknowledgment IDs that failed processing with + // temporary issues. + repeated string temporary_failed_ack_ids = 4 + [(google.api.field_behavior) = OPTIONAL]; } - // Acknowledgement IDs sent in one or more previous requests to modify the + // Acknowledgment IDs sent in one or more previous requests to modify the // deadline for a specific message. message ModifyAckDeadlineConfirmation { - // Successfully processed acknowledgement IDs. - repeated string ack_ids = 1; - - // List of acknowledgement IDs that were malformed or whose acknowledgement - // deadline has expired. - repeated string invalid_ack_ids = 2; - - // List of acknowledgement IDs that failed processing with temporary issues. - repeated string temporary_failed_ack_ids = 3; + // Optional. Successfully processed acknowledgment IDs. + repeated string ack_ids = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. List of acknowledgment IDs that were malformed or whose + // acknowledgment deadline has expired. + repeated string invalid_ack_ids = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. List of acknowledgment IDs that failed processing with + // temporary issues. + repeated string temporary_failed_ack_ids = 3 + [(google.api.field_behavior) = OPTIONAL]; } // Subscription properties sent as part of the response. message SubscriptionProperties { - // True iff exactly once delivery is enabled for this subscription. - bool exactly_once_delivery_enabled = 1; + // Optional. True iff exactly once delivery is enabled for this + // subscription. + bool exactly_once_delivery_enabled = 1 + [(google.api.field_behavior) = OPTIONAL]; - // True iff message ordering is enabled for this subscription. - bool message_ordering_enabled = 2; + // Optional. True iff message ordering is enabled for this subscription. + bool message_ordering_enabled = 2 [(google.api.field_behavior) = OPTIONAL]; } - // Received Pub/Sub messages. This will not be empty. - repeated ReceivedMessage received_messages = 1; + // Optional. Received Pub/Sub messages. + repeated ReceivedMessage received_messages = 1 + [(google.api.field_behavior) = OPTIONAL]; - // This field will only be set if `enable_exactly_once_delivery` is set to - // `true`. - AcknowledgeConfirmation acknowledge_confirmation = 5; + // Optional. This field will only be set if `enable_exactly_once_delivery` is + // set to `true` and is not guaranteed to be populated. + AcknowledgeConfirmation acknowledge_confirmation = 5 + [(google.api.field_behavior) = OPTIONAL]; - // This field will only be set if `enable_exactly_once_delivery` is set to - // `true`. - ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3; + // Optional. This field will only be set if `enable_exactly_once_delivery` is + // set to `true` and is not guaranteed to be populated. + ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3 + [(google.api.field_behavior) = OPTIONAL]; - // Properties associated with this subscription. - SubscriptionProperties subscription_properties = 4; + // Optional. Properties associated with this subscription. + SubscriptionProperties subscription_properties = 4 + [(google.api.field_behavior) = OPTIONAL]; } // Request for the `CreateSnapshot` method. message CreateSnapshotRequest { - // Required. User-provided name for this snapshot. If the name is not provided - // in the request, the server will assign a random name for this snapshot on - // the same project as the subscription. Note that for REST API requests, you - // must specify a name. See the [resource name + // Required. Identifier. User-provided name for this snapshot. If the name is + // not provided in the request, the server will assign a random name for this + // snapshot on the same project as the subscription. Note that for REST API + // requests, you must specify a name. See the [resource name // rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). // Format is `projects/{project}/snapshots/{snap}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER, (google.api.resource_reference) = { type: "pubsub.googleapis.com/Snapshot" } ]; @@ -1459,9 +2301,19 @@ message CreateSnapshotRequest { } ]; - // See [Creating and managing + // Optional. See [Creating and managing // labels](https://cloud.google.com/pubsub/docs/labels). - map labels = 3; + map labels = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Input only. Immutable. Tag keys/values directly bound to this + // resource. For example: + // "123/environment": "production", + // "123/costCenter": "marketing" + map tags = 4 [ + (google.api.field_behavior) = INPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OPTIONAL + ]; } // Request for the UpdateSnapshot method. @@ -1484,17 +2336,21 @@ message Snapshot { option (google.api.resource) = { type: "pubsub.googleapis.com/Snapshot" pattern: "projects/{project}/snapshots/{snapshot}" + plural: "snapshots" + singular: "snapshot" }; - // The name of the snapshot. - string name = 1; + // Optional. The name of the snapshot. + string name = 1 [(google.api.field_behavior) = OPTIONAL]; - // The name of the topic from which this snapshot is retaining messages. + // Optional. The name of the topic from which this snapshot is retaining + // messages. string topic = 2 [ + (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { type: "pubsub.googleapis.com/Topic" } ]; - // The snapshot is guaranteed to exist up until this time. + // Optional. The snapshot is guaranteed to exist up until this time. // A newly-created snapshot expires no later than 7 days from the time of its // creation. Its exact lifetime is determined at creation by the existing // backlog in the source subscription. Specifically, the lifetime of the @@ -1504,59 +2360,64 @@ message Snapshot { // will always capture this 3-day-old backlog as long as the snapshot // exists -- will expire in 4 days. The service will refuse to create a // snapshot that would expire in less than 1 hour after creation. - google.protobuf.Timestamp expire_time = 3; + google.protobuf.Timestamp expire_time = 3 + [(google.api.field_behavior) = OPTIONAL]; - // See [Creating and managing labels] + // Optional. See [Creating and managing labels] // (https://cloud.google.com/pubsub/docs/labels). - map labels = 4; + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; } // Request for the GetSnapshot method. message GetSnapshotRequest { - // Required. The name of the snapshot to get. + // Required. Identifier. The name of the snapshot to get. // Format is `projects/{project}/snapshots/{snap}`. string snapshot = 1 [ (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER, (google.api.resource_reference) = { type: "pubsub.googleapis.com/Snapshot" } ]; } // Request for the `ListSnapshots` method. message ListSnapshotsRequest { - // Required. The name of the project in which to list snapshots. + // Required. Identifier. The name of the project in which to list snapshots. // Format is `projects/{project-id}`. string project = 1 [ (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER, (google.api.resource_reference) = { type: "cloudresourcemanager.googleapis.com/Project" } ]; - // Maximum number of snapshots to return. - int32 page_size = 2; + // Optional. Maximum number of snapshots to return. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - // The value returned by the last `ListSnapshotsResponse`; indicates that this - // is a continuation of a prior `ListSnapshots` call, and that the system - // should return the next page of data. - string page_token = 3; + // Optional. The value returned by the last `ListSnapshotsResponse`; indicates + // that this is a continuation of a prior `ListSnapshots` call, and that the + // system should return the next page of data. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; } // Response for the `ListSnapshots` method. message ListSnapshotsResponse { - // The resulting snapshots. - repeated Snapshot snapshots = 1; + // Optional. The resulting snapshots. + repeated Snapshot snapshots = 1 [(google.api.field_behavior) = OPTIONAL]; - // If not empty, indicates that there may be more snapshot that match the - // request; this value should be passed in a new `ListSnapshotsRequest`. - string next_page_token = 2; + // Optional. If not empty, indicates that there may be more snapshot that + // match the request; this value should be passed in a new + // `ListSnapshotsRequest`. + string next_page_token = 2 [(google.api.field_behavior) = OPTIONAL]; } // Request for the `DeleteSnapshot` method. message DeleteSnapshotRequest { - // Required. The name of the snapshot to delete. + // Required. Identifier. The name of the snapshot to delete. // Format is `projects/{project}/snapshots/{snap}`. string snapshot = 1 [ (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER, (google.api.resource_reference) = { type: "pubsub.googleapis.com/Snapshot" } ]; } @@ -1572,7 +2433,7 @@ message SeekRequest { ]; oneof target { - // The time to seek to. + // Optional. The time to seek to. // Messages retained in the subscription that were published before this // time are marked as acknowledged, and messages retained in the // subscription that were published after this time are marked as @@ -1583,14 +2444,17 @@ message SeekRequest { // window (or to a point before the system's notion of the subscription // creation time), only retained messages will be marked as unacknowledged, // and already-expunged messages will not be restored. - google.protobuf.Timestamp time = 2; - - // The snapshot to seek to. The snapshot's topic must be the same as that of - // the provided subscription. - // Format is `projects/{project}/snapshots/{snap}`. - string snapshot = 3 [(google.api.resource_reference) = { - type: "pubsub.googleapis.com/Snapshot" - }]; + google.protobuf.Timestamp time = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The snapshot to seek to. The snapshot's topic must be the same + // as that of the provided subscription. Format is + // `projects/{project}/snapshots/{snap}`. + string snapshot = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "pubsub.googleapis.com/Snapshot" + } + ]; } } diff --git a/proto-google-cloud-pubsub-v1/src/main/proto/google/pubsub/v1/schema.proto b/proto-google-cloud-pubsub-v1/src/main/proto/google/pubsub/v1/schema.proto index 32aa0d75c..37fd2f461 100644 --- a/proto-google-cloud-pubsub-v1/src/main/proto/google/pubsub/v1/schema.proto +++ b/proto-google-cloud-pubsub-v1/src/main/proto/google/pubsub/v1/schema.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// 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. @@ -23,9 +23,8 @@ import "google/api/resource.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; -option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.PubSub.V1"; -option go_package = "cloud.google.com/go/pubsub/apiv1/pubsubpb;pubsubpb"; +option go_package = "cloud.google.com/go/pubsub/v2/apiv1/pubsubpb;pubsubpb"; option java_multiple_files = true; option java_outer_classname = "SchemaProto"; option java_package = "com.google.pubsub.v1"; @@ -202,8 +201,8 @@ message CreateSchemaRequest { // The ID to use for the schema, which will become the final component of // the schema's resource name. // - // See https://cloud.google.com/pubsub/docs/admin#resource_names for resource - // name constraints. + // See https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names for + // resource name constraints. string schema_id = 3; } diff --git a/renovate.json b/renovate.json index 977082821..7d5a289e6 100644 --- a/renovate.json +++ b/renovate.json @@ -1,4 +1,6 @@ + { + "extends": [ ":separateMajorReleases", ":combinePatchMinorReleases", @@ -12,7 +14,23 @@ ], "ignorePaths": [ ".kokoro/requirements.txt", - ".github/workflows/**" + ".github/workflows/approve-readme.yaml", + ".github/workflows/ci.yaml", + ".github/workflows/renovate_config_check.yaml", + ".github/workflows/samples.yaml" + ], + "customManagers": [ + { + "customType": "regex", + "fileMatch": [ + "^.github/workflows/unmanaged_dependency_check.yaml$" + ], + "matchStrings": [ + "uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v(?.+?)\\n" + ], + "depNameTemplate": "com.google.cloud:sdk-platform-java-config", + "datasourceTemplate": "maven" + } ], "packageRules": [ { @@ -34,7 +52,6 @@ "^org.jacoco:", "^org.codehaus.mojo:", "^org.sonatype.plugins:", - "^com.coveo:", "^com.google.cloud:google-cloud-shared-config" ], "semanticCommitType": "build", @@ -55,7 +72,8 @@ "^com.google.truth:truth", "^org.mockito:mockito-core", "^org.objenesis:objenesis", - "^com.google.cloud:google-cloud-conformance-tests" + "^com.google.cloud:google-cloud-conformance-tests", + "^org.graalvm.buildtools:junit-platform-native" ], "semanticCommitType": "test", "semanticCommitScope": "deps" @@ -74,5 +92,7 @@ } ], "semanticCommits": true, - "dependencyDashboard": true + "dependencyDashboard": true, + "prConcurrentLimit": 0, + "prHourlyLimit": 0 } diff --git a/samples/README.md b/samples/README.md index 5656f6f4d..4390e7ea6 100644 --- a/samples/README.md +++ b/samples/README.md @@ -2,7 +2,7 @@ 1. Clone this repo and navigate to the `snippets` directory. ```shell - git clone https://github.com/googlepis/java-pubsub + git clone https://github.com/googleapis/java-pubsub cd java-pubsub/samples/snippets ``` diff --git a/samples/checkstyle-suppressions.xml b/samples/checkstyle-suppressions.xml index 2d134a8c2..a1bfbb84a 100644 --- a/samples/checkstyle-suppressions.xml +++ b/samples/checkstyle-suppressions.xml @@ -20,15 +20,9 @@ "https://checkstyle.org/dtds/suppressions_1_2.dtd"> - - - - - - - - - + + - + + \ No newline at end of file diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index bedd4b707..f7b7098da 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -29,7 +29,7 @@ com.google.cloud.samples shared-configuration - 1.2.0 + 1.2.2 @@ -44,20 +44,20 @@ com.google.cloud google-cloud-pubsub - 1.125.13 + 1.143.1 org.apache.avro avro - 1.11.3 + 1.11.4 compile org.xerial.snappy snappy-java - 1.1.10.5 + 1.1.10.8 @@ -69,29 +69,34 @@ com.google.truth truth - 1.2.0 + 1.4.5 test com.google.protobuf protobuf-java-util - 3.25.1 + 4.33.2 com.google.cloud google-cloud-core - 2.28.0 + 2.62.2 tests com.google.cloud google-cloud-bigquery - 2.34.2 + 2.56.0 com.google.cloud google-cloud-storage - 2.30.1 + 2.60.0 + + + com.google.cloud.opentelemetry + exporter-trace + 0.36.0 @@ -101,7 +106,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.5.0 + 3.6.1 add-snippets-source diff --git a/samples/native-image-sample/README.md b/samples/native-image-sample/README.md deleted file mode 100644 index 5f0cd31e9..000000000 --- a/samples/native-image-sample/README.md +++ /dev/null @@ -1,77 +0,0 @@ -# Pub/Sub Sample Application with Native Image - -The Pub/Sub sample application demonstrates some common operations with Pub/Sub and is compatible with Native Image compilation. - -## Setup Instructions - -You will need to follow these prerequisite steps in order to run the samples: - -1. If you have not already, [create a Google Cloud Platform Project](https://cloud.google.com/resource-manager/docs/creating-managing-projects#creating_a_project). - -2. Install the [Google Cloud SDK](https://cloud.google.com/sdk/) which will allow you to run the sample with your project's credentials. - - Once installed, log in with Application Default Credentials using the following command: - - ``` - gcloud auth application-default login - ``` - - **Note:** Authenticating with Application Default Credentials is convenient to use during development, but we recommend [alternate methods of authentication](https://cloud.google.com/docs/authentication/production) during production use. - -3. Install the native image compiler. - - You can follow the [official installation instructions](https://www.graalvm.org/docs/getting-started/#install-graalvm). - After following the instructions, ensure that you install the native image extension installed by running: - - ``` - gu install native-image - ``` - - Once you finish following the instructions, verify that the default version of Java is set to the correct version by running `java -version` in a terminal. - - You will see something similar to the below output: - - ``` - $ java -version - - openjdk version "17.0.3" 2022-04-19 - OpenJDK Runtime Environment GraalVM CE 22.1.0 (build 17.0.3+7-jvmci-22.1-b06) - OpenJDK 64-Bit Server VM GraalVM CE 22.1.0 (build 17.0.3+7-jvmci-22.1-b06, mixed mode, sharing) - ``` - -4. [Enable the Pub/Sub APIs](https://console.cloud.google.com/apis/api/pubsub.googleapis.com). - -### Sample - -Navigate to this directory in a new terminal. - -1. Compile the application using the Native Image Compiler. This step may take a few minutes. - - ``` - mvn package -P native -DskipTests - ``` - -2. Run the application: - - ``` - ./target/native-image-sample - ``` - -3. The application will create a new Pub/Sub topic, send and receive a message from it, and then delete the topic. - - ``` - Created topic: projects/YOUR_PROJECT_ID/topics/graal-pubsub-test-00e72640-4e36-4aff-84d2-13b7569b2289 under project: YOUR_PROJECT_ID - Created pull subscription: projects/YOUR_PROJECT_ID/subscriptions/graal-pubsub-test-sub2fb5e3f3-cb26-439b-b88c-9cb0cfca9e45 - Published message with ID: 457327433078420 - Received Payload: Pub/Sub Native Image Test published message at timestamp: 2020-09-23T19:45:42.746514Z - Deleted topic projects/YOUR_PROJECT_ID/topics/graal-pubsub-test-00e72640-4e36-4aff-84d2-13b7569b2289 - Deleted subscription projects/YOUR_PROJECT_ID/subscriptions/graal-pubsub-test-sub2fb5e3f3-cb26-439b-b88c-9cb0cfca9e45 - ``` - -## Sample Integration Test with native Image Support - -In order to run the sample integration test as a native image, call the following command: - - ``` - mvn test -Pnative - ``` diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml deleted file mode 100644 index d7dfc9687..000000000 --- a/samples/native-image-sample/pom.xml +++ /dev/null @@ -1,169 +0,0 @@ - - - 4.0.0 - com.google.cloud - native-image-sample - Native Image Sample - https://github.com/googleapis/java-pubsub - - - - com.google.cloud.samples - shared-configuration - 1.2.0 - - - - 1.8 - 1.8 - UTF-8 - - - - - - com.google.cloud - libraries-bom - 26.29.0 - pom - import - - - - - - - com.google.cloud - google-cloud-core - - - com.google.cloud - google-cloud-pubsub - - - - junit - junit - 4.13.2 - test - - - com.google.truth - truth - 1.2.0 - test - - - - - - - org.apache.maven.plugins - maven-jar-plugin - - - - true - dependency-jars/ - pubsub.NativeImagePubSubSample - - - - - - org.apache.maven.plugins - maven-dependency-plugin - 3.6.1 - - - copy-dependencies - package - - copy-dependencies - - - - ${project.build.directory}/dependency-jars/ - - - - - - - - - - - - native - - - - org.junit.vintage - junit-vintage-engine - 5.10.1 - test - - - org.graalvm.buildtools - junit-platform-native - 0.9.28 - test - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - 3.2.3 - - - **/*IT - - - - - org.graalvm.buildtools - native-maven-plugin - 0.9.28 - true - - pubsub.NativeImagePubSubSample - - - --no-fallback - --no-server - - - - - build-native - - build - test - - package - - - test-native - - test - - test - - - - - - - - \ No newline at end of file diff --git a/samples/native-image-sample/src/main/java/pubsub/NativeImagePubSubSample.java b/samples/native-image-sample/src/main/java/pubsub/NativeImagePubSubSample.java deleted file mode 100644 index 2e96091a6..000000000 --- a/samples/native-image-sample/src/main/java/pubsub/NativeImagePubSubSample.java +++ /dev/null @@ -1,385 +0,0 @@ -/* - * Copyright 2022 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. - */ - -package pubsub; - -import com.google.api.gax.rpc.NotFoundException; -import com.google.cloud.ServiceOptions; -import com.google.cloud.pubsub.v1.AckReplyConsumer; -import com.google.cloud.pubsub.v1.MessageReceiver; -import com.google.cloud.pubsub.v1.Subscriber; -import com.google.cloud.pubsub.v1.SubscriptionAdminClient; -import com.google.cloud.pubsub.v1.TopicAdminClient; -import com.google.cloud.pubsub.v1.stub.GrpcSubscriberStub; -import com.google.cloud.pubsub.v1.stub.SubscriberStub; -import com.google.cloud.pubsub.v1.stub.SubscriberStubSettings; -import com.google.iam.v1.GetIamPolicyRequest; -import com.google.iam.v1.Policy; -import com.google.iam.v1.TestIamPermissionsRequest; -import com.google.iam.v1.TestIamPermissionsResponse; -import com.google.protobuf.FieldMask; -import com.google.pubsub.v1.AcknowledgeRequest; -import com.google.pubsub.v1.DeadLetterPolicy; -import com.google.pubsub.v1.DetachSubscriptionRequest; -import com.google.pubsub.v1.ProjectName; -import com.google.pubsub.v1.ProjectSubscriptionName; -import com.google.pubsub.v1.ProjectTopicName; -import com.google.pubsub.v1.PubsubMessage; -import com.google.pubsub.v1.PullRequest; -import com.google.pubsub.v1.PullResponse; -import com.google.pubsub.v1.PushConfig; -import com.google.pubsub.v1.ReceivedMessage; -import com.google.pubsub.v1.Subscription; -import com.google.pubsub.v1.Topic; -import com.google.pubsub.v1.TopicName; -import com.google.pubsub.v1.UpdateSubscriptionRequest; -import java.io.IOException; -import java.time.Duration; -import java.time.Instant; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; -import utilities.PublishOperations; - -/** Pub/Sub sample application compiled with Native Image. */ -public class NativeImagePubSubSample { - - /** Driver for the Pub/Sub Sample application which publishes a message to a specified topic. */ - public static void main(String[] args) throws Exception { - Instant startTime = Instant.now(); - String projectId = ServiceOptions.getDefaultProjectId(); - - String topicId = "native-pubsub-test-" + UUID.randomUUID().toString(); - String pullSubId = "native-pubsub-test-sub" + UUID.randomUUID().toString(); - String pushSubId = "native-pubsub-test-sub" + UUID.randomUUID().toString(); - - try { - // Topic management operations - createTopic(projectId, topicId); - createPullSubscription(projectId, pullSubId, topicId); - createPushSubscription(projectId, pushSubId, topicId); - detachSubscription(projectId, pushSubId); - getTopicPolicy(projectId, topicId); - getSubscriptionPolicy(projectId, pullSubId); - listSubscriptionInProject(projectId); - listSubscriptionInTopic(projectId, topicId); - listTopics(projectId); - updateSubscriptionDeadLetterTopic(projectId, pushSubId, topicId, topicId); - testTopicPermissions(projectId, topicId); - testSubscriptionPermissions(projectId, pushSubId); - - // Publish Operations - PublishOperations.publishMessage(projectId, topicId); - PublishOperations.publishWithBatchSettings(projectId, topicId); - PublishOperations.publishWithCustomAttributes(projectId, topicId); - PublishOperations.publishWithErrorHandler(projectId, topicId); - - // Receive messages - subscribeSync(projectId, pullSubId); - receiveMessagesWithDeliveryAttempts(projectId, pullSubId); - } finally { - deleteTopic(projectId, topicId); - deleteSubscription(projectId, pullSubId); - deleteSubscription(projectId, pushSubId); - } - Instant endTime = Instant.now(); - Duration duration = Duration.between(startTime, endTime); - System.out.println("Duration: " + duration.toString()); - } - - static void createTopic(String projectId, String topicId) throws IOException { - try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { - TopicName topicName = TopicName.of(projectId, topicId); - Topic topic = topicAdminClient.createTopic(topicName); - System.out.println("Created topic: " + topic.getName() + " under project: " + projectId); - } - } - - static void createPullSubscription(String projectId, String subscriptionId, String topicId) - throws IOException { - - try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { - TopicName topicName = TopicName.of(projectId, topicId); - ProjectSubscriptionName subscriptionName = - ProjectSubscriptionName.of(projectId, subscriptionId); - Subscription subscription = - subscriptionAdminClient.createSubscription( - subscriptionName, topicName, PushConfig.getDefaultInstance(), 10); - System.out.println("Created pull subscription: " + subscription.getName()); - } - } - - static void createPushSubscription(String projectId, String subscriptionId, String topicId) - throws IOException { - - try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { - TopicName topicName = TopicName.of(projectId, topicId); - ProjectSubscriptionName subscriptionName = - ProjectSubscriptionName.of(projectId, subscriptionId); - - // Intentionally set pushEndpoint empty just to exercise API call - PushConfig pushConfig = PushConfig.newBuilder().setPushEndpoint("").build(); - - Subscription subscription = - subscriptionAdminClient.createSubscription(subscriptionName, topicName, pushConfig, 10); - System.out.println("Created push subscription: " + subscription.getName()); - } - } - - static void detachSubscription(String projectId, String subscriptionId) throws IOException { - - ProjectSubscriptionName subscriptionName = - ProjectSubscriptionName.of(projectId, subscriptionId); - - try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { - topicAdminClient.detachSubscription( - DetachSubscriptionRequest.newBuilder() - .setSubscription(subscriptionName.toString()) - .build()); - } - - try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { - Subscription subscription = subscriptionAdminClient.getSubscription(subscriptionName); - if (subscription.getDetached()) { - System.out.println("Subscription is detached."); - } else { - throw new RuntimeException("Subscription detachment was not successful."); - } - } - } - - static void getSubscriptionPolicy(String projectId, String subscriptionId) throws IOException { - try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { - ProjectSubscriptionName subscriptionName = - ProjectSubscriptionName.of(projectId, subscriptionId); - GetIamPolicyRequest getIamPolicyRequest = - GetIamPolicyRequest.newBuilder().setResource(subscriptionName.toString()).build(); - Policy policy = subscriptionAdminClient.getIamPolicy(getIamPolicyRequest); - System.out.println("Subscription policy: " + policy.toString().trim()); - } - } - - static void getTopicPolicy(String projectId, String topicId) throws IOException { - try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { - TopicName topicName = TopicName.of(projectId, topicId); - GetIamPolicyRequest getIamPolicyRequest = - GetIamPolicyRequest.newBuilder().setResource(topicName.toString()).build(); - Policy policy = topicAdminClient.getIamPolicy(getIamPolicyRequest); - System.out.println("Topic policy: " + policy.toString().trim()); - } - } - - static void listSubscriptionInProject(String projectId) throws IOException { - try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { - ProjectName projectName = ProjectName.of(projectId); - int count = 0; - for (Subscription subscription : - subscriptionAdminClient.listSubscriptions(projectName).iterateAll()) { - count += 1; - } - System.out.println("Subscriptions in project count: " + count); - } - } - - static void listSubscriptionInTopic(String projectId, String topicId) throws IOException { - try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { - TopicName topicName = TopicName.of(projectId, topicId); - int count = 0; - for (String subscription : topicAdminClient.listTopicSubscriptions(topicName).iterateAll()) { - count += 1; - } - System.out.println("Subscriptions under topic: " + count); - } - } - - static void listTopics(String projectId) throws IOException { - try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { - ProjectName projectName = ProjectName.of(projectId); - int count = 0; - for (Topic topic : topicAdminClient.listTopics(projectName).iterateAll()) { - count += 1; - } - System.out.println("Topic count under project: " + count); - } - } - - static void receiveMessagesWithDeliveryAttempts(String projectId, String subscriptionId) { - - ProjectSubscriptionName subscriptionName = - ProjectSubscriptionName.of(projectId, subscriptionId); - - // Instantiate an asynchronous message receiver. - MessageReceiver receiver = - new MessageReceiver() { - @Override - public void receiveMessage(PubsubMessage message, AckReplyConsumer consumer) { - consumer.ack(); - } - }; - - Subscriber subscriber = null; - try { - subscriber = Subscriber.newBuilder(subscriptionName, receiver).build(); - // Start the subscriber. - subscriber.startAsync().awaitRunning(); - System.out.println("Successfully started an async message receiver."); - } finally { - // Shut down the subscriber after 10s. Stop receiving messages. - subscriber.stopAsync(); - } - } - - static void subscribeSync(String projectId, String subscriptionId) throws IOException { - SubscriberStubSettings subscriberStubSettings = - SubscriberStubSettings.newBuilder() - .setTransportChannelProvider( - SubscriberStubSettings.defaultGrpcTransportProviderBuilder() - .setMaxInboundMessageSize(20 * 1024 * 1024) // 20MB (maximum message size). - .build()) - .build(); - - try (SubscriberStub subscriber = GrpcSubscriberStub.create(subscriberStubSettings)) { - String subscriptionName = ProjectSubscriptionName.format(projectId, subscriptionId); - PullRequest pullRequest = - PullRequest.newBuilder().setMaxMessages(1).setSubscription(subscriptionName).build(); - - PullResponse pullResponse = subscriber.pullCallable().call(pullRequest); - List ackIds = new ArrayList<>(); - for (ReceivedMessage message : pullResponse.getReceivedMessagesList()) { - String payload = message.getMessage().getData().toStringUtf8(); - ackIds.add(message.getAckId()); - System.out.println("Received Payload: " + payload); - } - - AcknowledgeRequest acknowledgeRequest = - AcknowledgeRequest.newBuilder() - .setSubscription(subscriptionName) - .addAllAckIds(ackIds) - .build(); - - subscriber.acknowledgeCallable().call(acknowledgeRequest); - } - } - - static void updateSubscriptionDeadLetterTopic( - String projectId, String subscriptionId, String topicId, String deadLetterTopicId) - throws IOException { - - try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { - ProjectSubscriptionName subscriptionName = - ProjectSubscriptionName.of(projectId, subscriptionId); - - TopicName topicName = TopicName.of(projectId, topicId); - TopicName deadLetterTopicName = TopicName.of(projectId, deadLetterTopicId); - - DeadLetterPolicy deadLetterPolicy = - DeadLetterPolicy.newBuilder() - .setDeadLetterTopic(deadLetterTopicName.toString()) - .setMaxDeliveryAttempts(20) - .build(); - - Subscription subscription = - Subscription.newBuilder() - .setName(subscriptionName.toString()) - .setTopic(topicName.toString()) - .setDeadLetterPolicy(deadLetterPolicy) - .build(); - - FieldMask updateMask = FieldMask.newBuilder().addPaths("dead_letter_policy").build(); - - UpdateSubscriptionRequest request = - UpdateSubscriptionRequest.newBuilder() - .setSubscription(subscription) - .setUpdateMask(updateMask) - .build(); - - Subscription response = subscriptionAdminClient.updateSubscription(request); - System.out.println("Updated subscription " + response.getName()); - } - } - - static void testSubscriptionPermissions(String projectId, String subscriptionId) - throws IOException { - try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { - ProjectSubscriptionName subscriptionName = - ProjectSubscriptionName.of(projectId, subscriptionId); - - List permissions = new ArrayList<>(); - permissions.add("pubsub.subscriptions.consume"); - permissions.add("pubsub.subscriptions.update"); - - TestIamPermissionsRequest testIamPermissionsRequest = - TestIamPermissionsRequest.newBuilder() - .setResource(subscriptionName.toString()) - .addAllPermissions(permissions) - .build(); - - TestIamPermissionsResponse testedPermissionsResponse = - subscriptionAdminClient.testIamPermissions(testIamPermissionsRequest); - - System.out.println( - "Tested PubSub subscription permissions\n" + testedPermissionsResponse.toString().trim()); - } - } - - static void testTopicPermissions(String projectId, String topicId) throws IOException { - try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { - ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId); - - List permissions = new ArrayList<>(); - permissions.add("pubsub.topics.attachSubscription"); - permissions.add("pubsub.topics.publish"); - permissions.add("pubsub.topics.update"); - - TestIamPermissionsRequest testIamPermissionsRequest = - TestIamPermissionsRequest.newBuilder() - .setResource(topicName.toString()) - .addAllPermissions(permissions) - .build(); - - TestIamPermissionsResponse testedPermissionsResponse = - topicAdminClient.testIamPermissions(testIamPermissionsRequest); - - System.out.println( - "Tested topic permissions\n" + testedPermissionsResponse.toString().trim()); - } - } - - static void deleteTopic(String projectId, String topicId) throws IOException { - try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { - TopicName topicName = TopicName.of(projectId, topicId); - try { - topicAdminClient.deleteTopic(topicName); - System.out.println("Deleted topic " + topicName); - } catch (NotFoundException e) { - System.out.println(e.getMessage()); - } - } - } - - static void deleteSubscription(String projectId, String subscriptionId) throws IOException { - try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { - ProjectSubscriptionName subscriptionName = - ProjectSubscriptionName.of(projectId, subscriptionId); - try { - subscriptionAdminClient.deleteSubscription(subscriptionName); - System.out.println("Deleted subscription " + subscriptionName); - } catch (NotFoundException e) { - System.out.println(e.getMessage()); - } - } - } -} diff --git a/samples/native-image-sample/src/main/java/utilities/PublishOperations.java b/samples/native-image-sample/src/main/java/utilities/PublishOperations.java deleted file mode 100644 index 068312025..000000000 --- a/samples/native-image-sample/src/main/java/utilities/PublishOperations.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright 2022 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. - */ - -package utilities; - -import com.google.api.core.ApiFuture; -import com.google.api.core.ApiFutureCallback; -import com.google.api.core.ApiFutures; -import com.google.api.gax.rpc.ApiException; -import com.google.cloud.pubsub.v1.Publisher; -import com.google.common.util.concurrent.MoreExecutors; -import com.google.protobuf.ByteString; -import com.google.pubsub.v1.PubsubMessage; -import com.google.pubsub.v1.TopicName; -import java.io.IOException; -import java.time.Instant; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.concurrent.ExecutionException; - -/** Sample methods for Publishing messages to a topic in Pub/Sub. */ -public class PublishOperations { - - public static void publishMessage(String projectId, String topicId) throws Exception { - - Publisher publisher = Publisher.newBuilder(TopicName.of(projectId, topicId)).build(); - - try { - String message = "Pub/Sub Native Image Test published message at timestamp: " + Instant.now(); - ByteString data = ByteString.copyFromUtf8(message); - PubsubMessage pubsubMessage = PubsubMessage.newBuilder().setData(data).build(); - - publisher.publish(pubsubMessage); - - ApiFuture messageIdFuture = publisher.publish(pubsubMessage); - String messageId = messageIdFuture.get(); - - System.out.println("Published message with ID: " + messageId); - } finally { - publisher.shutdown(); - } - } - - public static void publishWithCustomAttributes(String projectId, String topicId) - throws Exception { - - TopicName topicName = TopicName.of(projectId, topicId); - Publisher publisher = Publisher.newBuilder(topicName).build(); - - try { - String message = "first message"; - ByteString data = ByteString.copyFromUtf8(message); - PubsubMessage pubsubMessage = - PubsubMessage.newBuilder() - .setData(data) - .putAllAttributes(Collections.singletonMap("year", "2020")) - .build(); - - // Once published, returns a server-assigned message id (unique within the topic) - ApiFuture messageIdFuture = publisher.publish(pubsubMessage); - String messageId = messageIdFuture.get(); - System.out.println("Published a message with custom attributes: " + messageId); - } finally { - publisher.shutdown(); - } - } - - public static void publishWithBatchSettings(String projectId, String topicId) - throws IOException, ExecutionException, InterruptedException { - - TopicName topicName = TopicName.of(projectId, topicId); - Publisher publisher = Publisher.newBuilder(topicName).build(); - List> messageIdFutures = new ArrayList<>(); - - try { - // schedule publishing one message at a time : messages get automatically batched - for (int i = 0; i < 100; i++) { - String message = "message " + i; - ByteString data = ByteString.copyFromUtf8(message); - PubsubMessage pubsubMessage = PubsubMessage.newBuilder().setData(data).build(); - - // Once published, returns a server-assigned message id (unique within the topic) - ApiFuture messageIdFuture = publisher.publish(pubsubMessage); - messageIdFutures.add(messageIdFuture); - } - } finally { - // Wait on any pending publish requests. - List messageIds = ApiFutures.allAsList(messageIdFutures).get(); - System.out.println("Published " + messageIds.size() + " messages with batch settings."); - - publisher.shutdown(); - } - } - - public static void publishWithErrorHandler(String projectId, String topicId) throws IOException { - - TopicName topicName = TopicName.of(projectId, topicId); - Publisher publisher = null; - - try { - // Create a publisher instance with default settings bound to the topic - publisher = Publisher.newBuilder(topicName).build(); - - List messages = Arrays.asList("first message", "second message"); - - for (final String message : messages) { - ByteString data = ByteString.copyFromUtf8(message); - PubsubMessage pubsubMessage = PubsubMessage.newBuilder().setData(data).build(); - - // Once published, returns a server-assigned message id (unique within the topic) - ApiFuture future = publisher.publish(pubsubMessage); - - // Add an asynchronous callback to handle success / failure - ApiFutures.addCallback( - future, - new ApiFutureCallback() { - - @Override - public void onFailure(Throwable throwable) { - if (throwable instanceof ApiException) { - ApiException apiException = ((ApiException) throwable); - // details on the API exception - System.out.println(apiException.getStatusCode().getCode()); - System.out.println(apiException.isRetryable()); - } - System.out.println("Error publishing message : " + message); - } - - @Override - public void onSuccess(String messageId) { - // Once published, returns server-assigned message ids (unique within the topic) - System.out.println("Success Callback: Published message " + messageId); - } - }, - MoreExecutors.directExecutor()); - } - } finally { - if (publisher != null) { - // When finished with the publisher, shutdown to free up resources. - publisher.shutdown(); - } - } - } -} diff --git a/samples/native-image-sample/src/test/java/pubsub/NativeImagePubSubSampleIT.java b/samples/native-image-sample/src/test/java/pubsub/NativeImagePubSubSampleIT.java deleted file mode 100644 index c221d735a..000000000 --- a/samples/native-image-sample/src/test/java/pubsub/NativeImagePubSubSampleIT.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright 2022 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. - */ - -package pubsub; - -import static com.google.common.truth.Truth.assertThat; - -import com.google.cloud.ServiceOptions; -import com.google.pubsub.v1.SubscriptionName; -import com.google.pubsub.v1.TopicName; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.PrintStream; -import java.util.UUID; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import utilities.PublishOperations; - -public class NativeImagePubSubSampleIT { - - private static String TOPIC_ID = "native-pubsub-test-" + UUID.randomUUID(); - private static String PULL_SUB_ID = "native-pubsub-test-sub" + UUID.randomUUID(); - private static String PUSH_SUB_ID = "native-pubsub-test-sub" + UUID.randomUUID(); - private static String PROJECT_ID = ServiceOptions.getDefaultProjectId(); - private static final TopicName TOPIC_NAME = TopicName.of(PROJECT_ID, TOPIC_ID); - private static final SubscriptionName PULL_SUBSCRIPTION_NAME = - SubscriptionName.of(PROJECT_ID, PULL_SUB_ID); - private static final SubscriptionName PUSH_SUBSCRIPTION_NAME = - SubscriptionName.of(PROJECT_ID, PUSH_SUB_ID); - - private ByteArrayOutputStream bout; - private PrintStream out; - - @Before - public void setUp() { - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); - } - - @After - public void cleanUp() throws IOException { - NativeImagePubSubSample.deleteTopic(PROJECT_ID, TOPIC_ID); - NativeImagePubSubSample.deleteSubscription(PROJECT_ID, PULL_SUB_ID); - NativeImagePubSubSample.deleteSubscription(PROJECT_ID, PUSH_SUB_ID); - } - - @Test - public void testRunTopicManagementOperations() throws IOException { - // Topic management operations - NativeImagePubSubSample.createTopic(PROJECT_ID, TOPIC_ID); - NativeImagePubSubSample.createPullSubscription(PROJECT_ID, PULL_SUB_ID, TOPIC_ID); - NativeImagePubSubSample.createPushSubscription(PROJECT_ID, PUSH_SUB_ID, TOPIC_ID); - NativeImagePubSubSample.detachSubscription(PROJECT_ID, PUSH_SUB_ID); - NativeImagePubSubSample.getTopicPolicy(PROJECT_ID, TOPIC_ID); - NativeImagePubSubSample.getSubscriptionPolicy(PROJECT_ID, PULL_SUB_ID); - NativeImagePubSubSample.listSubscriptionInProject(PROJECT_ID); - NativeImagePubSubSample.listSubscriptionInTopic(PROJECT_ID, TOPIC_ID); - NativeImagePubSubSample.listTopics(PROJECT_ID); - NativeImagePubSubSample.updateSubscriptionDeadLetterTopic( - PROJECT_ID, PUSH_SUB_ID, TOPIC_ID, TOPIC_ID); - NativeImagePubSubSample.testTopicPermissions(PROJECT_ID, TOPIC_ID); - NativeImagePubSubSample.testSubscriptionPermissions(PROJECT_ID, PUSH_SUB_ID); - - // Verify create topic and subscriptions - assertThat(bout.toString()) - .contains("Created topic: " + TOPIC_NAME.toString() + " under project: " + PROJECT_ID); - assertThat(bout.toString()) - .contains("Created pull subscription: " + PULL_SUBSCRIPTION_NAME.toString()); - assertThat(bout.toString()) - .contains("Created push subscription: " + PUSH_SUBSCRIPTION_NAME.toString()); - - // Verify detach subscription - assertThat(bout.toString()).contains("Subscription is detached"); - - // Verify topic and subscription IAM policy - assertThat(bout.toString()).contains("Topic policy: etag: \"\\000 \\001"); - assertThat(bout.toString()).contains("Subscription policy: etag: \"\\000 \\001\""); - - // Verify listing of subscriptions and topics - assertThat(bout.toString()).contains("Subscriptions in project count:"); - assertThat(bout.toString()).contains("Subscriptions under topic:"); - assertThat(bout.toString()).contains("Topic count under project:"); - - // Verify update of subscription - assertThat(bout.toString()).contains("Updated subscription " + PUSH_SUBSCRIPTION_NAME); - - // Verify topic permissions - assertThat(bout.toString()).contains("Tested topic permissions"); - assertThat(bout.toString()).contains("permissions: \"pubsub.topics.attachSubscription\""); - assertThat(bout.toString()).contains("permissions: \"pubsub.topics.publish\""); - assertThat(bout.toString()).contains("permissions: \"pubsub.topics.update\""); - - // Verify subscription permissions - assertThat(bout.toString()).contains("Tested PubSub subscription permissions"); - assertThat(bout.toString()).contains("permissions: \"pubsub.subscriptions.consume\""); - assertThat(bout.toString()).contains("permissions: \"pubsub.subscriptions.update\""); - } - - @Test - public void testPublishAndSubscribe() throws Exception { - NativeImagePubSubSample.createTopic(PROJECT_ID, TOPIC_ID); - NativeImagePubSubSample.createPullSubscription(PROJECT_ID, PULL_SUB_ID, TOPIC_ID); - - bout.reset(); - - // Publish - PublishOperations.publishMessage(PROJECT_ID, TOPIC_ID); - PublishOperations.publishWithBatchSettings(PROJECT_ID, TOPIC_ID); - PublishOperations.publishWithCustomAttributes(PROJECT_ID, TOPIC_ID); - PublishOperations.publishWithErrorHandler(PROJECT_ID, TOPIC_ID); - - // Subscribe - NativeImagePubSubSample.subscribeSync(PROJECT_ID, PULL_SUB_ID); - NativeImagePubSubSample.receiveMessagesWithDeliveryAttempts(PROJECT_ID, PULL_SUB_ID); - - assertThat(bout.toString()).contains("Published message with ID"); - assertThat(bout.toString()).contains("Published 100 messages with batch settings."); - assertThat(bout.toString()).contains("Published a message with custom attributes"); - assertThat(bout.toString()).contains("Success Callback: Published message"); - assertThat(bout.toString()).contains("Success Callback: Published message"); - assertThat(bout.toString()).contains("Received Payload"); - assertThat(bout.toString()).contains("Successfully started an async message receiver"); - } -} diff --git a/samples/pom.xml b/samples/pom.xml index 678328275..b63314dd5 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -33,7 +33,7 @@ com.google.cloud.samples shared-configuration - 1.2.0 + 1.2.2 @@ -46,7 +46,6 @@ install-without-bom snapshot snippets - native-image-sample @@ -54,7 +53,7 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.1 + 3.1.4 true @@ -62,7 +61,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.13 + 1.7.0 true @@ -75,7 +74,7 @@ org.apache.maven.plugins maven-checkstyle-plugin - 3.3.1 + 3.6.0 checkstyle-suppressions.xml diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3fe333e49..59fdadc95 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -29,7 +29,7 @@ com.google.cloud.samples shared-configuration - 1.2.0 + 1.2.2 @@ -43,25 +43,25 @@ com.google.cloud google-cloud-pubsub - 1.126.1-SNAPSHOT + 1.144.1 org.apache.avro avro - 1.11.3 + 1.11.4 compile org.xerial.snappy snappy-java - 1.1.10.5 + 1.1.10.8 com.google.protobuf protobuf-java-util - 3.25.1 + 4.33.2 @@ -73,24 +73,29 @@ com.google.truth truth - 1.2.0 + 1.4.5 test com.google.cloud google-cloud-core - 2.28.0 + 2.62.2 tests com.google.cloud google-cloud-bigquery - 2.34.2 + 2.56.0 com.google.cloud google-cloud-storage - 2.30.1 + 2.60.0 + + + com.google.cloud.opentelemetry + exporter-trace + 0.36.0 @@ -100,7 +105,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.5.0 + 3.6.1 add-snippets-source diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index ba9075966..a80f9af05 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -29,7 +29,7 @@ com.google.cloud.samples shared-configuration - 1.2.0 + 1.2.2 @@ -45,7 +45,7 @@ com.google.cloud libraries-bom - 26.29.0 + 26.72.0 pom import @@ -67,20 +67,25 @@ com.google.cloud google-cloud-storage + + com.google.cloud.opentelemetry + exporter-trace + 0.36.0 + org.apache.avro avro - 1.11.3 + 1.11.4 org.xerial.snappy snappy-java - 1.1.10.5 + 1.1.10.8 com.google.protobuf protobuf-java-util - 3.25.1 + 4.33.2 @@ -92,13 +97,13 @@ com.google.truth truth - 1.2.0 + 1.4.5 test com.google.cloud google-cloud-core - 2.28.0 + 2.62.2 tests diff --git a/samples/snippets/src/main/java/pubsub/CreateSubscriptionWithSmtExample.java b/samples/snippets/src/main/java/pubsub/CreateSubscriptionWithSmtExample.java new file mode 100644 index 000000000..53516c540 --- /dev/null +++ b/samples/snippets/src/main/java/pubsub/CreateSubscriptionWithSmtExample.java @@ -0,0 +1,74 @@ +/* + * 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. + */ + +package pubsub; + +// [START pubsub_create_subscription_with_smt] +import com.google.cloud.pubsub.v1.SubscriptionAdminClient; +import com.google.pubsub.v1.JavaScriptUDF; +import com.google.pubsub.v1.MessageTransform; +import com.google.pubsub.v1.ProjectSubscriptionName; +import com.google.pubsub.v1.ProjectTopicName; +import com.google.pubsub.v1.Subscription; +import java.io.IOException; + +public class CreateSubscriptionWithSmtExample { + public static void main(String... args) throws Exception { + // TODO(developer): Replace these variables before running the sample. + String projectId = "your-project-id"; + String topicId = "your-topic-id"; + String subscriptionId = "your-subscription-id"; + + createSubscriptionWithSmtExample(projectId, topicId, subscriptionId); + } + + public static void createSubscriptionWithSmtExample( + String projectId, String topicId, String subscriptionId) throws IOException { + + // UDF that removes the 'ssn' field, if present + String code = + "function redactSSN(message, metadata) {" + + " const data = JSON.parse(message.data);" + + " delete data['ssn'];" + + " message.data = JSON.stringify(data);" + + " return message;" + + "}"; + String functionName = "redactSSN"; + + JavaScriptUDF udf = + JavaScriptUDF.newBuilder().setCode(code).setFunctionName(functionName).build(); + MessageTransform transform = MessageTransform.newBuilder().setJavascriptUdf(udf).build(); + + try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { + + ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId); + ProjectSubscriptionName subscriptionName = + ProjectSubscriptionName.of(projectId, subscriptionId); + + Subscription subscription = + subscriptionAdminClient.createSubscription( + Subscription.newBuilder() + .setName(subscriptionName.toString()) + .setTopic(topicName.toString()) + // Add the UDF message transform + .addMessageTransforms(transform) + .build()); + + System.out.println("Created subscription with SMT: " + subscription.getAllFields()); + } + } +} +// [END pubsub_create_subscription_with_smt] diff --git a/samples/snippets/src/main/java/pubsub/CreateTopicWithAwsMskIngestionExample.java b/samples/snippets/src/main/java/pubsub/CreateTopicWithAwsMskIngestionExample.java new file mode 100644 index 000000000..52aed57dd --- /dev/null +++ b/samples/snippets/src/main/java/pubsub/CreateTopicWithAwsMskIngestionExample.java @@ -0,0 +1,74 @@ +/* + * 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. + */ + +package pubsub; + +// [START pubsub_create_topic_with_aws_msk_ingestion] + +import com.google.cloud.pubsub.v1.TopicAdminClient; +import com.google.pubsub.v1.IngestionDataSourceSettings; +import com.google.pubsub.v1.Topic; +import com.google.pubsub.v1.TopicName; +import java.io.IOException; + +public class CreateTopicWithAwsMskIngestionExample { + public static void main(String... args) throws Exception { + // TODO(developer): Replace these variables before running the sample. + String projectId = "your-project-id"; + String topicId = "your-topic-id"; + // AWS MSK ingestion settings. + String clusterArn = "cluster-arn"; + String mskTopic = "msk-topic"; + String awsRoleArn = "aws-role-arn"; + String gcpServiceAccount = "gcp-service-account"; + + createTopicWithAwsMskIngestionExample( + projectId, topicId, clusterArn, mskTopic, awsRoleArn, gcpServiceAccount); + } + + public static void createTopicWithAwsMskIngestionExample( + String projectId, + String topicId, + String clusterArn, + String mskTopic, + String awsRoleArn, + String gcpServiceAccount) + throws IOException { + try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { + TopicName topicName = TopicName.of(projectId, topicId); + + IngestionDataSourceSettings.AwsMsk awsMsk = + IngestionDataSourceSettings.AwsMsk.newBuilder() + .setClusterArn(clusterArn) + .setTopic(mskTopic) + .setAwsRoleArn(awsRoleArn) + .setGcpServiceAccount(gcpServiceAccount) + .build(); + IngestionDataSourceSettings ingestionDataSourceSettings = + IngestionDataSourceSettings.newBuilder().setAwsMsk(awsMsk).build(); + + Topic topic = + topicAdminClient.createTopic( + Topic.newBuilder() + .setName(topicName.toString()) + .setIngestionDataSourceSettings(ingestionDataSourceSettings) + .build()); + + System.out.println("Created topic with AWS MSK ingestion settings: " + topic.getAllFields()); + } + } +} +// [END pubsub_create_topic_with_aws_msk_ingestion] diff --git a/samples/snippets/src/main/java/pubsub/CreateTopicWithAzureEventHubsIngestionExample.java b/samples/snippets/src/main/java/pubsub/CreateTopicWithAzureEventHubsIngestionExample.java new file mode 100644 index 000000000..fb72a3e1d --- /dev/null +++ b/samples/snippets/src/main/java/pubsub/CreateTopicWithAzureEventHubsIngestionExample.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 + * + * 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. + */ + +package pubsub; + +// [START pubsub_create_topic_with_azure_event_hubs_ingestion] + +import com.google.cloud.pubsub.v1.TopicAdminClient; +import com.google.pubsub.v1.IngestionDataSourceSettings; +import com.google.pubsub.v1.Topic; +import com.google.pubsub.v1.TopicName; +import java.io.IOException; + +public class CreateTopicWithAzureEventHubsIngestionExample { + public static void main(String... args) throws Exception { + // TODO(developer): Replace these variables before running the sample. + String projectId = "your-project-id"; + String topicId = "your-topic-id"; + // Azure Event Hubs ingestion settings. + String resourceGroup = "resource-group"; + String namespace = "namespace"; + String eventHub = "event-hub"; + String clientId = "client-id"; + String tenantId = "tenant-id"; + String subscriptionId = "subscription-id"; + String gcpServiceAccount = "gcp-service-account"; + + createTopicWithAzureEventHubsIngestionExample( + projectId, + topicId, + resourceGroup, + namespace, + eventHub, + clientId, + tenantId, + subscriptionId, + gcpServiceAccount); + } + + public static void createTopicWithAzureEventHubsIngestionExample( + String projectId, + String topicId, + String resourceGroup, + String namespace, + String eventHub, + String clientId, + String tenantId, + String subscriptionId, + String gcpServiceAccount) + throws IOException { + try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { + TopicName topicName = TopicName.of(projectId, topicId); + + IngestionDataSourceSettings.AzureEventHubs azureEventHubs = + IngestionDataSourceSettings.AzureEventHubs.newBuilder() + .setResourceGroup(resourceGroup) + .setNamespace(namespace) + .setEventHub(eventHub) + .setClientId(clientId) + .setTenantId(tenantId) + .setSubscriptionId(subscriptionId) + .setGcpServiceAccount(gcpServiceAccount) + .build(); + IngestionDataSourceSettings ingestionDataSourceSettings = + IngestionDataSourceSettings.newBuilder().setAzureEventHubs(azureEventHubs).build(); + + Topic topic = + topicAdminClient.createTopic( + Topic.newBuilder() + .setName(topicName.toString()) + .setIngestionDataSourceSettings(ingestionDataSourceSettings) + .build()); + + System.out.println( + "Created topic with Azure Event Hubs ingestion settings: " + topic.getAllFields()); + } + } +} +// [END pubsub_create_topic_with_azure_event_hubs_ingestion] diff --git a/samples/snippets/src/main/java/pubsub/CreateTopicWithCloudStorageIngestionExample.java b/samples/snippets/src/main/java/pubsub/CreateTopicWithCloudStorageIngestionExample.java new file mode 100644 index 000000000..d795cdc28 --- /dev/null +++ b/samples/snippets/src/main/java/pubsub/CreateTopicWithCloudStorageIngestionExample.java @@ -0,0 +1,109 @@ +/* + * 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. + */ + +package pubsub; + +// [START pubsub_create_topic_with_cloud_storage_ingestion] + +import com.google.cloud.pubsub.v1.TopicAdminClient; +import com.google.protobuf.util.Timestamps; +import com.google.pubsub.v1.IngestionDataSourceSettings; +import com.google.pubsub.v1.Topic; +import com.google.pubsub.v1.TopicName; +import java.io.IOException; +import java.text.ParseException; + +public class CreateTopicWithCloudStorageIngestionExample { + public static void main(String... args) throws Exception { + // TODO(developer): Replace these variables before running the sample. + String projectId = "your-project-id"; + String topicId = "your-topic-id"; + // Cloud Storage ingestion settings. + // bucket and inputFormat are required arguments. + String bucket = "your-bucket"; + String inputFormat = "text"; + String textDelimiter = "\n"; + String matchGlob = "**.txt"; + String minimumObjectCreateTime = "YYYY-MM-DDThh:mm:ssZ"; + + createTopicWithCloudStorageIngestionExample( + projectId, topicId, bucket, inputFormat, textDelimiter, matchGlob, minimumObjectCreateTime); + } + + public static void createTopicWithCloudStorageIngestionExample( + String projectId, + String topicId, + String bucket, + String inputFormat, + String textDelimiter, + String matchGlob, + String minimumObjectCreateTime) + throws IOException { + try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { + IngestionDataSourceSettings.CloudStorage.Builder cloudStorageBuilder = + IngestionDataSourceSettings.CloudStorage.newBuilder().setBucket(bucket); + switch (inputFormat) { + case "text": + cloudStorageBuilder.setTextFormat( + IngestionDataSourceSettings.CloudStorage.TextFormat.newBuilder() + .setDelimiter(textDelimiter) + .build()); + break; + case "avro": + cloudStorageBuilder.setAvroFormat( + IngestionDataSourceSettings.CloudStorage.AvroFormat.getDefaultInstance()); + break; + case "pubsub_avro": + cloudStorageBuilder.setPubsubAvroFormat( + IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat.getDefaultInstance()); + break; + default: + throw new IllegalArgumentException( + "inputFormat must be in ('text', 'avro', 'pubsub_avro'); got value: " + inputFormat); + } + + if (matchGlob != null && !matchGlob.isEmpty()) { + cloudStorageBuilder.setMatchGlob(matchGlob); + } + + if (minimumObjectCreateTime != null && !minimumObjectCreateTime.isEmpty()) { + try { + cloudStorageBuilder.setMinimumObjectCreateTime(Timestamps.parse(minimumObjectCreateTime)); + } catch (ParseException e) { + System.err.println("Unable to parse timestamp: " + minimumObjectCreateTime); + } + } + + IngestionDataSourceSettings ingestionDataSourceSettings = + IngestionDataSourceSettings.newBuilder() + .setCloudStorage(cloudStorageBuilder.build()) + .build(); + + TopicName topicName = TopicName.of(projectId, topicId); + + Topic topic = + topicAdminClient.createTopic( + Topic.newBuilder() + .setName(topicName.toString()) + .setIngestionDataSourceSettings(ingestionDataSourceSettings) + .build()); + + System.out.println( + "Created topic with Cloud Storage ingestion settings: " + topic.getAllFields()); + } + } +} +// [END pubsub_create_topic_with_cloud_storage_ingestion] diff --git a/samples/snippets/src/main/java/pubsub/CreateTopicWithConfluentCloudIngestionExample.java b/samples/snippets/src/main/java/pubsub/CreateTopicWithConfluentCloudIngestionExample.java new file mode 100644 index 000000000..cd27a0ac9 --- /dev/null +++ b/samples/snippets/src/main/java/pubsub/CreateTopicWithConfluentCloudIngestionExample.java @@ -0,0 +1,84 @@ +/* + * 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. + */ + +package pubsub; + +// [START pubsub_create_topic_with_confluent_cloud_ingestion] + +import com.google.cloud.pubsub.v1.TopicAdminClient; +import com.google.pubsub.v1.IngestionDataSourceSettings; +import com.google.pubsub.v1.Topic; +import com.google.pubsub.v1.TopicName; +import java.io.IOException; + +public class CreateTopicWithConfluentCloudIngestionExample { + public static void main(String... args) throws Exception { + // TODO(developer): Replace these variables before running the sample. + String projectId = "your-project-id"; + String topicId = "your-topic-id"; + // Confluent Cloud ingestion settings. + String bootstrapServer = "bootstrap-server"; + String clusterId = "cluster-id"; + String confluentTopic = "confluent-topic"; + String identityPoolId = "identity-pool-id"; + String gcpServiceAccount = "gcp-service-account"; + + createTopicWithConfluentCloudIngestionExample( + projectId, + topicId, + bootstrapServer, + clusterId, + confluentTopic, + identityPoolId, + gcpServiceAccount); + } + + public static void createTopicWithConfluentCloudIngestionExample( + String projectId, + String topicId, + String bootstrapServer, + String clusterId, + String confluentTopic, + String identityPoolId, + String gcpServiceAccount) + throws IOException { + try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { + TopicName topicName = TopicName.of(projectId, topicId); + + IngestionDataSourceSettings.ConfluentCloud confluentCloud = + IngestionDataSourceSettings.ConfluentCloud.newBuilder() + .setBootstrapServer(bootstrapServer) + .setClusterId(clusterId) + .setTopic(confluentTopic) + .setIdentityPoolId(identityPoolId) + .setGcpServiceAccount(gcpServiceAccount) + .build(); + IngestionDataSourceSettings ingestionDataSourceSettings = + IngestionDataSourceSettings.newBuilder().setConfluentCloud(confluentCloud).build(); + + Topic topic = + topicAdminClient.createTopic( + Topic.newBuilder() + .setName(topicName.toString()) + .setIngestionDataSourceSettings(ingestionDataSourceSettings) + .build()); + + System.out.println( + "Created topic with Confluent Cloud ingestion settings: " + topic.getAllFields()); + } + } +} +// [END pubsub_create_topic_with_confluent_cloud_ingestion] diff --git a/samples/snippets/src/main/java/pubsub/CreateTopicWithKinesisIngestionExample.java b/samples/snippets/src/main/java/pubsub/CreateTopicWithKinesisIngestionExample.java new file mode 100644 index 000000000..6f79ef6b7 --- /dev/null +++ b/samples/snippets/src/main/java/pubsub/CreateTopicWithKinesisIngestionExample.java @@ -0,0 +1,74 @@ +/* + * 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. + */ + +package pubsub; + +// [START pubsub_create_topic_with_kinesis_ingestion] + +import com.google.cloud.pubsub.v1.TopicAdminClient; +import com.google.pubsub.v1.IngestionDataSourceSettings; +import com.google.pubsub.v1.Topic; +import com.google.pubsub.v1.TopicName; +import java.io.IOException; + +public class CreateTopicWithKinesisIngestionExample { + public static void main(String... args) throws Exception { + // TODO(developer): Replace these variables before running the sample. + String projectId = "your-project-id"; + String topicId = "your-topic-id"; + // Kinesis ingestion settings. + String streamArn = "stream-arn"; + String consumerArn = "consumer-arn"; + String awsRoleArn = "aws-role-arn"; + String gcpServiceAccount = "gcp-service-account"; + + createTopicWithKinesisIngestionExample( + projectId, topicId, streamArn, consumerArn, awsRoleArn, gcpServiceAccount); + } + + public static void createTopicWithKinesisIngestionExample( + String projectId, + String topicId, + String streamArn, + String consumerArn, + String awsRoleArn, + String gcpServiceAccount) + throws IOException { + try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { + TopicName topicName = TopicName.of(projectId, topicId); + + IngestionDataSourceSettings.AwsKinesis awsKinesis = + IngestionDataSourceSettings.AwsKinesis.newBuilder() + .setStreamArn(streamArn) + .setConsumerArn(consumerArn) + .setAwsRoleArn(awsRoleArn) + .setGcpServiceAccount(gcpServiceAccount) + .build(); + IngestionDataSourceSettings ingestionDataSourceSettings = + IngestionDataSourceSettings.newBuilder().setAwsKinesis(awsKinesis).build(); + + Topic topic = + topicAdminClient.createTopic( + Topic.newBuilder() + .setName(topicName.toString()) + .setIngestionDataSourceSettings(ingestionDataSourceSettings) + .build()); + + System.out.println("Created topic with Kinesis ingestion settings: " + topic.getAllFields()); + } + } +} +// [END pubsub_create_topic_with_kinesis_ingestion] diff --git a/samples/snippets/src/main/java/pubsub/CreateTopicWithSmtExample.java b/samples/snippets/src/main/java/pubsub/CreateTopicWithSmtExample.java new file mode 100644 index 000000000..c96322015 --- /dev/null +++ b/samples/snippets/src/main/java/pubsub/CreateTopicWithSmtExample.java @@ -0,0 +1,72 @@ +/* + * 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. + */ + +package pubsub; + +// [START pubsub_create_topic_with_smt] + +import com.google.api.gax.rpc.AlreadyExistsException; +import com.google.cloud.pubsub.v1.TopicAdminClient; +import com.google.pubsub.v1.JavaScriptUDF; +import com.google.pubsub.v1.MessageTransform; +import com.google.pubsub.v1.Topic; +import com.google.pubsub.v1.TopicName; +import java.io.IOException; + +public class CreateTopicWithSmtExample { + + public static void main(String... args) throws Exception { + // TODO(developer): Replace these variables before running the sample. + String projectId = "your-project-id"; + String topicId = "your-topic-id"; + + createTopicWithSmtExample(projectId, topicId); + } + + public static void createTopicWithSmtExample(String projectId, String topicId) + throws IOException { + TopicName topicName = TopicName.of(projectId, topicId); + + // UDF that removes the 'ssn' field, if present + String code = + "function redactSSN(message, metadata) {" + + " const data = JSON.parse(message.data);" + + " delete data['ssn'];" + + " message.data = JSON.stringify(data);" + + " return message;" + + "}"; + String functionName = "redactSSN"; + + JavaScriptUDF udf = + JavaScriptUDF.newBuilder().setCode(code).setFunctionName(functionName).build(); + MessageTransform transform = MessageTransform.newBuilder().setJavascriptUdf(udf).build(); + try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { + + Topic topic = + topicAdminClient.createTopic( + Topic.newBuilder() + .setName(topicName.toString()) + // Add the UDF message transform + .addMessageTransforms(transform) + .build()); + + System.out.println("Created topic with SMT: " + topic.getName()); + } catch (AlreadyExistsException e) { + System.out.println(topicName + "already exists."); + } + } +} + // [END pubsub_create_topic_with_smt] diff --git a/samples/snippets/src/main/java/pubsub/OpenTelemetryPublisherExample.java b/samples/snippets/src/main/java/pubsub/OpenTelemetryPublisherExample.java new file mode 100644 index 000000000..606c6fe36 --- /dev/null +++ b/samples/snippets/src/main/java/pubsub/OpenTelemetryPublisherExample.java @@ -0,0 +1,99 @@ +/* + * 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. + */ + +package pubsub; + +// [START pubsub_publish_otel_tracing] + +import com.google.api.core.ApiFuture; +import com.google.cloud.opentelemetry.trace.TraceConfiguration; +import com.google.cloud.opentelemetry.trace.TraceExporter; +import com.google.cloud.pubsub.v1.Publisher; +import com.google.protobuf.ByteString; +import com.google.pubsub.v1.PubsubMessage; +import com.google.pubsub.v1.TopicName; +import io.opentelemetry.api.OpenTelemetry; +import io.opentelemetry.sdk.OpenTelemetrySdk; +import io.opentelemetry.sdk.resources.Resource; +import io.opentelemetry.sdk.trace.SdkTracerProvider; +import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor; +import io.opentelemetry.sdk.trace.export.SpanExporter; +import io.opentelemetry.sdk.trace.samplers.Sampler; +import io.opentelemetry.semconv.ResourceAttributes; +import java.io.IOException; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; + +public class OpenTelemetryPublisherExample { + public static void main(String... args) throws Exception { + // TODO(developer): Replace these variables before running the sample. + String projectId = "your-project-id"; + String topicId = "your-topic-id"; + + openTelemetryPublisherExample(projectId, topicId); + } + + public static void openTelemetryPublisherExample(String projectId, String topicId) + throws IOException, ExecutionException, InterruptedException { + Resource resource = + Resource.getDefault().toBuilder() + .put(ResourceAttributes.SERVICE_NAME, "publisher-example") + .build(); + + // Creates a Cloud Trace exporter. + SpanExporter traceExporter = + TraceExporter.createWithConfiguration( + TraceConfiguration.builder().setProjectId(projectId).build()); + + SdkTracerProvider sdkTracerProvider = + SdkTracerProvider.builder() + .setResource(resource) + .addSpanProcessor(SimpleSpanProcessor.create(traceExporter)) + .setSampler(Sampler.alwaysOn()) + .build(); + + OpenTelemetry openTelemetry = + OpenTelemetrySdk.builder().setTracerProvider(sdkTracerProvider).buildAndRegisterGlobal(); + + TopicName topicName = TopicName.of(projectId, topicId); + + Publisher publisher = null; + try { + // Create a publisher instance with the created OpenTelemetry object and enabling tracing. + publisher = + Publisher.newBuilder(topicName) + .setOpenTelemetry(openTelemetry) + .setEnableOpenTelemetryTracing(true) + .build(); + + String message = "Hello World!"; + ByteString data = ByteString.copyFromUtf8(message); + PubsubMessage pubsubMessage = PubsubMessage.newBuilder().setData(data).build(); + + // Once published, returns a server-assigned message id (unique within the topic) + ApiFuture messageIdFuture = publisher.publish(pubsubMessage); + String messageId = messageIdFuture.get(); + System.out.println("Published message ID: " + messageId); + } finally { + if (publisher != null) { + // When finished with the publisher, shutdown to free up resources. + publisher.shutdown(); + publisher.awaitTermination(1, TimeUnit.MINUTES); + } + } + } +} +// [END pubsub_publish_otel_tracing] diff --git a/samples/snippets/src/main/java/pubsub/OpenTelemetrySubscriberExample.java b/samples/snippets/src/main/java/pubsub/OpenTelemetrySubscriberExample.java new file mode 100644 index 000000000..f78c38d19 --- /dev/null +++ b/samples/snippets/src/main/java/pubsub/OpenTelemetrySubscriberExample.java @@ -0,0 +1,100 @@ +/* + * 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. + */ + +package pubsub; + +// [START pubsub_subscribe_otel_tracing] + +import com.google.cloud.opentelemetry.trace.TraceConfiguration; +import com.google.cloud.opentelemetry.trace.TraceExporter; +import com.google.cloud.pubsub.v1.AckReplyConsumer; +import com.google.cloud.pubsub.v1.MessageReceiver; +import com.google.cloud.pubsub.v1.Subscriber; +import com.google.pubsub.v1.ProjectSubscriptionName; +import com.google.pubsub.v1.PubsubMessage; +import io.opentelemetry.api.OpenTelemetry; +import io.opentelemetry.sdk.OpenTelemetrySdk; +import io.opentelemetry.sdk.resources.Resource; +import io.opentelemetry.sdk.trace.SdkTracerProvider; +import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor; +import io.opentelemetry.sdk.trace.export.SpanExporter; +import io.opentelemetry.sdk.trace.samplers.Sampler; +import io.opentelemetry.semconv.ResourceAttributes; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + +public class OpenTelemetrySubscriberExample { + public static void main(String... args) throws Exception { + // TODO(developer): Replace these variables before running the sample. + String projectId = "your-project-id"; + String subscriptionId = "your-subscription-id"; + + openTelemetrySubscriberExample(projectId, subscriptionId); + } + + public static void openTelemetrySubscriberExample(String projectId, String subscriptionId) { + Resource resource = + Resource.getDefault().toBuilder() + .put(ResourceAttributes.SERVICE_NAME, "subscriber-example") + .build(); + + // Creates a Cloud Trace exporter. + SpanExporter traceExporter = + TraceExporter.createWithConfiguration( + TraceConfiguration.builder().setProjectId(projectId).build()); + + SdkTracerProvider sdkTracerProvider = + SdkTracerProvider.builder() + .setResource(resource) + .addSpanProcessor(SimpleSpanProcessor.create(traceExporter)) + .setSampler(Sampler.alwaysOn()) + .build(); + + OpenTelemetry openTelemetry = + OpenTelemetrySdk.builder().setTracerProvider(sdkTracerProvider).buildAndRegisterGlobal(); + + ProjectSubscriptionName subscriptionName = + ProjectSubscriptionName.of(projectId, subscriptionId); + + // Instantiate an asynchronous message receiver. + MessageReceiver receiver = + (PubsubMessage message, AckReplyConsumer consumer) -> { + // Handle incoming message, then ack the received message. + System.out.println("Id: " + message.getMessageId()); + System.out.println("Data: " + message.getData().toStringUtf8()); + consumer.ack(); + }; + + Subscriber subscriber = null; + try { + subscriber = + Subscriber.newBuilder(subscriptionName, receiver) + .setOpenTelemetry(openTelemetry) + .setEnableOpenTelemetryTracing(true) + .build(); + + // Start the subscriber. + subscriber.startAsync().awaitRunning(); + System.out.printf("Listening for messages on %s:\n", subscriptionName.toString()); + // Allow the subscriber to run for 30s unless an unrecoverable error occurs. + subscriber.awaitTerminated(30, TimeUnit.SECONDS); + } catch (TimeoutException timeoutException) { + // Shut down the subscriber after 30s. Stop receiving messages. + subscriber.stopAsync(); + } + } +} + // [END pubsub_subscribe_otel_tracing] diff --git a/samples/snippets/src/main/java/pubsub/OptimisticSubscribeExample.java b/samples/snippets/src/main/java/pubsub/OptimisticSubscribeExample.java new file mode 100644 index 000000000..fbc9a183b --- /dev/null +++ b/samples/snippets/src/main/java/pubsub/OptimisticSubscribeExample.java @@ -0,0 +1,103 @@ +/* + * 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. + */ + +package pubsub; + +// [START pubsub_optimistic_subscribe] + +import com.google.api.gax.rpc.NotFoundException; +import com.google.cloud.pubsub.v1.AckReplyConsumer; +import com.google.cloud.pubsub.v1.MessageReceiver; +import com.google.cloud.pubsub.v1.Subscriber; +import com.google.cloud.pubsub.v1.SubscriptionAdminClient; +import com.google.common.util.concurrent.MoreExecutors; +import com.google.pubsub.v1.ProjectSubscriptionName; +import com.google.pubsub.v1.PubsubMessage; +import com.google.pubsub.v1.PushConfig; +import com.google.pubsub.v1.Subscription; +import com.google.pubsub.v1.TopicName; +import java.io.IOException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + +public class OptimisticSubscribeExample { + public static void main(String... args) throws Exception { + // TODO(developer): Replace these variables before running the sample. + String projectId = "your-project-id"; + String subscriptionId = "your-subscription-id"; + String topicId = "your-topic-id"; + + optimisticSubscribeExample(projectId, subscriptionId, topicId); + } + + public static void optimisticSubscribeExample( + String projectId, String subscriptionId, String topicId) throws IOException { + ProjectSubscriptionName subscriptionName = + ProjectSubscriptionName.of(projectId, subscriptionId); + + // Instantiate an asynchronous message receiver. + MessageReceiver receiver = + (PubsubMessage message, AckReplyConsumer consumer) -> { + // Handle incoming message, then ack the received message. + System.out.println("Id: " + message.getMessageId()); + System.out.println("Data: " + message.getData().toStringUtf8()); + consumer.ack(); + }; + + Subscriber subscriber = null; + try { + subscriber = Subscriber.newBuilder(subscriptionName, receiver).build(); + + // Listen for resource NOT_FOUND errors and rebuild the subscriber and restart subscribing + // when the current subscriber encounters these errors. + subscriber.addListener( + new Subscriber.Listener() { + public void failed(Subscriber.State from, Throwable failure) { + System.out.println(failure.getStackTrace()); + if (failure instanceof NotFoundException) { + try (SubscriptionAdminClient subscriptionAdminClient = + SubscriptionAdminClient.create()) { + TopicName topicName = TopicName.of(projectId, topicId); + // Create a pull subscription with default acknowledgement deadline of 10 seconds. + // The client library will automatically extend acknowledgement deadlines. + Subscription subscription = + subscriptionAdminClient.createSubscription( + subscriptionName, topicName, PushConfig.getDefaultInstance(), 10); + System.out.println("Created pull subscription: " + subscription.getName()); + optimisticSubscribeExample(projectId, subscriptionId, topicId); + } catch (IOException err) { + System.out.println("Failed to create pull subscription: " + err.getMessage()); + } + } + } + }, + MoreExecutors.directExecutor()); + + subscriber.startAsync().awaitRunning(); + System.out.printf("Listening for messages on %s:\n", subscriptionName.toString()); + subscriber.awaitTerminated(30, TimeUnit.SECONDS); + } catch (IllegalStateException e) { + // Prevent an exception from being thrown if it is the expected NotFoundException + if (!(subscriber.failureCause() instanceof NotFoundException)) { + throw e; + } + } catch (TimeoutException e) { + subscriber.stopAsync(); + } + } +} + +// [END pubsub_optimistic_subscribe] diff --git a/samples/snippets/src/main/java/pubsub/PublishAvroRecordsExample.java b/samples/snippets/src/main/java/pubsub/PublishAvroRecordsExample.java index aa7d571c9..763882d65 100644 --- a/samples/snippets/src/main/java/pubsub/PublishAvroRecordsExample.java +++ b/samples/snippets/src/main/java/pubsub/PublishAvroRecordsExample.java @@ -74,7 +74,7 @@ public static void publishAvroRecordsExample(String projectId, String topicId) switch (encoding) { case BINARY: System.out.println("Preparing a BINARY encoder..."); - encoder = EncoderFactory.get().directBinaryEncoder(byteStream, /*reuse=*/ null); + encoder = EncoderFactory.get().directBinaryEncoder(byteStream, /* reuse= */ null); break; case JSON: diff --git a/samples/snippets/src/main/java/pubsub/SetSubscriptionPolicyExample.java b/samples/snippets/src/main/java/pubsub/SetSubscriptionPolicyExample.java index f0a449de8..f5b19f685 100644 --- a/samples/snippets/src/main/java/pubsub/SetSubscriptionPolicyExample.java +++ b/samples/snippets/src/main/java/pubsub/SetSubscriptionPolicyExample.java @@ -46,7 +46,10 @@ public static void setSubscriptionPolicyExample(String projectId, String subscri // Create new role -> members binding Binding binding = - Binding.newBuilder().setRole("roles/pubsub.editor").addMembers("allUsers").build(); + Binding.newBuilder() + .setRole("roles/pubsub.editor") + .addMembers("domain:google.com") + .build(); // Add new binding to updated policy Policy updatedPolicy = Policy.newBuilder(oldPolicy).addBindings(binding).build(); diff --git a/samples/snippets/src/main/java/pubsub/SetTopicPolicyExample.java b/samples/snippets/src/main/java/pubsub/SetTopicPolicyExample.java index 7e987c218..6a2359e8c 100644 --- a/samples/snippets/src/main/java/pubsub/SetTopicPolicyExample.java +++ b/samples/snippets/src/main/java/pubsub/SetTopicPolicyExample.java @@ -44,7 +44,10 @@ public static void setTopicPolicyExample(String projectId, String topicId) throw // Create new role -> members binding Binding binding = - Binding.newBuilder().setRole("roles/pubsub.editor").addMembers("allUsers").build(); + Binding.newBuilder() + .setRole("roles/pubsub.editor") + .addMembers("domain:google.com") + .build(); // Add new binding to updated policy Policy updatedPolicy = Policy.newBuilder(oldPolicy).addBindings(binding).build(); diff --git a/samples/snippets/src/main/java/pubsub/SubscribeWithAvroSchemaExample.java b/samples/snippets/src/main/java/pubsub/SubscribeWithAvroSchemaExample.java index 65b1937b8..68880d1d3 100644 --- a/samples/snippets/src/main/java/pubsub/SubscribeWithAvroSchemaExample.java +++ b/samples/snippets/src/main/java/pubsub/SubscribeWithAvroSchemaExample.java @@ -72,7 +72,7 @@ public static void subscribeWithAvroSchemaExample(String projectId, String subsc try { switch (encoding) { case "BINARY": - decoder = DecoderFactory.get().directBinaryDecoder(inputStream, /*reuse=*/ null); + decoder = DecoderFactory.get().directBinaryDecoder(inputStream, /* reuse= */ null); System.out.println("Receiving a binary-encoded message:"); break; case "JSON": diff --git a/samples/snippets/src/main/java/pubsub/SubscribeWithAvroSchemaRevisionsExample.java b/samples/snippets/src/main/java/pubsub/SubscribeWithAvroSchemaRevisionsExample.java index 204867006..9498bd020 100644 --- a/samples/snippets/src/main/java/pubsub/SubscribeWithAvroSchemaRevisionsExample.java +++ b/samples/snippets/src/main/java/pubsub/SubscribeWithAvroSchemaRevisionsExample.java @@ -118,7 +118,7 @@ public static void subscribeWithAvroSchemaRevisionsExample( try { switch (encoding) { case "BINARY": - decoder = DecoderFactory.get().directBinaryDecoder(inputStream, /*reuse=*/ null); + decoder = DecoderFactory.get().directBinaryDecoder(inputStream, /* reuse= */ null); System.out.println("Receiving a binary-encoded message:"); break; case "JSON": diff --git a/samples/snippets/src/main/java/pubsub/SubscribeWithErrorListenerExample.java b/samples/snippets/src/main/java/pubsub/SubscribeWithErrorListenerExample.java index a03c867a8..1e17afe68 100644 --- a/samples/snippets/src/main/java/pubsub/SubscribeWithErrorListenerExample.java +++ b/samples/snippets/src/main/java/pubsub/SubscribeWithErrorListenerExample.java @@ -62,15 +62,11 @@ public static void subscribeWithErrorListenerExample(String projectId, String su .setExecutorProvider(executorProvider) .build(); - // Listen for unrecoverable failures. Rebuild a subscriber and restart subscribing - // when the current subscriber encounters permanent errors. + // Listen for unrecoverable failures. subscriber.addListener( new Subscriber.Listener() { public void failed(Subscriber.State from, Throwable failure) { - System.out.println(failure.getStackTrace()); - if (!executorProvider.getExecutor().isShutdown()) { - subscribeWithErrorListenerExample(projectId, subscriptionId); - } + System.out.println("Unrecoverable subscriber failure:" + failure.getStackTrace()); } }, MoreExecutors.directExecutor()); diff --git a/samples/snippets/src/main/java/pubsub/SubscribeWithExactlyOnceConsumerWithResponseExample.java b/samples/snippets/src/main/java/pubsub/SubscribeWithExactlyOnceConsumerWithResponseExample.java index 8c85364c0..cf5ed3248 100644 --- a/samples/snippets/src/main/java/pubsub/SubscribeWithExactlyOnceConsumerWithResponseExample.java +++ b/samples/snippets/src/main/java/pubsub/SubscribeWithExactlyOnceConsumerWithResponseExample.java @@ -95,7 +95,14 @@ public static void subscribeWithExactlyOnceConsumerWithResponseExample( Subscriber subscriber = null; try { - subscriber = Subscriber.newBuilder(subscriptionName, receiverWithResponse).build(); + // Pub/Sub's exactly once delivery guarantee only applies when subscribers connect to the + // service in the same region. + // For list of locational endpoints for Pub/Sub, see + // https://cloud.google.com/pubsub/docs/reference/service_apis_overview#list_of_locational_endpoints + subscriber = + Subscriber.newBuilder(subscriptionName, receiverWithResponse) + .setEndpoint("us-west1-pubsub.googleapis.com:443") + .build(); // Start the subscriber. subscriber.startAsync().awaitRunning(); System.out.printf("Listening for messages on %s:\n", subscriptionName.toString()); diff --git a/samples/snippets/src/main/java/pubsub/UpdateTopicTypeExample.java b/samples/snippets/src/main/java/pubsub/UpdateTopicTypeExample.java new file mode 100644 index 000000000..6b8497ea7 --- /dev/null +++ b/samples/snippets/src/main/java/pubsub/UpdateTopicTypeExample.java @@ -0,0 +1,86 @@ +/* + * 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. + */ + +package pubsub; + +// [START pubsub_update_topic_type] + +import com.google.cloud.pubsub.v1.TopicAdminClient; +import com.google.protobuf.FieldMask; +import com.google.pubsub.v1.IngestionDataSourceSettings; +import com.google.pubsub.v1.Topic; +import com.google.pubsub.v1.TopicName; +import com.google.pubsub.v1.UpdateTopicRequest; +import java.io.IOException; + +public class UpdateTopicTypeExample { + public static void main(String... args) throws Exception { + // TODO(developer): Replace these variables before running the sample. + String projectId = "your-project-id"; + String topicId = "your-topic-id"; + // Kinesis ingestion settings. + String streamArn = "stream-arn"; + String consumerArn = "consumer-arn"; + String awsRoleArn = "aws-role-arn"; + String gcpServiceAccount = "gcp-service-account"; + + UpdateTopicTypeExample.updateTopicTypeExample( + projectId, topicId, streamArn, consumerArn, awsRoleArn, gcpServiceAccount); + } + + public static void updateTopicTypeExample( + String projectId, + String topicId, + String streamArn, + String consumerArn, + String awsRoleArn, + String gcpServiceAccount) + throws IOException { + try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { + TopicName topicName = TopicName.of(projectId, topicId); + + IngestionDataSourceSettings.AwsKinesis awsKinesis = + IngestionDataSourceSettings.AwsKinesis.newBuilder() + .setStreamArn(streamArn) + .setConsumerArn(consumerArn) + .setAwsRoleArn(awsRoleArn) + .setGcpServiceAccount(gcpServiceAccount) + .build(); + IngestionDataSourceSettings ingestionDataSourceSettings = + IngestionDataSourceSettings.newBuilder().setAwsKinesis(awsKinesis).build(); + + // Construct the topic with Kinesis ingestion settings. + Topic topic = + Topic.newBuilder() + .setName(topicName.toString()) + .setIngestionDataSourceSettings(ingestionDataSourceSettings) + .build(); + + // Construct a field mask to indicate which field to update in the topic. + FieldMask updateMask = + FieldMask.newBuilder().addPaths("ingestion_data_source_settings").build(); + + UpdateTopicRequest request = + UpdateTopicRequest.newBuilder().setTopic(topic).setUpdateMask(updateMask).build(); + + Topic response = topicAdminClient.updateTopic(request); + + System.out.println( + "Updated topic with Kinesis ingestion settings: " + response.getAllFields()); + } + } +} +// [END pubsub_update_topic_type] diff --git a/samples/snippets/src/main/java/pubsub/UsePubSubEmulatorExample.java b/samples/snippets/src/main/java/pubsub/UsePubSubEmulatorExample.java index f4c69eac4..c73aca098 100644 --- a/samples/snippets/src/main/java/pubsub/UsePubSubEmulatorExample.java +++ b/samples/snippets/src/main/java/pubsub/UsePubSubEmulatorExample.java @@ -16,6 +16,15 @@ package pubsub; +/** + * Snippet that demonstrates creating Pub/Sub clients using the Google Cloud Pub/Sub emulator. + * + *

Note: clients cannot start/stop the emulator. + */ + +// [START pubsub_use_emulator] + +import com.google.api.core.ApiFuture; import com.google.api.gax.core.CredentialsProvider; import com.google.api.gax.core.NoCredentialsProvider; import com.google.api.gax.grpc.GrpcTransportChannel; @@ -24,20 +33,15 @@ import com.google.cloud.pubsub.v1.Publisher; import com.google.cloud.pubsub.v1.TopicAdminClient; import com.google.cloud.pubsub.v1.TopicAdminSettings; +import com.google.protobuf.ByteString; +import com.google.pubsub.v1.PubsubMessage; +import com.google.pubsub.v1.Topic; import com.google.pubsub.v1.TopicName; import io.grpc.ManagedChannel; import io.grpc.ManagedChannelBuilder; -import java.io.IOException; -/** - * Snippet that demonstrates creating Pub/Sub clients using the Google Cloud Pub/Sub emulator. - * - *

Note: clients cannot start/stop the emulator. - */ public class UsePubSubEmulatorExample { - - public static void main(String... args) throws IOException { - // [START pubsub_use_emulator] + public static void main(String... args) throws Exception { String hostport = System.getenv("PUBSUB_EMULATOR_HOST"); ManagedChannel channel = ManagedChannelBuilder.forTarget(hostport).usePlaintext().build(); try { @@ -46,8 +50,8 @@ public static void main(String... args) throws IOException { CredentialsProvider credentialsProvider = NoCredentialsProvider.create(); // Set the channel and credentials provider when creating a `TopicAdminClient`. - // Similarly for SubscriptionAdminClient - TopicAdminClient topicClient = + // Can be done similarly for a `SubscriptionAdminClient`. + TopicAdminClient topicAdminClient = TopicAdminClient.create( TopicAdminSettings.newBuilder() .setTransportChannelProvider(channelProvider) @@ -55,16 +59,27 @@ public static void main(String... args) throws IOException { .build()); TopicName topicName = TopicName.of("my-project-id", "my-topic-id"); + Topic topic = topicAdminClient.createTopic(topicName); + System.out.println("Created topic: " + topic.getName()); + // Set the channel and credentials provider when creating a `Publisher`. - // Similarly for Subscriber + // Can be done similarly for a `Subscriber`. Publisher publisher = Publisher.newBuilder(topicName) .setChannelProvider(channelProvider) .setCredentialsProvider(credentialsProvider) .build(); + + String message = "Hello World!"; + ByteString data = ByteString.copyFromUtf8(message); + PubsubMessage pubsubMessage = PubsubMessage.newBuilder().setData(data).build(); + + ApiFuture messageIdFuture = publisher.publish(pubsubMessage); + String messageId = messageIdFuture.get(); + System.out.println("Published message ID: " + messageId); } finally { channel.shutdown(); } - // [END pubsub_use_emulator] } } +// [END pubsub_use_emulator] diff --git a/samples/snippets/src/main/java/utilities/State.java b/samples/snippets/src/main/java/utilities/State.java index 503acf61f..60d869e23 100644 --- a/samples/snippets/src/main/java/utilities/State.java +++ b/samples/snippets/src/main/java/utilities/State.java @@ -46,7 +46,12 @@ public class State extends org.apache.avro.specific.SpecificRecordBase public static final org.apache.avro.Schema SCHEMA$ = new org.apache.avro.Schema.Parser() .parse( - "{\"type\":\"record\",\"name\":\"State\",\"namespace\":\"utilities\",\"doc\":\"A list of states in the United States of America.\",\"fields\":[{\"name\":\"name\",\"type\":\"string\",\"doc\":\"The common name of the state.\"},{\"name\":\"post_abbr\",\"type\":\"string\",\"doc\":\"The postal code abbreviation of the state.\"}]}"); + "{\"type\":\"record\",\"name\":\"State\",\"namespace\":\"utilities\",\"doc\":\"A list" + + " of states in the United States of" + + " America.\",\"fields\":[{\"name\":\"name\",\"type\":\"string\",\"doc\":\"The" + + " common name of the" + + " state.\"},{\"name\":\"post_abbr\",\"type\":\"string\",\"doc\":\"The postal" + + " code abbreviation of the state.\"}]}"); public static org.apache.avro.Schema getClassSchema() { return SCHEMA$; @@ -113,6 +118,7 @@ public static State fromByteBuffer(java.nio.ByteBuffer b) throws java.io.IOExcep /** The common name of the state. */ private java.lang.CharSequence name; + /** The postal code abbreviation of the state. */ private java.lang.CharSequence post_abbr; @@ -140,6 +146,7 @@ public org.apache.avro.specific.SpecificData getSpecificData() { public org.apache.avro.Schema getSchema() { return SCHEMA$; } + // Used by DatumWriter. Applications should not call. public java.lang.Object get(int field$) { switch (field$) { @@ -247,6 +254,7 @@ public static class Builder extends org.apache.avro.specific.SpecificRecordBuild /** The common name of the state. */ private java.lang.CharSequence name; + /** The postal code abbreviation of the state. */ private java.lang.CharSequence post_abbr; diff --git a/samples/snippets/src/main/java/utilities/StateProto.java b/samples/snippets/src/main/java/utilities/StateProto.java index 60701da37..388ba9b97 100644 --- a/samples/snippets/src/main/java/utilities/StateProto.java +++ b/samples/snippets/src/main/java/utilities/StateProto.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * 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. @@ -14,9 +14,6 @@ * limitations under the License. */ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: us-states.proto - /** * This file is created using protoc. * @@ -27,6 +24,10 @@ *

`protoc --proto_path=src/main/resources/ --java_out=src/main/java/ * src/main/resources/us-states.proto` */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: us-states.proto + +// Protobuf Java Version: 3.25.4 package utilities; public final class StateProto { @@ -49,6 +50,7 @@ public interface StateOrBuilder * @return The name. */ java.lang.String getName(); + /** * string name = 1; * @@ -62,6 +64,7 @@ public interface StateOrBuilder * @return The postAbbr. */ java.lang.String getPostAbbr(); + /** * string post_abbr = 2; * @@ -69,12 +72,14 @@ public interface StateOrBuilder */ com.google.protobuf.ByteString getPostAbbrBytes(); } + /** Protobuf type {@code utilities.State} */ public static final class State extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:utilities.State) StateOrBuilder { private static final long serialVersionUID = 0L; + // Use State.newBuilder() to construct. private State(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); @@ -91,62 +96,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new State(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private State( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: - { - java.lang.String s = input.readStringRequireUtf8(); - - name_ = s; - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - - postAbbr_ = s; - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return utilities.StateProto.internal_static_utilities_State_descriptor; } @@ -160,7 +109,10 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } public static final int NAME_FIELD_NUMBER = 1; - private volatile java.lang.Object name_; + + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + /** * string name = 1; * @@ -178,6 +130,7 @@ public java.lang.String getName() { return s; } } + /** * string name = 1; * @@ -197,7 +150,10 @@ public com.google.protobuf.ByteString getNameBytes() { } public static final int POST_ABBR_FIELD_NUMBER = 2; - private volatile java.lang.Object postAbbr_; + + @SuppressWarnings("serial") + private volatile java.lang.Object postAbbr_ = ""; + /** * string post_abbr = 2; * @@ -215,6 +171,7 @@ public java.lang.String getPostAbbr() { return s; } } + /** * string post_abbr = 2; * @@ -247,13 +204,13 @@ public final boolean isInitialized() { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); } - if (!getPostAbbrBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(postAbbr_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, postAbbr_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -262,13 +219,13 @@ public int getSerializedSize() { if (size != -1) return size; size = 0; - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); } - if (!getPostAbbrBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(postAbbr_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, postAbbr_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -285,7 +242,7 @@ public boolean equals(final java.lang.Object obj) { if (!getName().equals(other.getName())) return false; if (!getPostAbbr().equals(other.getPostAbbr())) return false; - if (!unknownFields.equals(other.unknownFields)) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -300,7 +257,7 @@ public int hashCode() { hash = (53 * hash) + getName().hashCode(); hash = (37 * hash) + POST_ABBR_FIELD_NUMBER; hash = (53 * hash) + getPostAbbr().hashCode(); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -400,6 +357,7 @@ protected Builder newBuilderForType( Builder builder = new Builder(parent); return builder; } + /** Protobuf type {@code utilities.State} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder @@ -419,26 +377,18 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } // Construct using utilities.StateProto.State.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } + private Builder() {} private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {} } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; name_ = ""; - postAbbr_ = ""; - return this; } @@ -464,12 +414,23 @@ public utilities.StateProto.State build() { @java.lang.Override public utilities.StateProto.State buildPartial() { utilities.StateProto.State result = new utilities.StateProto.State(this); - result.name_ = name_; - result.postAbbr_ = postAbbr_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } + private void buildPartial0(utilities.StateProto.State result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.postAbbr_ = postAbbr_; + } + } + @java.lang.Override public Builder clone() { return super.clone(); @@ -519,13 +480,15 @@ public Builder mergeFrom(utilities.StateProto.State other) { if (other == utilities.StateProto.State.getDefaultInstance()) return this; if (!other.getName().isEmpty()) { name_ = other.name_; + bitField0_ |= 0x00000001; onChanged(); } if (!other.getPostAbbr().isEmpty()) { postAbbr_ = other.postAbbr_; + bitField0_ |= 0x00000002; onChanged(); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -540,21 +503,50 @@ public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - utilities.StateProto.State parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + postAbbr_ = 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) { - parsedMessage = (utilities.StateProto.State) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } + onChanged(); + } // finally return this; } + private int bitField0_; + private java.lang.Object name_ = ""; + /** * string name = 1; * @@ -571,6 +563,7 @@ public java.lang.String getName() { return (java.lang.String) ref; } } + /** * string name = 1; * @@ -587,6 +580,7 @@ public com.google.protobuf.ByteString getNameBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * string name = 1; * @@ -597,22 +591,24 @@ public Builder setName(java.lang.String value) { if (value == null) { throw new NullPointerException(); } - name_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } + /** * string name = 1; * * @return This builder for chaining. */ public Builder clearName() { - name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } + /** * string name = 1; * @@ -624,13 +620,14 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - name_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } private java.lang.Object postAbbr_ = ""; + /** * string post_abbr = 2; * @@ -647,6 +644,7 @@ public java.lang.String getPostAbbr() { return (java.lang.String) ref; } } + /** * string post_abbr = 2; * @@ -663,6 +661,7 @@ public com.google.protobuf.ByteString getPostAbbrBytes() { return (com.google.protobuf.ByteString) ref; } } + /** * string post_abbr = 2; * @@ -673,22 +672,24 @@ public Builder setPostAbbr(java.lang.String value) { if (value == null) { throw new NullPointerException(); } - postAbbr_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } + /** * string post_abbr = 2; * * @return This builder for chaining. */ public Builder clearPostAbbr() { - postAbbr_ = getDefaultInstance().getPostAbbr(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } + /** * string post_abbr = 2; * @@ -700,8 +701,8 @@ public Builder setPostAbbrBytes(com.google.protobuf.ByteString value) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - postAbbr_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -739,7 +740,19 @@ public State parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new State(input, extensionRegistry); + 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(); } }; diff --git a/samples/snippets/src/test/java/pubsub/AdminIT.java b/samples/snippets/src/test/java/pubsub/AdminIT.java index e42c81290..2d31e17f7 100644 --- a/samples/snippets/src/test/java/pubsub/AdminIT.java +++ b/samples/snippets/src/test/java/pubsub/AdminIT.java @@ -33,6 +33,7 @@ import com.google.cloud.bigquery.TableInfo; import com.google.cloud.pubsub.v1.SubscriptionAdminClient; import com.google.cloud.pubsub.v1.TopicAdminClient; +import com.google.protobuf.Duration; import com.google.pubsub.v1.SubscriptionName; import com.google.pubsub.v1.TopicName; import java.io.ByteArrayOutputStream; @@ -52,10 +53,20 @@ public class AdminIT { private static final String projectId = System.getenv("GOOGLE_CLOUD_PROJECT"); private static final String _suffix = UUID.randomUUID().toString(); private static final String topicId = "iam-topic-" + _suffix; + private static final String kinesisIngestionTopicId = "kinesis-ingestion-topic-" + _suffix; + private static final String cloudStorageIngestionTopicId = + "cloud-storage-ingestion-topic-" + _suffix; + private static final String awsMskIngestionTopicId = "aws-msk-ingestion-topic-" + _suffix; + private static final String confluentCloudIngestionTopicId = + "confluent-cloud-ingestion-topic-" + _suffix; + private static final String azureEventHubsIngestionTopicId = + "azure-event-hubs-ingestion-topic-" + _suffix; + private static final String smtTopicId = "smt-topic-" + _suffix; private static final String pullSubscriptionId = "iam-pull-subscription-" + _suffix; private static final String pushSubscriptionId = "iam-push-subscription-" + _suffix; private static final String orderedSubscriptionId = "iam-ordered-subscription-" + _suffix; private static final String filteredSubscriptionId = "iam-filtered-subscription-" + _suffix; + private static final String smtSubscriptionId = "smt-subscription-" + _suffix; private static final String exactlyOnceSubscriptionId = "iam-exactly-once-subscription-" + _suffix; private static final String pushEndpoint = "https://my-test-project.appspot.com/push"; @@ -63,8 +74,60 @@ public class AdminIT { "java_samples_data_set" + _suffix.replace("-", "_"); private static final String bigquerySubscriptionId = "iam-bigquery-subscription-" + _suffix; private static final String bigqueryTableId = "java_samples_table_" + _suffix; + private static final String cloudStorageSubscriptionId = + "iam-cloud-storage-subscription-" + _suffix; + private static final String cloudStorageFilenamePrefix = "log_events_"; + private static final String cloudStorageFilenameSuffix = ".txt"; + private static final Duration cloudStorageMaxDuration = + Duration.newBuilder().setSeconds(300).build(); + private static final String gcpServiceAccount = + "fake-service-account@fake-gcp-project.iam.gserviceaccount.com"; + // AWS Kinesis ingestion settings. + private static final String streamArn = + "arn:aws:kinesis:us-west-2:111111111111:stream/fake-stream-name"; + private static final String consumerArn = + "arn:aws:kinesis:us-west-2:111111111111:stream/fake-stream-name/" + + "consumer/consumer-1:1111111111"; + private static final String consumerArn2 = + "arn:aws:kinesis:us-west-2:111111111111:stream/fake-stream-name/" + + "consumer/consumer-2:2222222222"; + private static final String awsRoleArn = "arn:aws:iam::111111111111:role/fake-role-name"; + // GCS ingestion settings. + private static final String cloudStorageBucket = "pubsub-cloud-storage-bucket"; + private static final String cloudStorageInputFormat = "text"; + private static final String cloudStorageTextDelimiter = ","; + private static final String cloudStorageMatchGlob = "**.txt"; + private static final String cloudStorageMinimumObjectCreateTime = "1970-01-01T00:00:01Z"; + private static final String cloudStorageMinimumObjectCreateTimeSeconds = "seconds: 1"; + // AWS MSK ingestion settings. + String clusterArn = + "arn:aws:kafka:us-east-1:111111111111:cluster/fake-cluster-name/11111111-1111-1"; + String mskTopic = "fake-msk-topic-name"; + // Confluent Cloud ingestion settings. + String bootstrapServer = "fake-bootstrap-server-id.us-south1.gcp.confluent.cloud:9092"; + String clusterId = "fake-cluster-id"; + String confluentTopic = "fake-confluent-topic-name"; + String identityPoolId = "fake-pool-id"; + // Azure Event Hubs ingestion settings. + String resourceGroup = "fake-resource-group"; + String namespace = "fake-namespace"; + String eventHub = "fake-event-hub"; + String clientId = "11111111-1111-1111-1111-111111111111"; + String tenantId = "22222222-2222-2222-2222-222222222222"; + String subscriptionId = "33333333-3333-3333-3333-333333333333"; private static final TopicName topicName = TopicName.of(projectId, topicId); + private static final TopicName kinesisIngestionTopicName = + TopicName.of(projectId, kinesisIngestionTopicId); + private static final TopicName cloudStorageIngestionTopicName = + TopicName.of(projectId, cloudStorageIngestionTopicId); + private static final TopicName awsMskIngestionTopicName = + TopicName.of(projectId, awsMskIngestionTopicId); + private static final TopicName confluentCloudIngestionTopicName = + TopicName.of(projectId, confluentCloudIngestionTopicId); + private static final TopicName azureEventHubsIngestionTopicName = + TopicName.of(projectId, azureEventHubsIngestionTopicId); + private static final TopicName smtTopicName = TopicName.of(projectId, smtTopicId); private static final SubscriptionName pullSubscriptionName = SubscriptionName.of(projectId, pullSubscriptionId); private static final SubscriptionName pushSubscriptionName = @@ -75,6 +138,8 @@ public class AdminIT { SubscriptionName.of(projectId, filteredSubscriptionId); private static final SubscriptionName exactlyOnceSubscriptionName = SubscriptionName.of(projectId, exactlyOnceSubscriptionId); + private static final SubscriptionName smtSubscriptionName = + SubscriptionName.of(projectId, smtSubscriptionId); private static void requireEnvVar(String varName) { assertNotNull( @@ -264,6 +329,22 @@ public void testAdmin() throws Exception { assertThat(bout.toString()).contains("Created a BigQuery subscription:"); assertThat(bout.toString()).contains(bigqueryTablePath); + bout.reset(); + // Test create a Cloud Storage subscription. + CreateCloudStorageSubscriptionExample.createCloudStorageSubscription( + projectId, + topicId, + cloudStorageSubscriptionId, + cloudStorageBucket, + cloudStorageFilenamePrefix, + cloudStorageFilenameSuffix, + cloudStorageMaxDuration); + assertThat(bout.toString()).contains("Created a CloudStorage subscription:"); + assertThat(bout.toString()).contains(cloudStorageBucket); + assertThat(bout.toString()).contains(cloudStorageFilenamePrefix); + assertThat(bout.toString()).contains(cloudStorageFilenameSuffix); + assertThat(bout.toString()).contains(Long.toString(cloudStorageMaxDuration.getSeconds())); + bout.reset(); // Test delete subscription. DeleteSubscriptionExample.deleteSubscriptionExample(projectId, pullSubscriptionId); @@ -271,11 +352,153 @@ public void testAdmin() throws Exception { DeleteSubscriptionExample.deleteSubscriptionExample(projectId, orderedSubscriptionId); DeleteSubscriptionExample.deleteSubscriptionExample(projectId, exactlyOnceSubscriptionId); DeleteSubscriptionExample.deleteSubscriptionExample(projectId, bigquerySubscriptionId); + DeleteSubscriptionExample.deleteSubscriptionExample(projectId, cloudStorageSubscriptionId); assertThat(bout.toString()).contains("Deleted subscription."); + bout.reset(); + // Update topic type to Kinesis ingestion. + UpdateTopicTypeExample.updateTopicTypeExample( + projectId, topicId, streamArn, consumerArn, awsRoleArn, gcpServiceAccount); + assertThat(bout.toString()).contains("google.pubsub.v1.Topic.name=" + topicName.toString()); + assertThat(bout.toString()).contains(streamArn); + assertThat(bout.toString()).contains(consumerArn); + assertThat(bout.toString()).contains(awsRoleArn); + assertThat(bout.toString()).contains(gcpServiceAccount); + bout.reset(); // Test delete topic. DeleteTopicExample.deleteTopicExample(projectId, topicId); assertThat(bout.toString()).contains("Deleted topic."); + + bout.reset(); + // Test create topic with Kinesis ingestion settings. + CreateTopicWithKinesisIngestionExample.createTopicWithKinesisIngestionExample( + projectId, kinesisIngestionTopicId, streamArn, consumerArn, awsRoleArn, gcpServiceAccount); + assertThat(bout.toString()) + .contains("google.pubsub.v1.Topic.name=" + kinesisIngestionTopicName.toString()); + assertThat(bout.toString()).contains(streamArn); + assertThat(bout.toString()).contains(consumerArn); + assertThat(bout.toString()).contains(awsRoleArn); + assertThat(bout.toString()).contains(gcpServiceAccount); + + bout.reset(); + // Test update existing Kinesis ingestion settings. + UpdateTopicTypeExample.updateTopicTypeExample( + projectId, kinesisIngestionTopicId, streamArn, consumerArn2, awsRoleArn, gcpServiceAccount); + assertThat(bout.toString()) + .contains("google.pubsub.v1.Topic.name=" + kinesisIngestionTopicName.toString()); + assertThat(bout.toString()).contains(streamArn); + assertThat(bout.toString()).contains(consumerArn2); + assertThat(bout.toString()).contains(awsRoleArn); + assertThat(bout.toString()).contains(gcpServiceAccount); + + bout.reset(); + // Test delete Kinesis ingestion topic. + DeleteTopicExample.deleteTopicExample(projectId, kinesisIngestionTopicId); + assertThat(bout.toString()).contains("Deleted topic."); + + bout.reset(); + // Test create topic with Cloud Storage ingestion settings. + CreateTopicWithCloudStorageIngestionExample.createTopicWithCloudStorageIngestionExample( + projectId, + cloudStorageIngestionTopicId, + cloudStorageBucket, + cloudStorageInputFormat, + cloudStorageTextDelimiter, + cloudStorageMatchGlob, + cloudStorageMinimumObjectCreateTime); + assertThat(bout.toString()) + .contains("google.pubsub.v1.Topic.name=" + cloudStorageIngestionTopicName.toString()); + assertThat(bout.toString()).contains(cloudStorageBucket); + assertThat(bout.toString()).contains(cloudStorageInputFormat); + assertThat(bout.toString()).contains(cloudStorageTextDelimiter); + assertThat(bout.toString()).contains(cloudStorageMatchGlob); + assertThat(bout.toString()).contains(cloudStorageMinimumObjectCreateTimeSeconds); + + bout.reset(); + // Test delete Cloud Storage ingestion topic. + DeleteTopicExample.deleteTopicExample(projectId, cloudStorageIngestionTopicId); + assertThat(bout.toString()).contains("Deleted topic."); + + bout.reset(); + // Test create topic with AWS MSK ingestion settings. + CreateTopicWithAwsMskIngestionExample.createTopicWithAwsMskIngestionExample( + projectId, awsMskIngestionTopicId, clusterArn, mskTopic, awsRoleArn, gcpServiceAccount); + assertThat(bout.toString()) + .contains("google.pubsub.v1.Topic.name=" + awsMskIngestionTopicName.toString()); + assertThat(bout.toString()).contains(clusterArn); + assertThat(bout.toString()).contains(mskTopic); + assertThat(bout.toString()).contains(awsRoleArn); + assertThat(bout.toString()).contains(gcpServiceAccount); + + bout.reset(); + // Test delete AWS MSK ingestion topic. + DeleteTopicExample.deleteTopicExample(projectId, awsMskIngestionTopicId); + assertThat(bout.toString()).contains("Deleted topic."); + + bout.reset(); + // Test create topic with Confluent Cloud ingestion settings. + CreateTopicWithConfluentCloudIngestionExample.createTopicWithConfluentCloudIngestionExample( + projectId, + confluentCloudIngestionTopicId, + bootstrapServer, + clusterId, + confluentTopic, + identityPoolId, + gcpServiceAccount); + assertThat(bout.toString()) + .contains("google.pubsub.v1.Topic.name=" + confluentCloudIngestionTopicName.toString()); + assertThat(bout.toString()).contains(bootstrapServer); + assertThat(bout.toString()).contains(clusterId); + assertThat(bout.toString()).contains(confluentTopic); + assertThat(bout.toString()).contains(identityPoolId); + assertThat(bout.toString()).contains(gcpServiceAccount); + + bout.reset(); + // Test delete Confluent Cloud ingestion topic. + DeleteTopicExample.deleteTopicExample(projectId, confluentCloudIngestionTopicId); + assertThat(bout.toString()).contains("Deleted topic."); + + bout.reset(); + // Test create topic with Azure Event Hubs ingestion settings. + CreateTopicWithAzureEventHubsIngestionExample.createTopicWithAzureEventHubsIngestionExample( + projectId, + azureEventHubsIngestionTopicId, + resourceGroup, + namespace, + eventHub, + clientId, + tenantId, + subscriptionId, + gcpServiceAccount); + assertThat(bout.toString()) + .contains("google.pubsub.v1.Topic.name=" + azureEventHubsIngestionTopicName.toString()); + assertThat(bout.toString()).contains(resourceGroup); + assertThat(bout.toString()).contains(namespace); + assertThat(bout.toString()).contains(eventHub); + assertThat(bout.toString()).contains(clientId); + assertThat(bout.toString()).contains(tenantId); + assertThat(bout.toString()).contains(subscriptionId); + assertThat(bout.toString()).contains(gcpServiceAccount); + + bout.reset(); + // Test delete Azure Event Hubs ingestion topic. + DeleteTopicExample.deleteTopicExample(projectId, azureEventHubsIngestionTopicId); + assertThat(bout.toString()).contains("Deleted topic."); + + bout.reset(); + // Test create topic with an SMT. + CreateTopicWithSmtExample.createTopicWithSmtExample(projectId, smtTopicId); + assertThat(bout.toString()).contains("Created topic with SMT: " + smtTopicName.toString()); + + bout.reset(); + // Test create topic with an SMT. + CreateSubscriptionWithSmtExample.createSubscriptionWithSmtExample( + projectId, smtTopicId, smtSubscriptionId); + assertThat(bout.toString()).contains("Created subscription with SMT"); + assertThat(bout.toString()).contains(smtSubscriptionName.toString()); + assertThat(bout.toString()).contains("redactSSN"); + DeleteSubscriptionExample.deleteSubscriptionExample(projectId, smtSubscriptionId); + DeleteTopicExample.deleteTopicExample(projectId, smtTopicId); } } diff --git a/samples/snippets/src/test/java/pubsub/DeadLetterQueueIT.java b/samples/snippets/src/test/java/pubsub/DeadLetterQueueIT.java index 8a97d25f5..d85c27ad8 100644 --- a/samples/snippets/src/test/java/pubsub/DeadLetterQueueIT.java +++ b/samples/snippets/src/test/java/pubsub/DeadLetterQueueIT.java @@ -68,7 +68,7 @@ private static void publishSomeMessages() throws Exception { } @Rule public Timeout globalTimeout = Timeout.seconds(300); // 5 minute timeout - @Rule public MultipleAttemptsRule retryRule = new MultipleAttemptsRule(/*maxAttemptCount=*/ 3); + @Rule public MultipleAttemptsRule retryRule = new MultipleAttemptsRule(/* maxAttemptCount= */ 3); @BeforeClass public static void checkRequirements() { diff --git a/samples/snippets/src/test/java/pubsub/SchemaIT.java b/samples/snippets/src/test/java/pubsub/SchemaIT.java index 2874ae519..342a42c61 100644 --- a/samples/snippets/src/test/java/pubsub/SchemaIT.java +++ b/samples/snippets/src/test/java/pubsub/SchemaIT.java @@ -79,7 +79,7 @@ private static void requireEnvVar(String varName) { } @Rule public Timeout globalTimeout = Timeout.seconds(600); // 10 minute timeout - @Rule public MultipleAttemptsRule retryRule = new MultipleAttemptsRule(/*maxAttemptCount=*/ 3); + @Rule public MultipleAttemptsRule retryRule = new MultipleAttemptsRule(/* maxAttemptCount= */ 3); @Before public void setUp() { diff --git a/samples/snippets/src/test/java/pubsub/SubscriberIT.java b/samples/snippets/src/test/java/pubsub/SubscriberIT.java index ee4e03068..dc4bf0f7b 100644 --- a/samples/snippets/src/test/java/pubsub/SubscriberIT.java +++ b/samples/snippets/src/test/java/pubsub/SubscriberIT.java @@ -38,16 +38,15 @@ import java.util.HashSet; import java.util.List; import java.util.UUID; -import org.junit.After; -import org.junit.Before; +import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Rule; import org.junit.Test; import org.junit.rules.Timeout; public class SubscriberIT { - private ByteArrayOutputStream bout; - private PrintStream out; + private static ByteArrayOutputStream bout; + private static PrintStream out; private static final String projectId = System.getenv("GOOGLE_CLOUD_PROJECT"); private static final String _suffix = UUID.randomUUID().toString(); @@ -56,12 +55,16 @@ public class SubscriberIT { private static final String subscriptionId = "subscriber-test-subscription-" + _suffix; // For a subscription with exactly once delivery enabled. private static final String subscriptionEodId = "subscriber-test-subscription-eod" + _suffix; + private static final String subscriptionOptimisticId = + "subscriber-test-subscription-optimistic" + _suffix; private static final TopicName topicName = TopicName.of(projectId, topicId); private static final TopicName topicNameEod = TopicName.of(projectId, topicIdEod); private static final ProjectSubscriptionName subscriptionName = ProjectSubscriptionName.of(projectId, subscriptionId); private static final ProjectSubscriptionName subscriptionEodName = ProjectSubscriptionName.of(projectId, subscriptionEodId); + private static final ProjectSubscriptionName subscriptionOptimisticName = + ProjectSubscriptionName.of(projectId, subscriptionOptimisticId); private static void requireEnvVar(String varName) { assertNotNull( @@ -125,8 +128,8 @@ public static void checkRequirements() { requireEnvVar("GOOGLE_CLOUD_PROJECT"); } - @Before - public void setUp() throws Exception { + @BeforeClass + public static void setUp() throws Exception { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); System.setOut(out); @@ -158,11 +161,16 @@ public void setUp() throws Exception { } } - @After - public void tearDown() throws Exception { + @AfterClass + public static void tearDown() throws Exception { try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { subscriptionAdminClient.deleteSubscription(subscriptionName.toString()); subscriptionAdminClient.deleteSubscription(subscriptionEodName.toString()); + try { + subscriptionAdminClient.deleteSubscription(subscriptionOptimisticName.toString()); + } catch (Exception e) { + // Ignore exception. + } } try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { @@ -240,4 +248,14 @@ public void testSubscriberExactlyOnceDelivery() throws Exception { assertThat(bout.toString()).contains("Message successfully acked: " + messageId); } } + + @Test + public void testOptimisticSubscriber() throws Exception { + bout.reset(); + OptimisticSubscribeExample.optimisticSubscribeExample( + projectId, subscriptionOptimisticId, topicId); + assertThat( + bout.toString() + .contains("Created pull subscription: " + subscriptionOptimisticName.toString())); + } } diff --git a/versions.txt b/versions.txt index 67e7730ab..c0a0d2f15 100644 --- a/versions.txt +++ b/versions.txt @@ -1,6 +1,6 @@ # Format: # module:released-version:current-version -google-cloud-pubsub:1.126.0:1.126.1-SNAPSHOT -grpc-google-cloud-pubsub-v1:1.108.0:1.108.1-SNAPSHOT -proto-google-cloud-pubsub-v1:1.108.0:1.108.1-SNAPSHOT +google-cloud-pubsub:1.144.1:1.144.1 +grpc-google-cloud-pubsub-v1:1.126.1:1.126.1 +proto-google-cloud-pubsub-v1:1.126.1:1.126.1

MethodsMethods
MethodDescriptionMethod Variants
CreateTopic

CreateTopic

Creates the given topic with the given name. See the [resource name rules] (https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names).

*

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

*
    - *
  • createTopic(Topic request) + *
  • createTopic(Topic request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • createTopic(TopicName name) - *
  • createTopic(String name) + *
  • createTopic(TopicName name) + *

  • createTopic(String name) *

*

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

*
    - *
  • createTopicCallable() + *
  • createTopicCallable() *

*
UpdateTopic

Updates an existing topic. Note that certain properties of a topic are not modifiable.

UpdateTopic

Updates an existing topic by updating the fields specified in the update mask. Note that certain properties of a topic are not modifiable.

*

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

*
    - *
  • updateTopic(UpdateTopicRequest request) + *
  • updateTopic(UpdateTopicRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • updateTopic(Topic topic, FieldMask updateMask) + *
  • updateTopic(Topic topic, FieldMask updateMask) *

*

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

*
    - *
  • updateTopicCallable() + *
  • updateTopicCallable() *

*
Publish

Publish

Adds one or more messages to the topic. Returns `NOT_FOUND` if the topic does not exist.

*

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

*
    - *
  • publish(PublishRequest request) + *
  • publish(PublishRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • publish(TopicName topic, List<PubsubMessage> messages) - *
  • publish(String topic, List<PubsubMessage> messages) + *
  • publish(TopicName topic, List<PubsubMessage> messages) + *

  • publish(String topic, List<PubsubMessage> messages) *

*

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

*
    - *
  • publishCallable() + *
  • publishCallable() *

*
GetTopic

GetTopic

Gets the configuration of a topic.

*

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

*
    - *
  • getTopic(GetTopicRequest request) + *
  • getTopic(GetTopicRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • getTopic(TopicName topic) - *
  • getTopic(String topic) + *
  • getTopic(TopicName topic) + *

  • getTopic(String topic) *

*

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

*
    - *
  • getTopicCallable() + *
  • getTopicCallable() *

*
ListTopics

ListTopics

Lists matching topics.

*

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

*
    - *
  • listTopics(ListTopicsRequest request) + *
  • listTopics(ListTopicsRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • listTopics(ProjectName project) - *
  • listTopics(String project) + *
  • listTopics(ProjectName project) + *

  • listTopics(String project) *

*

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

*
    - *
  • listTopicsPagedCallable() - *
  • listTopicsCallable() + *
  • listTopicsPagedCallable() + *

  • listTopicsCallable() *

*
ListTopicSubscriptions

ListTopicSubscriptions

Lists the names of the attached subscriptions on this topic.

*

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

*
    - *
  • listTopicSubscriptions(ListTopicSubscriptionsRequest request) + *
  • listTopicSubscriptions(ListTopicSubscriptionsRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • listTopicSubscriptions(TopicName topic) - *
  • listTopicSubscriptions(String topic) + *
  • listTopicSubscriptions(TopicName topic) + *

  • listTopicSubscriptions(String topic) *

*

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

*
    - *
  • listTopicSubscriptionsPagedCallable() - *
  • listTopicSubscriptionsCallable() + *
  • listTopicSubscriptionsPagedCallable() + *

  • listTopicSubscriptionsCallable() *

*
ListTopicSnapshots

ListTopicSnapshots

Lists the names of the snapshots on this topic. Snapshots are used in [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot.

*

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

*
    - *
  • listTopicSnapshots(ListTopicSnapshotsRequest request) + *
  • listTopicSnapshots(ListTopicSnapshotsRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • listTopicSnapshots(TopicName topic) - *
  • listTopicSnapshots(String topic) + *
  • listTopicSnapshots(TopicName topic) + *

  • listTopicSnapshots(String topic) *

*

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

*
    - *
  • listTopicSnapshotsPagedCallable() - *
  • listTopicSnapshotsCallable() + *
  • listTopicSnapshotsPagedCallable() + *

  • listTopicSnapshotsCallable() *

*
DeleteTopic

DeleteTopic

Deletes the topic with the given name. Returns `NOT_FOUND` if the topic does not exist. After a topic is deleted, a new topic may be created with the same name; this is an entirely new topic with none of the old configuration or subscriptions. Existing subscriptions to this topic are not deleted, but their `topic` field is set to `_deleted-topic_`.

*

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

*
    - *
  • deleteTopic(DeleteTopicRequest request) + *
  • deleteTopic(DeleteTopicRequest request) *

*

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

*
    - *
  • deleteTopic(TopicName topic) - *
  • deleteTopic(String topic) + *
  • deleteTopic(TopicName topic) + *

  • deleteTopic(String topic) *

*

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

*
    - *
  • deleteTopicCallable() + *
  • deleteTopicCallable() *

*
DetachSubscription

DetachSubscription

Detaches a subscription from this topic. All messages retained in the subscription are dropped. Subsequent `Pull` and `StreamingPull` requests will return FAILED_PRECONDITION. If the subscription is a push subscription, pushes to the endpoint will stop.

*

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

*
    - *
  • detachSubscription(DetachSubscriptionRequest request) + *
  • detachSubscription(DetachSubscriptionRequest request) *

*

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

*
    - *
  • detachSubscriptionCallable() + *
  • detachSubscriptionCallable() *

*
SetIamPolicy

SetIamPolicy

Sets the access control policy on the specified resource. Replacesany existing policy. *

Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`errors.

*

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

*
    - *
  • setIamPolicy(SetIamPolicyRequest request) + *
  • setIamPolicy(SetIamPolicyRequest request) *

*

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

*
    - *
  • setIamPolicyCallable() + *
  • setIamPolicyCallable() *

*
GetIamPolicy

GetIamPolicy

Gets the access control policy for a resource. Returns an empty policyif the resource exists and does not have a policy set.

*

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

*
    - *
  • getIamPolicy(GetIamPolicyRequest request) + *
  • getIamPolicy(GetIamPolicyRequest request) *

*

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

*
    - *
  • getIamPolicyCallable() + *
  • getIamPolicyCallable() *

*
TestIamPermissions

TestIamPermissions

Returns permissions that a caller has on the specified resource. If theresource does not exist, this will return an empty set ofpermissions, not a `NOT_FOUND` error. *

Note: This operation is designed to be used for buildingpermission-aware UIs and command-line tools, not for authorizationchecking. This operation may "fail open" without warning.

*

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

*
    - *
  • testIamPermissions(TestIamPermissionsRequest request) + *
  • testIamPermissions(TestIamPermissionsRequest request) *

*

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

*
    - *
  • testIamPermissionsCallable() + *
  • testIamPermissionsCallable() *

*