diff --git a/.github/scripts/update_generation_config.sh b/.github/scripts/update_generation_config.sh index 92efcf88191..74d0e6cc410 100644 --- a/.github/scripts/update_generation_config.sh +++ b/.github/scripts/update_generation_config.sh @@ -18,7 +18,17 @@ function get_latest_released_version() { 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}") + + # 1. Extract all version tags + # 2. Strip the XML tags to leave just the version numbers + # 3. Filter for strictly numbers.numbers.numbers (e.g., 2.54.0) + # 4. Sort by version (V) and take the last one (tail -n 1) + latest=$(echo "${xml_content}" \ + | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' \ + | sed -E 's/<[^>]+>//g' \ + | sort -V \ + | tail -n 1) + 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}" diff --git a/.github/workflows/hermetic_library_generation.yaml b/.github/workflows/hermetic_library_generation.yaml index 818024030c5..8f9f4051191 100644 --- a/.github/workflows/hermetic_library_generation.yaml +++ b/.github/workflows/hermetic_library_generation.yaml @@ -37,7 +37,7 @@ jobs: with: fetch-depth: 0 token: ${{ secrets.CLOUD_JAVA_BOT_TOKEN }} - - uses: googleapis/sdk-platform-java/.github/scripts@v2.64.2 + - uses: googleapis/sdk-platform-java/.github/scripts@v2.65.1 if: env.SHOULD_RUN == 'true' with: base_ref: ${{ github.base_ref }} diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index b772eac66cd..623fedf2040 100644 --- a/.kokoro/presubmit/graalvm-native-a.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-public-resources/graalvm_sdk_platform_a:3.54.1" # {x-version-update:google-cloud-shared-dependencies:current} + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.55.1" # {x-version-update:google-cloud-shared-dependencies:current} } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index baf136cf823..bee69fa91d3 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.54.1" # {x-version-update:google-cloud-shared-dependencies:current} + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.55.1" # {x-version-update:google-cloud-shared-dependencies:current} } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index 2fb2fc87c41..b742f6ec44c 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # 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.1" # {x-version-update:google-cloud-shared-dependencies:current} + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.55.1" # {x-version-update:google-cloud-shared-dependencies:current} } env_vars: { diff --git a/README.md b/README.md index e35193047bf..b2d88b6370e 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ 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.72.0') +implementation platform('com.google.cloud:libraries-bom:26.74.0-rc2') implementation 'com.google.cloud:google-cloud-spanner' ``` @@ -542,29 +542,10 @@ information. Apache 2.0 - See [LICENSE][license] for more information. -## CI Status - -Java Version | Status ------------- | ------ -Java 8 | [![Kokoro CI][kokoro-badge-image-2]][kokoro-badge-link-2] -Java 8 OSX | [![Kokoro CI][kokoro-badge-image-3]][kokoro-badge-link-3] -Java 8 Windows | [![Kokoro CI][kokoro-badge-image-4]][kokoro-badge-link-4] -Java 11 | [![Kokoro CI][kokoro-badge-image-5]][kokoro-badge-link-5] - Java is a registered trademark of Oracle and/or its affiliates. [product-docs]: https://cloud.google.com/spanner/docs/ [javadocs]: https://cloud.google.com/java/docs/reference/google-cloud-spanner/latest/history -[kokoro-badge-image-1]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-spanner/java7.svg -[kokoro-badge-link-1]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-spanner/java7.html -[kokoro-badge-image-2]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-spanner/java8.svg -[kokoro-badge-link-2]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-spanner/java8.html -[kokoro-badge-image-3]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-spanner/java8-osx.svg -[kokoro-badge-link-3]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-spanner/java8-osx.html -[kokoro-badge-image-4]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-spanner/java8-win.svg -[kokoro-badge-link-4]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-spanner/java8-win.html -[kokoro-badge-image-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-spanner/java11.svg -[kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-spanner/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-spanner.svg [maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-spanner/6.106.0 diff --git a/generation_config.yaml b/generation_config.yaml index c96fd274bfc..80679cdb6ba 100644 --- a/generation_config.yaml +++ b/generation_config.yaml @@ -1,6 +1,6 @@ -gapic_generator_version: 2.64.1 -googleapis_commitish: ded7ed1e4cce7c165c56a417572cebea9bc1d82c -libraries_bom_version: 26.72.0 +gapic_generator_version: 2.65.1 +googleapis_commitish: e006e1c8b69c0594e6f872316a3543b3b37ad81b +libraries_bom_version: 26.74.0-rc2 libraries: - api_shortname: spanner name_pretty: Cloud Spanner diff --git a/google-cloud-spanner-executor/src/main/java/com/google/cloud/spanner/executor/v1/SpannerExecutorProxySettings.java b/google-cloud-spanner-executor/src/main/java/com/google/cloud/spanner/executor/v1/SpannerExecutorProxySettings.java index 0a5963686a3..ed4b3c70d65 100644 --- a/google-cloud-spanner-executor/src/main/java/com/google/cloud/spanner/executor/v1/SpannerExecutorProxySettings.java +++ b/google-cloud-spanner-executor/src/main/java/com/google/cloud/spanner/executor/v1/SpannerExecutorProxySettings.java @@ -82,8 +82,8 @@ * } * * 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. + * Guide](https://docs.cloud.google.com/java/docs/client-retries) for additional support in setting + * retries. */ @Generated("by gapic-generator-java") public class SpannerExecutorProxySettings extends ClientSettings { diff --git a/google-cloud-spanner-executor/src/main/java/com/google/cloud/spanner/executor/v1/stub/SpannerExecutorProxyStubSettings.java b/google-cloud-spanner-executor/src/main/java/com/google/cloud/spanner/executor/v1/stub/SpannerExecutorProxyStubSettings.java index 82af7be832e..a15a24581c9 100644 --- a/google-cloud-spanner-executor/src/main/java/com/google/cloud/spanner/executor/v1/stub/SpannerExecutorProxyStubSettings.java +++ b/google-cloud-spanner-executor/src/main/java/com/google/cloud/spanner/executor/v1/stub/SpannerExecutorProxyStubSettings.java @@ -91,8 +91,8 @@ * } * * 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. + * Guide](https://docs.cloud.google.com/java/docs/client-retries) for additional support in setting + * retries. */ @Generated("by gapic-generator-java") public class SpannerExecutorProxyStubSettings diff --git a/google-cloud-spanner-executor/src/main/resources/META-INF/native-image/com.google.cloud.spanner.executor.v1/reflect-config.json b/google-cloud-spanner-executor/src/main/resources/META-INF/native-image/com.google.cloud.spanner.executor.v1/reflect-config.json index 4fe69e288d6..1f6119edb38 100644 --- a/google-cloud-spanner-executor/src/main/resources/META-INF/native-image/com.google.cloud.spanner.executor.v1/reflect-config.json +++ b/google-cloud-spanner-executor/src/main/resources/META-INF/native-image/com.google.cloud.spanner.executor.v1/reflect-config.json @@ -6191,6 +6191,24 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.spanner.v1.RequestOptions$ClientContext", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.RequestOptions$ClientContext$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.spanner.v1.RequestOptions$Priority", "queryAllDeclaredConstructors": true, diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminSettings.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminSettings.java index 382de4019e3..7457cd253c5 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminSettings.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminSettings.java @@ -136,8 +136,8 @@ * } * * 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. + * Guide](https://docs.cloud.google.com/java/docs/client-retries) for additional support in setting + * retries. * *

To configure the RetrySettings of a Long Running Operation method, create an * OperationTimedPollAlgorithm object and update the RPC's polling algorithm. For example, to diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/DatabaseAdminStubSettings.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/DatabaseAdminStubSettings.java index b258773b4c5..718b90fcc57 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/DatabaseAdminStubSettings.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/DatabaseAdminStubSettings.java @@ -159,8 +159,8 @@ * } * * 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. + * Guide](https://docs.cloud.google.com/java/docs/client-retries) for additional support in setting + * retries. * *

To configure the RetrySettings of a Long Running Operation method, create an * OperationTimedPollAlgorithm object and update the RPC's polling algorithm. For example, to @@ -1412,7 +1412,7 @@ private static Builder initDefaults(Builder builder) { .setPollingAlgorithm( OperationTimedPollAlgorithm.create( RetrySettings.newBuilder() - .setInitialRetryDelayDuration(Duration.ofMillis(20000L)) + .setInitialRetryDelayDuration(Duration.ofMillis(1000L)) .setRetryDelayMultiplier(1.5) .setMaxRetryDelayDuration(Duration.ofMillis(45000L)) .setInitialRpcTimeoutDuration(Duration.ZERO) @@ -1461,7 +1461,7 @@ private static Builder initDefaults(Builder builder) { .setPollingAlgorithm( OperationTimedPollAlgorithm.create( RetrySettings.newBuilder() - .setInitialRetryDelayDuration(Duration.ofMillis(20000L)) + .setInitialRetryDelayDuration(Duration.ofMillis(1000L)) .setRetryDelayMultiplier(1.5) .setMaxRetryDelayDuration(Duration.ofMillis(45000L)) .setInitialRpcTimeoutDuration(Duration.ZERO) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminSettings.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminSettings.java index 3290eb9f98e..3b4af74269f 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminSettings.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminSettings.java @@ -127,8 +127,8 @@ * } * * 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. + * Guide](https://docs.cloud.google.com/java/docs/client-retries) for additional support in setting + * retries. * *

To configure the RetrySettings of a Long Running Operation method, create an * OperationTimedPollAlgorithm object and update the RPC's polling algorithm. For example, to diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/InstanceAdminStubSettings.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/InstanceAdminStubSettings.java index de11f2f3a3b..469f73fbeea 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/InstanceAdminStubSettings.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/InstanceAdminStubSettings.java @@ -149,8 +149,8 @@ * } * * 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. + * Guide](https://docs.cloud.google.com/java/docs/client-retries) for additional support in setting + * retries. * *

To configure the RetrySettings of a Long Running Operation method, create an * OperationTimedPollAlgorithm object and update the RPC's polling algorithm. For example, to diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/SpannerSettings.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/SpannerSettings.java index a9ad8d51c50..49b7de0cd9f 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/SpannerSettings.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/SpannerSettings.java @@ -107,8 +107,8 @@ * } * * 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. + * Guide](https://docs.cloud.google.com/java/docs/client-retries) for additional support in setting + * retries. */ @Generated("by gapic-generator-java") public class SpannerSettings extends ClientSettings { diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/SpannerStubSettings.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/SpannerStubSettings.java index 7cec4a0bc4c..a65b6898741 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/SpannerStubSettings.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/SpannerStubSettings.java @@ -125,8 +125,8 @@ * } * * 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. + * Guide](https://docs.cloud.google.com/java/docs/client-retries) for additional support in setting + * retries. */ @Generated("by gapic-generator-java") public class SpannerStubSettings extends StubSettings { diff --git a/google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.v1/reflect-config.json b/google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.v1/reflect-config.json index 9dd4579f179..24fd017ef3c 100644 --- a/google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.v1/reflect-config.json +++ b/google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.v1/reflect-config.json @@ -2492,6 +2492,24 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.spanner.v1.RequestOptions$ClientContext", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.RequestOptions$ClientContext$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.spanner.v1.RequestOptions$Priority", "queryAllDeclaredConstructors": true, diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/AutoscalingConfig.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/AutoscalingConfig.java index 788f0b1636d..036b5f8665c 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/AutoscalingConfig.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/AutoscalingConfig.java @@ -1406,20 +1406,43 @@ public interface AutoscalingTargetsOrBuilder * * *

-     * Required. The target high priority cpu utilization percentage that the
+     * Optional. The target high priority cpu utilization percentage that the
      * autoscaler should be trying to achieve for the instance. This number is
      * on a scale from 0 (no utilization) to 100 (full utilization). The valid
-     * range is [10, 90] inclusive.
+     * range is [10, 90] inclusive. If not specified or set to 0, the autoscaler
+     * skips scaling based on high priority CPU utilization.
      * 
* * - * int32 high_priority_cpu_utilization_percent = 1 [(.google.api.field_behavior) = REQUIRED]; + * int32 high_priority_cpu_utilization_percent = 1 [(.google.api.field_behavior) = OPTIONAL]; * * * @return The highPriorityCpuUtilizationPercent. */ int getHighPriorityCpuUtilizationPercent(); + /** + * + * + *
+     * Optional. The target total CPU utilization percentage that the autoscaler
+     * should be trying to achieve for the instance. This number is on a scale
+     * from 0 (no utilization) to 100 (full utilization). The valid range is
+     * [10, 90] inclusive. If not specified or set to 0, the autoscaler skips
+     * scaling based on total CPU utilization. If both
+     * `high_priority_cpu_utilization_percent` and
+     * `total_cpu_utilization_percent` are specified, the autoscaler provisions
+     * the larger of the two required compute capacities to satisfy both
+     * targets.
+     * 
+ * + * int32 total_cpu_utilization_percent = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The totalCpuUtilizationPercent. + */ + int getTotalCpuUtilizationPercent(); + /** * * @@ -1488,14 +1511,15 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { * * *
-     * Required. The target high priority cpu utilization percentage that the
+     * Optional. The target high priority cpu utilization percentage that the
      * autoscaler should be trying to achieve for the instance. This number is
      * on a scale from 0 (no utilization) to 100 (full utilization). The valid
-     * range is [10, 90] inclusive.
+     * range is [10, 90] inclusive. If not specified or set to 0, the autoscaler
+     * skips scaling based on high priority CPU utilization.
      * 
* * - * int32 high_priority_cpu_utilization_percent = 1 [(.google.api.field_behavior) = REQUIRED]; + * int32 high_priority_cpu_utilization_percent = 1 [(.google.api.field_behavior) = OPTIONAL]; * * * @return The highPriorityCpuUtilizationPercent. @@ -1505,6 +1529,34 @@ public int getHighPriorityCpuUtilizationPercent() { return highPriorityCpuUtilizationPercent_; } + public static final int TOTAL_CPU_UTILIZATION_PERCENT_FIELD_NUMBER = 4; + private int totalCpuUtilizationPercent_ = 0; + + /** + * + * + *
+     * Optional. The target total CPU utilization percentage that the autoscaler
+     * should be trying to achieve for the instance. This number is on a scale
+     * from 0 (no utilization) to 100 (full utilization). The valid range is
+     * [10, 90] inclusive. If not specified or set to 0, the autoscaler skips
+     * scaling based on total CPU utilization. If both
+     * `high_priority_cpu_utilization_percent` and
+     * `total_cpu_utilization_percent` are specified, the autoscaler provisions
+     * the larger of the two required compute capacities to satisfy both
+     * targets.
+     * 
+ * + * int32 total_cpu_utilization_percent = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The totalCpuUtilizationPercent. + */ + @java.lang.Override + public int getTotalCpuUtilizationPercent() { + return totalCpuUtilizationPercent_; + } + public static final int STORAGE_UTILIZATION_PERCENT_FIELD_NUMBER = 2; private int storageUtilizationPercent_ = 0; @@ -1547,6 +1599,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (storageUtilizationPercent_ != 0) { output.writeInt32(2, storageUtilizationPercent_); } + if (totalCpuUtilizationPercent_ != 0) { + output.writeInt32(4, totalCpuUtilizationPercent_); + } getUnknownFields().writeTo(output); } @@ -1565,6 +1620,10 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, storageUtilizationPercent_); } + if (totalCpuUtilizationPercent_ != 0) { + size += + com.google.protobuf.CodedOutputStream.computeInt32Size(4, totalCpuUtilizationPercent_); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -1584,6 +1643,7 @@ public boolean equals(final java.lang.Object obj) { if (getHighPriorityCpuUtilizationPercent() != other.getHighPriorityCpuUtilizationPercent()) return false; + if (getTotalCpuUtilizationPercent() != other.getTotalCpuUtilizationPercent()) return false; if (getStorageUtilizationPercent() != other.getStorageUtilizationPercent()) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; @@ -1598,6 +1658,8 @@ public int hashCode() { hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + HIGH_PRIORITY_CPU_UTILIZATION_PERCENT_FIELD_NUMBER; hash = (53 * hash) + getHighPriorityCpuUtilizationPercent(); + hash = (37 * hash) + TOTAL_CPU_UTILIZATION_PERCENT_FIELD_NUMBER; + hash = (53 * hash) + getTotalCpuUtilizationPercent(); hash = (37 * hash) + STORAGE_UTILIZATION_PERCENT_FIELD_NUMBER; hash = (53 * hash) + getStorageUtilizationPercent(); hash = (29 * hash) + getUnknownFields().hashCode(); @@ -1752,6 +1814,7 @@ public Builder clear() { super.clear(); bitField0_ = 0; highPriorityCpuUtilizationPercent_ = 0; + totalCpuUtilizationPercent_ = 0; storageUtilizationPercent_ = 0; return this; } @@ -1798,6 +1861,9 @@ private void buildPartial0( result.highPriorityCpuUtilizationPercent_ = highPriorityCpuUtilizationPercent_; } if (((from_bitField0_ & 0x00000002) != 0)) { + result.totalCpuUtilizationPercent_ = totalCpuUtilizationPercent_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { result.storageUtilizationPercent_ = storageUtilizationPercent_; } } @@ -1857,6 +1923,9 @@ public Builder mergeFrom( if (other.getHighPriorityCpuUtilizationPercent() != 0) { setHighPriorityCpuUtilizationPercent(other.getHighPriorityCpuUtilizationPercent()); } + if (other.getTotalCpuUtilizationPercent() != 0) { + setTotalCpuUtilizationPercent(other.getTotalCpuUtilizationPercent()); + } if (other.getStorageUtilizationPercent() != 0) { setStorageUtilizationPercent(other.getStorageUtilizationPercent()); } @@ -1895,9 +1964,15 @@ public Builder mergeFrom( case 16: { storageUtilizationPercent_ = input.readInt32(); - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000004; break; } // case 16 + case 32: + { + totalCpuUtilizationPercent_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 32 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -1923,14 +1998,15 @@ public Builder mergeFrom( * * *
-       * Required. The target high priority cpu utilization percentage that the
+       * Optional. The target high priority cpu utilization percentage that the
        * autoscaler should be trying to achieve for the instance. This number is
        * on a scale from 0 (no utilization) to 100 (full utilization). The valid
-       * range is [10, 90] inclusive.
+       * range is [10, 90] inclusive. If not specified or set to 0, the autoscaler
+       * skips scaling based on high priority CPU utilization.
        * 
* * - * int32 high_priority_cpu_utilization_percent = 1 [(.google.api.field_behavior) = REQUIRED]; + * int32 high_priority_cpu_utilization_percent = 1 [(.google.api.field_behavior) = OPTIONAL]; * * * @return The highPriorityCpuUtilizationPercent. @@ -1944,14 +2020,15 @@ public int getHighPriorityCpuUtilizationPercent() { * * *
-       * Required. The target high priority cpu utilization percentage that the
+       * Optional. The target high priority cpu utilization percentage that the
        * autoscaler should be trying to achieve for the instance. This number is
        * on a scale from 0 (no utilization) to 100 (full utilization). The valid
-       * range is [10, 90] inclusive.
+       * range is [10, 90] inclusive. If not specified or set to 0, the autoscaler
+       * skips scaling based on high priority CPU utilization.
        * 
* * - * int32 high_priority_cpu_utilization_percent = 1 [(.google.api.field_behavior) = REQUIRED]; + * int32 high_priority_cpu_utilization_percent = 1 [(.google.api.field_behavior) = OPTIONAL]; * * * @param value The highPriorityCpuUtilizationPercent to set. @@ -1969,14 +2046,15 @@ public Builder setHighPriorityCpuUtilizationPercent(int value) { * * *
-       * Required. The target high priority cpu utilization percentage that the
+       * Optional. The target high priority cpu utilization percentage that the
        * autoscaler should be trying to achieve for the instance. This number is
        * on a scale from 0 (no utilization) to 100 (full utilization). The valid
-       * range is [10, 90] inclusive.
+       * range is [10, 90] inclusive. If not specified or set to 0, the autoscaler
+       * skips scaling based on high priority CPU utilization.
        * 
* * - * int32 high_priority_cpu_utilization_percent = 1 [(.google.api.field_behavior) = REQUIRED]; + * int32 high_priority_cpu_utilization_percent = 1 [(.google.api.field_behavior) = OPTIONAL]; * * * @return This builder for chaining. @@ -1988,6 +2066,89 @@ public Builder clearHighPriorityCpuUtilizationPercent() { return this; } + private int totalCpuUtilizationPercent_; + + /** + * + * + *
+       * Optional. The target total CPU utilization percentage that the autoscaler
+       * should be trying to achieve for the instance. This number is on a scale
+       * from 0 (no utilization) to 100 (full utilization). The valid range is
+       * [10, 90] inclusive. If not specified or set to 0, the autoscaler skips
+       * scaling based on total CPU utilization. If both
+       * `high_priority_cpu_utilization_percent` and
+       * `total_cpu_utilization_percent` are specified, the autoscaler provisions
+       * the larger of the two required compute capacities to satisfy both
+       * targets.
+       * 
+ * + * int32 total_cpu_utilization_percent = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The totalCpuUtilizationPercent. + */ + @java.lang.Override + public int getTotalCpuUtilizationPercent() { + return totalCpuUtilizationPercent_; + } + + /** + * + * + *
+       * Optional. The target total CPU utilization percentage that the autoscaler
+       * should be trying to achieve for the instance. This number is on a scale
+       * from 0 (no utilization) to 100 (full utilization). The valid range is
+       * [10, 90] inclusive. If not specified or set to 0, the autoscaler skips
+       * scaling based on total CPU utilization. If both
+       * `high_priority_cpu_utilization_percent` and
+       * `total_cpu_utilization_percent` are specified, the autoscaler provisions
+       * the larger of the two required compute capacities to satisfy both
+       * targets.
+       * 
+ * + * int32 total_cpu_utilization_percent = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @param value The totalCpuUtilizationPercent to set. + * @return This builder for chaining. + */ + public Builder setTotalCpuUtilizationPercent(int value) { + + totalCpuUtilizationPercent_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. The target total CPU utilization percentage that the autoscaler
+       * should be trying to achieve for the instance. This number is on a scale
+       * from 0 (no utilization) to 100 (full utilization). The valid range is
+       * [10, 90] inclusive. If not specified or set to 0, the autoscaler skips
+       * scaling based on total CPU utilization. If both
+       * `high_priority_cpu_utilization_percent` and
+       * `total_cpu_utilization_percent` are specified, the autoscaler provisions
+       * the larger of the two required compute capacities to satisfy both
+       * targets.
+       * 
+ * + * int32 total_cpu_utilization_percent = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return This builder for chaining. + */ + public Builder clearTotalCpuUtilizationPercent() { + bitField0_ = (bitField0_ & ~0x00000002); + totalCpuUtilizationPercent_ = 0; + onChanged(); + return this; + } + private int storageUtilizationPercent_; /** @@ -2029,7 +2190,7 @@ public int getStorageUtilizationPercent() { public Builder setStorageUtilizationPercent(int value) { storageUtilizationPercent_ = value; - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -2050,7 +2211,7 @@ public Builder setStorageUtilizationPercent(int value) { * @return This builder for chaining. */ public Builder clearStorageUtilizationPercent() { - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000004); storageUtilizationPercent_ = 0; onChanged(); return this; @@ -2343,6 +2504,92 @@ public interface AutoscalingConfigOverridesOrBuilder * @return The autoscalingTargetHighPriorityCpuUtilizationPercent. */ int getAutoscalingTargetHighPriorityCpuUtilizationPercent(); + + /** + * + * + *
+       * Optional. If specified, overrides the
+       * autoscaling target `total_cpu_utilization_percent`
+       * in the top-level autoscaling configuration for the selected replicas.
+       * 
+ * + * + * int32 autoscaling_target_total_cpu_utilization_percent = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The autoscalingTargetTotalCpuUtilizationPercent. + */ + int getAutoscalingTargetTotalCpuUtilizationPercent(); + + /** + * + * + *
+       * Optional. If true, disables high priority CPU autoscaling for the
+       * selected replicas and ignores
+       * [high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.high_priority_cpu_utilization_percent]
+       * in the top-level autoscaling configuration.
+       *
+       * When setting this field to true, setting
+       * [autoscaling_target_high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_high_priority_cpu_utilization_percent]
+       * field to a non-zero value for the same replica is not supported.
+       *
+       * If false, the
+       * [autoscaling_target_high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_high_priority_cpu_utilization_percent]
+       * field in the replica will be used if set to a non-zero value.
+       * Otherwise, the
+       * [high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.high_priority_cpu_utilization_percent]
+       * field in the top-level autoscaling configuration will be used.
+       *
+       * Setting both
+       * [disable_high_priority_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_high_priority_cpu_autoscaling]
+       * and
+       * [disable_total_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_total_cpu_autoscaling]
+       * to true for the same replica is not supported.
+       * 
+ * + * + * bool disable_high_priority_cpu_autoscaling = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The disableHighPriorityCpuAutoscaling. + */ + boolean getDisableHighPriorityCpuAutoscaling(); + + /** + * + * + *
+       * Optional. If true, disables total CPU autoscaling for the selected
+       * replicas and ignores
+       * [total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.total_cpu_utilization_percent]
+       * in the top-level autoscaling configuration.
+       *
+       * When setting this field to true, setting
+       * [autoscaling_target_total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_total_cpu_utilization_percent]
+       * field to a non-zero value for the same replica is not supported.
+       *
+       * If false, the
+       * [autoscaling_target_total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_total_cpu_utilization_percent]
+       * field in the replica will be used if set to a non-zero value.
+       * Otherwise, the
+       * [total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.total_cpu_utilization_percent]
+       * field in the top-level autoscaling configuration will be used.
+       *
+       * Setting both
+       * [disable_high_priority_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_high_priority_cpu_autoscaling]
+       * and
+       * [disable_total_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_total_cpu_autoscaling]
+       * to true for the same replica is not supported.
+       * 
+ * + * bool disable_total_cpu_autoscaling = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The disableTotalCpuAutoscaling. + */ + boolean getDisableTotalCpuAutoscaling(); } /** @@ -2488,6 +2735,110 @@ public int getAutoscalingTargetHighPriorityCpuUtilizationPercent() { return autoscalingTargetHighPriorityCpuUtilizationPercent_; } + public static final int AUTOSCALING_TARGET_TOTAL_CPU_UTILIZATION_PERCENT_FIELD_NUMBER = 4; + private int autoscalingTargetTotalCpuUtilizationPercent_ = 0; + + /** + * + * + *
+       * Optional. If specified, overrides the
+       * autoscaling target `total_cpu_utilization_percent`
+       * in the top-level autoscaling configuration for the selected replicas.
+       * 
+ * + * + * int32 autoscaling_target_total_cpu_utilization_percent = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The autoscalingTargetTotalCpuUtilizationPercent. + */ + @java.lang.Override + public int getAutoscalingTargetTotalCpuUtilizationPercent() { + return autoscalingTargetTotalCpuUtilizationPercent_; + } + + public static final int DISABLE_HIGH_PRIORITY_CPU_AUTOSCALING_FIELD_NUMBER = 5; + private boolean disableHighPriorityCpuAutoscaling_ = false; + + /** + * + * + *
+       * Optional. If true, disables high priority CPU autoscaling for the
+       * selected replicas and ignores
+       * [high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.high_priority_cpu_utilization_percent]
+       * in the top-level autoscaling configuration.
+       *
+       * When setting this field to true, setting
+       * [autoscaling_target_high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_high_priority_cpu_utilization_percent]
+       * field to a non-zero value for the same replica is not supported.
+       *
+       * If false, the
+       * [autoscaling_target_high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_high_priority_cpu_utilization_percent]
+       * field in the replica will be used if set to a non-zero value.
+       * Otherwise, the
+       * [high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.high_priority_cpu_utilization_percent]
+       * field in the top-level autoscaling configuration will be used.
+       *
+       * Setting both
+       * [disable_high_priority_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_high_priority_cpu_autoscaling]
+       * and
+       * [disable_total_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_total_cpu_autoscaling]
+       * to true for the same replica is not supported.
+       * 
+ * + * + * bool disable_high_priority_cpu_autoscaling = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The disableHighPriorityCpuAutoscaling. + */ + @java.lang.Override + public boolean getDisableHighPriorityCpuAutoscaling() { + return disableHighPriorityCpuAutoscaling_; + } + + public static final int DISABLE_TOTAL_CPU_AUTOSCALING_FIELD_NUMBER = 6; + private boolean disableTotalCpuAutoscaling_ = false; + + /** + * + * + *
+       * Optional. If true, disables total CPU autoscaling for the selected
+       * replicas and ignores
+       * [total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.total_cpu_utilization_percent]
+       * in the top-level autoscaling configuration.
+       *
+       * When setting this field to true, setting
+       * [autoscaling_target_total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_total_cpu_utilization_percent]
+       * field to a non-zero value for the same replica is not supported.
+       *
+       * If false, the
+       * [autoscaling_target_total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_total_cpu_utilization_percent]
+       * field in the replica will be used if set to a non-zero value.
+       * Otherwise, the
+       * [total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.total_cpu_utilization_percent]
+       * field in the top-level autoscaling configuration will be used.
+       *
+       * Setting both
+       * [disable_high_priority_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_high_priority_cpu_autoscaling]
+       * and
+       * [disable_total_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_total_cpu_autoscaling]
+       * to true for the same replica is not supported.
+       * 
+ * + * bool disable_total_cpu_autoscaling = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The disableTotalCpuAutoscaling. + */ + @java.lang.Override + public boolean getDisableTotalCpuAutoscaling() { + return disableTotalCpuAutoscaling_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -2508,6 +2859,15 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (autoscalingTargetHighPriorityCpuUtilizationPercent_ != 0) { output.writeInt32(2, autoscalingTargetHighPriorityCpuUtilizationPercent_); } + if (autoscalingTargetTotalCpuUtilizationPercent_ != 0) { + output.writeInt32(4, autoscalingTargetTotalCpuUtilizationPercent_); + } + if (disableHighPriorityCpuAutoscaling_ != false) { + output.writeBool(5, disableHighPriorityCpuAutoscaling_); + } + if (disableTotalCpuAutoscaling_ != false) { + output.writeBool(6, disableTotalCpuAutoscaling_); + } getUnknownFields().writeTo(output); } @@ -2526,6 +2886,20 @@ public int getSerializedSize() { com.google.protobuf.CodedOutputStream.computeInt32Size( 2, autoscalingTargetHighPriorityCpuUtilizationPercent_); } + if (autoscalingTargetTotalCpuUtilizationPercent_ != 0) { + size += + com.google.protobuf.CodedOutputStream.computeInt32Size( + 4, autoscalingTargetTotalCpuUtilizationPercent_); + } + if (disableHighPriorityCpuAutoscaling_ != false) { + size += + com.google.protobuf.CodedOutputStream.computeBoolSize( + 5, disableHighPriorityCpuAutoscaling_); + } + if (disableTotalCpuAutoscaling_ != false) { + size += + com.google.protobuf.CodedOutputStream.computeBoolSize(6, disableTotalCpuAutoscaling_); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -2555,6 +2929,11 @@ public boolean equals(final java.lang.Object obj) { } if (getAutoscalingTargetHighPriorityCpuUtilizationPercent() != other.getAutoscalingTargetHighPriorityCpuUtilizationPercent()) return false; + if (getAutoscalingTargetTotalCpuUtilizationPercent() + != other.getAutoscalingTargetTotalCpuUtilizationPercent()) return false; + if (getDisableHighPriorityCpuAutoscaling() != other.getDisableHighPriorityCpuAutoscaling()) + return false; + if (getDisableTotalCpuAutoscaling() != other.getDisableTotalCpuAutoscaling()) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -2572,6 +2951,15 @@ public int hashCode() { } hash = (37 * hash) + AUTOSCALING_TARGET_HIGH_PRIORITY_CPU_UTILIZATION_PERCENT_FIELD_NUMBER; hash = (53 * hash) + getAutoscalingTargetHighPriorityCpuUtilizationPercent(); + hash = (37 * hash) + AUTOSCALING_TARGET_TOTAL_CPU_UTILIZATION_PERCENT_FIELD_NUMBER; + hash = (53 * hash) + getAutoscalingTargetTotalCpuUtilizationPercent(); + hash = (37 * hash) + DISABLE_HIGH_PRIORITY_CPU_AUTOSCALING_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashBoolean(getDisableHighPriorityCpuAutoscaling()); + hash = (37 * hash) + DISABLE_TOTAL_CPU_AUTOSCALING_FIELD_NUMBER; + hash = + (53 * hash) + com.google.protobuf.Internal.hashBoolean(getDisableTotalCpuAutoscaling()); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -2760,6 +3148,9 @@ public Builder clear() { autoscalingLimitsBuilder_ = null; } autoscalingTargetHighPriorityCpuUtilizationPercent_ = 0; + autoscalingTargetTotalCpuUtilizationPercent_ = 0; + disableHighPriorityCpuAutoscaling_ = false; + disableTotalCpuAutoscaling_ = false; return this; } @@ -2823,6 +3214,16 @@ private void buildPartial0( result.autoscalingTargetHighPriorityCpuUtilizationPercent_ = autoscalingTargetHighPriorityCpuUtilizationPercent_; } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.autoscalingTargetTotalCpuUtilizationPercent_ = + autoscalingTargetTotalCpuUtilizationPercent_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.disableHighPriorityCpuAutoscaling_ = disableHighPriorityCpuAutoscaling_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.disableTotalCpuAutoscaling_ = disableTotalCpuAutoscaling_; + } result.bitField0_ |= to_bitField0_; } @@ -2891,6 +3292,16 @@ public Builder mergeFrom( setAutoscalingTargetHighPriorityCpuUtilizationPercent( other.getAutoscalingTargetHighPriorityCpuUtilizationPercent()); } + if (other.getAutoscalingTargetTotalCpuUtilizationPercent() != 0) { + setAutoscalingTargetTotalCpuUtilizationPercent( + other.getAutoscalingTargetTotalCpuUtilizationPercent()); + } + if (other.getDisableHighPriorityCpuAutoscaling() != false) { + setDisableHighPriorityCpuAutoscaling(other.getDisableHighPriorityCpuAutoscaling()); + } + if (other.getDisableTotalCpuAutoscaling() != false) { + setDisableTotalCpuAutoscaling(other.getDisableTotalCpuAutoscaling()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -2930,6 +3341,24 @@ public Builder mergeFrom( bitField0_ |= 0x00000002; break; } // case 16 + case 32: + { + autoscalingTargetTotalCpuUtilizationPercent_ = input.readInt32(); + bitField0_ |= 0x00000004; + break; + } // case 32 + case 40: + { + disableHighPriorityCpuAutoscaling_ = input.readBool(); + bitField0_ |= 0x00000008; + break; + } // case 40 + case 48: + { + disableTotalCpuAutoscaling_ = input.readBool(); + bitField0_ |= 0x00000010; + break; + } // case 48 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -3252,6 +3681,315 @@ public Builder clearAutoscalingTargetHighPriorityCpuUtilizationPercent() { return this; } + private int autoscalingTargetTotalCpuUtilizationPercent_; + + /** + * + * + *
+         * Optional. If specified, overrides the
+         * autoscaling target `total_cpu_utilization_percent`
+         * in the top-level autoscaling configuration for the selected replicas.
+         * 
+ * + * + * int32 autoscaling_target_total_cpu_utilization_percent = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The autoscalingTargetTotalCpuUtilizationPercent. + */ + @java.lang.Override + public int getAutoscalingTargetTotalCpuUtilizationPercent() { + return autoscalingTargetTotalCpuUtilizationPercent_; + } + + /** + * + * + *
+         * Optional. If specified, overrides the
+         * autoscaling target `total_cpu_utilization_percent`
+         * in the top-level autoscaling configuration for the selected replicas.
+         * 
+ * + * + * int32 autoscaling_target_total_cpu_utilization_percent = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @param value The autoscalingTargetTotalCpuUtilizationPercent to set. + * @return This builder for chaining. + */ + public Builder setAutoscalingTargetTotalCpuUtilizationPercent(int value) { + + autoscalingTargetTotalCpuUtilizationPercent_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+         * Optional. If specified, overrides the
+         * autoscaling target `total_cpu_utilization_percent`
+         * in the top-level autoscaling configuration for the selected replicas.
+         * 
+ * + * + * int32 autoscaling_target_total_cpu_utilization_percent = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return This builder for chaining. + */ + public Builder clearAutoscalingTargetTotalCpuUtilizationPercent() { + bitField0_ = (bitField0_ & ~0x00000004); + autoscalingTargetTotalCpuUtilizationPercent_ = 0; + onChanged(); + return this; + } + + private boolean disableHighPriorityCpuAutoscaling_; + + /** + * + * + *
+         * Optional. If true, disables high priority CPU autoscaling for the
+         * selected replicas and ignores
+         * [high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.high_priority_cpu_utilization_percent]
+         * in the top-level autoscaling configuration.
+         *
+         * When setting this field to true, setting
+         * [autoscaling_target_high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_high_priority_cpu_utilization_percent]
+         * field to a non-zero value for the same replica is not supported.
+         *
+         * If false, the
+         * [autoscaling_target_high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_high_priority_cpu_utilization_percent]
+         * field in the replica will be used if set to a non-zero value.
+         * Otherwise, the
+         * [high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.high_priority_cpu_utilization_percent]
+         * field in the top-level autoscaling configuration will be used.
+         *
+         * Setting both
+         * [disable_high_priority_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_high_priority_cpu_autoscaling]
+         * and
+         * [disable_total_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_total_cpu_autoscaling]
+         * to true for the same replica is not supported.
+         * 
+ * + * + * bool disable_high_priority_cpu_autoscaling = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The disableHighPriorityCpuAutoscaling. + */ + @java.lang.Override + public boolean getDisableHighPriorityCpuAutoscaling() { + return disableHighPriorityCpuAutoscaling_; + } + + /** + * + * + *
+         * Optional. If true, disables high priority CPU autoscaling for the
+         * selected replicas and ignores
+         * [high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.high_priority_cpu_utilization_percent]
+         * in the top-level autoscaling configuration.
+         *
+         * When setting this field to true, setting
+         * [autoscaling_target_high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_high_priority_cpu_utilization_percent]
+         * field to a non-zero value for the same replica is not supported.
+         *
+         * If false, the
+         * [autoscaling_target_high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_high_priority_cpu_utilization_percent]
+         * field in the replica will be used if set to a non-zero value.
+         * Otherwise, the
+         * [high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.high_priority_cpu_utilization_percent]
+         * field in the top-level autoscaling configuration will be used.
+         *
+         * Setting both
+         * [disable_high_priority_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_high_priority_cpu_autoscaling]
+         * and
+         * [disable_total_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_total_cpu_autoscaling]
+         * to true for the same replica is not supported.
+         * 
+ * + * + * bool disable_high_priority_cpu_autoscaling = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @param value The disableHighPriorityCpuAutoscaling to set. + * @return This builder for chaining. + */ + public Builder setDisableHighPriorityCpuAutoscaling(boolean value) { + + disableHighPriorityCpuAutoscaling_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+         * Optional. If true, disables high priority CPU autoscaling for the
+         * selected replicas and ignores
+         * [high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.high_priority_cpu_utilization_percent]
+         * in the top-level autoscaling configuration.
+         *
+         * When setting this field to true, setting
+         * [autoscaling_target_high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_high_priority_cpu_utilization_percent]
+         * field to a non-zero value for the same replica is not supported.
+         *
+         * If false, the
+         * [autoscaling_target_high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_high_priority_cpu_utilization_percent]
+         * field in the replica will be used if set to a non-zero value.
+         * Otherwise, the
+         * [high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.high_priority_cpu_utilization_percent]
+         * field in the top-level autoscaling configuration will be used.
+         *
+         * Setting both
+         * [disable_high_priority_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_high_priority_cpu_autoscaling]
+         * and
+         * [disable_total_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_total_cpu_autoscaling]
+         * to true for the same replica is not supported.
+         * 
+ * + * + * bool disable_high_priority_cpu_autoscaling = 5 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return This builder for chaining. + */ + public Builder clearDisableHighPriorityCpuAutoscaling() { + bitField0_ = (bitField0_ & ~0x00000008); + disableHighPriorityCpuAutoscaling_ = false; + onChanged(); + return this; + } + + private boolean disableTotalCpuAutoscaling_; + + /** + * + * + *
+         * Optional. If true, disables total CPU autoscaling for the selected
+         * replicas and ignores
+         * [total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.total_cpu_utilization_percent]
+         * in the top-level autoscaling configuration.
+         *
+         * When setting this field to true, setting
+         * [autoscaling_target_total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_total_cpu_utilization_percent]
+         * field to a non-zero value for the same replica is not supported.
+         *
+         * If false, the
+         * [autoscaling_target_total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_total_cpu_utilization_percent]
+         * field in the replica will be used if set to a non-zero value.
+         * Otherwise, the
+         * [total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.total_cpu_utilization_percent]
+         * field in the top-level autoscaling configuration will be used.
+         *
+         * Setting both
+         * [disable_high_priority_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_high_priority_cpu_autoscaling]
+         * and
+         * [disable_total_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_total_cpu_autoscaling]
+         * to true for the same replica is not supported.
+         * 
+ * + * bool disable_total_cpu_autoscaling = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The disableTotalCpuAutoscaling. + */ + @java.lang.Override + public boolean getDisableTotalCpuAutoscaling() { + return disableTotalCpuAutoscaling_; + } + + /** + * + * + *
+         * Optional. If true, disables total CPU autoscaling for the selected
+         * replicas and ignores
+         * [total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.total_cpu_utilization_percent]
+         * in the top-level autoscaling configuration.
+         *
+         * When setting this field to true, setting
+         * [autoscaling_target_total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_total_cpu_utilization_percent]
+         * field to a non-zero value for the same replica is not supported.
+         *
+         * If false, the
+         * [autoscaling_target_total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_total_cpu_utilization_percent]
+         * field in the replica will be used if set to a non-zero value.
+         * Otherwise, the
+         * [total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.total_cpu_utilization_percent]
+         * field in the top-level autoscaling configuration will be used.
+         *
+         * Setting both
+         * [disable_high_priority_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_high_priority_cpu_autoscaling]
+         * and
+         * [disable_total_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_total_cpu_autoscaling]
+         * to true for the same replica is not supported.
+         * 
+ * + * bool disable_total_cpu_autoscaling = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @param value The disableTotalCpuAutoscaling to set. + * @return This builder for chaining. + */ + public Builder setDisableTotalCpuAutoscaling(boolean value) { + + disableTotalCpuAutoscaling_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+         * Optional. If true, disables total CPU autoscaling for the selected
+         * replicas and ignores
+         * [total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.total_cpu_utilization_percent]
+         * in the top-level autoscaling configuration.
+         *
+         * When setting this field to true, setting
+         * [autoscaling_target_total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_total_cpu_utilization_percent]
+         * field to a non-zero value for the same replica is not supported.
+         *
+         * If false, the
+         * [autoscaling_target_total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_total_cpu_utilization_percent]
+         * field in the replica will be used if set to a non-zero value.
+         * Otherwise, the
+         * [total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.total_cpu_utilization_percent]
+         * field in the top-level autoscaling configuration will be used.
+         *
+         * Setting both
+         * [disable_high_priority_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_high_priority_cpu_autoscaling]
+         * and
+         * [disable_total_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_total_cpu_autoscaling]
+         * to true for the same replica is not supported.
+         * 
+ * + * bool disable_total_cpu_autoscaling = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return This builder for chaining. + */ + public Builder clearDisableTotalCpuAutoscaling() { + bitField0_ = (bitField0_ & ~0x00000010); + disableTotalCpuAutoscaling_ = false; + onChanged(); + return this; + } + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstancePartition.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstancePartition.java index e67cff53064..26f7274e682 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstancePartition.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstancePartition.java @@ -893,7 +893,7 @@ public com.google.protobuf.ByteString getReferencingDatabasesBytes(int index) { * * * @deprecated google.spanner.admin.instance.v1.InstancePartition.referencing_backups is - * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1788 + * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1855 * @return A list containing the referencingBackups. */ @java.lang.Deprecated @@ -917,7 +917,7 @@ public com.google.protobuf.ProtocolStringList getReferencingBackupsList() { * * * @deprecated google.spanner.admin.instance.v1.InstancePartition.referencing_backups is - * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1788 + * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1855 * @return The count of referencingBackups. */ @java.lang.Deprecated @@ -941,7 +941,7 @@ public int getReferencingBackupsCount() { * * * @deprecated google.spanner.admin.instance.v1.InstancePartition.referencing_backups is - * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1788 + * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1855 * @param index The index of the element to return. * @return The referencingBackups at the given index. */ @@ -966,7 +966,7 @@ public java.lang.String getReferencingBackups(int index) { * * * @deprecated google.spanner.admin.instance.v1.InstancePartition.referencing_backups is - * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1788 + * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1855 * @param index The index of the value to return. * @return The bytes of the referencingBackups at the given index. */ @@ -3389,7 +3389,7 @@ private void ensureReferencingBackupsIsMutable() { * * * @deprecated google.spanner.admin.instance.v1.InstancePartition.referencing_backups is - * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1788 + * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1855 * @return A list containing the referencingBackups. */ @java.lang.Deprecated @@ -3414,7 +3414,7 @@ public com.google.protobuf.ProtocolStringList getReferencingBackupsList() { * * * @deprecated google.spanner.admin.instance.v1.InstancePartition.referencing_backups is - * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1788 + * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1855 * @return The count of referencingBackups. */ @java.lang.Deprecated @@ -3438,7 +3438,7 @@ public int getReferencingBackupsCount() { * * * @deprecated google.spanner.admin.instance.v1.InstancePartition.referencing_backups is - * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1788 + * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1855 * @param index The index of the element to return. * @return The referencingBackups at the given index. */ @@ -3463,7 +3463,7 @@ public java.lang.String getReferencingBackups(int index) { * * * @deprecated google.spanner.admin.instance.v1.InstancePartition.referencing_backups is - * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1788 + * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1855 * @param index The index of the value to return. * @return The bytes of the referencingBackups at the given index. */ @@ -3488,7 +3488,7 @@ public com.google.protobuf.ByteString getReferencingBackupsBytes(int index) { * * * @deprecated google.spanner.admin.instance.v1.InstancePartition.referencing_backups is - * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1788 + * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1855 * @param index The index to set the value at. * @param value The referencingBackups to set. * @return This builder for chaining. @@ -3521,7 +3521,7 @@ public Builder setReferencingBackups(int index, java.lang.String value) { * * * @deprecated google.spanner.admin.instance.v1.InstancePartition.referencing_backups is - * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1788 + * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1855 * @param value The referencingBackups to add. * @return This builder for chaining. */ @@ -3553,7 +3553,7 @@ public Builder addReferencingBackups(java.lang.String value) { * * * @deprecated google.spanner.admin.instance.v1.InstancePartition.referencing_backups is - * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1788 + * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1855 * @param values The referencingBackups to add. * @return This builder for chaining. */ @@ -3582,7 +3582,7 @@ public Builder addAllReferencingBackups(java.lang.Iterable val * * * @deprecated google.spanner.admin.instance.v1.InstancePartition.referencing_backups is - * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1788 + * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1855 * @return This builder for chaining. */ @java.lang.Deprecated @@ -3610,7 +3610,7 @@ public Builder clearReferencingBackups() { * * * @deprecated google.spanner.admin.instance.v1.InstancePartition.referencing_backups is - * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1788 + * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1855 * @param value The bytes of the referencingBackups to add. * @return This builder for chaining. */ diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstancePartitionOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstancePartitionOrBuilder.java index be4de623631..9a866b97595 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstancePartitionOrBuilder.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstancePartitionOrBuilder.java @@ -451,7 +451,7 @@ public interface InstancePartitionOrBuilder * * * @deprecated google.spanner.admin.instance.v1.InstancePartition.referencing_backups is - * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1788 + * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1855 * @return A list containing the referencingBackups. */ @java.lang.Deprecated @@ -473,7 +473,7 @@ public interface InstancePartitionOrBuilder * * * @deprecated google.spanner.admin.instance.v1.InstancePartition.referencing_backups is - * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1788 + * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1855 * @return The count of referencingBackups. */ @java.lang.Deprecated @@ -495,7 +495,7 @@ public interface InstancePartitionOrBuilder * * * @deprecated google.spanner.admin.instance.v1.InstancePartition.referencing_backups is - * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1788 + * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1855 * @param index The index of the element to return. * @return The referencingBackups at the given index. */ @@ -518,7 +518,7 @@ public interface InstancePartitionOrBuilder * * * @deprecated google.spanner.admin.instance.v1.InstancePartition.referencing_backups is - * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1788 + * deprecated. See google/spanner/admin/instance/v1/spanner_instance_admin.proto;l=1855 * @param index The index of the value to return. * @return The bytes of the referencingBackups at the given index. */ diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/SpannerInstanceAdminProto.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/SpannerInstanceAdminProto.java index 6f4b78342e7..dce55424f6d 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/SpannerInstanceAdminProto.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/SpannerInstanceAdminProto.java @@ -285,7 +285,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "gle.spanner.admin.instance.v1.ReplicaSelectionB\003\340A\002\022\024\n\n" + "node_count\030\002 \001(\005H\000\022\032\n" + "\020processing_units\030\003 \001(\005H\000B\022\n" - + "\020compute_capacity\"\270\010\n" + + "\020compute_capacity\"\204\n\n" + "\021AutoscalingConfig\022f\n" + "\022autoscaling_limits\030\001 \001(\0132E.google.spanner.admin.insta" + "nce.v1.AutoscalingConfig.AutoscalingLimitsB\003\340A\002\022h\n" @@ -300,21 +300,26 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\tmax_nodes\030\003 \001(\005H\001\022\036\n" + "\024max_processing_units\030\004 \001(\005H\001B\013\n" + "\tmin_limitB\013\n" - + "\tmax_limit\032r\n" + + "\tmax_limit\032\236\001\n" + "\022AutoscalingTargets\0222\n" - + "%high_priority_cpu_utilization_percent\030\001 \001(\005B\003\340A\002\022(\n" - + "\033storage_utilization_percent\030\002 \001(\005B\003\340A\002\032\304\003\n" + + "%high_priority_cpu_utilization_percent\030\001 \001(\005B\003\340A\001\022*\n" + + "\035total_cpu_utilization_percent\030\004 \001(\005B\003\340A\001\022(\n" + + "\033storage_utilization_percent\030\002 \001(\005B\003\340A\002\032\343\004\n" + "\033AsymmetricAutoscalingOption\022R\n" + "\021replica_selection\030\001" + " \001(\01322.google.spanner.admin.instance.v1.ReplicaSelectionB\003\340A\002\022\202\001\n" - + "\toverrides\030\002 \001(\0132j.google.spanner.admin.instance.v1" - + ".AutoscalingConfig.AsymmetricAutoscaling" - + "Option.AutoscalingConfigOverridesB\003\340A\001\032\313\001\n" + + "\toverrides\030\002 \001(\0132j.google.spanner.admin.instan" + + "ce.v1.AutoscalingConfig.AsymmetricAutosc" + + "alingOption.AutoscalingConfigOverridesB\003\340A\001\032\352\002\n" + "\032AutoscalingConfigOverrides\022f\n" - + "\022autoscaling_limits\030\001 \001(\0132E.google.spanner.admin" - + ".instance.v1.AutoscalingConfig.AutoscalingLimitsB\003\340A\001\022E\n" + + "\022autoscaling_limits\030\001 \001(\0132E.google.spanner." + + "admin.instance.v1.AutoscalingConfig.AutoscalingLimitsB\003\340A\001\022E\n" + "8autoscaling_target_high_priority_cpu_utilization_percent\030\002" - + " \001(\005B\003\340A\001\"\252\013\n" + + " \001(\005B\003\340A\001\022=\n" + + "0autoscaling_target_total_cpu_utilization_percent\030\004" + + " \001(\005B\003\340A\001\0222\n" + + "%disable_high_priority_cpu_autoscaling\030\005 \001(\010B\003\340A\001\022*\n" + + "\035disable_total_cpu_autoscaling\030\006 \001(\010B\003\340A\001\"\252\013\n" + "\010Instance\022\021\n" + "\004name\030\001 \001(\tB\003\340A\002\022=\n" + "\006config\030\002 \001(\tB-\340A\002\372A\'\n" @@ -324,12 +329,12 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\020processing_units\030\t \001(\005\022_\n" + "\030replica_compute_capacity\030\023" + " \003(\01328.google.spanner.admin.instance.v1.ReplicaComputeCapacityB\003\340A\003\022T\n" - + "\022autoscaling_config\030\021" - + " \001(\01323.google.spanner.admin.instance.v1.AutoscalingConfigB\003\340A\001\022D\n" + + "\022autoscaling_config\030\021 \001(\01323.google.spanner.a" + + "dmin.instance.v1.AutoscalingConfigB\003\340A\001\022D\n" + "\005state\030\006" + " \001(\01620.google.spanner.admin.instance.v1.Instance.StateB\003\340A\003\022F\n" - + "\006labels\030\007 \003(" - + "\01326.google.spanner.admin.instance.v1.Instance.LabelsEntry\022N\n\r" + + "\006labels\030\007" + + " \003(\01326.google.spanner.admin.instance.v1.Instance.LabelsEntry\022N\n\r" + "instance_type\030\n" + " \001(\01627.google.spanner.admin.instance.v1.Instance.InstanceType\022\025\n\r" + "endpoint_uris\030\010 \003(\t\0224\n" @@ -339,8 +344,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + " \001(\01326.google.spanner.admin.instance.v1.FreeInstanceMetadata\022H\n" + "\007edition\030\024" + " \001(\01622.google.spanner.admin.instance.v1.Instance.EditionB\003\340A\001\022o\n" - + "\034default_backup_schedule_type\030\027 \001(\0162D.google.sp" - + "anner.admin.instance.v1.Instance.DefaultBackupScheduleTypeB\003\340A\001\032-\n" + + "\034default_backup_schedule_type\030\027 \001(\0162D.googl" + + "e.spanner.admin.instance.v1.Instance.DefaultBackupScheduleTypeB\003\340A\001\032-\n" + "\013LabelsEntry\022\013\n" + "\003key\030\001 \001(\t\022\r\n" + "\005value\030\002 \001(\t:\0028\001\"7\n" @@ -383,8 +388,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + " \001(\01320.google.spanner.admin.instance.v1.InstanceConfigB\003\340A\002\022\025\n\r" + "validate_only\030\004 \001(\010\"\272\001\n" + "\033UpdateInstanceConfigRequest\022N\n" - + "\017instance_config\030\001 \001(\01320.googl" - + "e.spanner.admin.instance.v1.InstanceConfigB\003\340A\002\0224\n" + + "\017instance_config\030\001 \001(\01320.g" + + "oogle.spanner.admin.instance.v1.InstanceConfigB\003\340A\002\0224\n" + "\013update_mask\030\002" + " \001(\0132\032.google.protobuf.FieldMaskB\003\340A\002\022\025\n\r" + "validate_only\030\003 \001(\010\"\177\n" @@ -397,8 +402,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\006parent\030\001 \001(\tB3\340A\002\372A-\n" + "+cloudresourcemanager.googleapis.com/Project\022\016\n" + "\006filter\030\002 \001(\t\022\021\n" - + "\tpage_size\030\003 \001(\005\022\022\n" - + "\n" + + "\tpage_size\030\003 \001(\005\022\022\n\n" + "page_token\030\004 \001(\t\"r\n" + "$ListInstanceConfigOperationsResponse\0221\n\n" + "operations\030\001 \003(\0132\035.google.longrunning.Operation\022\027\n" @@ -411,8 +415,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\006parent\030\001 \001(\tB3\340A\002\372A-\n" + "+cloudresourcemanager.googleapis.com/Project\022\030\n" + "\013instance_id\030\002 \001(\tB\003\340A\002\022A\n" - + "\010instance\030\003 \001(\0132*." - + "google.spanner.admin.instance.v1.InstanceB\003\340A\002\"\311\001\n" + + "\010instance\030\003 \001(" + + "\0132*.google.spanner.admin.instance.v1.InstanceB\003\340A\002\"\311\001\n" + "\024ListInstancesRequest\022C\n" + "\006parent\030\001 \001(\tB3\340A\002\372A-\n" + "+cloudresourcemanager.googleapis.com/Project\022\021\n" @@ -425,8 +429,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\017next_page_token\030\002 \001(\t\022\023\n" + "\013unreachable\030\003 \003(\t\"\217\001\n" + "\025UpdateInstanceRequest\022A\n" - + "\010instance\030\001 \001(\0132*.google.s" - + "panner.admin.instance.v1.InstanceB\003\340A\002\0223\n\n" + + "\010instance\030\001 \001(\0132*.goog" + + "le.spanner.admin.instance.v1.InstanceB\003\340A\002\0223\n\n" + "field_mask\030\002 \001(\0132\032.google.protobuf.FieldMaskB\003\340A\002\"N\n" + "\025DeleteInstanceRequest\0225\n" + "\004name\030\001 \001(\tB\'\340A\002\372A!\n" @@ -436,20 +440,20 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "start_time\030\002 \001(\0132\032.google.protobuf.Timestamp\022/\n" + "\013cancel_time\030\003 \001(\0132\032.google.protobuf.Timestamp\022,\n" + "\010end_time\030\004 \001(\0132\032.google.protobuf.Timestamp\022X\n" - + "\033expected_fulfillment_period\030\005 \001(\016" - + "23.google.spanner.admin.instance.v1.FulfillmentPeriod\"\277\002\n" + + "\033expected_fulfillment_period\030\005" + + " \001(\01623.google.spanner.admin.instance.v1.FulfillmentPeriod\"\277\002\n" + "\026UpdateInstanceMetadata\022<\n" + "\010instance\030\001 \001(\0132*.google.spanner.admin.instance.v1.Instance\022.\n\n" + "start_time\030\002 \001(\0132\032.google.protobuf.Timestamp\022/\n" + "\013cancel_time\030\003 \001(\0132\032.google.protobuf.Timestamp\022,\n" + "\010end_time\030\004 \001(\0132\032.google.protobuf.Timestamp\022X\n" - + "\033expected_fulfillment_period\030\005 \001" - + "(\01623.google.spanner.admin.instance.v1.FulfillmentPeriod\"\316\002\n" + + "\033expected_fulfillment_period\030\005" + + " \001(\01623.google.spanner.admin.instance.v1.FulfillmentPeriod\"\316\002\n" + "\024FreeInstanceMetadata\0224\n" + "\013expire_time\030\001 \001(\0132\032.google.protobuf.TimestampB\003\340A\003\0225\n" + "\014upgrade_time\030\002 \001(\0132\032.google.protobuf.TimestampB\003\340A\003\022^\n" - + "\017expire_behavior\030\003 \001(\0162E.google.spanner.admin.in" - + "stance.v1.FreeInstanceMetadata.ExpireBehavior\"i\n" + + "\017expire_behavior\030\003 \001(\0162E.google.spanner.admi" + + "n.instance.v1.FreeInstanceMetadata.ExpireBehavior\"i\n" + "\016ExpireBehavior\022\037\n" + "\033EXPIRE_BEHAVIOR_UNSPECIFIED\020\000\022\027\n" + "\023FREE_TO_PROVISIONED\020\001\022\035\n" @@ -457,14 +461,14 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\034CreateInstanceConfigMetadata\022I\n" + "\017instance_config\030\001" + " \001(\01320.google.spanner.admin.instance.v1.InstanceConfig\022E\n" - + "\010progress\030\002 \001(\01323" - + ".google.spanner.admin.instance.v1.OperationProgress\022/\n" + + "\010progress\030\002 \001" + + "(\01323.google.spanner.admin.instance.v1.OperationProgress\022/\n" + "\013cancel_time\030\003 \001(\0132\032.google.protobuf.Timestamp\"\341\001\n" + "\034UpdateInstanceConfigMetadata\022I\n" - + "\017instance_config\030\001 \001(\01320" - + ".google.spanner.admin.instance.v1.InstanceConfig\022E\n" - + "\010progress\030\002 \001(\01323.google.span" - + "ner.admin.instance.v1.OperationProgress\022/\n" + + "\017instance_config\030\001 \001" + + "(\01320.google.spanner.admin.instance.v1.InstanceConfig\022E\n" + + "\010progress\030\002 \001(\01323.google." + + "spanner.admin.instance.v1.OperationProgress\022/\n" + "\013cancel_time\030\003 \001(\0132\032.google.protobuf.Timestamp\"\217\006\n" + "\021InstancePartition\022\021\n" + "\004name\030\001 \001(\tB\003\340A\002\022=\n" @@ -475,8 +479,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\020processing_units\030\006 \001(\005H\000\022T\n" + "\022autoscaling_config\030\r" + " \001(\01323.google.spanner.admin.instance.v1.AutoscalingConfigB\003\340A\001\022M\n" - + "\005state\030\007" - + " \001(\01629.google.spanner.admin.instance.v1.InstancePartition.StateB\003\340A\003\0224\n" + + "\005state\030\007 \001(\01629.google.spanner.admin.in" + + "stance.v1.InstancePartition.StateB\003\340A\003\0224\n" + "\013create_time\030\010 \001(\0132\032.google.protobuf.TimestampB\003\340A\003\0224\n" + "\013update_time\030\t \001(\0132\032.google.protobuf.TimestampB\003\340A\003\022\"\n" + "\025referencing_databases\030\n" @@ -487,9 +491,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\021STATE_UNSPECIFIED\020\000\022\014\n" + "\010CREATING\020\001\022\t\n" + "\005READY\020\002:\246\001\352A\242\001\n" - + "(spanner.googleapis.com/InstancePartition\022Oprojects/{project}/insta" - + "nces/{instance}/instancePartitions/{inst" - + "ance_partition}*\022instancePartitions2\021instancePartitionB\022\n" + + "(spanner.googleapis.com/InstancePartition\022Oprojects/{project}/i" + + "nstances/{instance}/instancePartitions/{" + + "instance_partition}*\022instancePartitions2\021instancePartitionB\022\n" + "\020compute_capacity\"\201\002\n" + "\037CreateInstancePartitionMetadata\022O\n" + "\022instance_partition\030\001" @@ -511,12 +515,12 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\004name\030\001 \001(\tB0\340A\002\372A*\n" + "(spanner.googleapis.com/InstancePartition\"\253\001\n" + "\036UpdateInstancePartitionRequest\022T\n" - + "\022instance_partition\030\001" - + " \001(\01323.google.spanner.admin.instance.v1.InstancePartitionB\003\340A\002\0223\n\n" + + "\022instance_partition\030\001 \001(\01323.google.spanner." + + "admin.instance.v1.InstancePartitionB\003\340A\002\0223\n\n" + "field_mask\030\002 \001(\0132\032.google.protobuf.FieldMaskB\003\340A\002\"\201\002\n" + "\037UpdateInstancePartitionMetadata\022O\n" - + "\022instance_partition\030\001 \001(\01323.goog" - + "le.spanner.admin.instance.v1.InstancePartition\022.\n\n" + + "\022instance_partition\030\001 \001(\01323." + + "google.spanner.admin.instance.v1.InstancePartition\022.\n\n" + "start_time\030\002 \001(\0132\032.google.protobuf.Timestamp\022/\n" + "\013cancel_time\030\003 \001(\0132\032.google.protobuf.Timestamp\022,\n" + "\010end_time\030\004 \001(\0132\032.google.protobuf.Timestamp\"\305\001\n" @@ -552,112 +556,112 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\024MoveInstanceResponse\"\245\001\n" + "\024MoveInstanceMetadata\022\025\n\r" + "target_config\030\001 \001(\t\022E\n" - + "\010progress\030\002 \001(\01323.googl" - + "e.spanner.admin.instance.v1.OperationProgress\022/\n" + + "\010progress\030\002 \001(\01323.g" + + "oogle.spanner.admin.instance.v1.OperationProgress\022/\n" + "\013cancel_time\030\003 \001(\0132\032.google.protobuf.Timestamp2\332\'\n\r" + "InstanceAdmin\022\314\001\n" - + "\023ListInstanceConfigs\022<.google.spanner.admin." - + "instance.v1.ListInstanceConfigsRequest\032=.google.spanner.admin.instance.v1.ListIn" - + "stanceConfigsResponse\"8\332A\006parent\202\323\344\223\002)\022\'" - + "/v1/{parent=projects/*}/instanceConfigs\022\271\001\n" - + "\021GetInstanceConfig\022:.google.spanner.admin.instance.v1.GetInstanceConfigReques" - + "t\0320.google.spanner.admin.instance.v1.Ins" - + "tanceConfig\"6\332A\004name\202\323\344\223\002)\022\'/v1/{name=projects/*/instanceConfigs/*}\022\310\002\n" - + "\024CreateInstanceConfig\022=.google.spanner.admin.inst" - + "ance.v1.CreateInstanceConfigRequest\032\035.google.longrunning.Operation\"\321\001\312Ap\n" - + "/google.spanner.admin.instance.v1.InstanceConfi" - + "g\022=google.spanner.admin.instance.v1.CreateInstanceConfigMetadata\332A)parent,instan" - + "ce_config,instance_config_id\202\323\344\223\002,\"\'/v1/" - + "{parent=projects/*}/instanceConfigs:\001*\022\312\002\n" - + "\024UpdateInstanceConfig\022=.google.spanner.admin.instance.v1.UpdateInstanceConfigR" - + "equest\032\035.google.longrunning.Operation\"\323\001\312Ap\n" - + "/google.spanner.admin.instance.v1.InstanceConfig\022=google.spanner.admin.insta" - + "nce.v1.UpdateInstanceConfigMetadata\332A\033in" - + "stance_config,update_mask\202\323\344\223\002<27/v1/{in" - + "stance_config.name=projects/*/instanceConfigs/*}:\001*\022\245\001\n" - + "\024DeleteInstanceConfig\022=.google.spanner.admin.instance.v1.DeleteIn" - + "stanceConfigRequest\032\026.google.protobuf.Em" - + "pty\"6\332A\004name\202\323\344\223\002)*\'/v1/{name=projects/*/instanceConfigs/*}\022\360\001\n" - + "\034ListInstanceConfigOperations\022E.google.spanner.admin.inst" - + "ance.v1.ListInstanceConfigOperationsRequest\032F.google.spanner.admin.instance.v1.L" - + "istInstanceConfigOperationsResponse\"A\332A\006" - + "parent\202\323\344\223\0022\0220/v1/{parent=projects/*}/instanceConfigOperations\022\264\001\n\r" - + "ListInstances\0226.google.spanner.admin.instance.v1.List" - + "InstancesRequest\0327.google.spanner.admin." - + "instance.v1.ListInstancesResponse\"2\332A\006pa" - + "rent\202\323\344\223\002#\022!/v1/{parent=projects/*}/instances\022\344\001\n" - + "\026ListInstancePartitions\022?.google.spanner.admin.instance.v1.ListInstance" - + "PartitionsRequest\032@.google.spanner.admin.instance.v1.ListInstancePartitionsRespo" - + "nse\"G\332A\006parent\202\323\344\223\0028\0226/v1/{parent=projects/*/instances/*}/instancePartitions\022\241\001\n" - + "\013GetInstance\0224.google.spanner.admin.inst" - + "ance.v1.GetInstanceRequest\032*.google.span" - + "ner.admin.instance.v1.Instance\"0\332A\004name\202" - + "\323\344\223\002#\022!/v1/{name=projects/*/instances/*}\022\234\002\n" - + "\016CreateInstance\0227.google.spanner.adm" - + "in.instance.v1.CreateInstanceRequest\032\035.google.longrunning.Operation\"\261\001\312Ad\n" - + ")google.spanner.admin.instance.v1.Instance\0227go" - + "ogle.spanner.admin.instance.v1.CreateInstanceMetadata\332A\033parent,instance_id,insta" - + "nce\202\323\344\223\002&\"!/v1/{parent=projects/*}/instances:\001*\022\235\002\n" - + "\016UpdateInstance\0227.google.spanner.admin.instance.v1.UpdateInstanceRequ" - + "est\032\035.google.longrunning.Operation\"\262\001\312Ad\n" - + ")google.spanner.admin.instance.v1.Instance\0227google.spanner.admin.instance.v1.Up" - + "dateInstanceMetadata\332A\023instance,field_ma" - + "sk\202\323\344\223\002/2*/v1/{instance.name=projects/*/instances/*}:\001*\022\223\001\n" - + "\016DeleteInstance\0227.google.spanner.admin.instance.v1.DeleteInst" - + "anceRequest\032\026.google.protobuf.Empty\"0\332A\004" - + "name\202\323\344\223\002#*!/v1/{name=projects/*/instances/*}\022\232\001\n" - + "\014SetIamPolicy\022\".google.iam.v1.SetIamPolicyRequest\032\025.google.iam.v1.Polic" - + "y\"O\332A\017resource,policy\202\323\344\223\0027\"2/v1/{resour" - + "ce=projects/*/instances/*}:setIamPolicy:\001*\022\223\001\n" - + "\014GetIamPolicy\022\".google.iam.v1.GetI" - + "amPolicyRequest\032\025.google.iam.v1.Policy\"H" - + "\332A\010resource\202\323\344\223\0027\"2/v1/{resource=projects/*/instances/*}:getIamPolicy:\001*\022\305\001\n" - + "\022TestIamPermissions\022(.google.iam.v1.TestIamP" - + "ermissionsRequest\032).google.iam.v1.TestIa" - + "mPermissionsResponse\"Z\332A\024resource,permis" - + "sions\202\323\344\223\002=\"8/v1/{resource=projects/*/instances/*}:testIamPermissions:\001*\022\321\001\n" - + "\024GetInstancePartition\022=.google.spanner.admin" - + ".instance.v1.GetInstancePartitionRequest\0323.google.spanner.admin.instance.v1.Inst" - + "ancePartition\"E\332A\004name\202\323\344\223\0028\0226/v1/{name=" - + "projects/*/instances/*/instancePartitions/*}\022\351\002\n" - + "\027CreateInstancePartition\022@.google.spanner.admin.instance.v1.CreateInstan" - + "cePartitionRequest\032\035.google.longrunning.Operation\"\354\001\312Av\n" - + "2google.spanner.admin.instance.v1.InstancePartition\022@google.span" - + "ner.admin.instance.v1.CreateInstancePartitionMetadata\332A/parent,instance_partitio" - + "n,instance_partition_id\202\323\344\223\002;\"6/v1/{pare" - + "nt=projects/*/instances/*}/instancePartitions:\001*\022\272\001\n" - + "\027DeleteInstancePartition\022@.google.spanner.admin.instance.v1.DeleteIn" - + "stancePartitionRequest\032\026.google.protobuf" - + ".Empty\"E\332A\004name\202\323\344\223\0028*6/v1/{name=project" - + "s/*/instances/*/instancePartitions/*}\022\352\002\n" - + "\027UpdateInstancePartition\022@.google.spanner.admin.instance.v1.UpdateInstanceParti" - + "tionRequest\032\035.google.longrunning.Operation\"\355\001\312Av\n" - + "2google.spanner.admin.instance.v1.InstancePartition\022@google.spanner.adm" - + "in.instance.v1.UpdateInstancePartitionMe" - + "tadata\332A\035instance_partition,field_mask\202\323" - + "\344\223\002N2I/v1/{instance_partition.name=proje" - + "cts/*/instances/*/instancePartitions/*}:\001*\022\210\002\n" - + "\037ListInstancePartitionOperations\022H.google.spanner.admin.instance.v1.ListIn" - + "stancePartitionOperationsRequest\032I.google.spanner.admin.instance.v1.ListInstance" - + "PartitionOperationsResponse\"P\332A\006parent\202\323" - + "\344\223\002A\022?/v1/{parent=projects/*/instances/*}/instancePartitionOperations\022\211\002\n" - + "\014MoveInstance\0225.google.spanner.admin.instance.v", - "1.MoveInstanceRequest\032\035.google.longrunni" - + "ng.Operation\"\242\001\312An\n5google.spanner.admin" - + ".instance.v1.MoveInstanceResponse\0225googl" - + "e.spanner.admin.instance.v1.MoveInstance" - + "Metadata\202\323\344\223\002+\"&/v1/{name=projects/*/ins" - + "tances/*}:move:\001*\032x\312A\026spanner.googleapis" - + ".com\322A\\https://www.googleapis.com/auth/c" - + "loud-platform,https://www.googleapis.com" - + "/auth/spanner.adminB\213\002\n$com.google.spann" - + "er.admin.instance.v1B\031SpannerInstanceAdm" - + "inProtoP\001ZFcloud.google.com/go/spanner/a" - + "dmin/instance/apiv1/instancepb;instancep" - + "b\252\002&Google.Cloud.Spanner.Admin.Instance." - + "V1\312\002&Google\\Cloud\\Spanner\\Admin\\Instance" - + "\\V1\352\002+Google::Cloud::Spanner::Admin::Ins" - + "tance::V1b\006proto3" + + "\023ListInstanceConfigs\022<.google.spanner.admin.instance.v1.ListInstanceConfigsReque" + + "st\032=.google.spanner.admin.instance.v1.Li" + + "stInstanceConfigsResponse\"8\332A\006parent\202\323\344\223" + + "\002)\022\'/v1/{parent=projects/*}/instanceConfigs\022\271\001\n" + + "\021GetInstanceConfig\022:.google.spanner.admin.instance.v1.GetInstanceConfigRe" + + "quest\0320.google.spanner.admin.instance.v1" + + ".InstanceConfig\"6\332A\004name\202\323\344\223\002)\022\'/v1/{name=projects/*/instanceConfigs/*}\022\310\002\n" + + "\024CreateInstanceConfig\022=.google.spanner.admin." + + "instance.v1.CreateInstanceConfigRequest\032\035.google.longrunning.Operation\"\321\001\312Ap\n" + + "/google.spanner.admin.instance.v1.InstanceConfig\022=google.spanner.admin.instance.v1." + + "CreateInstanceConfigMetadata\332A)parent,in" + + "stance_config,instance_config_id\202\323\344\223\002,\"\'" + + "/v1/{parent=projects/*}/instanceConfigs:\001*\022\312\002\n" + + "\024UpdateInstanceConfig\022=.google.spanner.admin.instance.v1.UpdateInstanceCon" + + "figRequest\032\035.google.longrunning.Operation\"\323\001\312Ap\n" + + "/google.spanner.admin.instance.v1.InstanceConfig\022=google.spanner.admin.i" + + "nstance.v1.UpdateInstanceConfigMetadata\332" + + "A\033instance_config,update_mask\202\323\344\223\002<27/v1" + + "/{instance_config.name=projects/*/instanceConfigs/*}:\001*\022\245\001\n" + + "\024DeleteInstanceConfig\022=.google.spanner.admin.instance.v1.Dele" + + "teInstanceConfigRequest\032\026.google.protobu" + + "f.Empty\"6\332A\004name\202\323\344\223\002)*\'/v1/{name=projects/*/instanceConfigs/*}\022\360\001\n" + + "\034ListInstanceConfigOperations\022E.google.spanner.admin." + + "instance.v1.ListInstanceConfigOperationsRequest\032F.google.spanner.admin.instance." + + "v1.ListInstanceConfigOperationsResponse\"" + + "A\332A\006parent\202\323\344\223\0022\0220/v1/{parent=projects/*}/instanceConfigOperations\022\264\001\n\r" + + "ListInstances\0226.google.spanner.admin.instance.v1." + + "ListInstancesRequest\0327.google.spanner.ad" + + "min.instance.v1.ListInstancesResponse\"2\332" + + "A\006parent\202\323\344\223\002#\022!/v1/{parent=projects/*}/instances\022\344\001\n" + + "\026ListInstancePartitions\022?.google.spanner.admin.instance.v1.ListInst" + + "ancePartitionsRequest\032@.google.spanner.admin.instance.v1.ListInstancePartitionsR" + + "esponse\"G\332A\006parent\202\323\344\223\0028\0226/v1/{parent=pr" + + "ojects/*/instances/*}/instancePartitions\022\241\001\n" + + "\013GetInstance\0224.google.spanner.admin.instance.v1.GetInstanceRequest\032*.google." + + "spanner.admin.instance.v1.Instance\"0\332A\004n" + + "ame\202\323\344\223\002#\022!/v1/{name=projects/*/instances/*}\022\234\002\n" + + "\016CreateInstance\0227.google.spanner" + + ".admin.instance.v1.CreateInstanceRequest\032\035.google.longrunning.Operation\"\261\001\312Ad\n" + + ")google.spanner.admin.instance.v1.Instance\0227google.spanner.admin.instance.v1.Creat" + + "eInstanceMetadata\332A\033parent,instance_id,i" + + "nstance\202\323\344\223\002&\"!/v1/{parent=projects/*}/instances:\001*\022\235\002\n" + + "\016UpdateInstance\0227.google.spanner.admin.instance.v1.UpdateInstance" + + "Request\032\035.google.longrunning.Operation\"\262\001\312Ad\n" + + ")google.spanner.admin.instance.v1.Instance\0227google.spanner.admin.instance.v" + + "1.UpdateInstanceMetadata\332A\023instance,fiel" + + "d_mask\202\323\344\223\002/2*/v1/{instance.name=projects/*/instances/*}:\001*\022\223\001\n" + + "\016DeleteInstance\0227.google.spanner.admin.instance.v1.Delete" + + "InstanceRequest\032\026.google.protobuf.Empty\"" + + "0\332A\004name\202\323\344\223\002#*!/v1/{name=projects/*/instances/*}\022\232\001\n" + + "\014SetIamPolicy\022\".google.iam.v1.SetIamPolicyRequest\032\025.google.iam.v1.P" + + "olicy\"O\332A\017resource,policy\202\323\344\223\0027\"2/v1/{re" + + "source=projects/*/instances/*}:setIamPolicy:\001*\022\223\001\n" + + "\014GetIamPolicy\022\".google.iam.v1.GetIamPolicyRequest\032\025.google.iam.v1.Poli" + + "cy\"H\332A\010resource\202\323\344\223\0027\"2/v1/{resource=projects/*/instances/*}:getIamPolicy:\001*\022\305\001\n" + + "\022TestIamPermissions\022(.google.iam.v1.Test" + + "IamPermissionsRequest\032).google.iam.v1.Te" + + "stIamPermissionsResponse\"Z\332A\024resource,pe" + + "rmissions\202\323\344\223\002=\"8/v1/{resource=projects/*/instances/*}:testIamPermissions:\001*\022\321\001\n" + + "\024GetInstancePartition\022=.google.spanner.admin.instance.v1.GetInstancePartitionReq" + + "uest\0323.google.spanner.admin.instance.v1." + + "InstancePartition\"E\332A\004name\202\323\344\223\0028\0226/v1/{n" + + "ame=projects/*/instances/*/instancePartitions/*}\022\351\002\n" + + "\027CreateInstancePartition\022@.google.spanner.admin.instance.v1.CreateIn" + + "stancePartitionRequest\032\035.google.longrunning.Operation\"\354\001\312Av\n" + + "2google.spanner.admin.instance.v1.InstancePartition\022@google." + + "spanner.admin.instance.v1.CreateInstancePartitionMetadata\332A/parent,instance_part" + + "ition,instance_partition_id\202\323\344\223\002;\"6/v1/{" + + "parent=projects/*/instances/*}/instancePartitions:\001*\022\272\001\n" + + "\027DeleteInstancePartition\022@.google.spanner.admin.instance.v1.Dele" + + "teInstancePartitionRequest\032\026.google.prot" + + "obuf.Empty\"E\332A\004name\202\323\344\223\0028*6/v1/{name=pro" + + "jects/*/instances/*/instancePartitions/*}\022\352\002\n" + + "\027UpdateInstancePartition\022@.google.spanner.admin.instance.v1.UpdateInstanceP" + + "artitionRequest\032\035.google.longrunning.Operation\"\355\001\312Av\n" + + "2google.spanner.admin.instance.v1.InstancePartition\022@google.spanner" + + ".admin.instance.v1.UpdateInstancePartitionMetadata\332A\035instance_partition,field_ma" + + "sk\202\323\344\223\002N2I/v1/{instance_partition.name=p" + + "rojects/*/instances/*/instancePartitions/*}:\001*\022\210\002\n" + + "\037ListInstancePartitionOperations\022H.google.spanner.admin.instance.v1.Li" + + "stInstancePartitionOperationsRequest\032I.g", + "oogle.spanner.admin.instance.v1.ListInst" + + "ancePartitionOperationsResponse\"P\332A\006pare" + + "nt\202\323\344\223\002A\022?/v1/{parent=projects/*/instanc" + + "es/*}/instancePartitionOperations\022\211\002\n\014Mo" + + "veInstance\0225.google.spanner.admin.instan" + + "ce.v1.MoveInstanceRequest\032\035.google.longr" + + "unning.Operation\"\242\001\312An\n5google.spanner.a" + + "dmin.instance.v1.MoveInstanceResponse\0225g" + + "oogle.spanner.admin.instance.v1.MoveInst" + + "anceMetadata\202\323\344\223\002+\"&/v1/{name=projects/*" + + "/instances/*}:move:\001*\032x\312A\026spanner.google" + + "apis.com\322A\\https://www.googleapis.com/au" + + "th/cloud-platform,https://www.googleapis" + + ".com/auth/spanner.adminB\213\002\n$com.google.s" + + "panner.admin.instance.v1B\031SpannerInstanc" + + "eAdminProtoP\001ZFcloud.google.com/go/spann" + + "er/admin/instance/apiv1/instancepb;insta" + + "ncepb\252\002&Google.Cloud.Spanner.Admin.Insta" + + "nce.V1\312\002&Google\\Cloud\\Spanner\\Admin\\Inst" + + "ance\\V1\352\002+Google::Cloud::Spanner::Admin:" + + ":Instance::V1b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( @@ -753,7 +757,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_spanner_admin_instance_v1_AutoscalingConfig_AutoscalingTargets_descriptor, new java.lang.String[] { - "HighPriorityCpuUtilizationPercent", "StorageUtilizationPercent", + "HighPriorityCpuUtilizationPercent", + "TotalCpuUtilizationPercent", + "StorageUtilizationPercent", }); internal_static_google_spanner_admin_instance_v1_AutoscalingConfig_AsymmetricAutoscalingOption_descriptor = internal_static_google_spanner_admin_instance_v1_AutoscalingConfig_descriptor @@ -773,7 +779,11 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_spanner_admin_instance_v1_AutoscalingConfig_AsymmetricAutoscalingOption_AutoscalingConfigOverrides_descriptor, new java.lang.String[] { - "AutoscalingLimits", "AutoscalingTargetHighPriorityCpuUtilizationPercent", + "AutoscalingLimits", + "AutoscalingTargetHighPriorityCpuUtilizationPercent", + "AutoscalingTargetTotalCpuUtilizationPercent", + "DisableHighPriorityCpuAutoscaling", + "DisableTotalCpuAutoscaling", }); internal_static_google_spanner_admin_instance_v1_Instance_descriptor = getDescriptor().getMessageTypes().get(4); diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/proto/google/spanner/admin/instance/v1/spanner_instance_admin.proto b/proto-google-cloud-spanner-admin-instance-v1/src/main/proto/google/spanner/admin/instance/v1/spanner_instance_admin.proto index 0893c33fd24..d16ab2ca583 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/proto/google/spanner/admin/instance/v1/spanner_instance_admin.proto +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/proto/google/spanner/admin/instance/v1/spanner_instance_admin.proto @@ -933,12 +933,25 @@ message AutoscalingConfig { // The autoscaling targets for an instance. message AutoscalingTargets { - // Required. The target high priority cpu utilization percentage that the + // Optional. The target high priority cpu utilization percentage that the // autoscaler should be trying to achieve for the instance. This number is // on a scale from 0 (no utilization) to 100 (full utilization). The valid - // range is [10, 90] inclusive. + // range is [10, 90] inclusive. If not specified or set to 0, the autoscaler + // skips scaling based on high priority CPU utilization. int32 high_priority_cpu_utilization_percent = 1 - [(google.api.field_behavior) = REQUIRED]; + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The target total CPU utilization percentage that the autoscaler + // should be trying to achieve for the instance. This number is on a scale + // from 0 (no utilization) to 100 (full utilization). The valid range is + // [10, 90] inclusive. If not specified or set to 0, the autoscaler skips + // scaling based on total CPU utilization. If both + // `high_priority_cpu_utilization_percent` and + // `total_cpu_utilization_percent` are specified, the autoscaler provisions + // the larger of the two required compute capacities to satisfy both + // targets. + int32 total_cpu_utilization_percent = 4 + [(google.api.field_behavior) = OPTIONAL]; // Required. The target storage utilization percentage that the autoscaler // should be trying to achieve for the instance. This number is on a scale @@ -966,6 +979,60 @@ message AutoscalingConfig { // configuration for the selected replicas. int32 autoscaling_target_high_priority_cpu_utilization_percent = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If specified, overrides the + // autoscaling target `total_cpu_utilization_percent` + // in the top-level autoscaling configuration for the selected replicas. + int32 autoscaling_target_total_cpu_utilization_percent = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, disables high priority CPU autoscaling for the + // selected replicas and ignores + // [high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.high_priority_cpu_utilization_percent] + // in the top-level autoscaling configuration. + // + // When setting this field to true, setting + // [autoscaling_target_high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_high_priority_cpu_utilization_percent] + // field to a non-zero value for the same replica is not supported. + // + // If false, the + // [autoscaling_target_high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_high_priority_cpu_utilization_percent] + // field in the replica will be used if set to a non-zero value. + // Otherwise, the + // [high_priority_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.high_priority_cpu_utilization_percent] + // field in the top-level autoscaling configuration will be used. + // + // Setting both + // [disable_high_priority_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_high_priority_cpu_autoscaling] + // and + // [disable_total_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_total_cpu_autoscaling] + // to true for the same replica is not supported. + bool disable_high_priority_cpu_autoscaling = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, disables total CPU autoscaling for the selected + // replicas and ignores + // [total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.total_cpu_utilization_percent] + // in the top-level autoscaling configuration. + // + // When setting this field to true, setting + // [autoscaling_target_total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_total_cpu_utilization_percent] + // field to a non-zero value for the same replica is not supported. + // + // If false, the + // [autoscaling_target_total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.autoscaling_target_total_cpu_utilization_percent] + // field in the replica will be used if set to a non-zero value. + // Otherwise, the + // [total_cpu_utilization_percent][google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets.total_cpu_utilization_percent] + // field in the top-level autoscaling configuration will be used. + // + // Setting both + // [disable_high_priority_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_high_priority_cpu_autoscaling] + // and + // [disable_total_cpu_autoscaling][google.spanner.admin.instance.v1.AutoscalingConfig.AsymmetricAutoscalingOption.AutoscalingConfigOverrides.disable_total_cpu_autoscaling] + // to true for the same replica is not supported. + bool disable_total_cpu_autoscaling = 6 + [(google.api.field_behavior) = OPTIONAL]; } // Required. Selects the replicas to which this AsymmetricAutoscalingOption diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/RequestOptions.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/RequestOptions.java index cdeff5f7093..a3993a25ac2 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/RequestOptions.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/RequestOptions.java @@ -263,6 +263,998 @@ private Priority(int value) { // @@protoc_insertion_point(enum_scope:google.spanner.v1.RequestOptions.Priority) } + public interface ClientContextOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.spanner.v1.RequestOptions.ClientContext) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Optional. Map of parameter name to value for this request. These values
+     * will be returned by any SECURE_CONTEXT() calls invoked by this request
+     * (e.g., by queries against Parameterized Secure Views).
+     * 
+ * + * + * map<string, .google.protobuf.Value> secure_context = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + int getSecureContextCount(); + + /** + * + * + *
+     * Optional. Map of parameter name to value for this request. These values
+     * will be returned by any SECURE_CONTEXT() calls invoked by this request
+     * (e.g., by queries against Parameterized Secure Views).
+     * 
+ * + * + * map<string, .google.protobuf.Value> secure_context = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + boolean containsSecureContext(java.lang.String key); + + /** Use {@link #getSecureContextMap()} instead. */ + @java.lang.Deprecated + java.util.Map getSecureContext(); + + /** + * + * + *
+     * Optional. Map of parameter name to value for this request. These values
+     * will be returned by any SECURE_CONTEXT() calls invoked by this request
+     * (e.g., by queries against Parameterized Secure Views).
+     * 
+ * + * + * map<string, .google.protobuf.Value> secure_context = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + java.util.Map getSecureContextMap(); + + /** + * + * + *
+     * Optional. Map of parameter name to value for this request. These values
+     * will be returned by any SECURE_CONTEXT() calls invoked by this request
+     * (e.g., by queries against Parameterized Secure Views).
+     * 
+ * + * + * map<string, .google.protobuf.Value> secure_context = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + /* nullable */ + com.google.protobuf.Value getSecureContextOrDefault( + java.lang.String key, + /* nullable */ + com.google.protobuf.Value defaultValue); + + /** + * + * + *
+     * Optional. Map of parameter name to value for this request. These values
+     * will be returned by any SECURE_CONTEXT() calls invoked by this request
+     * (e.g., by queries against Parameterized Secure Views).
+     * 
+ * + * + * map<string, .google.protobuf.Value> secure_context = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.protobuf.Value getSecureContextOrThrow(java.lang.String key); + } + + /** + * + * + *
+   * Container for various pieces of client-owned context attached to a request.
+   * 
+ * + * Protobuf type {@code google.spanner.v1.RequestOptions.ClientContext} + */ + public static final class ClientContext extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.spanner.v1.RequestOptions.ClientContext) + ClientContextOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ClientContext.newBuilder() to construct. + private ClientContext(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ClientContext() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ClientContext(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.spanner.v1.SpannerProto + .internal_static_google_spanner_v1_RequestOptions_ClientContext_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 1: + return internalGetSecureContext(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.spanner.v1.SpannerProto + .internal_static_google_spanner_v1_RequestOptions_ClientContext_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.spanner.v1.RequestOptions.ClientContext.class, + com.google.spanner.v1.RequestOptions.ClientContext.Builder.class); + } + + public static final int SECURE_CONTEXT_FIELD_NUMBER = 1; + + private static final class SecureContextDefaultEntryHolder { + static final com.google.protobuf.MapEntry + defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + com.google.spanner.v1.SpannerProto + .internal_static_google_spanner_v1_RequestOptions_ClientContext_SecureContextEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.MESSAGE, + com.google.protobuf.Value.getDefaultInstance()); + } + + @SuppressWarnings("serial") + private com.google.protobuf.MapField + secureContext_; + + private com.google.protobuf.MapField + internalGetSecureContext() { + if (secureContext_ == null) { + return com.google.protobuf.MapField.emptyMapField( + SecureContextDefaultEntryHolder.defaultEntry); + } + return secureContext_; + } + + public int getSecureContextCount() { + return internalGetSecureContext().getMap().size(); + } + + /** + * + * + *
+     * Optional. Map of parameter name to value for this request. These values
+     * will be returned by any SECURE_CONTEXT() calls invoked by this request
+     * (e.g., by queries against Parameterized Secure Views).
+     * 
+ * + * + * map<string, .google.protobuf.Value> secure_context = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public boolean containsSecureContext(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetSecureContext().getMap().containsKey(key); + } + + /** Use {@link #getSecureContextMap()} instead. */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getSecureContext() { + return getSecureContextMap(); + } + + /** + * + * + *
+     * Optional. Map of parameter name to value for this request. These values
+     * will be returned by any SECURE_CONTEXT() calls invoked by this request
+     * (e.g., by queries against Parameterized Secure Views).
+     * 
+ * + * + * map<string, .google.protobuf.Value> secure_context = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.util.Map getSecureContextMap() { + return internalGetSecureContext().getMap(); + } + + /** + * + * + *
+     * Optional. Map of parameter name to value for this request. These values
+     * will be returned by any SECURE_CONTEXT() calls invoked by this request
+     * (e.g., by queries against Parameterized Secure Views).
+     * 
+ * + * + * map<string, .google.protobuf.Value> secure_context = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public /* nullable */ com.google.protobuf.Value getSecureContextOrDefault( + java.lang.String key, + /* nullable */ + com.google.protobuf.Value defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = + internalGetSecureContext().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + + /** + * + * + *
+     * Optional. Map of parameter name to value for this request. These values
+     * will be returned by any SECURE_CONTEXT() calls invoked by this request
+     * (e.g., by queries against Parameterized Secure Views).
+     * 
+ * + * + * map<string, .google.protobuf.Value> secure_context = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.protobuf.Value getSecureContextOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = + internalGetSecureContext().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 { + com.google.protobuf.GeneratedMessageV3.serializeStringMapTo( + output, internalGetSecureContext(), SecureContextDefaultEntryHolder.defaultEntry, 1); + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (java.util.Map.Entry entry : + internalGetSecureContext().getMap().entrySet()) { + com.google.protobuf.MapEntry secureContext__ = + SecureContextDefaultEntryHolder.defaultEntry + .newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, secureContext__); + } + 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.spanner.v1.RequestOptions.ClientContext)) { + return super.equals(obj); + } + com.google.spanner.v1.RequestOptions.ClientContext other = + (com.google.spanner.v1.RequestOptions.ClientContext) obj; + + if (!internalGetSecureContext().equals(other.internalGetSecureContext())) 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 (!internalGetSecureContext().getMap().isEmpty()) { + hash = (37 * hash) + SECURE_CONTEXT_FIELD_NUMBER; + hash = (53 * hash) + internalGetSecureContext().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.spanner.v1.RequestOptions.ClientContext parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.spanner.v1.RequestOptions.ClientContext parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.spanner.v1.RequestOptions.ClientContext parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.spanner.v1.RequestOptions.ClientContext 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.spanner.v1.RequestOptions.ClientContext parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.spanner.v1.RequestOptions.ClientContext parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.spanner.v1.RequestOptions.ClientContext parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.spanner.v1.RequestOptions.ClientContext 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.spanner.v1.RequestOptions.ClientContext parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.spanner.v1.RequestOptions.ClientContext 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.spanner.v1.RequestOptions.ClientContext parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.spanner.v1.RequestOptions.ClientContext 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.spanner.v1.RequestOptions.ClientContext 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; + } + + /** + * + * + *
+     * Container for various pieces of client-owned context attached to a request.
+     * 
+ * + * Protobuf type {@code google.spanner.v1.RequestOptions.ClientContext} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.spanner.v1.RequestOptions.ClientContext) + com.google.spanner.v1.RequestOptions.ClientContextOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.spanner.v1.SpannerProto + .internal_static_google_spanner_v1_RequestOptions_ClientContext_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 1: + return internalGetSecureContext(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { + switch (number) { + case 1: + return internalGetMutableSecureContext(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.spanner.v1.SpannerProto + .internal_static_google_spanner_v1_RequestOptions_ClientContext_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.spanner.v1.RequestOptions.ClientContext.class, + com.google.spanner.v1.RequestOptions.ClientContext.Builder.class); + } + + // Construct using com.google.spanner.v1.RequestOptions.ClientContext.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + internalGetMutableSecureContext().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.spanner.v1.SpannerProto + .internal_static_google_spanner_v1_RequestOptions_ClientContext_descriptor; + } + + @java.lang.Override + public com.google.spanner.v1.RequestOptions.ClientContext getDefaultInstanceForType() { + return com.google.spanner.v1.RequestOptions.ClientContext.getDefaultInstance(); + } + + @java.lang.Override + public com.google.spanner.v1.RequestOptions.ClientContext build() { + com.google.spanner.v1.RequestOptions.ClientContext result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.spanner.v1.RequestOptions.ClientContext buildPartial() { + com.google.spanner.v1.RequestOptions.ClientContext result = + new com.google.spanner.v1.RequestOptions.ClientContext(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.spanner.v1.RequestOptions.ClientContext result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.secureContext_ = + internalGetSecureContext().build(SecureContextDefaultEntryHolder.defaultEntry); + } + } + + @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.spanner.v1.RequestOptions.ClientContext) { + return mergeFrom((com.google.spanner.v1.RequestOptions.ClientContext) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.spanner.v1.RequestOptions.ClientContext other) { + if (other == com.google.spanner.v1.RequestOptions.ClientContext.getDefaultInstance()) + return this; + internalGetMutableSecureContext().mergeFrom(other.internalGetSecureContext()); + bitField0_ |= 0x00000001; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + com.google.protobuf.MapEntry + secureContext__ = + input.readMessage( + SecureContextDefaultEntryHolder.defaultEntry.getParserForType(), + extensionRegistry); + internalGetMutableSecureContext() + .ensureBuilderMap() + .put(secureContext__.getKey(), secureContext__.getValue()); + 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 static final class SecureContextConverter + implements com.google.protobuf.MapFieldBuilder.Converter< + java.lang.String, com.google.protobuf.ValueOrBuilder, com.google.protobuf.Value> { + @java.lang.Override + public com.google.protobuf.Value build(com.google.protobuf.ValueOrBuilder val) { + if (val instanceof com.google.protobuf.Value) { + return (com.google.protobuf.Value) val; + } + return ((com.google.protobuf.Value.Builder) val).build(); + } + + @java.lang.Override + public com.google.protobuf.MapEntry + defaultEntry() { + return SecureContextDefaultEntryHolder.defaultEntry; + } + } + ; + + private static final SecureContextConverter secureContextConverter = + new SecureContextConverter(); + + private com.google.protobuf.MapFieldBuilder< + java.lang.String, + com.google.protobuf.ValueOrBuilder, + com.google.protobuf.Value, + com.google.protobuf.Value.Builder> + secureContext_; + + private com.google.protobuf.MapFieldBuilder< + java.lang.String, + com.google.protobuf.ValueOrBuilder, + com.google.protobuf.Value, + com.google.protobuf.Value.Builder> + internalGetSecureContext() { + if (secureContext_ == null) { + return new com.google.protobuf.MapFieldBuilder<>(secureContextConverter); + } + return secureContext_; + } + + private com.google.protobuf.MapFieldBuilder< + java.lang.String, + com.google.protobuf.ValueOrBuilder, + com.google.protobuf.Value, + com.google.protobuf.Value.Builder> + internalGetMutableSecureContext() { + if (secureContext_ == null) { + secureContext_ = new com.google.protobuf.MapFieldBuilder<>(secureContextConverter); + } + bitField0_ |= 0x00000001; + onChanged(); + return secureContext_; + } + + public int getSecureContextCount() { + return internalGetSecureContext().ensureBuilderMap().size(); + } + + /** + * + * + *
+       * Optional. Map of parameter name to value for this request. These values
+       * will be returned by any SECURE_CONTEXT() calls invoked by this request
+       * (e.g., by queries against Parameterized Secure Views).
+       * 
+ * + * + * map<string, .google.protobuf.Value> secure_context = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public boolean containsSecureContext(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetSecureContext().ensureBuilderMap().containsKey(key); + } + + /** Use {@link #getSecureContextMap()} instead. */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getSecureContext() { + return getSecureContextMap(); + } + + /** + * + * + *
+       * Optional. Map of parameter name to value for this request. These values
+       * will be returned by any SECURE_CONTEXT() calls invoked by this request
+       * (e.g., by queries against Parameterized Secure Views).
+       * 
+ * + * + * map<string, .google.protobuf.Value> secure_context = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.util.Map getSecureContextMap() { + return internalGetSecureContext().getImmutableMap(); + } + + /** + * + * + *
+       * Optional. Map of parameter name to value for this request. These values
+       * will be returned by any SECURE_CONTEXT() calls invoked by this request
+       * (e.g., by queries against Parameterized Secure Views).
+       * 
+ * + * + * map<string, .google.protobuf.Value> secure_context = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public /* nullable */ com.google.protobuf.Value getSecureContextOrDefault( + java.lang.String key, + /* nullable */ + com.google.protobuf.Value defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = + internalGetMutableSecureContext().ensureBuilderMap(); + return map.containsKey(key) ? secureContextConverter.build(map.get(key)) : defaultValue; + } + + /** + * + * + *
+       * Optional. Map of parameter name to value for this request. These values
+       * will be returned by any SECURE_CONTEXT() calls invoked by this request
+       * (e.g., by queries against Parameterized Secure Views).
+       * 
+ * + * + * map<string, .google.protobuf.Value> secure_context = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.protobuf.Value getSecureContextOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = + internalGetMutableSecureContext().ensureBuilderMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return secureContextConverter.build(map.get(key)); + } + + public Builder clearSecureContext() { + bitField0_ = (bitField0_ & ~0x00000001); + internalGetMutableSecureContext().clear(); + return this; + } + + /** + * + * + *
+       * Optional. Map of parameter name to value for this request. These values
+       * will be returned by any SECURE_CONTEXT() calls invoked by this request
+       * (e.g., by queries against Parameterized Secure Views).
+       * 
+ * + * + * map<string, .google.protobuf.Value> secure_context = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder removeSecureContext(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + internalGetMutableSecureContext().ensureBuilderMap().remove(key); + return this; + } + + /** Use alternate mutation accessors instead. */ + @java.lang.Deprecated + public java.util.Map getMutableSecureContext() { + bitField0_ |= 0x00000001; + return internalGetMutableSecureContext().ensureMessageMap(); + } + + /** + * + * + *
+       * Optional. Map of parameter name to value for this request. These values
+       * will be returned by any SECURE_CONTEXT() calls invoked by this request
+       * (e.g., by queries against Parameterized Secure Views).
+       * 
+ * + * + * map<string, .google.protobuf.Value> secure_context = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder putSecureContext(java.lang.String key, com.google.protobuf.Value value) { + if (key == null) { + throw new NullPointerException("map key"); + } + if (value == null) { + throw new NullPointerException("map value"); + } + internalGetMutableSecureContext().ensureBuilderMap().put(key, value); + bitField0_ |= 0x00000001; + return this; + } + + /** + * + * + *
+       * Optional. Map of parameter name to value for this request. These values
+       * will be returned by any SECURE_CONTEXT() calls invoked by this request
+       * (e.g., by queries against Parameterized Secure Views).
+       * 
+ * + * + * map<string, .google.protobuf.Value> secure_context = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder putAllSecureContext( + java.util.Map values) { + for (java.util.Map.Entry e : + values.entrySet()) { + if (e.getKey() == null || e.getValue() == null) { + throw new NullPointerException(); + } + } + internalGetMutableSecureContext().ensureBuilderMap().putAll(values); + bitField0_ |= 0x00000001; + return this; + } + + /** + * + * + *
+       * Optional. Map of parameter name to value for this request. These values
+       * will be returned by any SECURE_CONTEXT() calls invoked by this request
+       * (e.g., by queries against Parameterized Secure Views).
+       * 
+ * + * + * map<string, .google.protobuf.Value> secure_context = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.protobuf.Value.Builder putSecureContextBuilderIfAbsent( + java.lang.String key) { + java.util.Map builderMap = + internalGetMutableSecureContext().ensureBuilderMap(); + com.google.protobuf.ValueOrBuilder entry = builderMap.get(key); + if (entry == null) { + entry = com.google.protobuf.Value.newBuilder(); + builderMap.put(key, entry); + } + if (entry instanceof com.google.protobuf.Value) { + entry = ((com.google.protobuf.Value) entry).toBuilder(); + builderMap.put(key, entry); + } + return (com.google.protobuf.Value.Builder) entry; + } + + @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.spanner.v1.RequestOptions.ClientContext) + } + + // @@protoc_insertion_point(class_scope:google.spanner.v1.RequestOptions.ClientContext) + private static final com.google.spanner.v1.RequestOptions.ClientContext DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.spanner.v1.RequestOptions.ClientContext(); + } + + public static com.google.spanner.v1.RequestOptions.ClientContext getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ClientContext 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.spanner.v1.RequestOptions.ClientContext getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + private int bitField0_; public static final int PRIORITY_FIELD_NUMBER = 1; private int priority_ = 0; @@ -444,6 +1436,65 @@ public com.google.protobuf.ByteString getTransactionTagBytes() { } } + public static final int CLIENT_CONTEXT_FIELD_NUMBER = 4; + private com.google.spanner.v1.RequestOptions.ClientContext clientContext_; + + /** + * + * + *
+   * Optional. Optional context that may be needed for some requests.
+   * 
+ * + * + * .google.spanner.v1.RequestOptions.ClientContext client_context = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the clientContext field is set. + */ + @java.lang.Override + public boolean hasClientContext() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Optional. Optional context that may be needed for some requests.
+   * 
+ * + * + * .google.spanner.v1.RequestOptions.ClientContext client_context = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The clientContext. + */ + @java.lang.Override + public com.google.spanner.v1.RequestOptions.ClientContext getClientContext() { + return clientContext_ == null + ? com.google.spanner.v1.RequestOptions.ClientContext.getDefaultInstance() + : clientContext_; + } + + /** + * + * + *
+   * Optional. Optional context that may be needed for some requests.
+   * 
+ * + * + * .google.spanner.v1.RequestOptions.ClientContext client_context = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.spanner.v1.RequestOptions.ClientContextOrBuilder getClientContextOrBuilder() { + return clientContext_ == null + ? com.google.spanner.v1.RequestOptions.ClientContext.getDefaultInstance() + : clientContext_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -468,6 +1519,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(transactionTag_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, transactionTag_); } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(4, getClientContext()); + } getUnknownFields().writeTo(output); } @@ -487,6 +1541,9 @@ public int getSerializedSize() { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(transactionTag_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, transactionTag_); } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getClientContext()); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -505,6 +1562,10 @@ public boolean equals(final java.lang.Object obj) { if (priority_ != other.priority_) return false; if (!getRequestTag().equals(other.getRequestTag())) return false; if (!getTransactionTag().equals(other.getTransactionTag())) return false; + if (hasClientContext() != other.hasClientContext()) return false; + if (hasClientContext()) { + if (!getClientContext().equals(other.getClientContext())) return false; + } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -522,6 +1583,10 @@ public int hashCode() { hash = (53 * hash) + getRequestTag().hashCode(); hash = (37 * hash) + TRANSACTION_TAG_FIELD_NUMBER; hash = (53 * hash) + getTransactionTag().hashCode(); + if (hasClientContext()) { + hash = (37 * hash) + CLIENT_CONTEXT_FIELD_NUMBER; + hash = (53 * hash) + getClientContext().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -651,10 +1716,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } // Construct using com.google.spanner.v1.RequestOptions.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) { + getClientContextFieldBuilder(); + } } @java.lang.Override @@ -664,6 +1738,11 @@ public Builder clear() { priority_ = 0; requestTag_ = ""; transactionTag_ = ""; + clientContext_ = null; + if (clientContextBuilder_ != null) { + clientContextBuilder_.dispose(); + clientContextBuilder_ = null; + } return this; } @@ -708,6 +1787,13 @@ private void buildPartial0(com.google.spanner.v1.RequestOptions result) { if (((from_bitField0_ & 0x00000004) != 0)) { result.transactionTag_ = transactionTag_; } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000008) != 0)) { + result.clientContext_ = + clientContextBuilder_ == null ? clientContext_ : clientContextBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + result.bitField0_ |= to_bitField0_; } @java.lang.Override @@ -768,6 +1854,9 @@ public Builder mergeFrom(com.google.spanner.v1.RequestOptions other) { bitField0_ |= 0x00000004; onChanged(); } + if (other.hasClientContext()) { + mergeClientContext(other.getClientContext()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -812,6 +1901,12 @@ public Builder mergeFrom( bitField0_ |= 0x00000004; break; } // case 26 + case 34: + { + input.readMessage(getClientContextFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000008; + break; + } // case 34 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -1243,6 +2338,220 @@ public Builder setTransactionTagBytes(com.google.protobuf.ByteString value) { return this; } + private com.google.spanner.v1.RequestOptions.ClientContext clientContext_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.spanner.v1.RequestOptions.ClientContext, + com.google.spanner.v1.RequestOptions.ClientContext.Builder, + com.google.spanner.v1.RequestOptions.ClientContextOrBuilder> + clientContextBuilder_; + + /** + * + * + *
+     * Optional. Optional context that may be needed for some requests.
+     * 
+ * + * + * .google.spanner.v1.RequestOptions.ClientContext client_context = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the clientContext field is set. + */ + public boolean hasClientContext() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Optional. Optional context that may be needed for some requests.
+     * 
+ * + * + * .google.spanner.v1.RequestOptions.ClientContext client_context = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The clientContext. + */ + public com.google.spanner.v1.RequestOptions.ClientContext getClientContext() { + if (clientContextBuilder_ == null) { + return clientContext_ == null + ? com.google.spanner.v1.RequestOptions.ClientContext.getDefaultInstance() + : clientContext_; + } else { + return clientContextBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Optional. Optional context that may be needed for some requests.
+     * 
+ * + * + * .google.spanner.v1.RequestOptions.ClientContext client_context = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setClientContext(com.google.spanner.v1.RequestOptions.ClientContext value) { + if (clientContextBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + clientContext_ = value; + } else { + clientContextBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Optional context that may be needed for some requests.
+     * 
+ * + * + * .google.spanner.v1.RequestOptions.ClientContext client_context = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setClientContext( + com.google.spanner.v1.RequestOptions.ClientContext.Builder builderForValue) { + if (clientContextBuilder_ == null) { + clientContext_ = builderForValue.build(); + } else { + clientContextBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Optional context that may be needed for some requests.
+     * 
+ * + * + * .google.spanner.v1.RequestOptions.ClientContext client_context = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeClientContext(com.google.spanner.v1.RequestOptions.ClientContext value) { + if (clientContextBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) + && clientContext_ != null + && clientContext_ + != com.google.spanner.v1.RequestOptions.ClientContext.getDefaultInstance()) { + getClientContextBuilder().mergeFrom(value); + } else { + clientContext_ = value; + } + } else { + clientContextBuilder_.mergeFrom(value); + } + if (clientContext_ != null) { + bitField0_ |= 0x00000008; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Optional. Optional context that may be needed for some requests.
+     * 
+ * + * + * .google.spanner.v1.RequestOptions.ClientContext client_context = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearClientContext() { + bitField0_ = (bitField0_ & ~0x00000008); + clientContext_ = null; + if (clientContextBuilder_ != null) { + clientContextBuilder_.dispose(); + clientContextBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Optional context that may be needed for some requests.
+     * 
+ * + * + * .google.spanner.v1.RequestOptions.ClientContext client_context = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.spanner.v1.RequestOptions.ClientContext.Builder getClientContextBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getClientContextFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. Optional context that may be needed for some requests.
+     * 
+ * + * + * .google.spanner.v1.RequestOptions.ClientContext client_context = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.spanner.v1.RequestOptions.ClientContextOrBuilder getClientContextOrBuilder() { + if (clientContextBuilder_ != null) { + return clientContextBuilder_.getMessageOrBuilder(); + } else { + return clientContext_ == null + ? com.google.spanner.v1.RequestOptions.ClientContext.getDefaultInstance() + : clientContext_; + } + } + + /** + * + * + *
+     * Optional. Optional context that may be needed for some requests.
+     * 
+ * + * + * .google.spanner.v1.RequestOptions.ClientContext client_context = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.spanner.v1.RequestOptions.ClientContext, + com.google.spanner.v1.RequestOptions.ClientContext.Builder, + com.google.spanner.v1.RequestOptions.ClientContextOrBuilder> + getClientContextFieldBuilder() { + if (clientContextBuilder_ == null) { + clientContextBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.spanner.v1.RequestOptions.ClientContext, + com.google.spanner.v1.RequestOptions.ClientContext.Builder, + com.google.spanner.v1.RequestOptions.ClientContextOrBuilder>( + getClientContext(), getParentForChildren(), isClean()); + clientContext_ = null; + } + return clientContextBuilder_; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/RequestOptionsOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/RequestOptionsOrBuilder.java index 2412301279f..cf5ce31a91b 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/RequestOptionsOrBuilder.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/RequestOptionsOrBuilder.java @@ -139,4 +139,47 @@ public interface RequestOptionsOrBuilder * @return The bytes for transactionTag. */ com.google.protobuf.ByteString getTransactionTagBytes(); + + /** + * + * + *
+   * Optional. Optional context that may be needed for some requests.
+   * 
+ * + * + * .google.spanner.v1.RequestOptions.ClientContext client_context = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the clientContext field is set. + */ + boolean hasClientContext(); + + /** + * + * + *
+   * Optional. Optional context that may be needed for some requests.
+   * 
+ * + * + * .google.spanner.v1.RequestOptions.ClientContext client_context = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The clientContext. + */ + com.google.spanner.v1.RequestOptions.ClientContext getClientContext(); + + /** + * + * + *
+   * Optional. Optional context that may be needed for some requests.
+   * 
+ * + * + * .google.spanner.v1.RequestOptions.ClientContext client_context = 4 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.spanner.v1.RequestOptions.ClientContextOrBuilder getClientContextOrBuilder(); } diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerProto.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerProto.java index c852dd8fd7e..20a566bd04f 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerProto.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerProto.java @@ -68,6 +68,14 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r internal_static_google_spanner_v1_RequestOptions_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_google_spanner_v1_RequestOptions_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_spanner_v1_RequestOptions_ClientContext_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_spanner_v1_RequestOptions_ClientContext_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_spanner_v1_RequestOptions_ClientContext_SecureContextEntry_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_spanner_v1_RequestOptions_ClientContext_SecureContextEntry_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_google_spanner_v1_DirectedReadOptions_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable @@ -225,36 +233,44 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\017next_page_token\030\002 \001(\t\"L\n" + "\024DeleteSessionRequest\0224\n" + "\004name\030\001 \001(\tB&\340A\002\372A \n" - + "\036spanner.googleapis.com/Session\"\334\001\n" + + "\036spanner.googleapis.com/Session\"\353\003\n" + "\016RequestOptions\022<\n" + "\010priority\030\001 \001(\0162*.google.spanner.v1.RequestOptions.Priority\022\023\n" + "\013request_tag\030\002 \001(\t\022\027\n" - + "\017transaction_tag\030\003 \001(\t\"^\n" + + "\017transaction_tag\030\003 \001(\t\022L\n" + + "\016client_context\030\004 \001(\013" + + "2/.google.spanner.v1.RequestOptions.ClientContextB\003\340A\001\032\276\001\n\r" + + "ClientContext\022_\n" + + "\016secure_context\030\001 \003(\0132B.google.spanner.v1.Req" + + "uestOptions.ClientContext.SecureContextEntryB\003\340A\001\032L\n" + + "\022SecureContextEntry\022\013\n" + + "\003key\030\001 \001(\t\022%\n" + + "\005value\030\002 \001(\0132\026.google.protobuf.Value:\0028\001\"^\n" + "\010Priority\022\030\n" + "\024PRIORITY_UNSPECIFIED\020\000\022\020\n" + "\014PRIORITY_LOW\020\001\022\023\n" + "\017PRIORITY_MEDIUM\020\002\022\021\n\r" + "PRIORITY_HIGH\020\003\"\352\004\n" + "\023DirectedReadOptions\022R\n" - + "\020include_replicas\030\001 \001" - + "(\01326.google.spanner.v1.DirectedReadOptions.IncludeReplicasH\000\022R\n" - + "\020exclude_replicas\030\002" - + " \001(\01326.google.spanner.v1.DirectedReadOptions.ExcludeReplicasH\000\032\255\001\n" + + "\020include_replicas\030\001 \001(\01326.goog" + + "le.spanner.v1.DirectedReadOptions.IncludeReplicasH\000\022R\n" + + "\020exclude_replicas\030\002 \001(\01326." + + "google.spanner.v1.DirectedReadOptions.ExcludeReplicasH\000\032\255\001\n" + "\020ReplicaSelection\022\020\n" + "\010location\030\001 \001(\t\022J\n" - + "\004type\030\002 \001(\0162<." - + "google.spanner.v1.DirectedReadOptions.ReplicaSelection.Type\";\n" + + "\004type\030\002 \001(\0162<.google.sp" + + "anner.v1.DirectedReadOptions.ReplicaSelection.Type\";\n" + "\004Type\022\024\n" + "\020TYPE_UNSPECIFIED\020\000\022\016\n\n" + "READ_WRITE\020\001\022\r\n" + "\tREAD_ONLY\020\002\032\206\001\n" + "\017IncludeReplicas\022S\n" - + "\022replica_selections\030\001" - + " \003(\01327.google.spanner.v1.DirectedReadOptions.ReplicaSelection\022\036\n" + + "\022replica_selections\030\001 \003(\0132" + + "7.google.spanner.v1.DirectedReadOptions.ReplicaSelection\022\036\n" + "\026auto_failover_disabled\030\002 \001(\010\032f\n" + "\017ExcludeReplicas\022S\n" - + "\022replica_selections\030\001 \003(\01327.google.spanne" - + "r.v1.DirectedReadOptions.ReplicaSelectionB\n\n" + + "\022replica_selections\030\001" + + " \003(\01327.google.spanner.v1.DirectedReadOptions.ReplicaSelectionB\n\n" + "\010replicas\"\310\007\n" + "\021ExecuteSqlRequest\0227\n" + "\007session\030\001 \001(\tB&\340A\002\372A \n" @@ -262,8 +278,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\013transaction\030\002 \001(\0132&.google.spanner.v1.TransactionSelector\022\020\n" + "\003sql\030\003 \001(\tB\003\340A\002\022\'\n" + "\006params\030\004 \001(\0132\027.google.protobuf.Struct\022I\n" - + "\013param_types\030\005 \003(\01324.goog" - + "le.spanner.v1.ExecuteSqlRequest.ParamTypesEntry\022\024\n" + + "\013param_types\030\005 \003(\01324.google.spanne" + + "r.v1.ExecuteSqlRequest.ParamTypesEntry\022\024\n" + "\014resume_token\030\006 \001(\014\022B\n\n" + "query_mode\030\007 \001(\0162..google.spanner.v1.ExecuteSqlRequest.QueryMode\022\027\n" + "\017partition_token\030\010 \001(\014\022\r\n" @@ -292,26 +308,26 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\026ExecuteBatchDmlRequest\0227\n" + "\007session\030\001 \001(\tB&\340A\002\372A \n" + "\036spanner.googleapis.com/Session\022@\n" - + "\013transaction\030\002" - + " \001(\0132&.google.spanner.v1.TransactionSelectorB\003\340A\002\022L\n\n" - + "statements\030\003 \003(\01323.goo" - + "gle.spanner.v1.ExecuteBatchDmlRequest.StatementB\003\340A\002\022\022\n" + + "\013transaction\030\002 \001(\013" + + "2&.google.spanner.v1.TransactionSelectorB\003\340A\002\022L\n\n" + + "statements\030\003 \003(\01323.google.spann" + + "er.v1.ExecuteBatchDmlRequest.StatementB\003\340A\002\022\022\n" + "\005seqno\030\004 \001(\003B\003\340A\002\022:\n" + "\017request_options\030\005 \001(\0132!.google.spanner.v1.RequestOptions\022\034\n" + "\017last_statements\030\006 \001(\010B\003\340A\001\032\354\001\n" + "\tStatement\022\020\n" + "\003sql\030\001 \001(\tB\003\340A\002\022\'\n" + "\006params\030\002 \001(\0132\027.google.protobuf.Struct\022X\n" - + "\013param_types\030\003 \003(\0132C.google.spanner.v1.Exe" - + "cuteBatchDmlRequest.Statement.ParamTypesEntry\032J\n" + + "\013param_types\030\003" + + " \003(\0132C.google.spanner.v1.ExecuteBatchDmlRequest.Statement.ParamTypesEntry\032J\n" + "\017ParamTypesEntry\022\013\n" + "\003key\030\001 \001(\t\022&\n" + "\005value\030\002 \001(\0132\027.google.spanner.v1.Type:\0028\001\"\303\001\n" + "\027ExecuteBatchDmlResponse\0221\n" + "\013result_sets\030\001 \003(\0132\034.google.spanner.v1.ResultSet\022\"\n" + "\006status\030\002 \001(\0132\022.google.rpc.Status\022Q\n" - + "\017precommit_token\030\003 \001(\01323.google.spanner.v" - + "1.MultiplexedSessionPrecommitTokenB\003\340A\001\"H\n" + + "\017precommit_token\030\003" + + " \001(\01323.google.spanner.v1.MultiplexedSessionPrecommitTokenB\003\340A\001\"H\n" + "\020PartitionOptions\022\034\n" + "\024partition_size_bytes\030\001 \001(\003\022\026\n" + "\016max_partitions\030\002 \001(\003\"\243\003\n" @@ -354,11 +370,11 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\017partition_token\030\n" + " \001(\014\022:\n" + "\017request_options\030\013 \001(\0132!.google.spanner.v1.RequestOptions\022E\n" - + "\025directed_read_options\030\016 \001(\0132&" - + ".google.spanner.v1.DirectedReadOptions\022\032\n" + + "\025directed_read_options\030\016" + + " \001(\0132&.google.spanner.v1.DirectedReadOptions\022\032\n" + "\022data_boost_enabled\030\017 \001(\010\022=\n" - + "\010order_by\030\020" - + " \001(\0162&.google.spanner.v1.ReadRequest.OrderByB\003\340A\001\022?\n" + + "\010order_by\030\020 \001(\0162&.go" + + "ogle.spanner.v1.ReadRequest.OrderByB\003\340A\001\022?\n" + "\tlock_hint\030\021" + " \001(\0162\'.google.spanner.v1.ReadRequest.LockHintB\003\340A\001\0229\n" + "\014routing_hint\030\022" @@ -374,8 +390,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\027BeginTransactionRequest\0227\n" + "\007session\030\001 \001(\tB&\340A\002\372A \n" + "\036spanner.googleapis.com/Session\022;\n" - + "\007options\030\002" - + " \001(\0132%.google.spanner.v1.TransactionOptionsB\003\340A\002\022:\n" + + "\007options\030\002 \001(\0132%" + + ".google.spanner.v1.TransactionOptionsB\003\340A\002\022:\n" + "\017request_options\030\003 \001(\0132!.google.spanner.v1.RequestOptions\0226\n" + "\014mutation_key\030\004" + " \001(\0132\033.google.spanner.v1.MutationB\003\340A\001\"\320\003\n\r" @@ -390,8 +406,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\020max_commit_delay\030\010" + " \001(\0132\031.google.protobuf.DurationB\003\340A\001\022:\n" + "\017request_options\030\006 \001(\0132!.google.spanner.v1.RequestOptions\022Q\n" - + "\017precommit_token\030\t \001(" - + "\01323.google.spanner.v1.MultiplexedSessionPrecommitTokenB\003\340A\001B\r\n" + + "\017precommit_token\030\t \001(\01323.googl" + + "e.spanner.v1.MultiplexedSessionPrecommitTokenB\003\340A\001B\r\n" + "\013transaction\"g\n" + "\017RollbackRequest\0227\n" + "\007session\030\001 \001(\tB&\340A\002\372A \n" @@ -401,9 +417,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\007session\030\001 \001(\tB&\340A\002\372A \n" + "\036spanner.googleapis.com/Session\022:\n" + "\017request_options\030\003 \001(\0132!.google.spanner.v1.RequestOptions\022P\n" - + "\017mutation_groups\030\004 \003(\01322.google.spanner" - + ".v1.BatchWriteRequest.MutationGroupB\003\340A\002\022,\n" - + "\037exclude_txn_from_change_streams\030\005 \001(\010B\003\340A\001\032D\n\r" + + "\017mutation_groups\030\004" + + " \003(\01322.google.spanner.v1.BatchWriteRequest.MutationGroupB\003\340A\002\022,\n" + + "\037exclude_txn_from_change_streams\030\005 \001(\010B\003\340A\001\032D\n" + + "\r" + "MutationGroup\0223\n" + "\tmutations\030\001 \003(\0132\033.google.spanner.v1.MutationB\003\340A\002\"\177\n" + "\022BatchWriteResponse\022\017\n" @@ -411,73 +428,74 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\006status\030\002 \001(\0132\022.google.rpc.Status\0224\n" + "\020commit_timestamp\030\003 \001(\0132\032.google.protobuf.Timestamp2\213\030\n" + "\007Spanner\022\246\001\n\r" - + "CreateSession\022\'.google.spanner.v1.CreateSessionRequest\032\032.g" - + "oogle.spanner.v1.Session\"P\332A\010database\202\323\344" - + "\223\002?\":/v1/{database=projects/*/instances/*/databases/*}/sessions:\001*\022\340\001\n" - + "\023BatchCreateSessions\022-.google.spanner.v1.BatchCrea" - + "teSessionsRequest\032..google.spanner.v1.Ba" - + "tchCreateSessionsResponse\"j\332A\026database,s" - + "ession_count\202\323\344\223\002K\"F/v1/{database=projec" - + "ts/*/instances/*/databases/*}/sessions:batchCreate:\001*\022\227\001\n\n" - + "GetSession\022$.google.spanner.v1.GetSessionRequest\032\032.google.span" - + "ner.v1.Session\"G\332A\004name\202\323\344\223\002:\0228/v1/{name" - + "=projects/*/instances/*/databases/*/sessions/*}\022\256\001\n" - + "\014ListSessions\022&.google.spanner.v1.ListSessionsRequest\032\'.google.spanne" - + "r.v1.ListSessionsResponse\"M\332A\010database\202\323" - + "\344\223\002<\022:/v1/{database=projects/*/instances/*/databases/*}/sessions\022\231\001\n\r" - + "DeleteSession\022\'.google.spanner.v1.DeleteSessionRequ" - + "est\032\026.google.protobuf.Empty\"G\332A\004name\202\323\344\223" - + "\002:*8/v1/{name=projects/*/instances/*/databases/*/sessions/*}\022\243\001\n\n" - + "ExecuteSql\022$.google.spanner.v1.ExecuteSqlRequest\032\034.goog" - + "le.spanner.v1.ResultSet\"Q\202\323\344\223\002K\"F/v1/{se" - + "ssion=projects/*/instances/*/databases/*/sessions/*}:executeSql:\001*\022\276\001\n" - + "\023ExecuteStreamingSql\022$.google.spanner.v1.ExecuteSq" - + "lRequest\032#.google.spanner.v1.PartialResu" - + "ltSet\"Z\202\323\344\223\002T\"O/v1/{session=projects/*/i" - + "nstances/*/databases/*/sessions/*}:executeStreamingSql:\001*0\001\022\300\001\n" - + "\017ExecuteBatchDml\022).google.spanner.v1.ExecuteBatchDmlReque" - + "st\032*.google.spanner.v1.ExecuteBatchDmlRe" - + "sponse\"V\202\323\344\223\002P\"K/v1/{session=projects/*/" - + "instances/*/databases/*/sessions/*}:executeBatchDml:\001*\022\221\001\n" - + "\004Read\022\036.google.spanner.v1.ReadRequest\032\034.google.spanner.v1.Resu" - + "ltSet\"K\202\323\344\223\002E\"@/v1/{session=projects/*/i" - + "nstances/*/databases/*/sessions/*}:read:\001*\022\254\001\n\r" - + "StreamingRead\022\036.google.spanner.v1.ReadRequest\032#.google.spanner.v1.Partial" - + "ResultSet\"T\202\323\344\223\002N\"I/v1/{session=projects" - + "/*/instances/*/databases/*/sessions/*}:streamingRead:\001*0\001\022\311\001\n" - + "\020BeginTransaction\022*.google.spanner.v1.BeginTransactionReque" - + "st\032\036.google.spanner.v1.Transaction\"i\332A\017s" - + "ession,options\202\323\344\223\002Q\"L/v1/{session=proje" - + "cts/*/instances/*/databases/*/sessions/*}:beginTransaction:\001*\022\353\001\n" - + "\006Commit\022 .googl" - + "e.spanner.v1.CommitRequest\032!.google.spanner.v1.CommitResponse\"\233\001\332A" - + " session,transaction_id,mutations\332A(session,single_use" - + "_transaction,mutations\202\323\344\223\002G\"B/v1/{sessi" - + "on=projects/*/instances/*/databases/*/sessions/*}:commit:\001*\022\260\001\n" - + "\010Rollback\022\".google.spanner.v1.RollbackRequest\032\026.google.pr" - + "otobuf.Empty\"h\332A\026session,transaction_id\202" - + "\323\344\223\002I\"D/v1/{session=projects/*/instances" - + "/*/databases/*/sessions/*}:rollback:\001*\022\267\001\n" - + "\016PartitionQuery\022(.google.spanner.v1.Pa" - + "rtitionQueryRequest\032$.google.spanner.v1." - + "PartitionResponse\"U\202\323\344\223\002O\"J/v1/{session=" - + "projects/*/instances/*/databases/*/sessions/*}:partitionQuery:\001*\022\264\001\n\r" - + "PartitionRead\022\'.google.spanner.v1.PartitionReadRequ" - + "est\032$.google.spanner.v1.PartitionRespons" - + "e\"T\202\323\344\223\002N\"I/v1/{session=projects/*/insta" - + "nces/*/databases/*/sessions/*}:partitionRead:\001*\022\310\001\n\n" - + "BatchWrite\022$.google.spanner.v1.BatchWriteRequest\032%.google.spanner.v1" - + ".BatchWriteResponse\"k\332A\027session,mutation" - + "_groups\202\323\344\223\002K\"F/v1/{session=projects/*/i" - + "nstances/*/databases/*/sessions/*}:batch" - + "Write:\001*0\001\032w\312A\026spanner.googleapis.com\322A[" - + "https://www.googleapis.com/auth/cloud-pl" - + "atform,https://www.googleapis.com/auth/spanner.dataB\221\002\n" - + "\025com.google.spanner.v1B\014SpannerProtoP\001Z5cloud.google.com/go/spann" - + "er/apiv1/spannerpb;spannerpb\252\002\027Google.Cl" - + "oud.Spanner.V1\312\002\027Google\\Cloud\\Spanner\\V1\352\002\032Google::Cloud::Spanner::V1\352A_\n" - + "\037spanner.googleapis.com/Database\022 secure_context = 1 + [(google.api.field_behavior) = OPTIONAL]; + } + // Priority for the request. Priority priority = 1; @@ -544,6 +553,9 @@ message RequestOptions { // characters. Values that exceed this limit are truncated. // Any leading underscore (_) characters are removed from the string. string transaction_tag = 3; + + // Optional. Optional context that may be needed for some requests. + ClientContext client_context = 4 [(google.api.field_behavior) = OPTIONAL]; } // The `DirectedReadOptions` can be used to indicate which replicas or regions